\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\frac{1 - x}{y} \cdot \left(\left(3 - x\right) \cdot \frac{1}{3}\right)double f(double x, double y) {
double r596597 = 1.0;
double r596598 = x;
double r596599 = r596597 - r596598;
double r596600 = 3.0;
double r596601 = r596600 - r596598;
double r596602 = r596599 * r596601;
double r596603 = y;
double r596604 = r596603 * r596600;
double r596605 = r596602 / r596604;
return r596605;
}
double f(double x, double y) {
double r596606 = 1.0;
double r596607 = x;
double r596608 = r596606 - r596607;
double r596609 = y;
double r596610 = r596608 / r596609;
double r596611 = 3.0;
double r596612 = r596611 - r596607;
double r596613 = 1.0;
double r596614 = r596613 / r596611;
double r596615 = r596612 * r596614;
double r596616 = r596610 * r596615;
return r596616;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.9 |
|---|---|
| Target | 0.1 |
| Herbie | 0.2 |
Initial program 5.9
rmApplied times-frac0.1
rmApplied div-inv0.2
Final simplification0.2
herbie shell --seed 2019322
(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)))