aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/workloads/BaseIterator.hpp
diff options
context:
space:
mode:
authorNattapat Chaimanowong <nattapat.chaimanowong@arm.com>2019-05-07 12:02:30 +0100
committerderek.lamberti <derek.lamberti@arm.com>2019-05-07 12:15:38 +0000
commiteb2b329b761ce3206505ed8d2eab071a2f97d5e7 (patch)
treea236bea2077d391fdae90cdbee866f6754897623 /src/backends/reference/workloads/BaseIterator.hpp
parent5cf4d1c29a36bb1d675a7cbe2d24b688deb7d160 (diff)
downloadarmnn-eb2b329b761ce3206505ed8d2eab071a2f97d5e7.tar.gz
IVGCVSW-2997 Refactor reference LSTM workload
Signed-off-by: Nattapat Chaimanowong <nattapat.chaimanowong@arm.com> Change-Id: I6883f878d9f701a55153292769d2fc0530d2529e
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