IVGCVSW-1804 : add subtraction layer to the public interface

Change-Id: I2c1b622b5199000c01af387bb994267c2b91f89c
diff --git a/include/armnn/INetwork.hpp b/include/armnn/INetwork.hpp
index be03f83..0405074 100644
--- a/include/armnn/INetwork.hpp
+++ b/include/armnn/INetwork.hpp
@@ -274,6 +274,11 @@
     /// @return - Interface for configuring the layer.
     virtual IConnectableLayer* AddDivisionLayer(const char* name = nullptr) = 0;
 
+    /// Adds a subtraction layer to the network.
+    /// @param name - Optional name for the layer.
+    /// @return - Interface for configuring the layer.
+    virtual IConnectableLayer* AddSubtractionLayer(const char* name = nullptr) = 0;
+
 protected:
     ~INetwork() {}
 };
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp
index 507668a..dc531d1 100644
--- a/src/armnn/Network.cpp
+++ b/src/armnn/Network.cpp
@@ -589,6 +589,11 @@
     return m_Graph->AddLayer<DivisionLayer>(name);
 }
 
+IConnectableLayer* Network::AddSubtractionLayer(const char* name)
+{
+    return m_Graph->AddLayer<SubtractionLayer>(name);
+}
+
 OptimizedNetwork::OptimizedNetwork(std::unique_ptr<Graph> graph)
     : m_Graph(std::move(graph))
 {
diff --git a/src/armnn/Network.hpp b/src/armnn/Network.hpp
index 3582439..b6b8548 100644
--- a/src/armnn/Network.hpp
+++ b/src/armnn/Network.hpp
@@ -115,6 +115,8 @@
 
     IConnectableLayer* AddDivisionLayer(const char* name = nullptr) override;
 
+    IConnectableLayer* AddSubtractionLayer(const char* name = nullptr) override;
+
 private:
     IConnectableLayer* AddFullyConnectedLayerImpl(const FullyConnectedDescriptor& fullyConnectedDescriptor,
         const ConstTensor& weights,