\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\frac{\frac{3 - x}{3}}{y} \cdot \left(1 - x\right)double f(double x, double y) {
double r33017804 = 1.0;
double r33017805 = x;
double r33017806 = r33017804 - r33017805;
double r33017807 = 3.0;
double r33017808 = r33017807 - r33017805;
double r33017809 = r33017806 * r33017808;
double r33017810 = y;
double r33017811 = r33017810 * r33017807;
double r33017812 = r33017809 / r33017811;
return r33017812;
}
double f(double x, double y) {
double r33017813 = 3.0;
double r33017814 = x;
double r33017815 = r33017813 - r33017814;
double r33017816 = r33017815 / r33017813;
double r33017817 = y;
double r33017818 = r33017816 / r33017817;
double r33017819 = 1.0;
double r33017820 = r33017819 - r33017814;
double r33017821 = r33017818 * r33017820;
return r33017821;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.9 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 5.9
rmApplied times-frac0.1
rmApplied div-inv0.2
Applied associate-*l*0.2
Simplified0.1
Final simplification0.1
herbie shell --seed 2019174
(FPCore (x y)
:name "Diagrams.TwoD.Arc:bezierFromSweepQ1 from diagrams-lib-1.3.0.3"
:herbie-target
(* (/ (- 1.0 x) y) (/ (- 3.0 x) 3.0))
(/ (* (- 1.0 x) (- 3.0 x)) (* y 3.0)))