From f0100a635754366bbf648ce5fcbb3ba5dc08b251 Mon Sep 17 00:00:00 2001
From: NAUD Maxence <maxence.naud@cea.fr>
Date: Mon, 27 Nov 2023 13:34:39 +0000
Subject: [PATCH] [Fix] missing include in Scaling_Op kernel

---
 .../operator/ScalingImpl_forward_kernels.hpp  | 22 ++++++++++---------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/include/aidge/backend/cpu/operator/ScalingImpl_forward_kernels.hpp b/include/aidge/backend/cpu/operator/ScalingImpl_forward_kernels.hpp
index 7d31dd5a..1cb7deb0 100644
--- a/include/aidge/backend/cpu/operator/ScalingImpl_forward_kernels.hpp
+++ b/include/aidge/backend/cpu/operator/ScalingImpl_forward_kernels.hpp
@@ -9,11 +9,12 @@
  *
  ********************************************************************************/
 
-#ifndef __AIDGE_CPU_OPERATOR_ScalingIMPL_FORWARD_KERNEL_H__
-#define __AIDGE_CPU_OPERATOR_ScalingIMPL_FORWARD_KERNEL_H__
+#ifndef AIDGE_CPU_OPERATOR_SCALINGIMPL_FORWARD_KERNEL_H
+#define AIDGE_CPU_OPERATOR_SCALINGIMPL_FORWARD_KERNEL_H
 
+#include <cmath>
+#include <cstddef>
 #include "aidge/utils/Registrar.hpp"
-
 #include "aidge/backend/cpu/operator/ScalingImpl.hpp"
 
 //TODO : improve propagate, n2d2 :
@@ -59,12 +60,13 @@ const O& clamp(const O& x, const O& min, const O& max)
 }
 
 template<class O>
-O saturate(O value, std::size_t quantizedNbBits, bool isOutputUnsigned) {
+O saturate(const O value, const std::size_t quantizedNbBits, const bool isOutputUnsigned) {
+    // TODO: no assertions in kernel
     assert(quantizedNbBits > 0);
-    
-    const O min = isOutputUnsigned?0:
+
+    const O min = isOutputUnsigned ? 0 :
                                   -(1ll << (quantizedNbBits - 1ll));
-    const O max = isOutputUnsigned?(1ll << quantizedNbBits) - 1ll:
+    const O max = isOutputUnsigned ? (1ll << quantizedNbBits) - 1ll :
                                    (1ll << (quantizedNbBits - 1ll)) - 1ll;
 
     return clamp(value, min, max);
@@ -79,8 +81,8 @@ void ScalingImpl_cpu_forward_kernel(const Scaling_Op::Attrs& attrs,
     const I* input = static_cast<const I*>(input_);
     O* output = static_cast<O*>(output_);
     const I& scalingFactor = static_cast<const I&>(std::get<0>(attrs));
-    std::size_t quantizedNbBits = static_cast<std::size_t>(std::get<1>(attrs));
-    bool isOutputUnsigned = static_cast<bool>(std::get<2>(attrs));
+    const std::size_t quantizedNbBits = static_cast<std::size_t>(std::get<1>(attrs));
+    const bool isOutputUnsigned = static_cast<bool>(std::get<2>(attrs));
 
     for (std::size_t i = 0; i < inputLenght; ++i) {
         output[i] = input[i] * scalingFactor;
@@ -101,4 +103,4 @@ static Registrar<ScalingImplForward_cpu> registrarScalingImplForward_cpu_Float64
 }  // namespace
 }  // namespace Aidge
 
-#endif /* __AIDGE_CPU_OPERATOR_ScalingIMPL_FORWARD_KERNEL_H__ */
+#endif /* AIDGE_CPU_OPERATOR_SCALINGIMPL_FORWARD_KERNEL_H */
\ No newline at end of file
-- 
GitLab