\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\left(1 - \frac{x}{3}\right) \cdot \frac{1 - x}{y}double f(double x, double y) {
double r30749595 = 1.0;
double r30749596 = x;
double r30749597 = r30749595 - r30749596;
double r30749598 = 3.0;
double r30749599 = r30749598 - r30749596;
double r30749600 = r30749597 * r30749599;
double r30749601 = y;
double r30749602 = r30749601 * r30749598;
double r30749603 = r30749600 / r30749602;
return r30749603;
}
double f(double x, double y) {
double r30749604 = 1.0;
double r30749605 = x;
double r30749606 = 3.0;
double r30749607 = r30749605 / r30749606;
double r30749608 = r30749604 - r30749607;
double r30749609 = 1.0;
double r30749610 = r30749609 - r30749605;
double r30749611 = y;
double r30749612 = r30749610 / r30749611;
double r30749613 = r30749608 * r30749612;
return r30749613;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.4 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 5.4
rmApplied times-frac0.1
rmApplied div-sub0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019200 +o rules:numerics
(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)))