\sqrt{\left(r1 \cdot r1 + r2 \cdot r2\right) - \left(\left(2 \cdot r1\right) \cdot r2\right) \cdot \cos \left(a1 - a2\right)}\sqrt{\left(r1 \cdot r1 + r2 \cdot r2\right) - \left(\left(2 \cdot r1\right) \cdot r2\right) \cdot \cos \left(a1 - a2\right)}double code(double r1, double r2, double a1, double a2) {
return ((double) sqrt(((double) (((double) (((double) (r1 * r1)) + ((double) (r2 * r2)))) - ((double) (((double) (((double) (2.0 * r1)) * r2)) * ((double) cos(((double) (a1 - a2))))))))));
}
double code(double r1, double r2, double a1, double a2) {
return ((double) sqrt(((double) (((double) (((double) (r1 * r1)) + ((double) (r2 * r2)))) - ((double) (((double) (((double) (2.0 * r1)) * r2)) * ((double) cos(((double) (a1 - a2))))))))));
}



Bits error versus r1



Bits error versus r2



Bits error versus a1



Bits error versus a2
Results
Initial program 31.7
Final simplification31.7
herbie shell --seed 2020153
(FPCore (r1 r2 a1 a2)
:name "(sqrt (- (+ (* r1 r1) (* r2 r2)) (* (* (* 2 r1) r2) (cos (- a1 a2)))))"
:precision binary64
(sqrt (- (+ (* r1 r1) (* r2 r2)) (* (* (* 2.0 r1) r2) (cos (- a1 a2))))))