From e6d81356404e8fee89c89bc0abaaf491dfc1528b Mon Sep 17 00:00:00 2001
From: Olivier BICHLER <olivier.bichler@cea.fr>
Date: Thu, 11 Apr 2024 17:05:05 +0200
Subject: [PATCH] Removed now unnecessary computeOutputDims()

---
 unit_tests/operator/Test_AddImpl.cpp                  | 4 ----
 unit_tests/operator/Test_AvgPoolingImpl.cpp           | 2 --
 unit_tests/operator/Test_BatchNormImpl.cpp            | 1 -
 unit_tests/operator/Test_ConcatImpl.cpp               | 3 ---
 unit_tests/operator/Test_ConvDepthWiseImpl.cpp        | 1 -
 unit_tests/operator/Test_ConvImpl.cpp                 | 2 --
 unit_tests/operator/Test_DivImpl.cpp                  | 3 ---
 unit_tests/operator/Test_ErfImpl.cpp                  | 2 --
 unit_tests/operator/Test_FCImpl.cpp                   | 2 --
 unit_tests/operator/Test_GatherImpl.cpp               | 2 --
 unit_tests/operator/Test_GlobalAveragePoolingImpl.cpp | 4 ----
 unit_tests/operator/Test_LeakyReLUImpl.cpp            | 5 -----
 unit_tests/operator/Test_MatMulImpl.cpp               | 4 ----
 unit_tests/operator/Test_MaxPoolingImpl.cpp           | 1 -
 unit_tests/operator/Test_MetaOperator.cpp             | 4 +---
 unit_tests/operator/Test_MulImpl.cpp                  | 3 ---
 unit_tests/operator/Test_PadImpl.cpp                  | 5 -----
 unit_tests/operator/Test_PowImpl.cpp                  | 3 ---
 unit_tests/operator/Test_ReLUImpl.cpp                 | 4 ----
 unit_tests/operator/Test_ReduceMeanImpl.cpp           | 5 -----
 unit_tests/operator/Test_ReshapeImpl.cpp              | 2 --
 unit_tests/operator/Test_SliceImpl.cpp                | 4 ----
 unit_tests/operator/Test_SoftmaxImpl.cpp              | 2 --
 unit_tests/operator/Test_SqrtImpl.cpp                 | 2 --
 unit_tests/operator/Test_SubImpl.cpp                  | 3 ---
 unit_tests/operator/Test_TransposeImpl.cpp            | 2 --
 unit_tests/recipies/Test_HorizontalTiling.cpp         | 1 -
 27 files changed, 1 insertion(+), 75 deletions(-)

