Some time after IPP 9 update 2, the ippsDiv_32f() function changed (ever so slightly). It does appear to stablize in 2018, 2019 and 2020.
What was the nature of the change ?
Is ippsDiv_32f() anything like ippsDiv_32f_A11(), ippsDiv_32_A21f() or ippsDiv_32_A24f() ? How does it differ ?
regarding _A11,_A_21 and _A24 modes - these are related to the fixed-accuracy implementation. Please refer more details follow this documentation - https://software.intel.com/en-us/ipp-dev-reference-fixed-accuracy-arithmetic-functions
I understand the precision of ippsDiv_32f_A11(), ippsDiv_32f_A21() or ippsDiv_32f_A24(), but, given an IEEE 32-bit float has a mantissa of 23-bit plus an assumed leading 1.0, there can't be anything better than ippsDiv_32f_A24() quality but ippsDiv_32f() returns a different value than any of the A11, A21 or A24 divide routines. In fact, all 4 routines tend to return a different value for the same operation.
The differences I'm seeing in ippsDiv_32f() between the 9.0.2 and the 2020.0 results look much like a change in rounding.
The ippsDiv_32f function in version 9.0.2, when optimizing the AVX-512, worked worse than on the AVX2, therefore, since version 2018, for the sake of performance, the accuracy has been reduced.
First of all, our functions are focused on performance, and not on detailed accuracy.