diff options
author | telsoa01 <telmo.soares@arm.com> | 2018-08-31 09:22:23 +0100 |
---|---|---|
committer | telsoa01 <telmo.soares@arm.com> | 2018-08-31 09:22:23 +0100 |
commit | c577f2c6a3b4ddb6ba87a882723c53a248afbeba (patch) | |
tree | bd7d4c148df27f8be6649d313efb24f536b7cf34 /src/armnnUtils/FloatingPointConverter.cpp | |
parent | 4c7098bfeab1ffe1cdc77f6c15548d3e73274746 (diff) | |
download | armnn-c577f2c6a3b4ddb6ba87a882723c53a248afbeba.tar.gz |
Release 18.08
Diffstat (limited to 'src/armnnUtils/FloatingPointConverter.cpp')
-rw-r--r-- | src/armnnUtils/FloatingPointConverter.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/armnnUtils/FloatingPointConverter.cpp b/src/armnnUtils/FloatingPointConverter.cpp new file mode 100644 index 0000000000..5c1a43193e --- /dev/null +++ b/src/armnnUtils/FloatingPointConverter.cpp @@ -0,0 +1,44 @@ +// +// Copyright © 2017 Arm Ltd. All rights reserved. +// See LICENSE file in the project root for full license information. +// + +#include "FloatingPointConverter.hpp" +#include "../armnn/Half.hpp" + +#include <boost/assert.hpp> + +namespace armnnUtils +{ + +void FloatingPointConverter::ConvertFloat32To16(const float* srcFloat32Buffer, + size_t numElements, + void* dstFloat16Buffer) +{ + BOOST_ASSERT(srcFloat32Buffer != nullptr); + BOOST_ASSERT(dstFloat16Buffer != nullptr); + + armnn::Half* pHalf = reinterpret_cast<armnn::Half*>(dstFloat16Buffer); + + for (size_t i = 0; i < numElements; i++) + { + pHalf[i] = armnn::Half(srcFloat32Buffer[i]); + } +} + +void FloatingPointConverter::ConvertFloat16To32(const void* srcFloat16Buffer, + size_t numElements, + float* dstFloat32Buffer) +{ + BOOST_ASSERT(srcFloat16Buffer != nullptr); + BOOST_ASSERT(dstFloat32Buffer != nullptr); + + const armnn::Half* pHalf = reinterpret_cast<const armnn::Half*>(srcFloat16Buffer); + + for (size_t i = 0; i < numElements; i++) + { + dstFloat32Buffer[i] = pHalf[i]; + } +} + +} //namespace armnnUtils |