IVGCVSW-2947 Remove boost dependency from include/TypesUtils.hpp

!android-nn-driver:968

Signed-off-by: Aron Virginas-Tar <Aron.Virginas-Tar@arm.com>
Change-Id: I03ccb4842b060a9893567542bfcadc180bbc7311
diff --git a/Android.mk b/Android.mk
index cd26fa5..3e2494d 100644
--- a/Android.mk
+++ b/Android.mk
@@ -146,6 +146,7 @@
         src/armnn/Profiling.cpp \
         src/armnn/JsonPrinter.cpp \
         src/armnn/Tensor.cpp \
+        src/armnn/TypesUtils.cpp \
         src/armnn/Utils.cpp \
         src/armnn/LayerSupport.cpp \
         src/armnn/Observable.cpp
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 162b509..3febe7b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -328,6 +328,7 @@
     src/armnn/Runtime.hpp
     src/armnn/RangeTracker.cpp
     src/armnn/RangeTracker.hpp
+    src/armnn/ResolveType.hpp
     src/armnn/SerializeLayerParameters.cpp
     src/armnn/SerializeLayerParameters.hpp
     src/armnn/StaticRangeVisitor.cpp
@@ -337,7 +338,7 @@
     src/armnn/SubGraphSelector.cpp
     src/armnn/SubGraphSelector.hpp
     src/armnn/Tensor.cpp
-    src/armnn/TypeUtils.hpp
+    src/armnn/TypesUtils.cpp
     src/armnn/Utils.cpp
     src/armnn/WallClockTimer.cpp
     src/armnn/WallClockTimer.hpp
diff --git a/include/armnn/TypesUtils.hpp b/include/armnn/TypesUtils.hpp
index 4880c90..837490d 100644
--- a/include/armnn/TypesUtils.hpp
+++ b/include/armnn/TypesUtils.hpp
@@ -7,9 +7,6 @@
 #include "Tensor.hpp"
 #include "Types.hpp"
 
-#include <boost/assert.hpp>
-#include <boost/numeric/conversion/cast.hpp>
-
 #include <cmath>
 #include <ostream>
 #include <set>
@@ -191,20 +188,7 @@
 /// @return - The quantized value calculated as round(value/scale)+offset.
 ///
 template<typename QuantizedType>
-inline QuantizedType Quantize(float value, float scale, int32_t offset)
-{
-    static_assert(IsQuantizedType<QuantizedType>(), "Not an integer type.");
-    constexpr QuantizedType max = std::numeric_limits<QuantizedType>::max();
-    constexpr QuantizedType min = std::numeric_limits<QuantizedType>::lowest();
-    BOOST_ASSERT(scale != 0.f);
-    BOOST_ASSERT(!std::isnan(value));
-
-    float clampedValue = std::min(std::max(static_cast<float>(round(value/scale) + offset), static_cast<float>(min)),
-                                  static_cast<float>(max));
-    auto quantizedBits = static_cast<QuantizedType>(clampedValue);
-
-    return quantizedBits;
-}
+QuantizedType Quantize(float value, float scale, int32_t offset);
 
 /// Dequantize an 8-bit data type into a floating point data type.
 /// @param value - The value to dequantize.
@@ -213,14 +197,7 @@
 /// @return - The dequantized value calculated as (value-offset)*scale.
 ///
 template <typename QuantizedType>
