\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\left(1 - x\right) \cdot \frac{\frac{1}{\frac{3}{3 - x}}}{y}double f(double x, double y) {
double r637455 = 1.0;
double r637456 = x;
double r637457 = r637455 - r637456;
double r637458 = 3.0;
double r637459 = r637458 - r637456;
double r637460 = r637457 * r637459;
double r637461 = y;
double r637462 = r637461 * r637458;
double r637463 = r637460 / r637462;
return r637463;
}
double f(double x, double y) {
double r637464 = 1.0;
double r637465 = x;
double r637466 = r637464 - r637465;
double r637467 = 1.0;
double r637468 = 3.0;
double r637469 = r637468 - r637465;
double r637470 = r637468 / r637469;
double r637471 = r637467 / r637470;
double r637472 = y;
double r637473 = r637471 / r637472;
double r637474 = r637466 * r637473;
return r637474;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.7 |
|---|---|
| Target | 0.1 |
| Herbie | 0.2 |
Initial program 5.7
rmApplied times-frac0.1
rmApplied div-inv0.2
Applied associate-*l*0.2
Simplified0.1
rmApplied clear-num0.2
Final simplification0.2
herbie shell --seed 2020081
(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)))