\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\frac{1 - x}{y} \cdot \left(\left(3 - x\right) \cdot \frac{1}{3}\right)double f(double x, double y) {
double r520391 = 1.0;
double r520392 = x;
double r520393 = r520391 - r520392;
double r520394 = 3.0;
double r520395 = r520394 - r520392;
double r520396 = r520393 * r520395;
double r520397 = y;
double r520398 = r520397 * r520394;
double r520399 = r520396 / r520398;
return r520399;
}
double f(double x, double y) {
double r520400 = 1.0;
double r520401 = x;
double r520402 = r520400 - r520401;
double r520403 = y;
double r520404 = r520402 / r520403;
double r520405 = 3.0;
double r520406 = r520405 - r520401;
double r520407 = 1.0;
double r520408 = r520407 / r520405;
double r520409 = r520406 * r520408;
double r520410 = r520404 * r520409;
return r520410;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.9 |
|---|---|
| Target | 0.1 |
| Herbie | 0.2 |
Initial program 5.9
rmApplied times-frac0.1
rmApplied div-inv0.2
Final simplification0.2
herbie shell --seed 2019322
(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)))