aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Sloyan <matthew.sloyan@arm.com>2020-09-14 11:47:26 +0100
committerJan Eilers <jan.eilers@arm.com>2020-09-17 09:41:12 +0000
commit0663d66c64d8f1cb2b6158f9018c9ba19e2c504b (patch)
treeab8370395d7009f109e15463dbcf644191c1d639
parent171214c8ff275c90cd4f7fc23a34ec2c83b5ea39 (diff)
downloadarmnn-0663d66c64d8f1cb2b6158f9018c9ba19e2c504b.tar.gz
IVGCVSW-5303 Remove some boost::numeric_cast from rest of ArmNN
* Replaced with armnn/utility/NumericCast.hpp * Exclusions in TypeUtils.cpp and QuantizerVisitor.cpp * Excluded as requires float implementation in NumericCast.hpp Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com> Change-Id: I5c4c60e7028e1a51bf9379457278d253fd37bc70
-rw-r--r--src/armnn/Descriptors.cpp8
-rw-r--r--src/armnn/Graph.cpp7
-rw-r--r--src/armnn/Layer.cpp8
-rw-r--r--src/armnn/Layer.hpp5
-rw-r--r--src/armnn/Network.cpp1
-rw-r--r--src/armnn/QuantizerVisitor.cpp2
-rw-r--r--src/armnn/SubgraphView.cpp6
-rw-r--r--src/armnn/Tensor.cpp5
-rw-r--r--src/armnn/TypesUtils.cpp3
-rw-r--r--src/armnn/layers/MeanLayer.cpp6
-rw-r--r--src/armnn/layers/PreluLayer.cpp14
-rw-r--r--src/armnn/layers/SliceLayer.cpp5
-rw-r--r--src/armnn/layers/StridedSliceLayer.cpp8
-rw-r--r--src/armnn/test/CreateWorkload.hpp1
-rw-r--r--src/armnn/test/GraphTests.cpp4
-rw-r--r--src/armnn/test/SubgraphViewTests.cpp15
-rw-r--r--src/armnn/test/TensorHelpers.hpp1
-rw-r--r--src/armnn/test/UnitTests.cpp3
-rw-r--r--src/armnnConverter/ArmnnConverter.cpp5
-rw-r--r--src/armnnDeserializer/Deserializer.cpp8
-rw-r--r--src/armnnSerializer/Serializer.cpp4
-rw-r--r--src/armnnUtils/QuantizeHelper.hpp5
-rw-r--r--src/armnnUtils/TensorUtils.cpp14
23 files changed, 70 insertions, 68 deletions
diff --git a/src/armnn/Descriptors.cpp b/src/armnn/Descriptors.cpp
index 6388d4a725..c6fbfff9f4 100644
--- a/src/armnn/Descriptors.cpp
+++ b/src/armnn/Descriptors.cpp
@@ -6,13 +6,13 @@
#include "armnn/Logging.hpp"
#include <armnn/utility/Assert.hpp>
+#include <armnn/utility/NumericCast.hpp>
#include <algorithm>
#include <array>
#include <vector>
#include <boost/format.hpp>
-#include <boost/numeric/conversion/cast.hpp>
namespace armnn
{
@@ -69,7 +69,7 @@ PermutationVector::PermutationVector(const ValueType *dimMappings, const SizeTyp
}
PermutationVector::PermutationVector(std::initializer_list<ValueType> dimMappings)
- : PermutationVector(dimMappings.begin(), boost::numeric_cast<SizeType>(dimMappings.size()))
+ : PermutationVector(dimMappings.begin(), armnn::numeric_cast<SizeType>(dimMappings.size()))
{
}
@@ -374,7 +374,7 @@ int StridedSliceDescriptor::GetStartForAxis(const TensorShape& inputShape,
}
}
- const int axisSize = boost::numeric_cast<int>(inputShape[axis]);
+ const int axisSize = armnn::numeric_cast<int>(inputShape[axis]);
if (start < 0)
{
start += (axisSize);
@@ -408,7 +408,7 @@ int StridedSliceDescriptor::GetStopForAxis(const TensorShape& inputShape,
}
}
- const int axisSize = boost::numeric_cast<int>(inputShape[axis]);
+ const int axisSize = armnn::numeric_cast<int>(inputShape[axis]);
if (stop < 0)
{
stop += axisSize;
diff --git a/src/armnn/Graph.cpp b/src/armnn/Graph.cpp
index 2a60072597..a497a45da9 100644
--- a/src/armnn/Graph.cpp
+++ b/src/armnn/Graph.cpp
@@ -14,6 +14,7 @@
#include <armnn/TypesUtils.hpp>
#include <armnn/Utils.hpp>
#include <armnn/utility/Assert.hpp>
+#include <armnn/utility/NumericCast.hpp>
#include <boost/format.hpp>
@@ -384,7 +385,7 @@ void Graph::AddCompatibilityLayers(std::map<BackendId, std::unique_ptr<IBackendI
&compLayer->GetInputSlot(0)));
// The input strategy of a compatibility layer is always DirectCompatibilty.
- srcOutputSlot.SetEdgeStrategy(boost::numeric_cast<unsigned int>(newSrcConnectionIndex),
+ srcOutputSlot.SetEdgeStrategy(armnn::numeric_cast<unsigned int>(newSrcConnectionIndex),
EdgeStrategy::DirectCompatibility);
}
}
@@ -442,8 +443,8 @@ void Graph::ReplaceSubgraphConnections(const SubgraphView& subgraph, const Subgr
const SubgraphView::InputSlots& subgraphInputSlots = subgraph.GetInputSlots();
const SubgraphView::OutputSlots& subgraphOutputSlots = subgraph.GetOutputSlots();
- unsigned int subgraphNumInputSlots = boost::numeric_cast<unsigned int>(subgraphInputSlots.size());
- unsigned int subgraphNumOutputSlots = boost::numeric_cast<unsigned int>(subgraphOutputSlots.size());
+ unsigned int subgraphNumInputSlots = armnn::numeric_cast<unsigned int>(subgraphInputSlots.size());
+ unsigned int subgraphNumOutputSlots = armnn::numeric_cast<unsigned int>(subgraphOutputSlots.size());
const SubgraphView::InputSlots& substituteSubgraphInputSlots = substituteSubgraph.GetInputSlots();
const SubgraphView::OutputSlots& substituteSubgraphOutputSlots = substituteSubgraph.GetOutputSlots();
diff --git a/src/armnn/Layer.cpp b/src/armnn/Layer.cpp
index dc211b7f2f..2256e48c91 100644
--- a/src/armnn/Layer.cpp
+++ b/src/armnn/Layer.cpp
@@ -6,10 +6,10 @@
#include "Graph.hpp"
#include <ProfilingService.hpp>
+#include <armnn/utility/NumericCast.hpp>
#include <backendsCommon/WorkloadData.hpp>
#include <backendsCommon/CpuTensorHandle.hpp>
-#include <boost/cast.hpp>
#include <boost/format.hpp>
#include <numeric>
@@ -31,7 +31,7 @@ void InputSlot::Insert(Layer& layer)
// Connects inserted layer to parent.
ARMNN_ASSERT(layer.GetNumInputSlots() == 1);
int idx = prevSlot->Connect(layer.GetInputSlot(0));
- prevSlot->SetEdgeStrategy(boost::numeric_cast<unsigned int>(idx), EdgeStrategy::Undefined);
+ prevSlot->SetEdgeStrategy(armnn::numeric_cast<unsigned int>(idx), EdgeStrategy::Undefined);
// Sets tensor info for inserted layer.
const TensorInfo& tensorInfo = prevSlot->GetTensorInfo();
@@ -85,7 +85,7 @@ int OutputSlot::Connect(InputSlot& destination)
destination.SetConnection(this);
m_Connections.push_back(&destination);
m_EdgeStrategies.push_back(EdgeStrategy::Undefined);
- return boost::numeric_cast<int>(m_Connections.size() - 1);
+ return armnn::numeric_cast<int>(m_Connections.size() - 1);
}
void OutputSlot::Disconnect(InputSlot& slot)
@@ -157,7 +157,7 @@ bool OutputSlot::operator==(const OutputSlot& other) const
void OutputSlot::ValidateConnectionIndex(unsigned int index) const
{
- if (boost::numeric_cast<std::size_t>(index) >= m_Connections.size())
+ if (armnn::numeric_cast<std::size_t>(index) >= m_Connections.size())
{
throw InvalidArgumentException(
boost::str(boost::format("GetConnection: Invalid index %1% provided") % index));
diff --git a/src/armnn/Layer.hpp b/src/armnn/Layer.hpp
index d4a24e4925..fff57732aa 100644
--- a/src/armnn/Layer.hpp
+++ b/src/armnn/Layer.hpp
@@ -18,6 +18,7 @@
#include <armnn/Tensor.hpp>
#include <armnn/INetwork.hpp>
#include <armnn/utility/IgnoreUnused.hpp>
+#include <armnn/utility/NumericCast.hpp>
#include <armnn/utility/PolymorphicDowncast.hpp>
#include <algorithm>
@@ -28,8 +29,6 @@
#include <string>
#include <vector>
-#include <boost/cast.hpp>
-
namespace armnn
{
@@ -135,7 +134,7 @@ public:
// IOutputSlot
- unsigned int GetNumConnections() const override { return boost::numeric_cast<unsigned int>(m_Connections.size()); }
+ unsigned int GetNumConnections() const override { return armnn::numeric_cast<unsigned int>(m_Connections.size()); }
const InputSlot* GetConnection(unsigned int index) const override;
InputSlot* GetConnection(unsigned int index) override;
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp
index cd5f369271..1f59ed51a2 100644
--- a/src/armnn/Network.cpp
+++ b/src/armnn/Network.cpp
@@ -37,7 +37,6 @@
#include <boost/format.hpp>
#include <boost/numeric/conversion/converter_policies.hpp>
-#include <boost/cast.hpp>
namespace armnn
{
diff --git a/src/armnn/QuantizerVisitor.cpp b/src/armnn/QuantizerVisitor.cpp
index a30a29db75..9fbdd9fc41 100644
--- a/src/armnn/QuantizerVisitor.cpp
+++ b/src/armnn/QuantizerVisitor.cpp
@@ -10,6 +10,8 @@
#include <armnn/utility/PolymorphicDowncast.hpp>
+#include <boost/numeric/conversion/cast.hpp>
+
namespace armnn
{
diff --git a/src/armnn/SubgraphView.cpp b/src/armnn/SubgraphView.cpp
index d65c677e38..92ba5dfe1f 100644
--- a/src/armnn/SubgraphView.cpp
+++ b/src/armnn/SubgraphView.cpp
@@ -7,9 +7,9 @@
#include "Graph.hpp"
#include <armnn/utility/IgnoreUnused.hpp>
+#include <armnn/utility/NumericCast.hpp>
#include <armnn/utility/PolymorphicDowncast.hpp>
-#include <boost/numeric/conversion/cast.hpp>
#include <utility>
namespace armnn
@@ -149,12 +149,12 @@ OutputSlot* SubgraphView::GetOutputSlot(unsigned int index)
unsigned int SubgraphView::GetNumInputSlots() const
{
- return boost::numeric_cast<unsigned int>(m_InputSlots.size());
+ return armnn::numeric_cast<unsigned int>(m_InputSlots.size());
}
unsigned int SubgraphView::GetNumOutputSlots() const
{
- return boost::numeric_cast<unsigned int>(m_OutputSlots.size());
+ return armnn::numeric_cast<unsigned int>(m_OutputSlots.size());
}
const SubgraphView::Layers& SubgraphView::GetLayers() const
diff --git a/src/armnn/Tensor.cpp b/src/armnn/Tensor.cpp
index c2dd1d3ac0..449fdf1f04 100644
--- a/src/armnn/Tensor.cpp
+++ b/src/armnn/Tensor.cpp
@@ -9,8 +9,7 @@
#include "armnn/TypesUtils.hpp"
#include <armnn/utility/Assert.hpp>
-
-#include <boost/numeric/conversion/cast.hpp>
+#include <armnn/utility/NumericCast.hpp>
#include <iostream>
@@ -53,7 +52,7 @@ TensorShape::TensorShape(const unsigned int numDimensions, const unsigned int* c
}
TensorShape::TensorShape(std::initializer_list<unsigned int> dimensionSizeList)
- : TensorShape(boost::numeric_cast<unsigned int>(dimensionSizeList.size()), dimensionSizeList.begin())
+ : TensorShape(armnn::numeric_cast<unsigned int>(dimensionSizeList.size()), dimensionSizeList.begin())
{
}
diff --git a/src/armnn/TypesUtils.cpp b/src/armnn/TypesUtils.cpp
index 9e58dc8f29..dd27df9c0a 100644
--- a/src/armnn/TypesUtils.cpp
+++ b/src/armnn/TypesUtils.cpp
@@ -49,8 +49,7 @@ float armnn::Dequantize(QuantizedType value, float scale, int32_t offset)
static_assert(IsQuantizedType<QuantizedType>(), "Not an integer type.");
ARMNN_ASSERT(scale != 0.f);
ARMNN_ASSERT(!IsNan(value));
- float dequantized = boost::numeric_cast<float>(value - offset) * scale;
- return dequantized;
+ return (boost::numeric_cast<float>(value - offset)) * scale;
}
/// Explicit specialization of Quantize for int8_t
diff --git a/src/armnn/layers/MeanLayer.cpp b/src/armnn/layers/MeanLayer.cpp
index a1a3a40d95..0c5959ca0d 100644
--- a/src/armnn/layers/MeanLayer.cpp
+++ b/src/armnn/layers/MeanLayer.cpp
@@ -6,6 +6,8 @@
#include "MeanLayer.hpp"
#include "LayerCloneBase.hpp"
+#include <armnn/utility/NumericCast.hpp>
+
#include <backendsCommon/CpuTensorHandle.hpp>
#include <backendsCommon/WorkloadData.hpp>
#include <backendsCommon/WorkloadFactory.hpp>
@@ -69,7 +71,7 @@ void MeanLayer::ValidateTensorShapesFromInputs()
}
else
{
- outputRank = input.GetNumDimensions() - boost::numeric_cast<unsigned int>(m_Param.m_Axis.size());
+ outputRank = input.GetNumDimensions() - armnn::numeric_cast<unsigned int>(m_Param.m_Axis.size());
if (outputRank == 0)
{
outputRank = 1;
@@ -85,7 +87,7 @@ void MeanLayer::ValidateTensorShapesFromInputs()
{
if (std::find(m_Param.m_Axis.begin(), m_Param.m_Axis.end(), i) == m_Param.m_Axis.end())
{
- dimSizes[outputIndex] = boost::numeric_cast<unsigned int>(input.GetShape()[i]);
+ dimSizes[outputIndex] = armnn::numeric_cast<unsigned int>(input.GetShape()[i]);
++outputIndex;
}
else if (m_Param.m_KeepDims)
diff --git a/src/armnn/layers/PreluLayer.cpp b/src/armnn/layers/PreluLayer.cpp
index a57aa85147..365dd4fadc 100644
--- a/src/armnn/layers/PreluLayer.cpp
+++ b/src/armnn/layers/PreluLayer.cpp
@@ -7,6 +7,8 @@
#include "LayerCloneBase.hpp"
+#include <armnn/utility/NumericCast.hpp>
+
#include <backendsCommon/WorkloadData.hpp>
#include <backendsCommon/WorkloadFactory.hpp>
#include <backendsCommon/CpuTensorHandle.hpp>
@@ -52,15 +54,15 @@ std::vector<TensorShape> PreluLayer::InferOutputShapes(const std::vector<TensorS
TensorShape outputShape(outputDimensions);
- int inputShapeIndex = boost::numeric_cast<int>(inputShapeDimensions) - 1;
- int alphaShapeIndex = boost::numeric_cast<int>(alphaShapeDimensions) - 1;
+ int inputShapeIndex = armnn::numeric_cast<int>(inputShapeDimensions) - 1;
+ int alphaShapeIndex = armnn::numeric_cast<int>(alphaShapeDimensions) - 1;
unsigned int outputShapeIndex = outputDimensions - 1;
// Loop backwards through the common part of the shapes
while (inputShapeIndex >= 0 && alphaShapeIndex >= 0)
{
- unsigned int inputDimension = inputShape[boost::numeric_cast<unsigned int>(inputShapeIndex)];
- unsigned int alphaDimension = alphaShape[boost::numeric_cast<unsigned int>(alphaShapeIndex)];
+ unsigned int inputDimension = inputShape[armnn::numeric_cast<unsigned int>(inputShapeIndex)];
+ unsigned int alphaDimension = alphaShape[armnn::numeric_cast<unsigned int>(alphaShapeIndex)];
// Check that the inputs are broadcast compatible
ARMNN_ASSERT_MSG(inputDimension == alphaDimension || inputDimension == 1 || alphaDimension == 1,
@@ -76,7 +78,7 @@ std::vector<TensorShape> PreluLayer::InferOutputShapes(const std::vector<TensorS
// Loop backwards through the remaing part of the input shape (if any)
while (inputShapeIndex >= 0)
{
- outputShape[outputShapeIndex] = inputShape[boost::numeric_cast<unsigned int>(inputShapeIndex)];
+ outputShape[outputShapeIndex] = inputShape[armnn::numeric_cast<unsigned int>(inputShapeIndex)];
inputShapeIndex--;
outputShapeIndex--;
@@ -85,7 +87,7 @@ std::vector<TensorShape> PreluLayer::InferOutputShapes(const std::vector<TensorS
// Loop backwards through the remaing part of the alpha shape (if any)
while (alphaShapeIndex >= 0)
{
- outputShape[outputShapeIndex] = alphaShape[boost::numeric_cast<unsigned int>(alphaShapeIndex)];
+ outputShape[outputShapeIndex] = alphaShape[armnn::numeric_cast<unsigned int>(alphaShapeIndex)];
alphaShapeIndex--;
outputShapeIndex--;
diff --git a/src/armnn/layers/SliceLayer.cpp b/src/armnn/layers/SliceLayer.cpp
index 0f1d4386d7..bfa16e5f9e 100644
--- a/src/armnn/layers/SliceLayer.cpp
+++ b/src/armnn/layers/SliceLayer.cpp
@@ -8,12 +8,11 @@
#include "LayerCloneBase.hpp"
#include <armnn/TypesUtils.hpp>
+#include <armnn/utility/NumericCast.hpp>
#include <backendsCommon/WorkloadData.hpp>
#include <backendsCommon/WorkloadFactory.hpp>
-#include <boost/numeric/conversion/cast.hpp>
-
namespace armnn
{
@@ -53,7 +52,7 @@ std::vector<TensorShape> SliceLayer::InferOutputShapes(const std::vector<TensorS
IgnoreUnused(inputShapes);
ARMNN_ASSERT(inputShapes.size() == 1);
- TensorShape outputShape(boost::numeric_cast<unsigned int>(m_Param.m_Size.size()), m_Param.m_Size.data());
+ TensorShape outputShape(armnn::numeric_cast<unsigned int>(m_Param.m_Size.size()), m_Param.m_Size.data());
return std::vector<TensorShape>({ outputShape });
}
diff --git a/src/armnn/layers/StridedSliceLayer.cpp b/src/armnn/layers/StridedSliceLayer.cpp
index 9b1706b335..957f5858b6 100644
--- a/src/armnn/layers/StridedSliceLayer.cpp
+++ b/src/armnn/layers/StridedSliceLayer.cpp
@@ -6,11 +6,11 @@
#include "LayerCloneBase.hpp"
+#include <armnn/utility/NumericCast.hpp>
+
#include <backendsCommon/WorkloadData.hpp>
#include <backendsCommon/WorkloadFactory.hpp>
-#include <boost/numeric/conversion/cast.hpp>
-
namespace armnn
{
@@ -82,7 +82,7 @@ std::vector<TensorShape> StridedSliceLayer::InferOutputShapes(
newSize = std::max(0, newSize);
- outputShape.push_back(boost::numeric_cast<unsigned int>(newSize));
+ outputShape.push_back(armnn::numeric_cast<unsigned int>(newSize));
}
if (outputShape.size() == 0 && (inputShape.GetNumDimensions() - amountDimShrunk) == 0)
@@ -91,7 +91,7 @@ std::vector<TensorShape> StridedSliceLayer::InferOutputShapes(
}
return std::vector<TensorShape>({
- TensorShape(boost::numeric_cast<unsigned int>(outputShape.size()), &outputShape[0]) });
+ TensorShape(armnn::numeric_cast<unsigned int>(outputShape.size()), &outputShape[0]) });
}
void StridedSliceLayer::ValidateTensorShapesFromInputs()
diff --git a/src/armnn/test/CreateWorkload.hpp b/src/armnn/test/CreateWorkload.hpp
index b13b9b538e..3f3cdc3986 100644
--- a/src/armnn/test/CreateWorkload.hpp
+++ b/src/armnn/test/CreateWorkload.hpp
@@ -19,7 +19,6 @@
#include <backendsCommon/CpuTensorHandle.hpp>
#include <boost/test/unit_test.hpp>
-#include <boost/cast.hpp>
#include <utility>
diff --git a/src/armnn/test/GraphTests.cpp b/src/armnn/test/GraphTests.cpp
index 5a17c1c227..55a01fcc94 100644
--- a/src/armnn/test/GraphTests.cpp
+++ b/src/armnn/test/GraphTests.cpp
@@ -9,6 +9,7 @@
#include <armnn/TypesUtils.hpp>
#include <armnn/Exceptions.hpp>
+#include <armnn/utility/NumericCast.hpp>
#include <armnn/utility/PolymorphicDowncast.hpp>
#include <armnn/backends/IBackendInternal.hpp>
@@ -16,7 +17,6 @@
#include <backendsCommon/CpuTensorHandle.hpp>
#include <backendsCommon/TensorHandleFactoryRegistry.hpp>
-#include <boost/cast.hpp>
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_SUITE(Graph)
@@ -299,7 +299,7 @@ static void TestGraphAfterAddingCopyLayers(const armnn::Graph& graph, const armn
if (origEdge.first->GetNameStr() == edge.first->GetNameStr() &&
origEdge.second->GetNameStr() == edge.second->GetNameStr())
{
- originalEdge = boost::numeric_cast<int>(i);
+ originalEdge = armnn::numeric_cast<int>(i);
}
}
diff --git a/src/armnn/test/SubgraphViewTests.cpp b/src/armnn/test/SubgraphViewTests.cpp
index a9467fb062..a8cb797d17 100644
--- a/src/armnn/test/SubgraphViewTests.cpp
+++ b/src/armnn/test/SubgraphViewTests.cpp
@@ -4,11 +4,12 @@
//
#include <boost/test/unit_test.hpp>
-
#include <Graph.hpp>
#include <SubgraphView.hpp>
#include <SubgraphViewSelector.hpp>
+#include <armnn/utility/NumericCast.hpp>
+
#include <backendsCommon/CpuTensorHandle.hpp>
#include <fstream>
#include <map>
@@ -1374,8 +1375,8 @@ BOOST_AUTO_TEST_CASE(SingleSubgraph)
if (subgraphs[0].get() != nullptr)
{
- unsigned int numInputSlots = boost::numeric_cast<unsigned int>(subgraphs[0]->GetInputSlots().size());
- unsigned int numOutputSlots = boost::numeric_cast<unsigned int>(subgraphs[0]->GetOutputSlots().size());
+ unsigned int numInputSlots = armnn::numeric_cast<unsigned int>(subgraphs[0]->GetInputSlots().size());
+ unsigned int numOutputSlots = armnn::numeric_cast<unsigned int>(subgraphs[0]->GetOutputSlots().size());
BOOST_TEST((numInputSlots == 1));
BOOST_TEST((numOutputSlots == 1));
@@ -1456,11 +1457,11 @@ BOOST_AUTO_TEST_CASE(MultipleSubgraphs)
}
);
- unsigned int numInputSlots1 = boost::numeric_cast<unsigned int>(subgraphs[0]->GetInputSlots().size());
- unsigned int numOutputSlots1 = boost::numeric_cast<unsigned int>(subgraphs[0]->GetOutputSlots().size());
+ unsigned int numInputSlots1 = armnn::numeric_cast<unsigned int>(subgraphs[0]->GetInputSlots().size());
+ unsigned int numOutputSlots1 = armnn::numeric_cast<unsigned int>(subgraphs[0]->GetOutputSlots().size());
- unsigned int numInputSlots2 = boost::numeric_cast<unsigned int>(subgraphs[1]->GetInputSlots().size());
- unsigned int numOutputSlots2 = boost::numeric_cast<unsigned int>(subgraphs[1]->GetOutputSlots().size());
+ unsigned int numInputSlots2 = armnn::numeric_cast<unsigned int>(subgraphs[1]->GetInputSlots().size());
+ unsigned int numOutputSlots2 = armnn::numeric_cast<unsigned int>(subgraphs[1]->GetOutputSlots().size());
// Save sub-graph connections for comparison after substitution
IOutputSlot* subgraph1InputConn = subgraphs[0]->GetInputSlot(0)->GetConnection();
diff --git a/src/armnn/test/TensorHelpers.hpp b/src/armnn/test/TensorHelpers.hpp
index 45360350dd..d67cd5b979 100644
--- a/src/armnn/test/TensorHelpers.hpp
+++ b/src/armnn/test/TensorHelpers.hpp
@@ -10,7 +10,6 @@
#include <QuantizeHelper.hpp>
#include <boost/multi_array.hpp>
-#include <boost/numeric/conversion/cast.hpp>
#include <boost/random/uniform_real_distribution.hpp>
#include <boost/random/mersenne_twister.hpp>
#include <boost/test/tools/floating_point_comparison.hpp>
diff --git a/src/armnn/test/UnitTests.cpp b/src/armnn/test/UnitTests.cpp
index 032a49fb90..7b5ba37ae2 100644
--- a/src/armnn/test/UnitTests.cpp
+++ b/src/armnn/test/UnitTests.cpp
@@ -7,6 +7,7 @@
#include "UnitTests.hpp"
#include <armnn/Logging.hpp>
+#include <armnn/utility/NumericCast.hpp>
struct ConfigureLoggingFixture
{
@@ -34,7 +35,7 @@ struct DebugOutputSink : boost::iostreams::sink
std::streamsize write(const char* s, std::streamsize n)
{
// The given string is not null-terminated, so we need to copy it.
- std::string s2(s, boost::numeric_cast<size_t>(n));
+ std::string s2(s, armnn::numeric_cast<size_t>(n));
OutputDebugString(s2.c_str());
return n;
}
diff --git a/src/armnnConverter/ArmnnConverter.cpp b/src/armnnConverter/ArmnnConverter.cpp
index f143e6989b..21b89ea6f8 100644
--- a/src/armnnConverter/ArmnnConverter.cpp
+++ b/src/armnnConverter/ArmnnConverter.cpp
@@ -21,6 +21,7 @@
#endif
#include <HeapProfiling.hpp>
+#include <armnn/utility/NumericCast.hpp>
#include "armnn/utility/StringUtils.hpp"
#include <boost/format.hpp>
@@ -49,7 +50,7 @@ armnn::TensorShape ParseTensorShape(std::istream& stream)
{
try
{
- result.push_back(boost::numeric_cast<unsigned int>(std::stoi((token))));
+ result.push_back(armnn::numeric_cast<unsigned int>(std::stoi((token))));
}
catch (const std::exception&)
{
@@ -59,7 +60,7 @@ armnn::TensorShape ParseTensorShape(std::istream& stream)
}
}
- return armnn::TensorShape(boost::numeric_cast<unsigned int>(result.size()), result.data());
+ return armnn::TensorShape(armnn::numeric_cast<unsigned int>(result.size()), result.data());
}
bool CheckOption(const po::variables_map& vm,
diff --git a/src/armnnDeserializer/Deserializer.cpp b/src/armnnDeserializer/Deserializer.cpp
index 7143cdbdcc..4c2f2f1397 100644
--- a/src/armnnDeserializer/Deserializer.cpp
+++ b/src/armnnDeserializer/Deserializer.cpp
@@ -15,12 +15,12 @@
#include <armnnUtils/Transpose.hpp>
#include <armnn/utility/Assert.hpp>
#include <armnn/utility/IgnoreUnused.hpp>
+#include <armnn/utility/NumericCast.hpp>
#include <ParserHelper.hpp>
#include <VerificationHelpers.hpp>
#include <boost/format.hpp>
-#include <boost/numeric/conversion/cast.hpp>
#include <fstream>
#include <algorithm>
@@ -885,7 +885,7 @@ void Deserializer::SetupInputLayers(GraphPtr graph)
unsigned int inputLayerIndex = 0xFFFFFFFF;
if (GetFeatureVersions(graph).m_BindingIdScheme == 0)
{
- const unsigned int inputId = boost::numeric_cast<unsigned int>(graph->inputIds()->Get(i));
+ const unsigned int inputId = armnn::numeric_cast<unsigned int>(graph->inputIds()->Get(i));
inputLayerIndex = GetLayerIndexInVector(graph, inputId);
}
else
@@ -924,7 +924,7 @@ void Deserializer::SetupOutputLayers(GraphPtr graph)
unsigned int outputLayerIndex = 0xFFFFFFFF;
if (GetFeatureVersions(graph).m_BindingIdScheme == 0)
{
- const unsigned int outputId = boost::numeric_cast<unsigned int>(graph->outputIds()->Get(i));
+ const unsigned int outputId = armnn::numeric_cast<unsigned int>(graph->outputIds()->Get(i));
outputLayerIndex = GetLayerIndexInVector(graph, outputId);
}
else
@@ -2006,7 +2006,7 @@ armnn::TensorInfo Deserializer::OutputShapeOfReshape(const armnn::TensorInfo& in
}
auto targetNumElements =
- boost::numeric_cast<unsigned int>(
+ armnn::numeric_cast<unsigned int>(
std::accumulate(targetDimsIn.begin(), targetDimsIn.end(), -1, std::multiplies<int32_t>()));
auto stretchIndex = static_cast<size_t>(std::distance(targetDimsIn.begin(), stretchDim));
diff --git a/src/armnnSerializer/Serializer.cpp b/src/armnnSerializer/Serializer.cpp
index 8a1f7716a1..f85aae1b6a 100644
--- a/src/armnnSerializer/Serializer.cpp
+++ b/src/armnnSerializer/Serializer.cpp
@@ -8,10 +8,10 @@
#include <armnn/LstmParams.hpp>
#include <armnn/QuantizedLstmParams.hpp>
#include <armnn/utility/IgnoreUnused.hpp>
+#include <armnn/utility/NumericCast.hpp>
#include <iostream>
-#include <boost/numeric/conversion/cast.hpp>
#include <flatbuffers/util.h>
#include "SerializerUtils.hpp"
@@ -1752,7 +1752,7 @@ bool Serializer::SaveSerializedToStream(std::ostream& stream)
{
flatbuffers::FlatBufferBuilder& fbBuilder = m_SerializerVisitor.GetFlatBufferBuilder();
- auto bytesToWrite = boost::numeric_cast<std::streamsize>(fbBuilder.GetSize());
+ auto bytesToWrite = armnn::numeric_cast<std::streamsize>(fbBuilder.GetSize());
stream.write(reinterpret_cast<const char*>(fbBuilder.GetBufferPointer()), bytesToWrite);
return !stream.bad();
}
diff --git a/src/armnnUtils/QuantizeHelper.hpp b/src/armnnUtils/QuantizeHelper.hpp
index 596ec98f64..231b8411cb 100644
--- a/src/armnnUtils/QuantizeHelper.hpp
+++ b/src/armnnUtils/QuantizeHelper.hpp
@@ -6,6 +6,7 @@
#pragma once
#include <armnn/utility/IgnoreUnused.hpp>
+#include <armnn/utility/NumericCast.hpp>
#include <armnn/TypesUtils.hpp>
#include <BFloat16.hpp>
@@ -15,8 +16,6 @@
#include <iterator>
#include <vector>
-#include <boost/numeric/conversion/cast.hpp>
-
namespace armnnUtils
{
@@ -106,7 +105,7 @@ typename std::enable_if<IsFloatingPointIterator<FloatIt>::value, int>::type=0 //
std::vector<T> QuantizedVector(FloatIt first, FloatIt last, float qScale, int32_t qOffset)
{
std::vector<T> quantized;
- quantized.reserve(boost::numeric_cast<size_t>(std::distance(first, last)));
+ quantized.reserve(armnn::numeric_cast<size_t>(std::distance(first, last)));
for (auto it = first; it != last; ++it)
{
diff --git a/src/armnnUtils/TensorUtils.cpp b/src/armnnUtils/TensorUtils.cpp
index 952c76885a..adaf8114f1 100644
--- a/src/armnnUtils/TensorUtils.cpp
+++ b/src/armnnUtils/TensorUtils.cpp
@@ -7,9 +7,9 @@
#include <armnn/backends/ITensorHandle.hpp>
#include <armnn/utility/Assert.hpp>
+#include <armnn/utility/NumericCast.hpp>
#include <boost/format.hpp>
-#include <boost/numeric/conversion/cast.hpp>
using namespace armnn;
@@ -86,7 +86,7 @@ TensorShape ExpandDims(const TensorShape& tensorShape, int axis)
{
unsigned int outputDim = tensorShape.GetNumDimensions() + 1;
- if (axis < -boost::numeric_cast<int>(outputDim) || axis > boost::numeric_cast<int>(tensorShape.GetNumDimensions()))
+ if (axis < -armnn::numeric_cast<int>(outputDim) || axis > armnn::numeric_cast<int>(tensorShape.GetNumDimensions()))
{
throw InvalidArgumentException(
boost::str(boost::format("Invalid expansion axis %1% for %2%D input tensor. %3%") %
@@ -97,7 +97,7 @@ TensorShape ExpandDims(const TensorShape& tensorShape, int axis)
if (axis < 0)
{
- axis = boost::numeric_cast<int>(outputDim) + axis;
+ axis = armnn::numeric_cast<int>(outputDim) + axis;
}
std::vector<unsigned int> outputShape;
@@ -126,14 +126,14 @@ unsigned int GetNumElementsBetween(const TensorShape& shape,
unsigned int GetUnsignedAxis(const unsigned int inputDimension, const int axis)
{
- ARMNN_ASSERT_MSG(axis < boost::numeric_cast<int>(inputDimension),
+ ARMNN_ASSERT_MSG(axis < armnn::numeric_cast<int>(inputDimension),
"Required axis index greater than number of dimensions.");
- ARMNN_ASSERT_MSG(axis >= -boost::numeric_cast<int>(inputDimension),
+ ARMNN_ASSERT_MSG(axis >= -armnn::numeric_cast<int>(inputDimension),
"Required axis index lower than negative of the number of dimensions");
unsigned int uAxis = axis < 0 ?
- inputDimension - boost::numeric_cast<unsigned int>(abs(axis))
- : boost::numeric_cast<unsigned int>(axis);
+ inputDimension - armnn::numeric_cast<unsigned int>(abs(axis))
+ : armnn::numeric_cast<unsigned int>(axis);
return uAxis;
}