\left(c - a \cdot b\right) \cdot \left(c - a \cdot b\right) - \left(4 \cdot \left(1 - a \cdot a\right)\right) \cdot \left(\left(d - b \cdot b\right) - R \cdot R\right)
\left(c - a \cdot b\right) \cdot \left(c - a \cdot b\right) - \left(4 \cdot \left(1 - a \cdot a\right)\right) \cdot \left(\left(d - b \cdot b\right) - R \cdot R\right)
double code(double c, double a, double b, double d, double R) {
return ((double) (((double) (((double) (c - ((double) (a * b)))) * ((double) (c - ((double) (a * b)))))) - ((double) (((double) (4.0 * ((double) (1.0 - ((double) (a * a)))))) * ((double) (((double) (d - ((double) (b * b)))) - ((double) (R * R))))))));
}
double code(double c, double a, double b, double d, double R) {
return ((double) (((double) (((double) (c - ((double) (a * b)))) * ((double) (c - ((double) (a * b)))))) - ((double) (((double) (4.0 * ((double) (1.0 - ((double) (a * a)))))) * ((double) (((double) (d - ((double) (b * b)))) - ((double) (R * R))))))));
}



Bits error versus c



Bits error versus a



Bits error versus b



Bits error versus d



Bits error versus R
Results
Initial program 2.0
Final simplification2.0
herbie shell --seed 2020152
(FPCore (c a b d R)
:name "(- (* (- c (* a b)) (- c (* a b))) (* (* 4 (- 1 (* a a))) (- (- d (* b b)) (* R R))))"
:precision binary64
(- (* (- c (* a b)) (- c (* a b))) (* (* 4.0 (- 1.0 (* a a))) (- (- d (* b b)) (* R R)))))