From eb2b329b761ce3206505ed8d2eab071a2f97d5e7 Mon Sep 17 00:00:00 2001 From: Nattapat Chaimanowong Date: Tue, 7 May 2019 12:02:30 +0100 Subject: IVGCVSW-2997 Refactor reference LSTM workload Signed-off-by: Nattapat Chaimanowong Change-Id: I6883f878d9f701a55153292769d2fc0530d2529e --- src/backends/reference/workloads/BaseIterator.hpp | 30 ++++++++++++++++++----- 1 file changed, 24 insertions(+), 6 deletions(-) (limited to 'src/backends/reference/workloads/BaseIterator.hpp') 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 class Decoder : public BaseIterator { public: - using InterfaceType = IType; - Decoder() {} virtual ~Decoder() {} @@ -42,13 +40,13 @@ template class Encoder : public BaseIterator { public: - using InterfaceType = IType; - Encoder() {} virtual ~Encoder() {} virtual void Set(IType right) = 0; + + virtual IType Get() const = 0; }; template @@ -77,6 +75,7 @@ public: return *this; } +protected: T* m_Iterator; }; @@ -135,6 +134,11 @@ public: *m_Iterator = armnn::Quantize(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(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> @@ -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 -- cgit v1.2.1