diff --git a/include/aidge/backend/cpu/operator/GridSampleImpl_kernels.hpp b/include/aidge/backend/cpu/operator/GridSampleImpl_kernels.hpp index ea62fd010db8c155a3ff86ff8396797da5ebb6be..8f33d7d54c99f6096d02c059f579453535b73a36 100644 --- a/include/aidge/backend/cpu/operator/GridSampleImpl_kernels.hpp +++ b/include/aidge/backend/cpu/operator/GridSampleImpl_kernels.hpp @@ -137,7 +137,8 @@ void GridSampleImpl1D_cpu_forward_kernel(const GridSample_Op& op, float x = *grid_ptr; x = update_normalized_coord_with_padding(x, op.paddingMode()); x = unnormalize_grid_sample_coord(x, in_H, op.alignCorners()); - if (op.mode() == GridSample_Op::Mode::Nearest) { + switch (op.mode()){ + case : GridSample_Op::Mode::Nearest const std::int64_t x_rounded = std::nearbyintf(x); if (in_bound(x_rounded, 0, in_H)) { @@ -153,7 +154,7 @@ void GridSampleImpl1D_cpu_forward_kernel(const GridSample_Op& op, output_ptr += out_C_s; } } - } else if (op.mode() == GridSample_Op::Mode::Linear) { + case op.mode() == GridSample_Op::Mode::Linear : const std::int64_t x_inf = update_unnormalized_coord_with_padding(static_cast<std::int64_t>(std::floor(x)), in_H, op.paddingMode()); const std::int64_t x_sup = update_unnormalized_coord_with_padding(x_inf + 1, in_H, op.paddingMode()); @@ -170,7 +171,7 @@ void GridSampleImpl1D_cpu_forward_kernel(const GridSample_Op& op, input_ptr_NC += in_C_s; output_ptr += out_C_s; } - } else if (op.mode() == GridSample_Op::Mode::Cubic) { + case GridSample_Op::Mode::Cubic : const std::int64_t x_inf = update_unnormalized_coord_with_padding(static_cast<std::int64_t>(std::floor(x)), in_H, op.paddingMode()); const std::int64_t x_sup = update_unnormalized_coord_with_padding(x_inf + 1, in_H, op.paddingMode()); const std::int64_t x_inf_inf = update_unnormalized_coord_with_padding(x_inf - 1, in_H, op.paddingMode());