blob: 92409d4eea273704efa8d144ef0aa89a179f00bb [file] [log] [blame]
telsoa01c577f2c2018-08-31 09:22:23 +01001//
2// Copyright © 2017 Arm Ltd. All rights reserved.
David Beckecb56cd2018-09-05 12:52:57 +01003// SPDX-License-Identifier: MIT
telsoa01c577f2c2018-08-31 09:22:23 +01004//
5
6#include "FloatingPointConverter.hpp"
arovir01616e7752018-10-01 17:08:59 +01007
8#include "Half.hpp"
telsoa01c577f2c2018-08-31 09:22:23 +01009
10#include <boost/assert.hpp>
11
12namespace armnnUtils
13{
14
15void FloatingPointConverter::ConvertFloat32To16(const float* srcFloat32Buffer,
16 size_t numElements,
17 void* dstFloat16Buffer)
18{
19 BOOST_ASSERT(srcFloat32Buffer != nullptr);
20 BOOST_ASSERT(dstFloat16Buffer != nullptr);
21
22 armnn::Half* pHalf = reinterpret_cast<armnn::Half*>(dstFloat16Buffer);
23
24 for (size_t i = 0; i < numElements; i++)
25 {
26 pHalf[i] = armnn::Half(srcFloat32Buffer[i]);
27 }
28}
29
30void FloatingPointConverter::ConvertFloat16To32(const void* srcFloat16Buffer,
31 size_t numElements,
32 float* dstFloat32Buffer)
33{
34 BOOST_ASSERT(srcFloat16Buffer != nullptr);
35 BOOST_ASSERT(dstFloat32Buffer != nullptr);
36
37 const armnn::Half* pHalf = reinterpret_cast<const armnn::Half*>(srcFloat16Buffer);
38
39 for (size_t i = 0; i < numElements; i++)
40 {
41 dstFloat32Buffer[i] = pHalf[i];
42 }
43}
44
45} //namespace armnnUtils