I am programming an application to calculate some geometric transformations, and while I was testing the program, I based something strange: I ran the test on two different machines, a Z400 workstation with an Intel® Xeon® workstation W3550 and a Z800 with an Intel® Xeon® processor X5560 , and I got different results for one operation:
double x = 24.169408798217777 * sin(0.59420877837561048) / sin(0.97658754841928608)
With Z400, I got x=16.330508228047432
While Z800 throws this value x=16.330508228047435
The value is different from the last digit, and I do a lot of calculations with this value, so this leads to inconvenience.
I tried to use sinl in order to get additional refueling, but I got the same value for each workstation. What is wrong with it? How can i fix this?
source share