1 // 2 // Copyright © 2017 Arm Ltd. All rights reserved. 3 // SPDX-License-Identifier: MIT 4 // 5 6 #include <armnnUtils/FloatingPointConverter.hpp> 7 8 #include "BFloat16.hpp" 9 #include "Half.hpp" 10 11 #include <armnn/utility/Assert.hpp> 12 13 namespace armnnUtils 14 { 15 ConvertFloat32To16(const float * srcFloat32Buffer,size_t numElements,void * dstFloat16Buffer)16void FloatingPointConverter::ConvertFloat32To16(const float* srcFloat32Buffer, 17 size_t numElements, 18 void* dstFloat16Buffer) 19 { 20 ARMNN_ASSERT(srcFloat32Buffer != nullptr); 21 ARMNN_ASSERT(dstFloat16Buffer != nullptr); 22 23 armnn::Half* pHalf = static_cast<armnn::Half*>(dstFloat16Buffer); 24 25 for (size_t i = 0; i < numElements; i++) 26 { 27 pHalf[i] = armnn::Half(srcFloat32Buffer[i]); 28 } 29 } 30 ConvertFloat16To32(const void * srcFloat16Buffer,size_t numElements,float * dstFloat32Buffer)31void FloatingPointConverter::ConvertFloat16To32(const void* srcFloat16Buffer, 32 size_t numElements, 33 float* dstFloat32Buffer) 34 { 35 ARMNN_ASSERT(srcFloat16Buffer != nullptr); 36 ARMNN_ASSERT(dstFloat32Buffer != nullptr); 37 38 const armnn::Half* pHalf = static_cast<const armnn::Half*>(srcFloat16Buffer); 39 40 for (size_t i = 0; i < numElements; i++) 41 { 42 dstFloat32Buffer[i] = pHalf[i]; 43 } 44 } 45 46 } //namespace armnnUtils 47