\frac{\left(\left(a \cdot e - b\right) - b\right) \cdot \left(\left(a \cdot e - b\right) - b\right) - \left(\left(a - b\right) - b\right) \cdot \left(\left(a - b\right) - b\right)}{mrs + mrs} + \left(b \cdot b\right) \cdot dcf\frac{\left(\left(a \cdot e - b\right) - b\right) \cdot \left(\left(a \cdot e - b\right) - b\right) - \left(\left(a - b\right) - b\right) \cdot \left(\left(a - b\right) - b\right)}{mrs + mrs} + \left(b \cdot b\right) \cdot dcfdouble code(double a, double e, double b, double mrs, double dcf) {
return ((double) (((double) (((double) (((double) (((double) (((double) (((double) (a * e)) - b)) - b)) * ((double) (((double) (((double) (a * e)) - b)) - b)))) - ((double) (((double) (((double) (a - b)) - b)) * ((double) (((double) (a - b)) - b)))))) / ((double) (mrs + mrs)))) + ((double) (((double) (b * b)) * dcf))));
}
double code(double a, double e, double b, double mrs, double dcf) {
return ((double) (((double) (((double) (((double) (((double) (((double) (((double) (a * e)) - b)) - b)) * ((double) (((double) (((double) (a * e)) - b)) - b)))) - ((double) (((double) (((double) (a - b)) - b)) * ((double) (((double) (a - b)) - b)))))) / ((double) (mrs + mrs)))) + ((double) (((double) (b * b)) * dcf))));
}



Bits error versus a



Bits error versus e



Bits error versus b



Bits error versus mrs



Bits error versus dcf
Results
Initial program 19.5
Final simplification19.5
herbie shell --seed 2020153
(FPCore (a e b mrs dcf)
:name "(+ (/ (- (* (- (- (* a e) b) b) (- (- (* a e) b) b)) (* (- (- a b) b) (- (- a b) b))) (+ mrs mrs)) (* (* b b) dcf))"
:precision binary64
(+ (/ (- (* (- (- (* a e) b) b) (- (- (* a e) b) b)) (* (- (- a b) b) (- (- a b) b))) (+ mrs mrs)) (* (* b b) dcf)))