\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\left(1 - x\right) \cdot \frac{\frac{3 - x}{3}}{y}double f(double x, double y) {
double r654711 = 1.0;
double r654712 = x;
double r654713 = r654711 - r654712;
double r654714 = 3.0;
double r654715 = r654714 - r654712;
double r654716 = r654713 * r654715;
double r654717 = y;
double r654718 = r654717 * r654714;
double r654719 = r654716 / r654718;
return r654719;
}
double f(double x, double y) {
double r654720 = 1.0;
double r654721 = x;
double r654722 = r654720 - r654721;
double r654723 = 3.0;
double r654724 = r654723 - r654721;
double r654725 = r654724 / r654723;
double r654726 = y;
double r654727 = r654725 / r654726;
double r654728 = r654722 * r654727;
return r654728;
}




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 2020083
(FPCore (x y)
:name "Diagrams.TwoD.Arc:bezierFromSweepQ1 from diagrams-lib-1.3.0.3"
:precision binary64
:herbie-target
(* (/ (- 1 x) y) (/ (- 3 x) 3))
(/ (* (- 1 x) (- 3 x)) (* y 3)))