\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 r633512 = 1.0;
double r633513 = x;
double r633514 = r633512 - r633513;
double r633515 = 3.0;
double r633516 = r633515 - r633513;
double r633517 = r633514 * r633516;
double r633518 = y;
double r633519 = r633518 * r633515;
double r633520 = r633517 / r633519;
return r633520;
}
double f(double x, double y) {
double r633521 = 1.0;
double r633522 = x;
double r633523 = r633521 - r633522;
double r633524 = 3.0;
double r633525 = r633524 - r633522;
double r633526 = r633525 / r633524;
double r633527 = y;
double r633528 = r633526 / r633527;
double r633529 = r633523 * r633528;
return r633529;
}




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