maximum_exp_fx bug : biggest value in vector may not be found
# Basic info 6cf87ab233f4b3a4652d690b3d15610336212d7c maximum_exp_fx bug : biggest value in vector may not be found # Bug description **maximum_exp_fx() is** located in lib_com/tools/fx.c if tmp is ever 0x7FFFFFFF, all other mantissas which saturate when shifted, wont be recognized as bigger: ``` FOR( j = 1; j < lvec_fx; j++ ) { IF( LT_16( tmp, shr_sat( vec_fx[j], sub( exp, exp_vec[j] ) ) ) ) { ind = j; move16(); #ifdef FIX_1981_MAXIMUM_EXP_FX //<< This is the proposed fix scale = sub( norm_s( vec_fx[ind] ), 1 ); tmp = shl( vec_fx[ind], scale ); exp = sub( exp_vec[ind], scale ); #else tmp = vec_fx[j]; move16(); exp = exp_vec[j]; move16(); #endif } } ``` # Ways to reproduce simply set vec_fx\[0\] to 32767 and vec_fx\[1\] to 32000 while setting exp_vec\[0\] to 0 and exp_vec\[1\] to 10 while debugging: Its easy to see that the second value is way bigger 'cause of its exponent. Though, it wont be recognized as the bigger one. <!--Commandline or script--> ```bash ``` <!--- Below are labels that will be added but are not shown in description. This is a template to help fill them. Add further information to the first row and remove and add labels as necessary.-->
issue