diff --git a/silk/float/energy_FLP.c b/silk/float/energy_FLP.c
index 86767da35ee24e444afbbbaae1093c0cc1e5febf..f43143d5f1fa35ea418b7aea75ede5ebe97c9c29 100644
--- a/silk/float/energy_FLP.c
+++ b/silk/float/energy_FLP.c
@@ -41,18 +41,18 @@ double silk_energy_FLP(
     double   result;
 
     /* 4x unrolled loop */
-    result = 0.0f;
+    result = 0.0;
     dataSize4 = dataSize & 0xFFFC;
     for( i = 0; i < dataSize4; i += 4 ) {
-        result += data[ i + 0 ] * data[ i + 0 ] +
-                  data[ i + 1 ] * data[ i + 1 ] +
-                  data[ i + 2 ] * data[ i + 2 ] +
-                  data[ i + 3 ] * data[ i + 3 ];
+        result += data[ i + 0 ] * (double)data[ i + 0 ] +
+                  data[ i + 1 ] * (double)data[ i + 1 ] +
+                  data[ i + 2 ] * (double)data[ i + 2 ] +
+                  data[ i + 3 ] * (double)data[ i + 3 ];
     }
 
     /* add any remaining products */
     for( ; i < dataSize; i++ ) {
-        result += data[ i ] * data[ i ];
+        result += data[ i ] * (double)data[ i ];
     }
 
     silk_assert( result >= 0.0 );
diff --git a/silk/float/pitch_analysis_core_FLP.c b/silk/float/pitch_analysis_core_FLP.c
index a90859b44336c074ceee7e6f168a76c65260989e..8e661590af4ebe0554507805a0d739ccc11eb70d 100644
--- a/silk/float/pitch_analysis_core_FLP.c
+++ b/silk/float/pitch_analysis_core_FLP.c
@@ -610,11 +610,11 @@ calculated recursively.
         lag_diff = ( matrix_ptr( Lag_range_ptr, k, 1, 2 ) -  matrix_ptr( Lag_range_ptr, k, 0, 2 ) + 1 );
         for( i = 1; i < lag_diff; i++ ) {
             /* remove part outside new window */
-            energy -= basis_ptr[sf_length - i] * basis_ptr[sf_length - i];
+            energy -= basis_ptr[sf_length - i] * (double)basis_ptr[sf_length - i];
             silk_assert( energy >= 0.0 );
 
             /* add part that comes into window */
-            energy += basis_ptr[ -i ] * basis_ptr[ -i ];
+            energy += basis_ptr[ -i ] * (double)basis_ptr[ -i ];
             silk_assert( energy >= 0.0 );
             silk_assert( lag_counter < SCRATCH_SIZE );
             scratch_mem[lag_counter] = (silk_float)energy;