a1 + a0 \cdot \frac{a1 \cdot a4 - a2 \cdot a3}{a2 \cdot a2 - a1 \cdot a3}a1 + a0 \cdot \frac{a1 \cdot a4 - a2 \cdot a3}{a2 \cdot a2 - a1 \cdot a3}double code(double a1, double a0, double a4, double a2, double a3) {
return ((double) (a1 + ((double) (a0 * ((double) (((double) (((double) (a1 * a4)) - ((double) (a2 * a3)))) / ((double) (((double) (a2 * a2)) - ((double) (a1 * a3))))))))));
}
double code(double a1, double a0, double a4, double a2, double a3) {
return ((double) (a1 + ((double) (a0 * ((double) (((double) (((double) (a1 * a4)) - ((double) (a2 * a3)))) / ((double) (((double) (a2 * a2)) - ((double) (a1 * a3))))))))));
}



Bits error versus a1



Bits error versus a0



Bits error versus a4



Bits error versus a2



Bits error versus a3
Results
Initial program 17.9
Final simplification17.9
herbie shell --seed 2020153
(FPCore (a1 a0 a4 a2 a3)
:name "(+ a1 (* a0 (/ (- (* a1 a4) (* a2 a3)) (- (* a2 a2) (* a1 a3)))))"
:precision binary64
(+ a1 (* a0 (/ (- (* a1 a4) (* a2 a3)) (- (* a2 a2) (* a1 a3))))))