\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\left(1 - x\right) \cdot \frac{1}{\frac{y \cdot 3}{3 - x}}double f(double x, double y) {
double r587848 = 1.0;
double r587849 = x;
double r587850 = r587848 - r587849;
double r587851 = 3.0;
double r587852 = r587851 - r587849;
double r587853 = r587850 * r587852;
double r587854 = y;
double r587855 = r587854 * r587851;
double r587856 = r587853 / r587855;
return r587856;
}
double f(double x, double y) {
double r587857 = 1.0;
double r587858 = x;
double r587859 = r587857 - r587858;
double r587860 = 1.0;
double r587861 = y;
double r587862 = 3.0;
double r587863 = r587861 * r587862;
double r587864 = r587862 - r587858;
double r587865 = r587863 / r587864;
double r587866 = r587860 / r587865;
double r587867 = r587859 * r587866;
return r587867;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.9 |
|---|---|
| Target | 0.1 |
| Herbie | 0.3 |
Initial program 5.9
rmApplied associate-/l*0.3
rmApplied div-inv0.3
Final simplification0.3
herbie shell --seed 2020024
(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)))