25 std::unique_ptr<Decoder<float>> decoderPtr =
26 MakeDecoder<float>(inputInfo, data.
m_Inputs[0]->Map());
29 for (
unsigned int index = 0; index < inputInfo.GetNumElements(); ++index)
33 unsigned int indexRemainder = index;
34 unsigned int dimensionStride = inputInfo.GetNumElements();
36 for (
unsigned int i = 0; i<inputInfo.GetNumDimensions(); i++)
38 dimensionStride /= inputInfo.GetShape()[i];
39 indices[i] = indexRemainder / dimensionStride;
40 indexRemainder -= indices[i] * dimensionStride;
43 for (
unsigned int viewIdx = 0; viewIdx < data.
m_ViewOrigins.size(); ++viewIdx)
52 bool insideView =
true;
67 std::unique_ptr<Encoder<float>> encoderPtr =
68 MakeEncoder<float>(outputInfo, data.
m_Outputs[viewIdx]->Map());
71 unsigned int outIndex = 0;
72 unsigned int dimensionStride = 1;
73 float inputValue = 0.f;
75 for (
unsigned int i = outputInfo.GetNumDimensions(); i-- > 0;)
77 outIndex += dimensionStride * (indices[i] - view.
m_Origin[i]);
78 dimensionStride *= outputInfo.GetShape()[i];
82 inputValue = decoder.
Get();
86 encoder.Set(inputValue);
void Split(const SplitterQueueDescriptor &data)
const TensorShape & GetShape() const
const TensorInfo & GetTensorInfo(const ITensorHandle *tensorHandle)
float32 helpers
Copyright (c) 2020 ARM Limited.
#define ARMNN_ASSERT(COND)
std::vector< ViewOrigin > m_ViewOrigins
virtual IType Get() const =0
std::vector< ITensorHandle * > m_Outputs
std::vector< ITensorHandle * > m_Inputs
unsigned int GetNumDimensions() const
constexpr unsigned int MaxNumOfTensorDimensions
std::vector< unsigned int > m_Origin