x + \frac{y \cdot \left(z - t\right)}{a - t}x + \frac{\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}} \cdot \frac{y}{\frac{\sqrt[3]{a - t}}{\sqrt[3]{z - t}}}double f(double x, double y, double z, double t, double a) {
double r568496 = x;
double r568497 = y;
double r568498 = z;
double r568499 = t;
double r568500 = r568498 - r568499;
double r568501 = r568497 * r568500;
double r568502 = a;
double r568503 = r568502 - r568499;
double r568504 = r568501 / r568503;
double r568505 = r568496 + r568504;
return r568505;
}
double f(double x, double y, double z, double t, double a) {
double r568506 = x;
double r568507 = z;
double r568508 = t;
double r568509 = r568507 - r568508;
double r568510 = cbrt(r568509);
double r568511 = r568510 * r568510;
double r568512 = a;
double r568513 = r568512 - r568508;
double r568514 = cbrt(r568513);
double r568515 = r568514 * r568514;
double r568516 = r568511 / r568515;
double r568517 = y;
double r568518 = r568514 / r568510;
double r568519 = r568517 / r568518;
double r568520 = r568516 * r568519;
double r568521 = r568506 + r568520;
return r568521;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 11.2 |
|---|---|
| Target | 1.3 |
| Herbie | 0.5 |
Initial program 11.2
rmApplied associate-/l*1.3
rmApplied add-cube-cbrt1.8
Applied add-cube-cbrt1.7
Applied times-frac1.7
Applied *-un-lft-identity1.7
Applied times-frac0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2020021
(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))))