\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\frac{1 - x}{y \cdot \frac{3}{3 - x}}double f(double x, double y) {
double r686908 = 1.0;
double r686909 = x;
double r686910 = r686908 - r686909;
double r686911 = 3.0;
double r686912 = r686911 - r686909;
double r686913 = r686910 * r686912;
double r686914 = y;
double r686915 = r686914 * r686911;
double r686916 = r686913 / r686915;
return r686916;
}
double f(double x, double y) {
double r686917 = 1.0;
double r686918 = x;
double r686919 = r686917 - r686918;
double r686920 = y;
double r686921 = 3.0;
double r686922 = r686921 - r686918;
double r686923 = r686921 / r686922;
double r686924 = r686920 * r686923;
double r686925 = r686919 / r686924;
return r686925;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.6 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 5.6
rmApplied associate-/l*0.3
Simplified0.1
Final simplification0.1
herbie shell --seed 2020045 +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)))