-inline float Dequantize(QuantizedType value, float scale, int32_t offset)
-{
-    static_assert(IsQuantizedType<QuantizedType>(), "Not an integer type.");
-    BOOST_ASSERT(scale != 0.f);
-    BOOST_ASSERT(!std::isnan(value));
-    float dequantized = boost::numeric_cast<float>(value - offset) * scale;
-    return dequantized;
-}
+float Dequantize(QuantizedType value, float scale, int32_t offset);
 
 inline void VerifyTensorInfoDataType(const armnn::TensorInfo & info, armnn::DataType dataType)
 {
diff --git a/src/armnn/TypeUtils.hpp b/src/armnn/ResolveType.hpp
similarity index 100%
rename from src/armnn/TypeUtils.hpp
rename to src/armnn/ResolveType.hpp
diff --git a/src/armnn/TypesUtils.cpp b/src/armnn/TypesUtils.cpp
new file mode 100644
index 0000000..cdc30da
--- /dev/null
+++ b/src/armnn/TypesUtils.cpp
@@ -0,0 +1,58 @@
+//
+// Copyright © 2017 Arm Ltd. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+#include <armnn/TypesUtils.hpp>
+
+#include <boost/assert.hpp>
+#include <boost/numeric/conversion/cast.hpp>
+
+template<typename QuantizedType>
+QuantizedType armnn::Quantize(float value, float scale, int32_t offset)
+{
+    static_assert(IsQuantizedType<QuantizedType>(), "Not an integer type.");
+    constexpr QuantizedType max = std::numeric_limits<QuantizedType>::max();
+    constexpr QuantizedType min = std::numeric_limits<QuantizedType>::lowest();
+    BOOST_ASSERT(scale != 0.f);
+    BOOST_ASSERT(!std::isnan(value));
+
+    float clampedValue = std::min(std::max(static_cast<float>(round(value/scale) + offset), static_cast<float>(min)),
+                                  static_cast<float>(max));
+    auto quantizedBits = static_cast<QuantizedType>(clampedValue);
+
+    return quantizedBits;
+}
+
+template <typename QuantizedType>
+float armnn::Dequantize(QuantizedType value, float scale, int32_t offset)
+{
+    static_assert(IsQuantizedType<QuantizedType>(), "Not an integer type.");
+    BOOST_ASSERT(scale != 0.f);
+    BOOST_ASSERT(!std::isnan(value));
+    float dequantized = boost::numeric_cast<float>(value - offset) * scale;
+    return dequantized;
+}
+
+/// Explicit specialization of Quantize for uint8_t
+template
+uint8_t armnn::Quantize<uint8_t>(float value, float scale, int32_t offset);
+
+/// Explicit specialization of Quantize for int16_t
+template
+int16_t armnn::Quantize<int16_t>(float value, float scale, int32_t offset);
+
+/// Explicit specialization of Quantize for int32_t
+template
+int32_t armnn::Quantize<int32_t>(float value, float scale, int32_t offset);
+
+/// Explicit specialization of Dequantize for uint8_t
+template
+float armnn::Dequantize<uint8_t>(uint8_t value, float scale, int32_t offset);
+
+/// Explicit specialization of Dequantize for int16_t
+template
+float armnn::Dequantize<int16_t>(int16_t value, float scale, int32_t offset);
+
+/// Explicit specialization of Dequantize for int32_t
+template
+float armnn::Dequantize<int32_t>(int32_t value, float scale, int32_t offset);
\ No newline at end of file
diff --git a/src/armnn/test/CreateWorkload.hpp b/src/armnn/test/CreateWorkload.hpp
index acc5cbd..bdec766 100644
--- a/src/armnn/test/CreateWorkload.hpp
+++ b/src/armnn/test/CreateWorkload.hpp
@@ -15,7 +15,7 @@
 #include <Graph.hpp>
 #include <DataLayoutIndexed.hpp>
 #include <Network.hpp>
-#include <TypeUtils.hpp>
+#include <ResolveType.hpp>
 
 #include <utility>
 
diff --git a/src/armnn/test/UtilsTests.cpp b/src/armnn/test/UtilsTests.cpp
index c81a4b6..0fa67e5 100644
--- a/src/armnn/test/UtilsTests.cpp
+++ b/src/armnn/test/UtilsTests.cpp
@@ -11,7 +11,7 @@
 #include <armnn/Descriptors.hpp>
 #include <GraphTopologicalSort.hpp>
 #include <Graph.hpp>
-#include "TypeUtils.hpp"
+#include <ResolveType.hpp>
 
 BOOST_AUTO_TEST_SUITE(Utils)
 
diff --git a/src/armnnDeserializer/Deserializer.cpp b/src/armnnDeserializer/Deserializer.cpp
index 076072e..cbded60 100644
--- a/src/armnnDeserializer/Deserializer.cpp
+++ b/src/armnnDeserializer/Deserializer.cpp
@@ -18,6 +18,8 @@
 #include <boost/assert.hpp>
 #include <boost/format.hpp>
 #include <boost/log/trivial.hpp>
+#include <boost/format.hpp>
+#include <boost/numeric/conversion/cast.hpp>
 #include <boost/polymorphic_cast.hpp>
 
 // The generated code based on the Serialize schema:
diff --git a/src/armnnDeserializer/test/ParserFlatbuffersSerializeFixture.hpp b/src/armnnDeserializer/test/ParserFlatbuffersSerializeFixture.hpp
index 7baa010..038cce4 100644
--- a/src/armnnDeserializer/test/ParserFlatbuffersSerializeFixture.hpp
+++ b/src/armnnDeserializer/test/ParserFlatbuffersSerializeFixture.hpp
@@ -13,7 +13,7 @@
 #include <boost/assert.hpp>
 #include <boost/format.hpp>
 
-#include "TypeUtils.hpp"
+#include <ResolveType.hpp>
 #include "test/TensorHelpers.hpp"
 
 #include "flatbuffers/idl.h"
diff --git a/src/armnnOnnxParser/OnnxParser.cpp b/src/armnnOnnxParser/OnnxParser.cpp
index 77350b8..6fe7cc6 100644
--- a/src/armnnOnnxParser/OnnxParser.cpp
+++ b/src/armnnOnnxParser/OnnxParser.cpp
@@ -8,11 +8,12 @@
 #include <armnn/Utils.hpp>
 #include <VerificationHelpers.hpp>
 
+#include <boost/format.hpp>
+#include <boost/numeric/conversion/cast.hpp>
+
 #include <google/protobuf/text_format.h>
 #include <google/protobuf/io/zero_copy_stream_impl.h>
 
-#include <boost/format.hpp>
-
 #include <numeric>
 
 using namespace armnn;
diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp
index 74d0c43..0b8ad06 100644
--- a/src/armnnSerializer/Serializer.cpp
+++ b/src/armnnSerializer/Serializer.cpp
@@ -13,6 +13,8 @@
 
 #include <ArmnnSchema_generated.h>
 
+#include <boost/numeric/conversion/cast.hpp>
+
 #include <flatbuffers/util.h>
 
 using namespace armnn;
diff --git a/src/armnnTfLiteParser/TfLiteParser.cpp b/src/armnnTfLiteParser/TfLiteParser.cpp
index 5c5618b..f689dee 100644
--- a/src/armnnTfLiteParser/TfLiteParser.cpp
+++ b/src/armnnTfLiteParser/TfLiteParser.cpp
@@ -21,6 +21,8 @@
 #include <boost/assert.hpp>
 #include <boost/format.hpp>
 #include <boost/log/trivial.hpp>
+#include <boost/format.hpp>
+#include <boost/numeric/conversion/cast.hpp>
 
 #include <fstream>
 #include <algorithm>
diff --git a/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp b/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp
index 9eb2f2b..95c6e85 100644
--- a/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp
+++ b/src/armnnTfLiteParser/test/ParserFlatbuffersFixture.hpp
@@ -17,7 +17,7 @@
 
 #include "test/TensorHelpers.hpp"
 
-#include "TypeUtils.hpp"
+#include <ResolveType.hpp>
 #include "armnnTfLiteParser/ITfLiteParser.hpp"
 
 #include <backendsCommon/BackendRegistry.hpp>
diff --git a/src/armnnTfParser/TfParser.cpp b/src/armnnTfParser/TfParser.cpp
index 028a932..d7cfba8 100755
--- a/src/armnnTfParser/TfParser.cpp
+++ b/src/armnnTfParser/TfParser.cpp
@@ -20,6 +20,8 @@
 
 #include <boost/format.hpp>
 #include <boost/core/ignore_unused.hpp>
+#include <boost/format.hpp>
+#include <boost/numeric/conversion/cast.hpp>
 #include <boost/polymorphic_cast.hpp>
 
 #include <numeric>
diff --git a/src/backends/aclCommon/test/MemCopyTestImpl.hpp b/src/backends/aclCommon/test/MemCopyTestImpl.hpp
index 4e0bfa8..0607bbd 100644
--- a/src/backends/aclCommon/test/MemCopyTestImpl.hpp
+++ b/src/backends/aclCommon/test/MemCopyTestImpl.hpp
@@ -4,7 +4,7 @@
 //
 #pragma once
 
-#include <TypeUtils.hpp>
+#include <ResolveType.hpp>
 
 #include <backendsCommon/IBackendInternal.hpp>
 
diff --git a/src/backends/backendsCommon/MemCopyWorkload.cpp b/src/backends/backendsCommon/MemCopyWorkload.cpp
index 0fa04f8..c4e6f52 100644
--- a/src/backends/backendsCommon/MemCopyWorkload.cpp
+++ b/src/backends/backendsCommon/MemCopyWorkload.cpp
@@ -7,7 +7,7 @@
 
 #include "CpuTensorHandle.hpp"
 
-#include <TypeUtils.hpp>
+#include <ResolveType.hpp>
 
 #include <boost/cast.hpp>
 
diff --git a/src/backends/backendsCommon/WorkloadData.cpp b/src/backends/backendsCommon/WorkloadData.cpp
index ec163b5..df66b4e 100644
--- a/src/backends/backendsCommon/WorkloadData.cpp
+++ b/src/backends/backendsCommon/WorkloadData.cpp
@@ -14,6 +14,7 @@
 #include <sstream>
 
 #include <boost/format.hpp>
+#include <boost/numeric/conversion/cast.hpp>
 
 using namespace armnnUtils;
 
diff --git a/src/backends/backendsCommon/test/ArithmeticTestImpl.hpp b/src/backends/backendsCommon/test/ArithmeticTestImpl.hpp
index 5a65c32..29dafd3 100644
--- a/src/backends/backendsCommon/test/ArithmeticTestImpl.hpp
+++ b/src/backends/backendsCommon/test/ArithmeticTestImpl.hpp
@@ -4,7 +4,7 @@
 //
 #pragma once
 
-#include "TypeUtils.hpp"
+#include <ResolveType.hpp>
 
 #include <armnn/INetwork.hpp>
 
diff --git a/src/backends/backendsCommon/test/BatchNormTestImpl.hpp b/src/backends/backendsCommon/test/BatchNormTestImpl.hpp
index ded4a06..d34a54f 100644
--- a/src/backends/backendsCommon/test/BatchNormTestImpl.hpp
+++ b/src/backends/backendsCommon/test/BatchNormTestImpl.hpp
@@ -4,7 +4,7 @@
 //
 #pragma once
 
-#include "TypeUtils.hpp"
+#include <ResolveType.hpp>
 #include "WorkloadTestUtils.hpp"
 
 #include <armnn/ArmNN.hpp>
diff --git a/src/backends/backendsCommon/test/Conv2dTestImpl.hpp b/src/backends/backendsCommon/test/Conv2dTestImpl.hpp
index 24f0825..c2e539b 100755
--- a/src/backends/backendsCommon/test/Conv2dTestImpl.hpp
+++ b/src/backends/backendsCommon/test/Conv2dTestImpl.hpp
@@ -6,7 +6,7 @@
 
 #include "WorkloadTestUtils.hpp"
 #include "TensorUtils.hpp"
-#include "TypeUtils.hpp"
+#include <ResolveType.hpp>
 
 #include <Permute.hpp>
 #include <DataLayoutIndexed.hpp>
diff --git a/src/backends/backendsCommon/test/DetectionPostProcessLayerTestImpl.hpp b/src/backends/backendsCommon/test/DetectionPostProcessLayerTestImpl.hpp
index 2a2c1f9..092ce26 100644
--- a/src/backends/backendsCommon/test/DetectionPostProcessLayerTestImpl.hpp
+++ b/src/backends/backendsCommon/test/DetectionPostProcessLayerTestImpl.hpp
@@ -5,7 +5,7 @@
 #pragma once
 
 #include "TensorCopyUtils.hpp"
-#include "TypeUtils.hpp"
+#include <ResolveType.hpp>
 #include "WorkloadTestUtils.hpp"
 
 #include <armnn/Types.hpp>
diff --git a/src/backends/backendsCommon/test/DetectionPostProcessTestImpl.hpp b/src/backends/backendsCommon/test/DetectionPostProcessTestImpl.hpp
index 5f4d2a4..9a53456 100644
--- a/src/backends/backendsCommon/test/DetectionPostProcessTestImpl.hpp
+++ b/src/backends/backendsCommon/test/DetectionPostProcessTestImpl.hpp
@@ -7,7 +7,7 @@
 
 #include <armnn/INetwork.hpp>
 #include <backendsCommon/test/CommonTestUtils.hpp>
-#include <TypeUtils.hpp>
+#include <ResolveType.hpp>
 
 namespace{
 
diff --git a/src/backends/backendsCommon/test/EndToEndTestImpl.hpp b/src/backends/backendsCommon/test/EndToEndTestImpl.hpp
index a04fdf7..f8673d6 100644
--- a/src/backends/backendsCommon/test/EndToEndTestImpl.hpp
+++ b/src/backends/backendsCommon/test/EndToEndTestImpl.hpp
@@ -4,7 +4,7 @@
 //
 #pragma once
 
-#include "TypeUtils.hpp"
+#include <ResolveType.hpp>
 
 #include <armnn/ArmNN.hpp>
 #include <armnn/INetwork.hpp>
diff --git a/src/backends/backendsCommon/test/FullyConnectedTestImpl.hpp b/src/backends/backendsCommon/test/FullyConnectedTestImpl.hpp
index cfdae63..ac2595b 100644
--- a/src/backends/backendsCommon/test/FullyConnectedTestImpl.hpp
+++ b/src/backends/backendsCommon/test/FullyConnectedTestImpl.hpp
@@ -3,7 +3,7 @@
 // SPDX-License-Identifier: MIT
 //
 
-#include "TypeUtils.hpp"
+#include <ResolveType.hpp>
 #include "WorkloadTestUtils.hpp"
 
 #include <backendsCommon/IBackendInternal.hpp>
diff --git a/src/backends/backendsCommon/test/GatherEndToEndTestImpl.hpp b/src/backends/backendsCommon/test/GatherEndToEndTestImpl.hpp
index 4ef1ef3..ce689d7 100644
--- a/src/backends/backendsCommon/test/GatherEndToEndTestImpl.hpp
+++ b/src/backends/backendsCommon/test/GatherEndToEndTestImpl.hpp
@@ -7,7 +7,7 @@
 
 #include <armnn/INetwork.hpp>
 #include <backendsCommon/test/CommonTestUtils.hpp>
-#include <TypeUtils.hpp>
+#include <ResolveType.hpp>
 
 namespace{
 
diff --git a/src/backends/backendsCommon/test/LayerTests.cpp b/src/backends/backendsCommon/test/LayerTests.cpp
index cba4d3d..525ac17 100644
--- a/src/backends/backendsCommon/test/LayerTests.cpp
+++ b/src/backends/backendsCommon/test/LayerTests.cpp
@@ -5,7 +5,7 @@
 #include "LayerTests.hpp"
 #include "WorkloadTestUtils.hpp"
 #include "TensorUtils.hpp"
-#include "TypeUtils.hpp"
+#include <ResolveType.hpp>
 
 #include "test/TensorHelpers.hpp"
 #include "TensorCopyUtils.hpp"
diff --git a/src/backends/backendsCommon/test/MergerTestImpl.hpp b/src/backends/backendsCommon/test/MergerTestImpl.hpp
index de03c10..2511bd4 100644
--- a/src/backends/backendsCommon/test/MergerTestImpl.hpp
+++ b/src/backends/backendsCommon/test/MergerTestImpl.hpp
@@ -4,7 +4,7 @@
 //
 #pragma once
 
-#include "TypeUtils.hpp"
+#include <ResolveType.hpp>
 
 #include <armnn/INetwork.hpp>
 
diff --git a/src/backends/backendsCommon/test/QuantizeHelper.hpp b/src/backends/backendsCommon/test/QuantizeHelper.hpp
index bb4e561..b3b0631 100644
--- a/src/backends/backendsCommon/test/QuantizeHelper.hpp
+++ b/src/backends/backendsCommon/test/QuantizeHelper.hpp
@@ -10,7 +10,9 @@
 #include <initializer_list>
 #include <iterator>
 #include <vector>
+
 #include <boost/core/ignore_unused.hpp>
+#include <boost/numeric/conversion/cast.hpp>
 
 template<typename T, bool DoQuantize=true>
 struct SelectiveQuantizer
diff --git a/src/backends/backendsCommon/test/StridedSliceTestImpl.hpp b/src/backends/backendsCommon/test/StridedSliceTestImpl.hpp
index 1bf5c64..f15602c 100644
--- a/src/backends/backendsCommon/test/StridedSliceTestImpl.hpp
+++ b/src/backends/backendsCommon/test/StridedSliceTestImpl.hpp
@@ -4,7 +4,7 @@
 //
 #pragma once
 
-#include "TypeUtils.hpp"
+#include <ResolveType.hpp>
 #include "WorkloadTestUtils.hpp"
 
 #include <armnn/ArmNN.hpp>
diff --git a/src/backends/cl/workloads/ClDepthwiseConvolutionWorkload.cpp b/src/backends/cl/workloads/ClDepthwiseConvolutionWorkload.cpp
index 1745b82..1ff0978 100644
--- a/src/backends/cl/workloads/ClDepthwiseConvolutionWorkload.cpp
+++ b/src/backends/cl/workloads/ClDepthwiseConvolutionWorkload.cpp
@@ -5,7 +5,7 @@
 
 #include "ClDepthwiseConvolutionWorkload.hpp"
 
-#include "TypeUtils.hpp"
+#include <ResolveType.hpp>
 #include "ClWorkloadUtils.hpp"
 
 #include <aclCommon/ArmComputeUtils.hpp>
diff --git a/src/backends/reference/workloads/BaseIterator.hpp b/src/backends/reference/workloads/BaseIterator.hpp
index 955d7f2..3439e41 100644
--- a/src/backends/reference/workloads/BaseIterator.hpp
+++ b/src/backends/reference/workloads/BaseIterator.hpp
@@ -6,7 +6,7 @@
 #pragma once
 
 #include <armnn/ArmNN.hpp>
-#include <TypeUtils.hpp>
+#include <ResolveType.hpp>
 
 namespace armnn
 {
diff --git a/src/backends/reference/workloads/DetectionPostProcess.cpp b/src/backends/reference/workloads/DetectionPostProcess.cpp
index 6868180..d3790f2 100644
--- a/src/backends/reference/workloads/DetectionPostProcess.cpp
+++ b/src/backends/reference/workloads/DetectionPostProcess.cpp
@@ -7,6 +7,7 @@
 
 #include <armnn/ArmNN.hpp>
 
+#include <boost/assert.hpp>
 #include <boost/numeric/conversion/cast.hpp>
 
 #include <algorithm>
diff --git a/src/backends/reference/workloads/Gather.cpp b/src/backends/reference/workloads/Gather.cpp
index b195003..45491c7 100644
--- a/src/backends/reference/workloads/Gather.cpp
+++ b/src/backends/reference/workloads/Gather.cpp
@@ -9,6 +9,8 @@
 
 #include <backendsCommon/WorkloadData.hpp>
 
+#include <boost/numeric/conversion/cast.hpp>
+
 namespace armnn
 {
 
diff --git a/src/backends/reference/workloads/RefDebugWorkload.cpp b/src/backends/reference/workloads/RefDebugWorkload.cpp
index 3da9259..64b1b1c 100644
--- a/src/backends/reference/workloads/RefDebugWorkload.cpp
+++ b/src/backends/reference/workloads/RefDebugWorkload.cpp
@@ -7,7 +7,7 @@
 #include "Debug.hpp"
 #include "RefWorkloadUtils.hpp"
 
-#include <TypeUtils.hpp>
+#include <ResolveType.hpp>
 
 #include <cstring>
 
diff --git a/src/backends/reference/workloads/RefElementwiseWorkload.cpp b/src/backends/reference/workloads/RefElementwiseWorkload.cpp
index 535adca..cbacd9c 100644
--- a/src/backends/reference/workloads/RefElementwiseWorkload.cpp
+++ b/src/backends/reference/workloads/RefElementwiseWorkload.cpp
@@ -11,8 +11,7 @@
 #include "Profiling.hpp"
 #include "RefWorkloadUtils.hpp"
 #include "StringMapping.hpp"
-#include "TypeUtils.hpp"
-
+#include <ResolveType.hpp>
 #include <vector>
 
 namespace armnn
diff --git a/src/backends/reference/workloads/RefGatherWorkload.cpp b/src/backends/reference/workloads/RefGatherWorkload.cpp
index 49b37cb..bca3f18 100644
--- a/src/backends/reference/workloads/RefGatherWorkload.cpp
+++ b/src/backends/reference/workloads/RefGatherWorkload.cpp
@@ -8,7 +8,7 @@
 #include "Gather.hpp"
 #include "Profiling.hpp"
 #include "RefWorkloadUtils.hpp"
-#include "TypeUtils.hpp"
+#include <ResolveType.hpp>
 
 namespace armnn
 {
diff --git a/src/backends/reference/workloads/RefPadWorkload.cpp b/src/backends/reference/workloads/RefPadWorkload.cpp
index b41c2de..16032e7 100644
--- a/src/backends/reference/workloads/RefPadWorkload.cpp
+++ b/src/backends/reference/workloads/RefPadWorkload.cpp
@@ -10,7 +10,7 @@
 
 #include "Profiling.hpp"
 
-#include "TypeUtils.hpp"
+#include <ResolveType.hpp>
 
 #include <vector>
 
diff --git a/src/backends/reference/workloads/RefPermuteWorkload.cpp b/src/backends/reference/workloads/RefPermuteWorkload.cpp
index 9ca1642..9e44d16 100644
--- a/src/backends/reference/workloads/RefPermuteWorkload.cpp
+++ b/src/backends/reference/workloads/RefPermuteWorkload.cpp
@@ -7,7 +7,7 @@
 #include "RefWorkloadUtils.hpp"
 
 #include <Permute.hpp>
-#include "TypeUtils.hpp"
+#include <ResolveType.hpp>
 
 namespace armnn
 {
diff --git a/src/backends/reference/workloads/RefSpaceToBatchNdWorkload.cpp b/src/backends/reference/workloads/RefSpaceToBatchNdWorkload.cpp
index fb98118..4d2bb05 100644
--- a/src/backends/reference/workloads/RefSpaceToBatchNdWorkload.cpp
+++ b/src/backends/reference/workloads/RefSpaceToBatchNdWorkload.cpp
@@ -7,7 +7,7 @@
 #include "SpaceToBatchNd.hpp"
 
 #include "RefWorkloadUtils.hpp"
-#include "TypeUtils.hpp"
+#include <ResolveType.hpp>
 
 namespace armnn
 {
diff --git a/src/backends/reference/workloads/RefStridedSliceWorkload.cpp b/src/backends/reference/workloads/RefStridedSliceWorkload.cpp
index 26a878e..bcc3520 100644
--- a/src/backends/reference/workloads/RefStridedSliceWorkload.cpp
+++ b/src/backends/reference/workloads/RefStridedSliceWorkload.cpp
@@ -7,7 +7,7 @@
 #include "StridedSlice.hpp"
 
 #include "RefWorkloadUtils.hpp"
-#include "TypeUtils.hpp"
+#include <ResolveType.hpp>
 
 namespace armnn
 {