diff options
author | Nattapat Chaimanowong <nattapat.chaimanowong@arm.com> | 2019-05-07 12:02:30 +0100 |
---|---|---|
committer | derek.lamberti <derek.lamberti@arm.com> | 2019-05-07 12:15:38 +0000 |
commit | eb2b329b761ce3206505ed8d2eab071a2f97d5e7 (patch) | |
tree | a236bea2077d391fdae90cdbee866f6754897623 /src/backends/reference/workloads/BaseIterator.hpp | |
parent | 5cf4d1c29a36bb1d675a7cbe2d24b688deb7d160 (diff) | |
download | armnn-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.hpp | 30 |
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 |