\sqrt{x1 \cdot x2 + y1 \cdot y2}\sqrt{x1 \cdot x2 + y1 \cdot y2}double code(double x1, double x2, double y1, double y2) {
return ((double) sqrt(((double) (((double) (x1 * x2)) + ((double) (y1 * y2))))));
}
double code(double x1, double x2, double y1, double y2) {
return ((double) sqrt(((double) (((double) (x1 * x2)) + ((double) (y1 * y2))))));
}



Bits error versus x1



Bits error versus x2



Bits error versus y1



Bits error versus y2
Results
Initial program 16.0
Final simplification16.0
herbie shell --seed 2020153
(FPCore (x1 x2 y1 y2)
:name "(sqrt (+ (* x1 x2) (* y1 y2)))"
:precision binary64
(sqrt (+ (* x1 x2) (* y1 y2))))