\frac{\left(\left(aAD0 \cdot k\right) \cdot k - aAD1 \cdot k\right) + aAD2}{\left(\left(aAD0 \cdot k\right) \cdot k + aAD1 \cdot k\right) + aAD2}\frac{\left(\left(aAD0 \cdot k\right) \cdot k - aAD1 \cdot k\right) + aAD2}{\left(\left(aAD0 \cdot k\right) \cdot k + aAD1 \cdot k\right) + aAD2}double code(double aAD0, double k, double aAD1, double aAD2) {
return ((double) (((double) (((double) (((double) (((double) (aAD0 * k)) * k)) - ((double) (aAD1 * k)))) + aAD2)) / ((double) (((double) (((double) (((double) (aAD0 * k)) * k)) + ((double) (aAD1 * k)))) + aAD2))));
}
double code(double aAD0, double k, double aAD1, double aAD2) {
return ((double) (((double) (((double) (((double) (((double) (aAD0 * k)) * k)) - ((double) (aAD1 * k)))) + aAD2)) / ((double) (((double) (((double) (((double) (aAD0 * k)) * k)) + ((double) (aAD1 * k)))) + aAD2))));
}



Bits error versus aAD0



Bits error versus k



Bits error versus aAD1



Bits error versus aAD2
Results
Initial program 18.6
Final simplification18.6
herbie shell --seed 2020152
(FPCore (aAD0 k aAD1 aAD2)
:name "(/ (+ (- (* (* aAD0 k) k) (* aAD1 k)) aAD2) (+ (+ (* (* aAD0 k) k) (* aAD1 k)) aAD2))"
:precision binary64
(/ (+ (- (* (* aAD0 k) k) (* aAD1 k)) aAD2) (+ (+ (* (* aAD0 k) k) (* aAD1 k)) aAD2)))