blob: 5c1a43193e5176788ba83544451109402c10a1e1 [file] [log] [blame]
telsoa01c577f2c2018-08-31 09:22:23 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
3// See LICENSE file in the project root for full license information.
4//
5
6#include "FloatingPointConverter.hpp"
7#include "../armnn/Half.hpp"
8
9#include <boost/assert.hpp>
10
11namespace armnnUtils
12{
13
14void FloatingPointConverter::ConvertFloat32To16(const float* srcFloat32Buffer,
15 size_t numElements,
16 void* dstFloat16Buffer)
17{
18 BOOST_ASSERT(srcFloat32Buffer != nullptr);
19 BOOST_ASSERT(dstFloat16Buffer != nullptr);
20
21 armnn::Half* pHalf = reinterpret_cast<armnn::Half*>(dstFloat16Buffer);
22
23 for (size_t i = 0; i < numElements; i++)
24 {
25 pHalf[i] = armnn::Half(srcFloat32Buffer[i]);
26 }
27}
28
29void FloatingPointConverter::ConvertFloat16To32(const void* srcFloat16Buffer,
30 size_t numElements,
31 float* dstFloat32Buffer)
32{
33 BOOST_ASSERT(srcFloat16Buffer != nullptr);
34 BOOST_ASSERT(dstFloat32Buffer != nullptr);
35
36 const armnn::Half* pHalf = reinterpret_cast<const armnn::Half*>(srcFloat16Buffer);
37
38 for (size_t i = 0; i < numElements; i++)
39 {
40 dstFloat32Buffer[i] = pHalf[i];
41 }
42}
43
44} //namespace armnnUtils