aboutsummaryrefslogtreecommitdiff
path: root/src/armnnUtils/FloatingPointConverter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/armnnUtils/FloatingPointConverter.cpp')
-rw-r--r--src/armnnUtils/FloatingPointConverter.cpp44
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