diff --git a/src/operator/FCImpl.cpp b/src/operator/FCImpl.cpp
index 02c74dc30ac03dc3146e22b2209771f7539c8b8d..bb107a5c8044bd40c874493f275e20d02b7298d2 100644
--- a/src/operator/FCImpl.cpp
+++ b/src/operator/FCImpl.cpp
@@ -61,8 +61,8 @@ void Aidge::FCImpl_cuda::forward_(const Tensor& input0, const Tensor& input1, co
     int lda = k;
     int ldb = k;
     int ldc = n;
-    const T alpha = 1.0;
-    const T beta = 0.0;
+    const T alpha = T(1.0);
+    const T beta = T(0.0);
     CHECK_CUBLAS_STATUS(cublasGemm(CudaContext::cublasHandle(),
                                     CUBLAS_OP_T,
                                     CUBLAS_OP_N,
@@ -80,9 +80,9 @@ void Aidge::FCImpl_cuda::forward_(const Tensor& input0, const Tensor& input1, co
 
     if(!noBias){
         T* onesVector;
-        cudaMalloc((void**)&onesVector, outChannels * sizeof(T));
+        cudaMalloc((void**)&onesVector, m * sizeof(T));
         // Fill the vector with ones
-        std::vector<T> onesVec(m, 1.0f);
+        std::vector<T> onesVec(m, T(1.0));
         CHECK_CUDA_STATUS(cudaMemcpy(onesVector,
                                     &onesVec[0],
                                     m * sizeof(T),