diff --git a/src/operator/DivImpl.cpp b/src/operator/DivImpl.cpp index 292a3b56682889051fd48b53382e5030f4e1ee50..729aff2452b46f00eb6d3e0b558c0b3d58ea2f0e 100644 --- a/src/operator/DivImpl.cpp +++ b/src/operator/DivImpl.cpp @@ -91,16 +91,10 @@ void Aidge::DivImpl_cpu::forward() { std::size_t contiguousIdx = nbDims - 1; for (; contiguousIdx+1 > 0; --contiguousIdx) { if (dims0[contiguousIdx] != dims1[contiguousIdx]) { - if (contiguousIdx == (nbDims -1)) { - if (dims0[contiguousIdx] == 1) { - while ((dims0[contiguousIdx] == 1) && (contiguousIdx+1 > 0)) { - --contiguousIdx; - } - } - else { - while ((dims1[contiguousIdx] == 1) && (contiguousIdx+1 > 0)) { - --contiguousIdx; - } + if (contiguousIdx == (nbDims -1)) { // last dimensions of one of the input Tensor are of size 1 + const std::vector<std::size_t>& dims = (dims0[contiguousIdx] == 1) ? dims0 : dims1; + while ((contiguousIdx+1 > 0) && (dims[contiguousIdx] == 1)) { + --contiguousIdx; } } break;