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



Bits error versus a



Bits error versus b



Bits error versus c



Bits error versus ab
Results
Initial program 17.9
Final simplification17.9
herbie shell --seed 2020152
(FPCore (a b c ab)
:name "(- (/ (* (+ (+ a b) c) (- (+ a b) c)) (* 2 ab)) 1)"
:precision binary64
(- (/ (* (+ (+ a b) c) (- (+ a b) c)) (* 2.0 ab)) 1.0))