x + \frac{y \cdot \left(z - t\right)}{a - t}\frac{\frac{y}{\frac{\frac{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}}{\sqrt[3]{z - 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 r463974 = x;
double r463975 = y;
double r463976 = z;
double r463977 = t;
double r463978 = r463976 - r463977;
double r463979 = r463975 * r463978;
double r463980 = a;
double r463981 = r463980 - r463977;
double r463982 = r463979 / r463981;
double r463983 = r463974 + r463982;
return r463983;
}
double f(double x, double y, double z, double t, double a) {
double r463984 = y;
double r463985 = a;
double r463986 = t;
double r463987 = r463985 - r463986;
double r463988 = cbrt(r463987);
double r463989 = r463988 * r463988;
double r463990 = z;
double r463991 = r463990 - r463986;
double r463992 = cbrt(r463991);
double r463993 = r463989 / r463992;
double r463994 = r463993 / r463992;
double r463995 = r463984 / r463994;
double r463996 = r463988 / r463992;
double r463997 = r463995 / r463996;
double r463998 = x;
double r463999 = r463997 + r463998;
return r463999;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 10.9 |
|---|---|
| Target | 1.4 |
| Herbie | 0.6 |
Initial program 10.9
Simplified10.9
rmApplied associate-/l*1.4
rmApplied add-cube-cbrt1.9
Applied add-cube-cbrt1.7
Applied times-frac1.7
Applied associate-/r*0.6
Simplified0.6
Final simplification0.6
herbie shell --seed 2019195
(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))))