****************************************************************** * YOUR C COMPILER / HARDWARE HAS NON-COMMUTATIVE ARITHMETIC!!! * * * * Your C compiler believes that x*y-y*x can be different from * * zero. This may be the result of inconsistent rounding in * * your computers hardware when multiply-add instructions are * * used. * * * * On some systems, a Multiply-Add combination whose results are * * different from a Multiply and an Add can cause this to happen. * * Results on this system, if it alleges to be IEEE, will differ * * from IEEE systems where arithmetic is commutative. * * * * At least one vendor views this behavior as a feature; if * * commutative arithmetic is important to you, consider using * * compilation options to reduce the amount of optimization or * * eliminate the use of Multiply-Add (this may reduce * * performance but will make it possible to compare computations * * on different systems). * * * ******************************************************************