\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 r679916 = 1.0;
double r679917 = x;
double r679918 = r679916 - r679917;
double r679919 = 3.0;
double r679920 = r679919 - r679917;
double r679921 = r679918 * r679920;
double r679922 = y;
double r679923 = r679922 * r679919;
double r679924 = r679921 / r679923;
return r679924;
}
double f(double x, double y) {
double r679925 = 1.0;
double r679926 = x;
double r679927 = r679925 - r679926;
double r679928 = 3.0;
double r679929 = r679928 - r679926;
double r679930 = r679929 / r679928;
double r679931 = y;
double r679932 = r679930 / r679931;
double r679933 = r679927 * r679932;
return r679933;
}




Bits error versus x




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