From 9394130a03439079177cfc4aac2e84479bfd8964 Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 25 Sep 2023 09:55:50 +0200 Subject: [PATCH 1/2] replace sqrt() by sqrtf() --- lib_enc/ivas_mdct_core_enc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib_enc/ivas_mdct_core_enc.c b/lib_enc/ivas_mdct_core_enc.c index 54ab9212ed..f37eeb4351 100644 --- a/lib_enc/ivas_mdct_core_enc.c +++ b/lib_enc/ivas_mdct_core_enc.c @@ -228,7 +228,7 @@ static void kernel_switch_trafo( edxt( inputBuffer, y, l / 2 + m + r / 2, kernelType, FALSE ); - v_multc( y, (float) sqrt( (float) NORM_MDCT_FACTOR / ( l / 2 + m + r / 2 ) ), y, l / 2 + m + r / 2 ); + v_multc( y, sqrtf( (float) NORM_MDCT_FACTOR / ( l / 2 + m + r / 2 ) ), y, l / 2 + m + r / 2 ); return; } @@ -277,7 +277,7 @@ static void kernel_switch_update_transforms( edxt( windowedTimeSignal, sigR, s, kernelType, FALSE ); - v_multc( sigR, (float) sqrt( (float) NORM_MDCT_FACTOR / s ), sigR, s ); + v_multc( sigR, sqrtf( (float) NORM_MDCT_FACTOR / s ), sigR, s ); } else /* 2 TCX5 subframes or 1 TCX10 or 1 transitory TCX20 */ { -- GitLab From 030c8b6af27d01d755d2fe0998831d20d9c5592d Mon Sep 17 00:00:00 2001 From: Markus Multrus Date: Mon, 25 Sep 2023 17:39:24 +0200 Subject: [PATCH 2/2] forgot to wrap into switch --- lib_com/options.h | 1 + lib_enc/ivas_mdct_core_enc.c | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/lib_com/options.h b/lib_com/options.h index 942b28011d..170a27dd17 100644 --- a/lib_com/options.h +++ b/lib_com/options.h @@ -180,6 +180,7 @@ #define FIX_796_MCT_MODE_DIFF_JBM /* FhG: Issue 796: fix differences between JBM and non-JBM fOR MC */ #define LIB_REND_FIX_HRTFPARAMBIN_MEMLEAK /* fix 755 */ #define FIX_803_SCE_MD_HANDLE /* VA: issue 803: Resolve "MD handle needed only for one SCE" */ +#define FIX_818_DOUBLE_PREC_KERNEN_SW /* FhG: Issue 818: Avoid double precision in kernel switching */ /* #################### End BE switches ################################## */ diff --git a/lib_enc/ivas_mdct_core_enc.c b/lib_enc/ivas_mdct_core_enc.c index f37eeb4351..74d8404fb0 100644 --- a/lib_enc/ivas_mdct_core_enc.c +++ b/lib_enc/ivas_mdct_core_enc.c @@ -228,7 +228,11 @@ static void kernel_switch_trafo( edxt( inputBuffer, y, l / 2 + m + r / 2, kernelType, FALSE ); +#ifdef FIX_818_DOUBLE_PREC_KERNEL_SW v_multc( y, sqrtf( (float) NORM_MDCT_FACTOR / ( l / 2 + m + r / 2 ) ), y, l / 2 + m + r / 2 ); +#else + v_multc( y, (float) sqrt( (float) NORM_MDCT_FACTOR / ( l / 2 + m + r / 2 ) ), y, l / 2 + m + r / 2 ); +#endif return; } @@ -277,7 +281,11 @@ static void kernel_switch_update_transforms( edxt( windowedTimeSignal, sigR, s, kernelType, FALSE ); +#ifdef FIX_818_DOUBLE_PREC_KERNEL_SW v_multc( sigR, sqrtf( (float) NORM_MDCT_FACTOR / s ), sigR, s ); +#else + v_multc( sigR, (float) sqrt( (float) NORM_MDCT_FACTOR / s ), sigR, s ); +#endif } else /* 2 TCX5 subframes or 1 TCX10 or 1 transitory TCX20 */ { -- GitLab