diff --git a/include/aidge/backend/cpu/operator/SliceImpl_forward_kernels.hpp b/include/aidge/backend/cpu/operator/SliceImpl_forward_kernels.hpp index 01e2735af9801c4fe07d8db61e2f01d2d7caeb93..bbf4ccbae77089ca75dfee34f5bc5b0dd7d3697d 100644 --- a/include/aidge/backend/cpu/operator/SliceImpl_forward_kernels.hpp +++ b/include/aidge/backend/cpu/operator/SliceImpl_forward_kernels.hpp @@ -13,6 +13,8 @@ #define AIDGE_CPU_OPERATOR_SLICEIMPL_FORWARD_KERNEL_H_ #include "aidge/utils/Registrar.hpp" +#include "aidge/operator/Slice.hpp" +#include "aidge/backend/cpu/operator/SliceImpl.hpp" #include <array> #include <cstddef> @@ -20,7 +22,7 @@ namespace Aidge { template <class I, std::size_t DIM> -void SliceImpl_cpu_forward_kernel(const Slice_Op::Attrs& attrs, +void SliceImpl_cpu_forward_kernel(const typename Slice_Op<DIM>::Attrs& attrs, const std::array<std::size_t, DIM> inputDims, const void* input_, void* output_) { @@ -48,8 +50,9 @@ void SliceImpl_cpu_forward_kernel(const Slice_Op::Attrs& attrs, std::size_t j = 0; std::size_t i = 0; - for (; j < prodSlicedDims[0]; ++j) { + for (; j < prodSlicedDims[0];) { output[j] = input[i++]; + ++j; for (std::size_t idx = DIM - 1; idx > 0; --idx) { i += j % prodSlicedDims[idx] == 0 ? substractedDims[idx]*prodInputDims[idx+1] : 0; }