18 std::vector<uint32_t> coordinates;
20 for (std::size_t i = shape.size() - 1; i < shape.size(); --i)
24 coordinates.insert(coordinates.begin(), index % shape[i]);
26 index = index/shape[i];
56 std::vector<uint32_t> outputShape(rank);
57 for (uint32_t i = 0; i < rank; ++i)
59 outputShape[i] = inputShape[i] * params.
m_Multiples[i];
68 auto inputValue = inputDecoder.
Get();
70 outputEncoder.
Set(inputValue);
77 std::vector<float> outputData;
78 auto outputNumElements = inputData.size() *
static_cast<uint32_t
>(std::accumulate(begin(params.
m_Multiples),
81 std::multiplies<>()));
82 outputData.reserve(outputNumElements);
84 for (uint32_t outputIndex = 0; outputIndex < outputNumElements; ++outputIndex)
89 std::vector<uint32_t> inputCoordinates;
90 inputCoordinates.reserve(rank);
91 for (uint32_t i = 0; i < rank; ++i)
93 inputCoordinates.push_back(outputCoords[i] % inputShape[i]);
98 outputEncoder[outputIndex];
99 outputEncoder.
Set(inputData[inputIndex]);