x + \frac{y \cdot \left(z - t\right)}{a - t}\frac{\frac{y}{\frac{\sqrt[3]{a - t}}{\sqrt[3]{z - t}} \cdot \frac{\sqrt[3]{a - t}}{\sqrt[3]{z - t}}}}{\frac{\sqrt[3]{a - t}}{\sqrt[3]{z - t}}} + xdouble f(double x, double y, double z, double t, double a) {
double r24316619 = x;
double r24316620 = y;
double r24316621 = z;
double r24316622 = t;
double r24316623 = r24316621 - r24316622;
double r24316624 = r24316620 * r24316623;
double r24316625 = a;
double r24316626 = r24316625 - r24316622;
double r24316627 = r24316624 / r24316626;
double r24316628 = r24316619 + r24316627;
return r24316628;
}
double f(double x, double y, double z, double t, double a) {
double r24316629 = y;
double r24316630 = a;
double r24316631 = t;
double r24316632 = r24316630 - r24316631;
double r24316633 = cbrt(r24316632);
double r24316634 = z;
double r24316635 = r24316634 - r24316631;
double r24316636 = cbrt(r24316635);
double r24316637 = r24316633 / r24316636;
double r24316638 = r24316637 * r24316637;
double r24316639 = r24316629 / r24316638;
double r24316640 = r24316639 / r24316637;
double r24316641 = x;
double r24316642 = r24316640 + r24316641;
return r24316642;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 10.2 |
|---|---|
| Target | 1.1 |
| Herbie | 0.5 |
Initial program 10.2
rmApplied associate-/l*1.1
rmApplied add-cube-cbrt1.6
Applied add-cube-cbrt1.5
Applied times-frac1.5
Applied associate-/r*0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019163
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTicks from plot-0.2.3.4, B"
:herbie-target
(+ x (/ y (/ (- a t) (- z t))))
(+ x (/ (* y (- z t)) (- a t))))