\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\frac{\frac{1 - x}{y}}{\frac{3}{3 - x}}double f(double x, double y) {
double r530235 = 1.0;
double r530236 = x;
double r530237 = r530235 - r530236;
double r530238 = 3.0;
double r530239 = r530238 - r530236;
double r530240 = r530237 * r530239;
double r530241 = y;
double r530242 = r530241 * r530238;
double r530243 = r530240 / r530242;
return r530243;
}
double f(double x, double y) {
double r530244 = 1.0;
double r530245 = x;
double r530246 = r530244 - r530245;
double r530247 = y;
double r530248 = r530246 / r530247;
double r530249 = 3.0;
double r530250 = r530249 - r530245;
double r530251 = r530249 / r530250;
double r530252 = r530248 / r530251;
return r530252;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.9 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 5.9
rmApplied associate-/l*0.3
rmApplied *-un-lft-identity0.3
Applied times-frac0.1
Applied associate-/r*0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019212 +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)))