\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 r689641 = 1.0;
double r689642 = x;
double r689643 = r689641 - r689642;
double r689644 = 3.0;
double r689645 = r689644 - r689642;
double r689646 = r689643 * r689645;
double r689647 = y;
double r689648 = r689647 * r689644;
double r689649 = r689646 / r689648;
return r689649;
}
double f(double x, double y) {
double r689650 = 1.0;
double r689651 = x;
double r689652 = r689650 - r689651;
double r689653 = 3.0;
double r689654 = r689653 - r689651;
double r689655 = r689654 / r689653;
double r689656 = y;
double r689657 = r689655 / r689656;
double r689658 = r689652 * r689657;
return r689658;
}




Bits error versus x




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