// // Copyright © 2017 Arm Ltd. All rights reserved. // SPDX-License-Identifier: MIT // #include "RefFloorWorkload.hpp" #include "Decoders.hpp" #include "Encoders.hpp" #include "RefWorkloadUtils.hpp" #include "Profiling.hpp" namespace armnn { void RefFloorWorkload::Execute() const { Execute(m_Data.m_Inputs, m_Data.m_Outputs); } void RefFloorWorkload::ExecuteAsync(WorkingMemDescriptor &workingMemDescriptor) { Execute(workingMemDescriptor.m_Inputs, workingMemDescriptor.m_Outputs); } void RefFloorWorkload::Execute(std::vector inputs, std::vector outputs) const { ARMNN_SCOPED_PROFILING_EVENT(Compute::CpuRef, "RefFloorFloat32Workload_Execute"); const TensorInfo &inputTensorInfo = GetTensorInfo(inputs[0]); std::unique_ptr> decoderPtr = MakeDecoder(inputTensorInfo, inputs[0]->Map()); Decoder &decoder = *decoderPtr; const TensorInfo &outputTensorInfo = GetTensorInfo(outputs[0]); std::unique_ptr> encoderPtr = MakeEncoder(outputTensorInfo, outputs[0]->Map()); Encoder &encoder = *encoderPtr; unsigned int numElements = GetTensorInfo(inputs[0]).GetNumElements(); for (unsigned int i = 0; i < numElements; ++i) { encoder.Set(floorf(decoder.Get())); ++decoder; ++encoder; } } } //namespace armnn