\frac{a - \left(\left(\left(b1 \cdot b2 + c1 \cdot c2\right) + d1 \cdot d2\right) + e1 \cdot e2\right)}{\ell}\frac{a - \left(\left(\left(b1 \cdot b2 + c1 \cdot c2\right) + d1 \cdot d2\right) + e1 \cdot e2\right)}{\ell}double code(double a, double b1, double b2, double c1, double c2, double d1, double d2, double e1, double e2, double l) {
return ((double) (((double) (a - ((double) (((double) (((double) (((double) (b1 * b2)) + ((double) (c1 * c2)))) + ((double) (d1 * d2)))) + ((double) (e1 * e2)))))) / l));
}
double code(double a, double b1, double b2, double c1, double c2, double d1, double d2, double e1, double e2, double l) {
return ((double) (((double) (a - ((double) (((double) (((double) (((double) (b1 * b2)) + ((double) (c1 * c2)))) + ((double) (d1 * d2)))) + ((double) (e1 * e2)))))) / l));
}



Bits error versus a



Bits error versus b1



Bits error versus b2



Bits error versus c1



Bits error versus c2



Bits error versus d1



Bits error versus d2



Bits error versus e1



Bits error versus e2



Bits error versus l
Results
Initial program 16.0
Final simplification16.0
herbie shell --seed 2020153
(FPCore (a b1 b2 c1 c2 d1 d2 e1 e2 l)
:name "(/ (- a (+ (+ (+ (* b1 b2) (* c1 c2)) (* d1 d2)) (* e1 e2))) l)"
:precision binary64
(/ (- a (+ (+ (+ (* b1 b2) (* c1 c2)) (* d1 d2)) (* e1 e2))) l))