Thanks George. That is definitely a helpful article!
Unfortunately, making both of those changes did not help my performance.
I've also tried to switch back and forth between double & float, to see what would happen, but through all the changes my code's convergence has stayed the same.
Instead, could it be a precision problem in my function calls? For example, part of the algorithm goes like this:
x = 0; for (i=0; i<8; i++) { x += fabs( conj(t[i]) * t[i] ); } answ = sqrt( x );
As far as I know, my variables as well as my functions are double precision.
I'm very interested to learn what's going on with this code, I appreciate your help.