There do tend to be some rounding errors with F32 (float). What did you do in straight C code? Were the values F32 (float) or F64 (double)? Can you show the C code?
The code looks to be using the single precision as computation. The faction part will have 23 bit:
so, it typically have to have 6 to 7 significant digits (1e-6 to 1e-7 for normalized data)
As peter suggest, this may cause by the rounding error, which is expected in float point computation. For example, it the code keeps only 6 significant digits.
1e3 *( 1e-3 - 1e-3/1e4) = 1.0, (1e-3 - 1e-3/1e-4) = 1.0000001, rounds to 1.00
while its value should be: 0.9999
The following page has more discussion on this topic:
For the difference in ippsDivC_32f, besides the code, could you please also attach the input data? so the function owner can have further check if this result is fine.