\frac{2 \cdot aA2 - \left(\left(2 \cdot aA0\right) \cdot k\right) \cdot k}{\left(\left(aA0 \cdot k\right) \cdot k + aA1 \cdot k\right) + aA2}\frac{2 \cdot aA2 - \left(\left(2 \cdot aA0\right) \cdot k\right) \cdot k}{\left(\left(aA0 \cdot k\right) \cdot k + aA1 \cdot k\right) + aA2}double code(double aA2, double aA0, double k, double aA1) {
return ((double) (((double) (((double) (2.0 * aA2)) - ((double) (((double) (((double) (2.0 * aA0)) * k)) * k)))) / ((double) (((double) (((double) (((double) (aA0 * k)) * k)) + ((double) (aA1 * k)))) + aA2))));
}
double code(double aA2, double aA0, double k, double aA1) {
return ((double) (((double) (((double) (2.0 * aA2)) - ((double) (((double) (((double) (2.0 * aA0)) * k)) * k)))) / ((double) (((double) (((double) (((double) (aA0 * k)) * k)) + ((double) (aA1 * k)))) + aA2))));
}



Bits error versus aA2



Bits error versus aA0



Bits error versus k



Bits error versus aA1
Results
Initial program 18.1
Final simplification18.1
herbie shell --seed 2020153
(FPCore (aA2 aA0 k aA1)
:name "(/ (- (* 2 aA2) (* (* (* 2 aA0) k) k)) (+ (+ (* (* aA0 k) k) (* aA1 k)) aA2))"
:precision binary64
(/ (- (* 2.0 aA2) (* (* (* 2.0 aA0) k) k)) (+ (+ (* (* aA0 k) k) (* aA1 k)) aA2)))