aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/workloads/BaseIterator.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/reference/workloads/BaseIterator.hpp')
-rw-r--r--src/backends/reference/workloads/BaseIterator.hpp30
1 files changed, 24 insertions, 6 deletions
diff --git a/src/backends/reference/workloads/BaseIterator.hpp b/src/backends/reference/workloads/BaseIterator.hpp
index 3439e41b48..97af95a0eb 100644
--- a/src/backends/reference/workloads/BaseIterator.hpp
+++ b/src/backends/reference/workloads/BaseIterator.hpp
@@ -29,8 +29,6 @@ template<typename IType>
class Decoder : public BaseIterator
{
public:
- using InterfaceType = IType;
-
Decoder() {}
virtual ~Decoder() {}
@@ -42,13 +40,13 @@ template<typename IType>
class Encoder : public BaseIterator
{
public:
- using InterfaceType = IType;
-
Encoder() {}
virtual ~Encoder() {}
virtual void Set(IType right) = 0;
+
+ virtual IType Get() const = 0;
};
template<typename T, typename Base>
@@ -77,6 +75,7 @@ public:
return *this;
}
+protected:
T* m_Iterator;
};
@@ -135,6 +134,11 @@ public:
*m_Iterator = armnn::Quantize<uint8_t>(right, m_Scale, m_Offset);
}
+ float Get() const override
+ {
+ return armnn::Dequantize(*m_Iterator, m_Scale, m_Offset);
+ }
+
private:
const float m_Scale;
const int32_t m_Offset;
@@ -151,6 +155,11 @@ public:
*m_Iterator = armnn::Quantize<int16_t>(right, m_Scale, m_Offset);
}
+ float Get() const override
+ {
+ return armnn::Dequantize(*m_Iterator, m_Scale, m_Offset);
+ }
+
private:
const float m_Scale;
const int32_t m_Offset;
@@ -166,6 +175,11 @@ public:
{
*m_Iterator = right;
}
+
+ float Get() const override
+ {
+ return *m_Iterator;
+ }
};
class BooleanEncoder : public TypedIterator<uint8_t, Encoder<bool>>
@@ -178,7 +192,11 @@ public:
{
*m_Iterator = right;
}
-};
+ bool Get() const override
+ {
+ return *m_Iterator;
+ }
+};
-} //namespace armnn \ No newline at end of file
+} //namespace armnn