\frac{\left(1 - x\right) \cdot \left(3 - x\right)}{y \cdot 3}\frac{1 - x}{y} \cdot \left(\frac{3 - x}{\sqrt[3]{3}} \cdot \frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}}\right)double f(double x, double y) {
double r34427456 = 1.0;
double r34427457 = x;
double r34427458 = r34427456 - r34427457;
double r34427459 = 3.0;
double r34427460 = r34427459 - r34427457;
double r34427461 = r34427458 * r34427460;
double r34427462 = y;
double r34427463 = r34427462 * r34427459;
double r34427464 = r34427461 / r34427463;
return r34427464;
}
double f(double x, double y) {
double r34427465 = 1.0;
double r34427466 = x;
double r34427467 = r34427465 - r34427466;
double r34427468 = y;
double r34427469 = r34427467 / r34427468;
double r34427470 = 3.0;
double r34427471 = r34427470 - r34427466;
double r34427472 = cbrt(r34427470);
double r34427473 = r34427471 / r34427472;
double r34427474 = 1.0;
double r34427475 = r34427472 * r34427472;
double r34427476 = r34427474 / r34427475;
double r34427477 = r34427473 * r34427476;
double r34427478 = r34427469 * r34427477;
return r34427478;
}




Bits error versus x




Bits error versus y
Results
| Original | 5.7 |
|---|---|
| Target | 0.1 |
| Herbie | 0.2 |
Initial program 5.7
rmApplied times-frac0.1
rmApplied add-cube-cbrt0.1
Applied *-un-lft-identity0.1
Applied times-frac0.2
Final simplification0.2
herbie shell --seed 2019170
(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)))