15 std::vector<ITensorHandle*> inputs,
16 std::vector<ITensorHandle*> outputs)
20 std::unique_ptr<Encoder<float>> encoderPtr = MakeEncoder<float>(outputInfo0, outputs[0]->Map());
23 for (
unsigned int index = 0 ; index < outputInfo0.GetNumElements(); ++index)
27 unsigned int indexRemainder = index;
28 unsigned int dimensionStride = outputInfo0.GetNumElements();
30 for (
unsigned int i = 0; i < outputInfo0.GetNumDimensions(); i++)
32 dimensionStride /= outputInfo0.GetShape()[i];
33 indices[i] = indexRemainder / dimensionStride;
34 indexRemainder -= indices[i] * dimensionStride;
37 for (
unsigned int viewIdx = 0; viewIdx < data.
m_ViewOrigins.size(); ++viewIdx)
46 bool insideView =
true;
61 std::unique_ptr<Decoder<float>> decoderPtr =
62 MakeDecoder<float>(inputInfo,inputs[viewIdx]->Map());
64 unsigned int inIndex = 0;
65 unsigned int dimensionStride = 1;
67 for (
unsigned int i = inputInfo.GetNumDimensions(); i-- > 0;)
69 inIndex += dimensionStride * (indices[i] - view.
m_Origin[i]);
70 dimensionStride *= inputInfo.GetShape()[i];
73 encoder.Set(decoder.Get());
std::vector< unsigned int > m_Origin
const TensorShape & GetShape() const
Copyright (c) 2021 ARM Limited and Contributors.
std::vector< ViewOrigin > m_ViewOrigins
void Concatenate(const ConcatQueueDescriptor &data, std::vector< ITensorHandle *> inputs, std::vector< ITensorHandle *> outputs)
#define ARMNN_ASSERT(COND)
const TensorInfo & GetTensorInfo(const ITensorHandle *tensorHandle)
float32 helpers
unsigned int GetNumDimensions() const
constexpr unsigned int MaxNumOfTensorDimensions