ArmNN  NotReleased
FloatingPointConverterTest.cpp File Reference
#include <armnnUtils/FloatingPointConverter.hpp>
#include <Half.hpp>
#include <boost/test/unit_test.hpp>

Go to the source code of this file.

Functions

 BOOST_AUTO_TEST_CASE (TestConvertFp32ToFp16)
 
 BOOST_AUTO_TEST_CASE (TestConvertFp16ToFp32)
 

Function Documentation

◆ BOOST_AUTO_TEST_CASE() [1/2]

BOOST_AUTO_TEST_CASE ( TestConvertFp32ToFp16  )

Definition at line 14 of file FloatingPointConverterTest.cpp.

References FloatingPointConverter::ConvertFloat32To16().

15 {
16  using namespace half_float::literal;
17 
18  float floatArray[] = { 1.0f, 2.0f, 0.5f, 3.1f, 2.4f,
19  5.666f, 6.444f, 7.1f, 432.121f, 12.22f };
20  size_t numFloats = sizeof(floatArray) / sizeof(floatArray[0]);
21  std::vector<armnn::Half> convertedBuffer(numFloats, 0.0_h);
22 
23  armnnUtils::FloatingPointConverter::ConvertFloat32To16(floatArray, numFloats, convertedBuffer.data());
24 
25  for (size_t i = 0; i < numFloats; i++)
26  {
27  armnn::Half expected(floatArray[i]);
28  armnn::Half actual = convertedBuffer[i];
29  BOOST_CHECK_EQUAL(expected, actual);
30 
31  float convertedHalf = actual;
32  BOOST_CHECK_CLOSE(floatArray[i], convertedHalf, 0.07);
33  }
34 }
half_float::half Half
Definition: Half.hpp:16
static void ConvertFloat32To16(const float *srcFloat32Buffer, size_t numElements, void *dstFloat16Buffer)

◆ BOOST_AUTO_TEST_CASE() [2/2]

BOOST_AUTO_TEST_CASE ( TestConvertFp16ToFp32  )

Definition at line 36 of file FloatingPointConverterTest.cpp.

References BOOST_AUTO_TEST_SUITE_END(), and FloatingPointConverter::ConvertFloat16To32().

37 {
38  using namespace half_float::literal;
39 
40  armnn::Half halfArray[] = { 1.0_h, 2.0_h, 0.5_h, 3.1_h, 2.4_h,
41  5.666_h, 6.444_h, 7.1_h, 432.121_h, 12.22_h };
42  size_t numFloats = sizeof(halfArray) / sizeof(halfArray[0]);
43  std::vector<float> convertedBuffer(numFloats, 0.0f);
44 
45  armnnUtils::FloatingPointConverter::ConvertFloat16To32(halfArray, numFloats, convertedBuffer.data());
46 
47  for (size_t i = 0; i < numFloats; i++)
48  {
49  float expected(halfArray[i]);
50  float actual = convertedBuffer[i];
51  BOOST_CHECK_EQUAL(expected, actual);
52  }
53 }
half_float::half Half
Definition: Half.hpp:16
static void ConvertFloat16To32(const void *srcFloat16Buffer, size_t numElements, float *dstFloat32Buffer)