\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\left(1 - x\right) \cdot \frac{1 - \frac{x}{3}}{y}double f(double x, double y) {
double r411705 = 1.0;
double r411706 = x;
double r411707 = r411705 - r411706;
double r411708 = 3.0;
double r411709 = r411708 - r411706;
double r411710 = r411707 * r411709;
double r411711 = y;
double r411712 = r411711 * r411708;
double r411713 = r411710 / r411712;
return r411713;
}
double f(double x, double y) {
double r411714 = 1.0;
double r411715 = x;
double r411716 = r411714 - r411715;
double r411717 = 1.0;
double r411718 = 3.0;
double r411719 = r411715 / r411718;
double r411720 = r411717 - r411719;
double r411721 = y;
double r411722 = r411720 / r411721;
double r411723 = r411716 * r411722;
return r411723;
}




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 2019347 +o rules:numerics
(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)))