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 r24732934 = x;
double r24732935 = y;
double r24732936 = z;
double r24732937 = t;
double r24732938 = r24732936 - r24732937;
double r24732939 = r24732935 * r24732938;
double r24732940 = a;
double r24732941 = r24732940 - r24732937;
double r24732942 = r24732939 / r24732941;
double r24732943 = r24732934 + r24732942;
return r24732943;
}
double f(double x, double y, double z, double t, double a) {
double r24732944 = y;
double r24732945 = a;
double r24732946 = t;
double r24732947 = r24732945 - r24732946;
double r24732948 = cbrt(r24732947);
double r24732949 = z;
double r24732950 = r24732949 - r24732946;
double r24732951 = cbrt(r24732950);
double r24732952 = r24732948 / r24732951;
double r24732953 = r24732952 * r24732952;
double r24732954 = r24732944 / r24732953;
double r24732955 = r24732954 / r24732952;
double r24732956 = x;
double r24732957 = r24732955 + r24732956;
return r24732957;
}




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))))