Now I have an unexpected question...CodeAnalyst is reporting FP exceptions here:

float a[2], b;

....

{math stuff to calculate b}

....

a[1] = b;

Is this because array values must be exactly 32 bits and b may be represented at higher precision due to denormalized approximations, so it is being truncated to fit into the array? Or is there another possible explanation? I'm quite confused why an equality assignment would cause a floating point exception.

While waiting for any response, I did some testing, limiting input to the equality assignment into a normalized range (rather than afterwards as before) and the FP exceptions went away.

I was just a little surprised that a non-algebraic operation would cause FP exceptions. CodeAnalyst helped me work it out, thank you very much again!