diff --git a/Code/SARPolarimetry/otbPolarimetricSynthesisFunctor.h b/Code/SARPolarimetry/otbPolarimetricSynthesisFunctor.h
index 4698219ccd18184fe99f2b1f082e41da3baf455f..026be27e130cbb0f356f2e4d0a46725e4865b70f 100644
--- a/Code/SARPolarimetry/otbPolarimetricSynthesisFunctor.h
+++ b/Code/SARPolarimetry/otbPolarimetricSynthesisFunctor.h
@@ -66,7 +66,8 @@ public:
     ComplexType tmp;
     double      scalar;
 
-    tmp = vcl_conj(m_Er[0]) * (m_Ei[0] * Shh + m_Ei[1] * Shv) + vcl_conj(m_Er[1]) * (m_Ei[0] * Svh + m_Ei[1] * Svv);
+    tmp =   vcl_conj(m_Er[0]) * (m_Ei[0] * static_cast<ComplexType>(Shh) + m_Ei[1] * static_cast<ComplexType>(Shv)) 
+          + vcl_conj(m_Er[1]) * (m_Ei[0] * static_cast<ComplexType>(Svh) + m_Ei[1] * static_cast<ComplexType>(Svv));
 
     scalar = (double) (vcl_pow(vcl_abs(tmp), 2));