\sqrt{\left(a - b \cdot \cos x\right) \cdot \left(a - b \cdot \cos x\right) + \left(b \cdot \sin x\right) \cdot \left(b \cdot \sin x\right)}\sqrt{\left(a - b \cdot \cos x\right) \cdot \left(a - b \cdot \cos x\right) + \left(b \cdot \sin x\right) \cdot \left(b \cdot \sin x\right)}double code(double a, double b, double x) {
return ((double) sqrt(((double) (((double) (((double) (a - ((double) (b * ((double) cos(x)))))) * ((double) (a - ((double) (b * ((double) cos(x)))))))) + ((double) (((double) (b * ((double) sin(x)))) * ((double) (b * ((double) sin(x))))))))));
}
double code(double a, double b, double x) {
return ((double) sqrt(((double) (((double) (((double) (a - ((double) (b * ((double) cos(x)))))) * ((double) (a - ((double) (b * ((double) cos(x)))))))) + ((double) (((double) (b * ((double) sin(x)))) * ((double) (b * ((double) sin(x))))))))));
}



Bits error versus a



Bits error versus b



Bits error versus x
Results
Initial program 31.3
Final simplification31.3
herbie shell --seed 2020153
(FPCore (a b x)
:name "(sqrt (+ (* (- a (* b (cos x))) (- a (* b (cos x)))) (* (* b (sin x)) (* b (sin x)))))"
:precision binary64
(sqrt (+ (* (- a (* b (cos x))) (- a (* b (cos x)))) (* (* b (sin x)) (* b (sin x))))))