diff --git a/include/aidge/backend/cuda/operator/GlobalAveragePoolingImpl.hpp b/include/aidge/backend/cuda/operator/GlobalAveragePoolingImpl.hpp
index 79d141324e41f0985478fcf7fd7ddc8225905763..d1cd60260bfd5649e1d7c1baec390dafe17557dd 100644
--- a/include/aidge/backend/cuda/operator/GlobalAveragePoolingImpl.hpp
+++ b/include/aidge/backend/cuda/operator/GlobalAveragePoolingImpl.hpp
@@ -1,5 +1,5 @@
 /********************************************************************************
- * Copyright (c) 2023 CEA-List
+ * Copyright (c) 2024 CEA-List
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License 2.0 which is available at
diff --git a/src/operator/AddImpl.cpp b/src/operator/AddImpl.cpp
index 11e577a685426a9c47cf95d23cc6e74fc6e79fe9..22ff4d850b2f2cce38cb0b3e3bd795149eb3aeb4 100644
--- a/src/operator/AddImpl.cpp
+++ b/src/operator/AddImpl.cpp
@@ -1,5 +1,5 @@
 /********************************************************************************
- * Copyright (c) 2023 CEA-List
+ * Copyright (c) 2024 CEA-List
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License 2.0 which is available at
diff --git a/src/operator/AvgPoolingImpl.cpp b/src/operator/AvgPoolingImpl.cpp
index eb9cc6a1f4412178525a5e6bccd32e94c4413d4d..f1180c1972985411e65dc4076228518cb1485672 100644
--- a/src/operator/AvgPoolingImpl.cpp
+++ b/src/operator/AvgPoolingImpl.cpp
@@ -45,18 +45,11 @@ void Aidge::AvgPoolingImpl_cuda<DIM>::forward() {
                                         &strides[0]));
     }
 
-    switch(std::static_pointer_cast<Tensor>(mOp.getRawOutput(0))->dataType()) {
-        case DataType::Float64:
-            forward_<double>(input);
-            break;
-        case DataType::Float32:
-            forward_<float>(input);
-            break;
-        case DataType::Float16:
-            forward_<half>(input);
-            break;
-        default:
-            AIDGE_THROW_OR_ABORT(std::runtime_error, "Data type is not supported by Backend Cuda");
+    if (op.getOutput(0)->dataType() == DataType::Float64) {
+        forward_<double>(input);
+    }
+    else {
+        forward_<float>(input);
     }
 }
 
diff --git a/src/operator/BatchNormImpl.cpp b/src/operator/BatchNormImpl.cpp
index eb90baaf1df7dfca0f49fd69438a0ec2f30cf864..c19415172ea3e9408784ae73448b7533bfe96e6f 100644
--- a/src/operator/BatchNormImpl.cpp
+++ b/src/operator/BatchNormImpl.cpp
@@ -1,5 +1,5 @@
 /********************************************************************************
- * Copyright (c) 2023 CEA-List
+ * Copyright (c) 2024 CEA-List
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License 2.0 which is available at
diff --git a/src/operator/GlobalAveragePoolingImpl.cpp b/src/operator/GlobalAveragePoolingImpl.cpp
index ca41b41f55accb6b7da9aa0c35358298de94faab..1192b63c194df98dfb26f0895aa17b2dfc61f0e1 100644
--- a/src/operator/GlobalAveragePoolingImpl.cpp
+++ b/src/operator/GlobalAveragePoolingImpl.cpp
@@ -1,5 +1,5 @@
 /********************************************************************************
- * Copyright (c) 2023 CEA-List
+ * Copyright (c) 2024 CEA-List
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License 2.0 which is available at
@@ -39,18 +39,11 @@ void Aidge::GlobalAveragePoolingImpl_cuda::forward() {
         );
     }
 
-    switch(std::static_pointer_cast<Tensor>(mOp.getRawOutput(0))->dataType()) {
-        case DataType::Float64:
-            forward_<double>(input);
-            break;
-        case DataType::Float32:
-            forward_<float>(input);
-            break;
-        case DataType::Float16:
-            forward_<half>(input);
-            break;
-        default:
-            AIDGE_THROW_OR_ABORT(std::runtime_error, "Data type is not supported by Backend Cuda");
+    if (op.getOutput(0)->dataType() == DataType::Float64) {
+        forward_<double>(input);
+    }
+    else {
+        forward_<float>(input);
     }
 }
 
diff --git a/src/operator/MaxPoolingImpl.cpp b/src/operator/MaxPoolingImpl.cpp
index b8d7c81948bd898b7cc4e2f3bead9c498175e2c1..3054bb1a39dd55df5ae5f43f09f41a12360bd7de 100644
--- a/src/operator/MaxPoolingImpl.cpp
+++ b/src/operator/MaxPoolingImpl.cpp
@@ -45,18 +45,11 @@ void Aidge::MaxPoolingImpl_cuda<DIM>::forward() {
                                         &strides[0]));
     }
 
-    switch(std::static_pointer_cast<Tensor>(mOp.getRawOutput(0))->dataType()) {
-        case DataType::Float64:
-            forward_<double>(input);
-            break;
-        case DataType::Float32:
-            forward_<float>(input);
-            break;
-        case DataType::Float16:
-            forward_<half>(input);
-            break;
-        default:
-            AIDGE_THROW_OR_ABORT(std::runtime_error, "Data type is not supported by Backend Cuda");
+    if (op.getOutput(0)->dataType() == DataType::Float64) {
+        forward_<double>(input);
+    }
+    else {
+        forward_<float>(input);
     }
 }
 
diff --git a/src/operator/ReLUImpl.cpp b/src/operator/ReLUImpl.cpp
index 2ebd6b276e02000bdefb22fe8d2373255a1a5c2c..6dd211e75374986ead03195e3175d84c6d596cc4 100644
--- a/src/operator/ReLUImpl.cpp
+++ b/src/operator/ReLUImpl.cpp
@@ -1,5 +1,5 @@
 /********************************************************************************
- * Copyright (c) 2023 CEA-List
+ * Copyright (c) 2024 CEA-List
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License 2.0 which is available at
@@ -37,18 +37,11 @@ void Aidge::ReLUImpl_cuda::forward() {
 		#endif
     }
 
-    switch(std::static_pointer_cast<Tensor>(mOp.getRawOutput(0))->dataType()) {
-        case DataType::Float64:
-            forward_<double>(input);
-            break;
-        case DataType::Float32:
-            forward_<float>(input);
-            break;
-        case DataType::Float16:
-            forward_<half>(input);
-            break;
-        default:
-            AIDGE_THROW_OR_ABORT(std::runtime_error, "Data type is not supported by Backend Cuda");
+    if (op.getOutput(0)->dataType() == DataType::Float64) {
+        forward_<double>(input);
+    }
+    else {
+        forward_<float>(input);
     }
 }
 
diff --git a/src/operator/ReshapeImpl.cpp b/src/operator/ReshapeImpl.cpp
index bd05bd24a48e7d7c9a154a092b1b2ca6647d09f2..59f1cfdc9368483c27fafdbb69df4ff12b784924 100644
--- a/src/operator/ReshapeImpl.cpp
+++ b/src/operator/ReshapeImpl.cpp
@@ -1,5 +1,5 @@
 /********************************************************************************
- * Copyright (c) 2023 CEA-List
+ * Copyright (c) 2024 CEA-List
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License 2.0 which is available at
@@ -15,12 +15,11 @@
 #include <thread>  // std::this_thread::sleep_for
 #include <vector>
 
-#include "aidge/utils/Types.h"
-#include "aidge/operator/Reshape.hpp"
-
 #include "aidge/backend/cuda/data/TensorImpl.hpp"
 #include "aidge/backend/cuda/operator/ReshapeImpl.hpp"
 #include "aidge/backend/cuda/utils/CudaContext.hpp"
+#include "aidge/operator/Reshape.hpp"
+#include "aidge/utils/Types.h"
 
 void Aidge::ReshapeImpl_cuda::forward() {
     const OperatorTensor& op = static_cast<const OperatorTensor&>(mOp);