aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/workloads/Encoders.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/reference/workloads/Encoders.hpp')
-rw-r--r--src/backends/reference/workloads/Encoders.hpp26
1 files changed, 21 insertions, 5 deletions
diff --git a/src/backends/reference/workloads/Encoders.hpp b/src/backends/reference/workloads/Encoders.hpp
index 8a702377b2..5de361590a 100644
--- a/src/backends/reference/workloads/Encoders.hpp
+++ b/src/backends/reference/workloads/Encoders.hpp
@@ -9,8 +9,6 @@
#include <armnnUtils/TensorUtils.hpp>
-#include <armnn/utility/Assert.hpp>
-
namespace armnn
{
@@ -89,7 +87,25 @@ inline std::unique_ptr<Encoder<float>> MakeEncoder(const TensorInfo& info, void*
}
default:
{
- ARMNN_ASSERT_MSG(false, "Unsupported target Data Type!");
+ throw InvalidArgumentException("Unsupported target Data Type!");
+ break;
+ }
+ }
+ return nullptr;
+}
+
+template<>
+inline std::unique_ptr<Encoder<double_t>> MakeEncoder(const TensorInfo& info, void* data)
+{
+ switch(info.GetDataType())
+ {
+ case armnn::DataType::Signed64:
+ {
+ return std::make_unique<Int64Encoder>(static_cast<int64_t*>(data));
+ }
+ default:
+ {
+ throw InvalidArgumentException("Cannot encode from double. Unsupported target Data Type!");
break;
}
}
@@ -107,7 +123,7 @@ inline std::unique_ptr<Encoder<bool>> MakeEncoder(const TensorInfo& info, void*
}
default:
{
- ARMNN_ASSERT_MSG(false, "Cannot encode from boolean. Not supported target Data Type!");
+ throw InvalidArgumentException("Cannot encode from boolean. Unsupported target Data Type!");
break;
}
}
@@ -125,7 +141,7 @@ inline std::unique_ptr<Encoder<int32_t>> MakeEncoder(const TensorInfo& info, voi
}
default:
{
- ARMNN_ASSERT_MSG(false, "Unsupported Data Type!");
+ throw InvalidArgumentException("Cannot encode from int32. Unsupported Data Type!");
break;
}
}