diff --git a/lib_com/ivas_prot.h b/lib_com/ivas_prot.h index c07df11308e97bd13b2ce49a7744f77cb8dcbfa1..96ff286bfe6afa6865af036e29b5292b62a76109 100755 --- a/lib_com/ivas_prot.h +++ b/lib_com/ivas_prot.h @@ -4710,11 +4710,19 @@ void ivas_td_decorr_APD_iir_filter( out1_re = ( in1_re * in2_re ) - ( in1_im * in2_im ); MAC(1); MULT(1); \ out1_im = ( in1_re * in2_im ) + ( in2_re * in1_im ); MAC(1); MULT(1); +#ifdef FIX_820_DOUBLE_PREC_MACROS +#define IVAS_CALCULATE_ABS( re, im, out ) \ + out = sqrtf( ( re * re ) + ( im * im ) ); MAC(1); MULT(1); SQRT(1); + +#define IVAS_CALCULATE_RABS( re, out ) \ + out = sqrtf( re * re ); MULT(1); SQRT(1); +#else #define IVAS_CALCULATE_ABS( re, im, out ) \ out = (float) sqrt( ( re * re ) + ( im * im ) ); MAC(1); MULT(1); SQRT(1); #define IVAS_CALCULATE_RABS( re, out ) \ out = (float) sqrt( re * re ); MULT(1); SQRT(1); +#endif #define IVAS_CALCULATE_SQ_ABS( re, im, out ) \ out = (float) ( ( re * re ) + ( im * im ) ); MAC(1); MULT(1); diff --git a/lib_com/options.h b/lib_com/options.h index 7d55c32792597473ab667e8581f611d27fe724f9..0d3ff752a406dde3ce3c610f4cd29a80da6e54b1 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -153,6 +153,7 @@ #define FIX_817_DOUBLE_PREC_REND_MD /* Eri: Issue 817: Avoid double precision in renderer metadata module */ +#define FIX_820_DOUBLE_PREC_MACROS /* VA: issue 820: Double precision arithmetic in IVAS_CALCULATE_ABS() */ #define FIX_854_ARRAY_SIZE_MISMATCH /* VA: issue 854: correct the mismatch between definition and declaration of `ivas_core_dec() */ #define FIX_785_REMOVE_DEAD_CODE /* VA: issue 785: remove dead code */ #define FIX_852_FIX_HANDLE_DEREF /* VA: issue 852: Fix missing handle dereferencing of hIsmMetadaData in ivas_ism_metadata_close() */