\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\frac{\frac{3 - x}{3}}{y} \cdot \left(1 - x\right)double f(double x, double y) {
double r33559106 = 1.0;
double r33559107 = x;
double r33559108 = r33559106 - r33559107;
double r33559109 = 3.0;
double r33559110 = r33559109 - r33559107;
double r33559111 = r33559108 * r33559110;
double r33559112 = y;
double r33559113 = r33559112 * r33559109;
double r33559114 = r33559111 / r33559113;
return r33559114;
}
double f(double x, double y) {
double r33559115 = 3.0;
double r33559116 = x;
double r33559117 = r33559115 - r33559116;
double r33559118 = r33559117 / r33559115;
double r33559119 = y;
double r33559120 = r33559118 / r33559119;
double r33559121 = 1.0;
double r33559122 = r33559121 - r33559116;
double r33559123 = r33559120 * r33559122;
return r33559123;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.8 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 5.8
rmApplied times-frac0.1
rmApplied div-inv0.2
rmApplied associate-*l*0.2
Simplified0.1
Final simplification0.1
herbie shell --seed 2019169 +o rules:numerics
(FPCore (x y)
:name "Diagrams.TwoD.Arc:bezierFromSweepQ1 from diagrams-lib-1.3.0.3"
:herbie-target
(* (/ (- 1.0 x) y) (/ (- 3.0 x) 3.0))
(/ (* (- 1.0 x) (- 3.0 x)) (* y 3.0)))