diff --git a/unit_tests/operator/Test_AddImpl.cpp b/unit_tests/operator/Test_AddImpl.cpp
index e2e7051a..95a0e96f 100644
--- a/unit_tests/operator/Test_AddImpl.cpp
+++ b/unit_tests/operator/Test_AddImpl.cpp
@@ -45,7 +45,6 @@ TEST_CASE("[cpu/operator] Add(forward)", "[Add][CPU]") {
         op->associateInput(0, input1);
         op->setBackend("cpu");
         op->setDataType(DataType::Int32);
-        op->computeOutputDims();
         myAdd->forward();
 
         REQUIRE(*(op->getOutput(0)) == *input1);
@@ -78,7 +77,6 @@ TEST_CASE("[cpu/operator] Add(forward)", "[Add][CPU]") {
         op->associateInput(1, input1);
         op->setBackend("cpu");
         op->setDataType(DataType::Int32);
-        op->computeOutputDims();
         myAdd->forward();
 
         REQUIRE(*(op->getOutput(0)) == *expectedOutput);
@@ -112,7 +110,6 @@ TEST_CASE("[cpu/operator] Add(forward)", "[Add][CPU]") {
         op->associateInput(2, input1);
         op->setDataType(DataType::Int32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myAdd->forward();
 
         REQUIRE(*op->getOutput(0) == *expectedOutput);
@@ -170,7 +167,6 @@ TEST_CASE("[cpu/operator] Add(forward)", "[Add][CPU]") {
         op->associateInput(2, input_2);
         op->setDataType(DataType::Int32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myAdd->forward();
         op->getOutput(0)->print();
         expectedOutput->print();
diff --git a/unit_tests/operator/Test_AvgPoolingImpl.cpp b/unit_tests/operator/Test_AvgPoolingImpl.cpp
index c4abf020..aaa27578 100644
--- a/unit_tests/operator/Test_AvgPoolingImpl.cpp
+++ b/unit_tests/operator/Test_AvgPoolingImpl.cpp
@@ -74,7 +74,6 @@ TEST_CASE("[cpu/operator] AvgPooling(forward)", "[AvgPooling][CPU]") {
         op->associateInput(0,myInput);
         op->setDataType(DataType::Float32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myAvgPool->forward();
         op->getOutput(0)->print();
         REQUIRE(*(op->getOutput(0)) == *myOutput);
@@ -99,7 +98,6 @@ TEST_CASE("[cpu/operator] AvgPooling(forward)", "[AvgPooling][CPU]") {
         op->associateInput(0,myInput2);
         op->setDataType(DataType::Float32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myAvgPool->forward();
         op->getOutput(0)->print();
         float* outPtr = static_cast<float*>(op->getOutput(0)->getImpl()->rawPtr());
diff --git a/unit_tests/operator/Test_BatchNormImpl.cpp b/unit_tests/operator/Test_BatchNormImpl.cpp
index 8c8c1dff..1b42c90d 100644
--- a/unit_tests/operator/Test_BatchNormImpl.cpp
+++ b/unit_tests/operator/Test_BatchNormImpl.cpp
@@ -86,7 +86,6 @@ TEST_CASE("[cpu/operator] BatchNorm(forward)", "[BatchNorm][CPU]") {
     op->associateInput(4,myVar);
     op->setDataType(DataType::Float32);
     op->setBackend("cpu");
-    op->computeOutputDims();
     myBatchNorm->forward();
 
     float* resPtr = static_cast<float*>(op->getOutput(0)->getImpl()->rawPtr());
diff --git a/unit_tests/operator/Test_ConcatImpl.cpp b/unit_tests/operator/Test_ConcatImpl.cpp
index 779c4806..d7cefd8d 100644
--- a/unit_tests/operator/Test_ConcatImpl.cpp
+++ b/unit_tests/operator/Test_ConcatImpl.cpp
@@ -38,7 +38,6 @@ TEST_CASE("[cpu/operator] Concat(forward)", "[Concat][CPU]") {
         myConcat->getOperator()->associateInput(4, input5);
         myConcat->getOperator()->setBackend("cpu");
         myConcat->getOperator()->setDataType(DataType::Int32);
-        std::static_pointer_cast<OperatorTensor>(myConcat->getOperator())->computeOutputDims();
         myConcat->forward();
 
         std::static_pointer_cast<Tensor>(myConcat->getOperator()->getRawOutput(0))->print();
@@ -95,7 +94,6 @@ TEST_CASE("[cpu/operator] Concat(forward)", "[Concat][CPU]") {
         myConcat->getOperator()->associateInput(1, input2);
         myConcat->getOperator()->setBackend("cpu");
         myConcat->getOperator()->setDataType(DataType::Int32);
-        std::static_pointer_cast<OperatorTensor>(myConcat->getOperator())->computeOutputDims();
         myConcat->forward();
 
         std::static_pointer_cast<OperatorTensor>(myConcat->getOperator())->getOutput(0)->print();
@@ -138,7 +136,6 @@ TEST_CASE("[cpu/operator] Concat(forward)", "[Concat][CPU]") {
         myConcat->getOperator()->associateInput(1, input2);
         myConcat->getOperator()->setBackend("cpu");
         myConcat->getOperator()->setDataType(DataType::Int32);
-        std::static_pointer_cast<OperatorTensor>(myConcat->getOperator())->computeOutputDims();
         myConcat->forward();
 
         std::static_pointer_cast<Tensor>(myConcat->getOperator()->getRawOutput(0))->print();
diff --git a/unit_tests/operator/Test_ConvDepthWiseImpl.cpp b/unit_tests/operator/Test_ConvDepthWiseImpl.cpp
index 112703b6..e4e46de9 100644
--- a/unit_tests/operator/Test_ConvDepthWiseImpl.cpp
+++ b/unit_tests/operator/Test_ConvDepthWiseImpl.cpp
@@ -146,7 +146,6 @@ TEST_CASE("[cpu/operator] ConvDepthWise(forward)", "[ConvDepthWise][CPU]") {
     op -> associateInput(2, myBias);
     op->setDataType(DataType::Int32);
     op->setBackend("cpu");
-    op -> computeOutputDims();
     myCDW -> forward();
     op -> getOutput(0) -> print();
     REQUIRE(*(op -> getOutput(0)) == *myOutput);
diff --git a/unit_tests/operator/Test_ConvImpl.cpp b/unit_tests/operator/Test_ConvImpl.cpp
index 0f46e8f6..b5208513 100644
--- a/unit_tests/operator/Test_ConvImpl.cpp
+++ b/unit_tests/operator/Test_ConvImpl.cpp
@@ -152,7 +152,6 @@ TEST_CASE("[cpu/operator] Conv(forward)", "[Conv][CPU]") {
         op->associateInput(2,myBias);
         op->setDataType(DataType::Int32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myConv->forward();
         // op->getOutput(0)->print();
         REQUIRE(*(op->getOutput(0)) == *myOutput);
@@ -244,7 +243,6 @@ TEST_CASE("[cpu/operator] Conv(forward)", "[Conv][CPU]") {
         };
         op->setDataType(DataType::Float32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myConv->forward();
 
         float* resPtr = static_cast<float*>(op->getOutput(0)->getImpl()->rawPtr());
diff --git a/unit_tests/operator/Test_DivImpl.cpp b/unit_tests/operator/Test_DivImpl.cpp
index a0ed261f..552882ac 100644
--- a/unit_tests/operator/Test_DivImpl.cpp
+++ b/unit_tests/operator/Test_DivImpl.cpp
@@ -103,7 +103,6 @@ TEST_CASE("[cpu/operator] Div", "[Div][CPU]") {
                 Tres->resize(dims);
                 Tres -> getImpl() -> setRawPtr(result, nb_elements);
 
-                op->computeOutputDims();
                 start = std::chrono::system_clock::now();
                 myDiv->forward();
                 end = std::chrono::system_clock::now();
@@ -196,7 +195,6 @@ TEST_CASE("[cpu/operator] Div", "[Div][CPU]") {
                 Tres -> getImpl() -> setRawPtr(result, dimsOut[0]*dimsOut[1]*dimsOut[2]*dimsOut[3]);
 
                 // compute result
-                op->computeOutputDims();
                 start = std::chrono::system_clock::now();
                 myDiv->forward();
                 end = std::chrono::system_clock::now();
@@ -291,7 +289,6 @@ TEST_CASE("[cpu/operator] Div", "[Div][CPU]") {
                 Tres -> getImpl() -> setRawPtr(result, dimsOut[0]*dimsOut[1]*dimsOut[2]*dimsOut[3]);
 
                 // compute result
-                op->computeOutputDims();
                 start = std::chrono::system_clock::now();
                 myDiv->forward();
                 end = std::chrono::system_clock::now();
diff --git a/unit_tests/operator/Test_ErfImpl.cpp b/unit_tests/operator/Test_ErfImpl.cpp
index db2ae043..2826b5b5 100644
--- a/unit_tests/operator/Test_ErfImpl.cpp
+++ b/unit_tests/operator/Test_ErfImpl.cpp
@@ -37,7 +37,6 @@ TEST_CASE("[cpu/operator] Erf(forward)") {
         op->associateInput(0,input0);
         op->setDataType(DataType::Float32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myErf->forward();
 
         float* resPtr = static_cast<float*>(op->getOutput(0)->getImpl()->rawPtr());
@@ -78,7 +77,6 @@ TEST_CASE("[cpu/operator] Erf(forward)") {
         op->associateInput(0,input0);
         op->setDataType(DataType::Float32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myErf->forward();
 
         float* resPtr = static_cast<float*>(op->getOutput(0)->getImpl()->rawPtr());
diff --git a/unit_tests/operator/Test_FCImpl.cpp b/unit_tests/operator/Test_FCImpl.cpp
index 4309ce1a..b2566f26 100644
--- a/unit_tests/operator/Test_FCImpl.cpp
+++ b/unit_tests/operator/Test_FCImpl.cpp
@@ -64,7 +64,6 @@ TEST_CASE("[cpu/oeprator] FC(forward)", "[FC][CPU]") {
         op->associateInput(0, myInput);
         op -> setDataType(DataType::Int32);
         op -> setBackend("cpu");
-        op->computeOutputDims();
         myFC->forward();
         REQUIRE(*(op->getOutput(0)) == *myOutput);
     }
@@ -103,7 +102,6 @@ TEST_CASE("[cpu/oeprator] FC(forward)", "[FC][CPU]") {
         op->associateInput(0, myInput);
         op -> setDataType(DataType::Int32);
         op -> setBackend("cpu");
-        op->computeOutputDims();
         myFC->forward();
         REQUIRE(*(op->getOutput(0)) == *myOutput);
     }
diff --git a/unit_tests/operator/Test_GatherImpl.cpp b/unit_tests/operator/Test_GatherImpl.cpp
index a8345917..e3bf4a41 100644
--- a/unit_tests/operator/Test_GatherImpl.cpp
+++ b/unit_tests/operator/Test_GatherImpl.cpp
@@ -50,7 +50,6 @@ TEST_CASE("[cpu/operator] Gather(forward)") {
         // op->associateInput(1,indexes);
         op->setDataType(DataType::Int32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myGather->forward();
         op->getOutput(0)->print();
         expectedOutput->print();
@@ -91,7 +90,6 @@ TEST_CASE("[cpu/operator] Gather(forward)") {
         // op->associateInput(1,indexes);
         op->setDataType(DataType::Int32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myGather->forward();
 
         REQUIRE(*(op->getOutput(0)) == *expectedOutput);
diff --git a/unit_tests/operator/Test_GlobalAveragePoolingImpl.cpp b/unit_tests/operator/Test_GlobalAveragePoolingImpl.cpp
index c1db6c5e..9c357dc9 100644
--- a/unit_tests/operator/Test_GlobalAveragePoolingImpl.cpp
+++ b/unit_tests/operator/Test_GlobalAveragePoolingImpl.cpp
@@ -154,7 +154,6 @@ TEST_CASE("[cpu/operator] GlobalAveragePooling",
         Tres->resize(dims_out);
         Tres->getImpl()->setRawPtr(result, out_nb_elems);
 
-        op->computeOutputDims();
         start = std::chrono::system_clock::now();
         REQUIRE_NOTHROW(globAvgPool->forward());
         end = std::chrono::system_clock::now();
@@ -225,7 +224,6 @@ TEST_CASE("[cpu/operator] GlobalAveragePooling",
           Tres->resize(dims_out);
           Tres->getImpl()->setRawPtr(result, out_nb_elems);
 
-          op->computeOutputDims();
           start = std::chrono::system_clock::now();
           REQUIRE_NOTHROW(globAvgPool->forward());
           end = std::chrono::system_clock::now();
@@ -350,7 +348,6 @@ TEST_CASE("[cpu/operator] GlobalAveragePooling",
           // results
           Tres->resize(out_dims);
           Tres->getImpl()->setRawPtr(result, out_nb_elems);
-          op->computeOutputDims();
           start = std::chrono::system_clock::now();
           REQUIRE_NOTHROW(globAvgPool->forward());
           end = std::chrono::system_clock::now();
@@ -537,7 +534,6 @@ TEST_CASE("[cpu/operator] GlobalAveragePooling",
           // results
           Tres->resize(out_dims);
           Tres->getImpl()->setRawPtr(result, out_nb_elems);
-          op->computeOutputDims();
           start = std::chrono::system_clock::now();
           REQUIRE_NOTHROW(globAvgPool->forward());
           end = std::chrono::system_clock::now();
diff --git a/unit_tests/operator/Test_LeakyReLUImpl.cpp b/unit_tests/operator/Test_LeakyReLUImpl.cpp
index cad2a6f9..85dd9f99 100644
--- a/unit_tests/operator/Test_LeakyReLUImpl.cpp
+++ b/unit_tests/operator/Test_LeakyReLUImpl.cpp
@@ -32,7 +32,6 @@ TEST_CASE("[cpu/operator] LeakyReLU(forward)", "[LeakyReLU][CPU]") {
         op->associateInput(0,input0);
         op->setDataType(DataType::Int32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myLeakyReLU->forward();
         REQUIRE(*(op->getOutput(0)) == *expectedOutput);
     }
@@ -56,7 +55,6 @@ TEST_CASE("[cpu/operator] LeakyReLU(forward)", "[LeakyReLU][CPU]") {
         op->associateInput(0,input0);
         op->setDataType(DataType::Int32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myLeakyReLU->forward();
         REQUIRE(*(op->getOutput(0)) == *expectedOutput);
     }
@@ -92,7 +90,6 @@ TEST_CASE("[cpu/operator] LeakyReLU(forward)", "[LeakyReLU][CPU]") {
         op->associateInput(0,input0);
         op->setDataType(DataType::Int32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myLeakyReLU->forward();
         REQUIRE(*(op->getOutput(0)) == *expectedOutput);
     }
@@ -152,7 +149,6 @@ TEST_CASE("[cpu/operator] LeakyReLU(forward)", "[LeakyReLU][CPU]") {
         op->associateInput(0,input0);
         op->setDataType(DataType::Int32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myLeakyReLU->forward();
         REQUIRE(*(op->getOutput(0)) == *expectedOutput);
     }
@@ -170,7 +166,6 @@ TEST_CASE("[cpu/operator] LeakyReLU(forward)", "[LeakyReLU][CPU]") {
         op->associateInput(0,input0);
         op->setDataType(DataType::Float32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myLeakyReLU->forward();
         REQUIRE(*(op->getOutput(0)) == *expectedOutput);
     }
diff --git a/unit_tests/operator/Test_MatMulImpl.cpp b/unit_tests/operator/Test_MatMulImpl.cpp
index 16841837..414b38f0 100644
--- a/unit_tests/operator/Test_MatMulImpl.cpp
+++ b/unit_tests/operator/Test_MatMulImpl.cpp
@@ -94,7 +94,6 @@ TEST_CASE("[cpu/operator] MatMul(forward)", "[MatMul][CPU]") {
             op->associateInput(1, T2);
             op->setDataType(DataType::Float32);
             op->setBackend("cpu");
-            op->computeOutputDims();
             start = std::chrono::system_clock::now();
             myMatMul->forward();
             end = std::chrono::system_clock::now();
@@ -158,7 +157,6 @@ TEST_CASE("[cpu/operator] MatMul(forward)", "[MatMul][CPU]") {
             op->associateInput(1, T2);
             op->setDataType(DataType::Float32);
             op->setBackend("cpu");
-            op->computeOutputDims();
             start = std::chrono::system_clock::now();
             myMatMul->forward();
             end = std::chrono::system_clock::now();
@@ -225,7 +223,6 @@ TEST_CASE("[cpu/operator] MatMul(forward)", "[MatMul][CPU]") {
             op->associateInput(1, T2);
             op->setDataType(DataType::Float32);
             op->setBackend("cpu");
-            op->computeOutputDims();
             start = std::chrono::system_clock::now();
             myMatMul->forward();
             end = std::chrono::system_clock::now();
@@ -258,7 +255,6 @@ TEST_CASE("[cpu/operator] MatMul(forward)", "[MatMul][CPU]") {
 
         op->setDataType(DataType::Float32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myMatMul->forward();
 
     }
diff --git a/unit_tests/operator/Test_MaxPoolingImpl.cpp b/unit_tests/operator/Test_MaxPoolingImpl.cpp
index 9f528f2d..af04ede4 100644
--- a/unit_tests/operator/Test_MaxPoolingImpl.cpp
+++ b/unit_tests/operator/Test_MaxPoolingImpl.cpp
@@ -75,7 +75,6 @@ TEST_CASE("[cpu/operator] MaxPooling(forward)", "[MaxPooling][CPU]") {
         myMaxPool->getOperator()->associateInput(0,myInput);
         myMaxPool->getOperator()->setDataType(DataType::Float32);
         myMaxPool->getOperator()->setBackend("cpu");
-        op->computeOutputDims();
         myMaxPool->forward();
         op->getOutput(0)->print();
         REQUIRE(*(op->getOutput(0)) == *myOutput);
diff --git a/unit_tests/operator/Test_MetaOperator.cpp b/unit_tests/operator/Test_MetaOperator.cpp
index 63a11d19..aa9a3909 100644
--- a/unit_tests/operator/Test_MetaOperator.cpp
+++ b/unit_tests/operator/Test_MetaOperator.cpp
@@ -175,10 +175,8 @@ TEST_CASE("[cpu/operator] MetaOperator", "[MetaOperator][CPU]") {
 
     padOp->setDataType(DataType::Float64);
     padOp->setBackend("cpu");
-    padOp->computeOutputDims();
     convOp->setDataType(DataType::Float64);
     convOp->setBackend("cpu");
-    convOp->computeOutputDims();
 
     myPad->forward();
     myConv->forward();
@@ -240,7 +238,7 @@ TEST_CASE("[cpu/operator] MetaOperator", "[MetaOperator][CPU]") {
         g->save("lstm_outside_dims", true, true);
 
         microGraph->save("lstm_dims", true, true);
-        REQUIRE(op->outputDimsForwarded());
+        REQUIRE(op->dimsForwarded());
 
         auto microGraphScheduler = std::dynamic_pointer_cast<MetaOperator_Op>(op)->getMicroGraphScheduler();
         microGraphScheduler->saveSchedulingDiagram("lstm_scheduling");
diff --git a/unit_tests/operator/Test_MulImpl.cpp b/unit_tests/operator/Test_MulImpl.cpp
index 5b5a0576..d1bd7d0d 100644
--- a/unit_tests/operator/Test_MulImpl.cpp
+++ b/unit_tests/operator/Test_MulImpl.cpp
@@ -103,7 +103,6 @@ TEST_CASE("[cpu/operator] Mul", "[Mul][CPU]") {
                 Tres->resize(dims);
                 Tres -> getImpl() -> setRawPtr(result, nb_elements);
 
-                op->computeOutputDims();
                 start = std::chrono::system_clock::now();
                 myMul->forward();
                 end = std::chrono::system_clock::now();
@@ -196,7 +195,6 @@ TEST_CASE("[cpu/operator] Mul", "[Mul][CPU]") {
                 Tres -> getImpl() -> setRawPtr(result, dimsOut[0]*dimsOut[1]*dimsOut[2]*dimsOut[3]);
 
                 // compute result
-                op->computeOutputDims();
                 start = std::chrono::system_clock::now();
                 myMul->forward();
                 end = std::chrono::system_clock::now();
@@ -291,7 +289,6 @@ TEST_CASE("[cpu/operator] Mul", "[Mul][CPU]") {
                 Tres -> getImpl() -> setRawPtr(result, dimsOut[0]*dimsOut[1]*dimsOut[2]*dimsOut[3]);
 
                 // compute result
-                op->computeOutputDims();
                 start = std::chrono::system_clock::now();
                 myMul->forward();
                 end = std::chrono::system_clock::now();
diff --git a/unit_tests/operator/Test_PadImpl.cpp b/unit_tests/operator/Test_PadImpl.cpp
index edcdaa96..cdd3a5f9 100644
--- a/unit_tests/operator/Test_PadImpl.cpp
+++ b/unit_tests/operator/Test_PadImpl.cpp
@@ -126,7 +126,6 @@ TEST_CASE("[cpu/operator] Pad(forward)", "[Pad][CPU]") {
         myPad->getOperator()->associateInput(0,myInput);
         myPad->getOperator()->setDataType(DataType::Int32);
         myPad->getOperator()->setBackend("cpu");
-        op->computeOutputDims();
         myPad->forward();
         // myPad->getOperator()->getOutput(0)->print();
         REQUIRE(*(op->getOutput(0)) == *myOutput);
@@ -231,7 +230,6 @@ TEST_CASE("[cpu/operator] Pad(forward)", "[Pad][CPU]") {
         myPad->getOperator()->associateInput(0,myInput);
         myPad->getOperator()->setDataType(DataType::Int32);
         myPad->getOperator()->setBackend("cpu");
-        op->computeOutputDims();
         myPad->forward();
         // myPad->getOperator()->getOutput(0)->print();
         REQUIRE(*(op->getOutput(0)) == *myOutput);
@@ -340,7 +338,6 @@ TEST_CASE("[cpu/operator] Pad(forward)", "[Pad][CPU]") {
         myPad->getOperator()->associateInput(0,myInput);
         myPad->getOperator()->setDataType(DataType::Int32);
         myPad->getOperator()->setBackend("cpu");
-        op->computeOutputDims();
         myPad->forward();
         // myPad->getOperator()->getOutput(0)->print();
         REQUIRE(*(op->getOutput(0)) == *myOutput);
@@ -457,7 +454,6 @@ TEST_CASE("[cpu/operator] Pad(forward)", "[Pad][CPU]") {
         myPad->getOperator()->associateInput(0,myInput);
         myPad->getOperator()->setDataType(DataType::Int32);
         myPad->getOperator()->setBackend("cpu");
-        op->computeOutputDims();
         myPad->forward();
         op->getOutput(0)->print();
         REQUIRE(*(op->getOutput(0)) == *myOutput);
@@ -566,7 +562,6 @@ TEST_CASE("[cpu/operator] Pad(forward)", "[Pad][CPU]") {
         myPad->getOperator()->associateInput(0,myInput);
         myPad->getOperator()->setDataType(DataType::Int32);
         myPad->getOperator()->setBackend("cpu");
-        op->computeOutputDims();
         myPad->forward();
         // myPad->getOperator()->getOutput(0)->print();
         REQUIRE(*(op->getOutput(0)) == *myOutput);
diff --git a/unit_tests/operator/Test_PowImpl.cpp b/unit_tests/operator/Test_PowImpl.cpp
index 01f97602..7f1ee39f 100644
--- a/unit_tests/operator/Test_PowImpl.cpp
+++ b/unit_tests/operator/Test_PowImpl.cpp
@@ -104,7 +104,6 @@ TEST_CASE("[cpu/operator] Pow", "[Pow][CPU]") {
                 Tres->resize(dims);
                 Tres -> getImpl() -> setRawPtr(result, nb_elements);
 
-                op->computeOutputDims();
                 start = std::chrono::system_clock::now();
                 myPow->forward();
                 end = std::chrono::system_clock::now();
@@ -197,7 +196,6 @@ TEST_CASE("[cpu/operator] Pow", "[Pow][CPU]") {
                 Tres -> getImpl() -> setRawPtr(result, dimsOut[0]*dimsOut[1]*dimsOut[2]*dimsOut[3]);
 
                 // compute result
-                op->computeOutputDims();
                 start = std::chrono::system_clock::now();
                 myPow->forward();
                 end = std::chrono::system_clock::now();
@@ -292,7 +290,6 @@ TEST_CASE("[cpu/operator] Pow", "[Pow][CPU]") {
                 Tres -> getImpl() -> setRawPtr(result, dimsOut[0]*dimsOut[1]*dimsOut[2]*dimsOut[3]);
 
                 // compute result
-                op->computeOutputDims();
                 start = std::chrono::system_clock::now();
                 myPow->forward();
                 end = std::chrono::system_clock::now();
diff --git a/unit_tests/operator/Test_ReLUImpl.cpp b/unit_tests/operator/Test_ReLUImpl.cpp
index c4166ac4..106d29ec 100644
--- a/unit_tests/operator/Test_ReLUImpl.cpp
+++ b/unit_tests/operator/Test_ReLUImpl.cpp
@@ -35,7 +35,6 @@ TEST_CASE("[cpu/operator] ReLU(forward)", "[ReLU][CPU]") {
         op->associateInput(0,input0);
         op->setDataType(DataType::Int32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myReLU->forward();
         REQUIRE(*(op->getOutput(0)) == *expectedOutput);
     }
@@ -59,7 +58,6 @@ TEST_CASE("[cpu/operator] ReLU(forward)", "[ReLU][CPU]") {
         op->associateInput(0,input0);
         op->setDataType(DataType::Int32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myReLU->forward();
         REQUIRE(*op->getOutput(0) == *expectedOutput);
     }
@@ -95,7 +93,6 @@ TEST_CASE("[cpu/operator] ReLU(forward)", "[ReLU][CPU]") {
         op->associateInput(0,input0);
         op->setDataType(DataType::Int32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myReLU->forward();
         REQUIRE(*(op->getOutput(0)) == *expectedOutput);
     }
@@ -155,7 +152,6 @@ TEST_CASE("[cpu/operator] ReLU(forward)", "[ReLU][CPU]") {
         op->associateInput(0,input0);
         op->setDataType(DataType::Int32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myReLU->forward();
         REQUIRE(*op->getOutput(0) == *expectedOutput);
     }
diff --git a/unit_tests/operator/Test_ReduceMeanImpl.cpp b/unit_tests/operator/Test_ReduceMeanImpl.cpp
index d9bf68b7..02696227 100644
--- a/unit_tests/operator/Test_ReduceMeanImpl.cpp
+++ b/unit_tests/operator/Test_ReduceMeanImpl.cpp
@@ -54,7 +54,6 @@ TEST_CASE("[cpu/operator] ReduceMean(forward)", "[ReduceMean][CPU]") {
             op->associateInput(0,myInput);
             op->setDataType(DataType::Float32);
             op->setBackend("cpu");
-            op->computeOutputDims();
             myReduceMean->forward();
             op->getOutput(0)->print();
 
@@ -94,7 +93,6 @@ TEST_CASE("[cpu/operator] ReduceMean(forward)", "[ReduceMean][CPU]") {
             op->associateInput(0,myInput);
             op->setDataType(DataType::Float32);
             op->setBackend("cpu");
-            op->computeOutputDims();
             myReduceMean->forward();
             myOutput.print();
             op->getOutput(0)->print();
@@ -131,7 +129,6 @@ TEST_CASE("[cpu/operator] ReduceMean(forward)", "[ReduceMean][CPU]") {
         op->associateInput(0,myInput);
         op->setDataType(DataType::Float32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myReduceMean->forward();
         op->getOutput(0)->print();
 
@@ -165,7 +162,6 @@ TEST_CASE("[cpu/operator] ReduceMean(forward)", "[ReduceMean][CPU]") {
             op->associateInput(0,myInput);
             op->setDataType(DataType::Float32);
             op->setBackend("cpu");
-            op->computeOutputDims();
             myReduceMean->forward();
             op->getOutput(0)->print();
 
@@ -188,7 +184,6 @@ TEST_CASE("[cpu/operator] ReduceMean(forward)", "[ReduceMean][CPU]") {
             op->associateInput(0,myInput);
             op->setDataType(DataType::Float32);
             op->setBackend("cpu");
-            op->computeOutputDims();
             myReduceMean->forward();
             op->getOutput(0)->print();
             // approxEq<float>(*(op->getOutput(0)), *myOutput);
diff --git a/unit_tests/operator/Test_ReshapeImpl.cpp b/unit_tests/operator/Test_ReshapeImpl.cpp
index 1fee1f4c..c57acfdf 100644
--- a/unit_tests/operator/Test_ReshapeImpl.cpp
+++ b/unit_tests/operator/Test_ReshapeImpl.cpp
@@ -37,7 +37,6 @@ TEST_CASE("[cpu/operator] Reshape(forward)") {
         op->associateInput(0, input);
         op->setDataType(DataType::Float32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myReshape->forward();
 
         REQUIRE(*(op->getOutput(0)) == *expectedOutput);
@@ -63,7 +62,6 @@ TEST_CASE("[cpu/operator] Reshape(forward)") {
         op->associateInput(0, input);
         op->setDataType(DataType::Float32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myReshape->forward();
 
         REQUIRE(*(op->getOutput(0)) == *expectedOutput);
diff --git a/unit_tests/operator/Test_SliceImpl.cpp b/unit_tests/operator/Test_SliceImpl.cpp
index 0b5ae682..be0fdb7e 100644
--- a/unit_tests/operator/Test_SliceImpl.cpp
+++ b/unit_tests/operator/Test_SliceImpl.cpp
@@ -32,7 +32,6 @@ TEST_CASE("[cpu/operator] Slice(forward)", "[Slice][CPU]") {
         mySlice->getOperator()->associateInput(0,input0);
         mySlice->getOperator()->setDataType(DataType::Int32);
         mySlice->getOperator()->setBackend("cpu");
-        op->computeOutputDims();
         mySlice->forward();
 
         REQUIRE(*(op->getOutput(0)) == *expectedOutput);
@@ -59,7 +58,6 @@ TEST_CASE("[cpu/operator] Slice(forward)", "[Slice][CPU]") {
         mySlice->getOperator()->associateInput(0,input0);
         mySlice->getOperator()->setDataType(DataType::Int32);
         mySlice->getOperator()->setBackend("cpu");
-        op->computeOutputDims();
         mySlice->forward();
         // mySlice->getOperator()->output(0).print();
         REQUIRE(*(op->getOutput(0)) == *expectedOutput);
@@ -93,7 +91,6 @@ TEST_CASE("[cpu/operator] Slice(forward)", "[Slice][CPU]") {
         mySlice->getOperator()->associateInput(0,input0);
         mySlice->getOperator()->setDataType(DataType::Int32);
         mySlice->getOperator()->setBackend("cpu");
-        op->computeOutputDims();
         mySlice->forward();
         // mySlice->getOperator()->output(0).print();
         REQUIRE(*(op->getOutput(0)) == *expectedOutput);
@@ -156,7 +153,6 @@ TEST_CASE("[cpu/operator] Slice(forward)", "[Slice][CPU]") {
         mySlice->getOperator()->associateInput(0,input0);
         mySlice->getOperator()->setDataType(DataType::Int32);
         mySlice->getOperator()->setBackend("cpu");
-        op->computeOutputDims();
         mySlice->forward();
         // mySlice->getOperator()->output(0).print();
         REQUIRE(*(op->getOutput(0)) == *expectedOutput);
diff --git a/unit_tests/operator/Test_SoftmaxImpl.cpp b/unit_tests/operator/Test_SoftmaxImpl.cpp
index 7459a45e..da6c6f0d 100644
--- a/unit_tests/operator/Test_SoftmaxImpl.cpp
+++ b/unit_tests/operator/Test_SoftmaxImpl.cpp
@@ -44,7 +44,6 @@ TEST_CASE("[cpu/operator] Softmax(forward)", "[Softmax][CPU]") {
         op->associateInput(0,input);
         op->setDataType(DataType::Float32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         mySoftmax->forward();
 
         float* resPtr = static_cast<float*>(op->getOutput(0)->getImpl()->rawPtr());
@@ -113,7 +112,6 @@ TEST_CASE("[cpu/operator] Softmax(forward)", "[Softmax][CPU]") {
         op->associateInput(0,input);
         op->setDataType(DataType::Float32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         mySoftmax->forward();
 
         float* resPtr = static_cast<float*>(op->getOutput(0)->getImpl()->rawPtr());
diff --git a/unit_tests/operator/Test_SqrtImpl.cpp b/unit_tests/operator/Test_SqrtImpl.cpp
index 653ecf0d..d630c66c 100644
--- a/unit_tests/operator/Test_SqrtImpl.cpp
+++ b/unit_tests/operator/Test_SqrtImpl.cpp
@@ -40,7 +40,6 @@ TEST_CASE("[cpu/operator] Sqrt(forward)", "[Sqrt][CPU]") {
         mySqrt->getOperator()->associateInput(0,input);
         mySqrt->getOperator()->setDataType(DataType::Float32);
         mySqrt->getOperator()->setBackend("cpu");
-        op->computeOutputDims();
         mySqrt->forward();
 
         float* resPtr = static_cast<float*>(op->getOutput(0)->getImpl()->rawPtr());
@@ -111,7 +110,6 @@ TEST_CASE("[cpu/operator] Sqrt(forward)", "[Sqrt][CPU]") {
         mySqrt->getOperator()->associateInput(0,input);
         mySqrt->getOperator()->setDataType(DataType::Float32);
         mySqrt->getOperator()->setBackend("cpu");
-        op->computeOutputDims();
         mySqrt->forward();
 
         float* resPtr = static_cast<float*>(op->getOutput(0)->getImpl()->rawPtr());
diff --git a/unit_tests/operator/Test_SubImpl.cpp b/unit_tests/operator/Test_SubImpl.cpp
index f9ba894f..ef818e8d 100644
--- a/unit_tests/operator/Test_SubImpl.cpp
+++ b/unit_tests/operator/Test_SubImpl.cpp
@@ -103,7 +103,6 @@ TEST_CASE("[cpu/operator] Sub", "[Sub][CPU]") {
                 Tres->resize(dims);
                 Tres -> getImpl() -> setRawPtr(result, nb_elements);
 
-                op->computeOutputDims();
                 start = std::chrono::system_clock::now();
                 mySub->forward();
                 end = std::chrono::system_clock::now();
@@ -196,7 +195,6 @@ TEST_CASE("[cpu/operator] Sub", "[Sub][CPU]") {
                 Tres -> getImpl() -> setRawPtr(result, dimsOut[0]*dimsOut[1]*dimsOut[2]*dimsOut[3]);
 
                 // compute result
-                op->computeOutputDims();
                 start = std::chrono::system_clock::now();
                 mySub->forward();
                 end = std::chrono::system_clock::now();
@@ -291,7 +289,6 @@ TEST_CASE("[cpu/operator] Sub", "[Sub][CPU]") {
                 Tres -> getImpl() -> setRawPtr(result, dimsOut[0]*dimsOut[1]*dimsOut[2]*dimsOut[3]);
 
                 // compute result
-                op->computeOutputDims();
                 start = std::chrono::system_clock::now();
                 mySub->forward();
                 end = std::chrono::system_clock::now();
diff --git a/unit_tests/operator/Test_TransposeImpl.cpp b/unit_tests/operator/Test_TransposeImpl.cpp
index d381faad..d1eadb8f 100644
--- a/unit_tests/operator/Test_TransposeImpl.cpp
+++ b/unit_tests/operator/Test_TransposeImpl.cpp
@@ -50,7 +50,6 @@ TEST_CASE("[cpu/operator] Transpose(forward)") {
         op->associateInput(0,input);
         op->setDataType(DataType::Float32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myTranspose->forward();
 
         REQUIRE(*(op->getOutput(0)) == *output);
@@ -119,7 +118,6 @@ TEST_CASE("[cpu/operator] Transpose(forward)") {
         op->associateInput(0,input);
         op->setDataType(DataType::Int32);
         op->setBackend("cpu");
-        op->computeOutputDims();
         myTranspose->forward();
 
         REQUIRE(*(op->getOutput(0)) == *output);
diff --git a/unit_tests/recipies/Test_HorizontalTiling.cpp b/unit_tests/recipies/Test_HorizontalTiling.cpp
index a8a384f6..2c10cdf3 100644
--- a/unit_tests/recipies/Test_HorizontalTiling.cpp
+++ b/unit_tests/recipies/Test_HorizontalTiling.cpp
@@ -163,7 +163,6 @@ TEST_CASE("[core/recipes] Tiling(transformation)", "[Tiling][Recipes]") {
             myReLU->addChild(myConv, 0, 0);
             myConv->getOperator()->setInput(1, myWeights);
             myConv->getOperator()->setInput(2, myBias);
-            std::dynamic_pointer_cast<Conv_Op<2>>(myConv->getOperator())->computeOutputDims();
 
             std::shared_ptr<GraphView> g = std::make_shared<GraphView>();
             g->add({myReLU, myConv});
-- 
GitLab