From 1e320d3bbba522689dd5724bad31635285a44e66 Mon Sep 17 00:00:00 2001
From: Noam ZERAH <noam.zerah@cea.fr>
Date: Wed, 19 Mar 2025 13:03:15 +0000
Subject: [PATCH] Fixing resetInput() with MetaOps

---
 src/PTQ/PTQ.cpp | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/src/PTQ/PTQ.cpp b/src/PTQ/PTQ.cpp
index da98ed6..2875963 100644
--- a/src/PTQ/PTQ.cpp
+++ b/src/PTQ/PTQ.cpp
@@ -20,6 +20,7 @@
 #include "aidge/scheduler/SequentialScheduler.hpp"
 #include "aidge/scheduler/Scheduler.hpp"
 #include "aidge/utils/Log.hpp"
+#include "aidge/operator/MetaOperator.hpp"
 
 #include "aidge/operator/Producer.hpp"
 #include "aidge/operator/Mul.hpp"
@@ -83,12 +84,19 @@ bool isNotQuantized(std::shared_ptr<Node> node)
 }
 void clearGraphViewInputNodes(std::shared_ptr<GraphView> graphView,DataType targetType)
 {
-    for (std::shared_ptr<Aidge::Node> input_node: graphView->inputNodes())
+    for (std::shared_ptr<Aidge::Node> inputNode: graphView->inputNodes())
     {
-        auto cast_node = Cast(targetType);
-        cast_node->addChild(input_node);
-        graphView->add(cast_node);
+        if(expandMetaOp(inputNode)) //Reset Tensor does not work on MetaOps
+        {
+            inputNode = std::static_pointer_cast<MetaOperator_Op>(inputNode->getOperator())->getMicroGraph()->getOrderedNodes()[0];
+        }
+        for (Aidge::IOIndex_t index = inputNode->getFirstFreeDataInput();index < inputNode->getNbFreeDataInputs(); index++)
+        {
+            std::shared_ptr<OperatorTensor> firstOperatorTensor = std::static_pointer_cast<OperatorTensor>(inputNode->getOperator());
+            firstOperatorTensor->resetInput(inputNode->getFirstFreeDataInput());
+        }
     }
+    
 }
 bool checkArchitecture(std::shared_ptr<GraphView> graphView)
 {
-- 
GitLab