\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 r29781330 = 1.0;
double r29781331 = x;
double r29781332 = r29781330 - r29781331;
double r29781333 = 3.0;
double r29781334 = r29781333 - r29781331;
double r29781335 = r29781332 * r29781334;
double r29781336 = y;
double r29781337 = r29781336 * r29781333;
double r29781338 = r29781335 / r29781337;
return r29781338;
}
double f(double x, double y) {
double r29781339 = 3.0;
double r29781340 = x;
double r29781341 = r29781339 - r29781340;
double r29781342 = r29781341 / r29781339;
double r29781343 = y;
double r29781344 = r29781342 / r29781343;
double r29781345 = 1.0;
double r29781346 = r29781345 - r29781340;
double r29781347 = r29781344 * r29781346;
return r29781347;
}




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 2019179 +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)))