IVGCVSW-3025: Refactor reference Convolution2d workload

 * Refactored RefConvolution2dWorkload to support all DataTypes through Encoders and Decoders.
 * Added Convolute function to ConvImpl that uses Encoders and Decoders to support all DataTypes.
 * Deleted RefConvolution2dFloat32Workload and RefConvolution2dUint8Workload.

Signed-off-by: Mike Kelly <mike.kelly@arm.com>
Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
Change-Id: Ic5ef0f499d08b948fa65fdee54b5f681fd0b1c05
diff --git a/src/backends/reference/workloads/ConvImpl.hpp b/src/backends/reference/workloads/ConvImpl.hpp
index 23b402a..3551ba8 100644
--- a/src/backends/reference/workloads/ConvImpl.hpp
+++ b/src/backends/reference/workloads/ConvImpl.hpp
@@ -7,6 +7,9 @@
 
 #include "RefWorkloadUtils.hpp"
 #include "TensorBufferArrayView.hpp"
+#include "BaseIterator.hpp"
+#include "Decoders.hpp"
+#include "Encoders.hpp"
 
 #include <armnn/Tensor.hpp>
 
@@ -224,4 +227,20 @@
     }
 }
 
+void Convolve(const TensorShape& rInputShape,
+              Decoder<float>& rInputDecoder,
+              const TensorShape& rOutputShape,
+              Encoder<float>& rOutputEncoder,
+              const TensorShape& rFilterShape,
+              Decoder<float>& rFilterDecoder,
+              bool biasEnabled,
+              Decoder<float>* pBiasDecoder,
+              DataLayout dataLayout,
+              unsigned int paddingTop,
+              unsigned int paddingLeft,
+              unsigned int xStride,
+              unsigned int yStride,
+              unsigned int xDilation,
+              unsigned int yDilation,
+              bool depthwise = false);
 } //namespace armnn