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 r25937299 = x;
double r25937300 = y;
double r25937301 = z;
double r25937302 = t;
double r25937303 = r25937301 - r25937302;
double r25937304 = r25937300 * r25937303;
double r25937305 = a;
double r25937306 = r25937305 - r25937302;
double r25937307 = r25937304 / r25937306;
double r25937308 = r25937299 + r25937307;
return r25937308;
}
double f(double x, double y, double z, double t, double a) {
double r25937309 = y;
double r25937310 = a;
double r25937311 = t;
double r25937312 = r25937310 - r25937311;
double r25937313 = cbrt(r25937312);
double r25937314 = z;
double r25937315 = r25937314 - r25937311;
double r25937316 = cbrt(r25937315);
double r25937317 = r25937313 / r25937316;
double r25937318 = r25937317 * r25937317;
double r25937319 = r25937309 / r25937318;
double r25937320 = r25937319 / r25937317;
double r25937321 = x;
double r25937322 = r25937320 + r25937321;
return r25937322;
}




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.2 |
| Herbie | 0.5 |
Initial program 11.2
rmApplied associate-/l*1.2
rmApplied add-cube-cbrt1.7
Applied add-cube-cbrt1.6
Applied times-frac1.6
Applied associate-/r*0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019170
(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))))