x + y \cdot \frac{z - t}{z - a}x + \left(\left(z - t\right) \cdot \frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{z - a} \cdot \sqrt[3]{z - a}}\right) \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{z - a}}double f(double x, double y, double z, double t, double a) {
double r364595 = x;
double r364596 = y;
double r364597 = z;
double r364598 = t;
double r364599 = r364597 - r364598;
double r364600 = a;
double r364601 = r364597 - r364600;
double r364602 = r364599 / r364601;
double r364603 = r364596 * r364602;
double r364604 = r364595 + r364603;
return r364604;
}
double f(double x, double y, double z, double t, double a) {
double r364605 = x;
double r364606 = z;
double r364607 = t;
double r364608 = r364606 - r364607;
double r364609 = y;
double r364610 = cbrt(r364609);
double r364611 = r364610 * r364610;
double r364612 = a;
double r364613 = r364606 - r364612;
double r364614 = cbrt(r364613);
double r364615 = r364614 * r364614;
double r364616 = r364611 / r364615;
double r364617 = r364608 * r364616;
double r364618 = r364610 / r364614;
double r364619 = r364617 * r364618;
double r364620 = r364605 + r364619;
return r364620;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 1.4 |
|---|---|
| Target | 1.3 |
| Herbie | 1.0 |
Initial program 1.4
rmApplied *-un-lft-identity1.4
Applied associate-*l*1.4
Simplified3.0
rmApplied add-cube-cbrt3.4
Applied add-cube-cbrt3.6
Applied times-frac3.6
Applied associate-*r*1.0
Final simplification1.0
herbie shell --seed 2019303
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisLine from plot-0.2.3.4, A"
:precision binary64
:herbie-target
(+ x (/ y (/ (- z a) (- z t))))
(+ x (* y (/ (- z t) (- z a)))))