11 #include <boost/assert.hpp> 16 template <
typename DataType>
21 for (
unsigned int index = 0; index < inputInfo0.
GetNumElements(); ++index)
25 unsigned int indexRemainder = index;
30 dimensionStride /= inputInfo0.
GetShape()[i];
31 indices[i] = indexRemainder / dimensionStride;
32 indexRemainder -= indices[i] * dimensionStride;
35 for (
unsigned int viewIdx = 0; viewIdx < data.
m_ViewOrigins.size(); ++viewIdx)
44 bool insideView =
true;
59 unsigned int outIndex = 0;
60 unsigned int dimensionStride = 1;
64 outIndex += dimensionStride * (indices[i] - view.
m_Origin[i]);
65 dimensionStride *= outputInfo.
GetShape()[i];
69 DataType* outputData = GetOutputTensorData<DataType>(viewIdx, data);
70 BOOST_ASSERT(outputData);
72 const DataType* inputData = GetInputTensorData<DataType>(0, data);
73 BOOST_ASSERT(inputData);
75 outputData[outIndex] = inputData[index];
unsigned int GetNumDimensions() const
void Splitter(const SplitterQueueDescriptor &data)
constexpr unsigned int MaxNumOfTensorDimensions
unsigned int GetNumElements() const
std::vector< ViewOrigin > m_ViewOrigins
void Split(const SplitterQueueDescriptor &data)
std::vector< ITensorHandle * > m_Outputs
std::vector< ITensorHandle * > m_Inputs
std::vector< unsigned int > m_Origin
const TensorShape & GetShape() const
const TensorInfo & GetTensorInfo(const ITensorHandle *tensorHandle)
float32 helpers