diff --git a/src/PTQ/Clipping.cpp b/src/PTQ/Clipping.cpp
index df833fa24692a10bc22ff90206aa15660e2b1d95..7dd02b3df7b84559db36b46803700408dbd9c9c6 100644
--- a/src/PTQ/Clipping.cpp
+++ b/src/PTQ/Clipping.cpp
@@ -35,17 +35,10 @@ std::unordered_map<std::shared_ptr<Node>, std::vector<int>> computeHistograms(st
 
     // Setup the histograms ...
 
-    for (std::shared_ptr<Node> node : graphView->getNodes())
+    for (std::pair<std::shared_ptr<Node>, double> pair : valueRanges)
     {
-        bool isInsideRanges = (valueRanges.find(node) != valueRanges.end());
-        if (isInsideRanges)
-        {
-            std::vector<int> histogram;
-            for (int i = 0; i < nbBins; i++)
-                histogram.push_back(0);
-
-            histograms.insert(std::make_pair(node, histogram));
-        }
+        std::vector<int> histogram(nbBins, 0);
+        histograms.insert(std::make_pair(pair.first, histogram));
     }
 
     // Fill the histograms ...
@@ -66,35 +59,32 @@ std::unordered_map<std::shared_ptr<Node>, std::vector<int>> computeHistograms(st
         scheduler.forward(true, {inputTensor});
 
         // Gather values ...
-
-        for (std::shared_ptr<Node> node : graphView->getNodes())
+        
+        for (std::pair<std::shared_ptr<Node>, double> pair : valueRanges)
         {
-            bool isInsideRanges = (valueRanges.find(node) != valueRanges.end());
-            if (isInsideRanges)
-            {
-                double valueRange = valueRanges[node];
+            std::shared_ptr<Node> node = pair.first;
+            double valueRange = pair.second; 
 
-                std::shared_ptr<Operator> nodeOperator = node->getOperator();
-                std::shared_ptr<Tensor> valueTensor = std::static_pointer_cast<Tensor> (nodeOperator->getRawOutput(0));
+            std::shared_ptr<Operator> nodeOperator = node->getOperator();
+            std::shared_ptr<Tensor> valueTensor = std::static_pointer_cast<Tensor> (nodeOperator->getRawOutput(0));
 
-                if (useCuda)
-                    valueTensor->setBackend("cpu");
+            if (useCuda)
+                valueTensor->setBackend("cpu");
 
-                double * castedTensor = static_cast<double *> (valueTensor->getImpl()->rawPtr());
+            double * castedTensor = static_cast<double *> (valueTensor->getImpl()->rawPtr());
 
-                std::vector<int> nodeHistogram = histograms[node];
-                for(std::size_t i = 0; i < valueTensor->size(); i++)
-                {
-                    std::size_t bin = std::round(std::abs(castedTensor[i] / valueRange * nbBins));
-                    bin = std::min(bin, nodeHistogram.size() - 1);
-                    nodeHistogram[bin]++;
-                }
+            std::vector<int> nodeHistogram = histograms[node];
+            for(std::size_t i = 0; i < valueTensor->size(); i++)
+            {
+                std::size_t bin = std::round(std::abs(castedTensor[i] / valueRange * nbBins));
+                bin = std::min(bin, nodeHistogram.size() - 1);
+                nodeHistogram[bin]++;
+            }
 
-                histograms[node] = nodeHistogram;   
+            histograms[node] = nodeHistogram;   
 
-                if (useCuda)
-                    valueTensor->setBackend("cuda");
-            }
+            if (useCuda)
+                valueTensor->setBackend("cuda");
         }
 
         if (useCuda)