x + \frac{y \cdot \left(z - t\right)}{a - t}x + \left(y \cdot \frac{\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}\right) \cdot \frac{\sqrt[3]{z - t}}{\sqrt[3]{a - t}}double f(double x, double y, double z, double t, double a) {
double r683687 = x;
double r683688 = y;
double r683689 = z;
double r683690 = t;
double r683691 = r683689 - r683690;
double r683692 = r683688 * r683691;
double r683693 = a;
double r683694 = r683693 - r683690;
double r683695 = r683692 / r683694;
double r683696 = r683687 + r683695;
return r683696;
}
double f(double x, double y, double z, double t, double a) {
double r683697 = x;
double r683698 = y;
double r683699 = z;
double r683700 = t;
double r683701 = r683699 - r683700;
double r683702 = cbrt(r683701);
double r683703 = r683702 * r683702;
double r683704 = a;
double r683705 = r683704 - r683700;
double r683706 = cbrt(r683705);
double r683707 = r683706 * r683706;
double r683708 = r683703 / r683707;
double r683709 = r683698 * r683708;
double r683710 = r683702 / r683706;
double r683711 = r683709 * r683710;
double r683712 = r683697 + r683711;
return r683712;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 10.8 |
|---|---|
| Target | 1.4 |
| Herbie | 0.6 |
Initial program 10.8
rmApplied *-un-lft-identity10.8
Applied times-frac1.6
Simplified1.6
rmApplied add-cube-cbrt2.1
Applied add-cube-cbrt1.9
Applied times-frac1.9
Applied associate-*r*0.6
Final simplification0.6
herbie shell --seed 2020045
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTicks from plot-0.2.3.4, B"
:precision binary64
:herbie-target
(+ x (/ y (/ (- a t) (- z t))))
(+ x (/ (* y (- z t)) (- a t))))