\frac{a \cdot b - 2 \cdot \left(c \cdot d\right)}{2 \cdot \left(c \cdot d\right)}\frac{a \cdot b}{2 \cdot \left(c \cdot d\right)} + -1double code(double a, double b, double c, double d) {
return ((double) (((double) (((double) (a * b)) - ((double) (2.0 * ((double) (c * d)))))) / ((double) (2.0 * ((double) (c * d))))));
}
double code(double a, double b, double c, double d) {
return ((double) (((double) (((double) (a * b)) / ((double) (2.0 * ((double) (c * d)))))) + -1.0));
}



Bits error versus a



Bits error versus b



Bits error versus c



Bits error versus d
Results
Initial program 15.9
Simplified6.9
Final simplification6.9
herbie shell --seed 2020152
(FPCore (a b c d)
:name "(/ (- (* a b) (* 2 (* c d))) (* 2 (* c d)))"
:precision binary64
(/ (- (* a b) (* 2.0 (* c d))) (* 2.0 (* c d))))