\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\frac{-x}{\frac{3}{3 - x} \cdot y} + \frac{1}{\frac{3}{3 - x} \cdot y}double f(double x, double y) {
double r545408 = 1.0;
double r545409 = x;
double r545410 = r545408 - r545409;
double r545411 = 3.0;
double r545412 = r545411 - r545409;
double r545413 = r545410 * r545412;
double r545414 = y;
double r545415 = r545414 * r545411;
double r545416 = r545413 / r545415;
return r545416;
}
double f(double x, double y) {
double r545417 = x;
double r545418 = -r545417;
double r545419 = 3.0;
double r545420 = r545419 - r545417;
double r545421 = r545419 / r545420;
double r545422 = y;
double r545423 = r545421 * r545422;
double r545424 = r545418 / r545423;
double r545425 = 1.0;
double r545426 = r545425 / r545423;
double r545427 = r545424 + r545426;
return r545427;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.8 |
|---|---|
| Target | 0.1 |
| Herbie | 0.1 |
Initial program 5.8
Simplified0.3
rmApplied clear-num0.3
Simplified0.2
rmApplied sub-neg0.2
Applied distribute-lft-in0.2
Simplified0.2
Simplified0.1
Final simplification0.1
herbie shell --seed 2019195
(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)))