x + \frac{\left(y - z\right) \cdot t}{a - z}x + \frac{\frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}}{\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}} \cdot \frac{t}{\sqrt[3]{\sqrt[3]{a - z}}}double f(double x, double y, double z, double t, double a) {
double r470606 = x;
double r470607 = y;
double r470608 = z;
double r470609 = r470607 - r470608;
double r470610 = t;
double r470611 = r470609 * r470610;
double r470612 = a;
double r470613 = r470612 - r470608;
double r470614 = r470611 / r470613;
double r470615 = r470606 + r470614;
return r470615;
}
double f(double x, double y, double z, double t, double a) {
double r470616 = x;
double r470617 = y;
double r470618 = z;
double r470619 = r470617 - r470618;
double r470620 = a;
double r470621 = r470620 - r470618;
double r470622 = cbrt(r470621);
double r470623 = r470622 * r470622;
double r470624 = r470619 / r470623;
double r470625 = cbrt(r470623);
double r470626 = r470624 / r470625;
double r470627 = t;
double r470628 = cbrt(r470622);
double r470629 = r470627 / r470628;
double r470630 = r470626 * r470629;
double r470631 = r470616 + r470630;
return r470631;
}




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 | 0.5 |
| Herbie | 1.9 |
Initial program 11.2
rmApplied add-cube-cbrt11.5
Applied times-frac1.7
rmApplied add-cube-cbrt1.7
Applied cbrt-prod1.8
Applied *-un-lft-identity1.8
Applied times-frac1.8
Applied associate-*r*1.9
Simplified1.9
Final simplification1.9
herbie shell --seed 2019322
(FPCore (x y z t a)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:renderAxisTick from plot-0.2.3.4, A"
:precision binary64
:herbie-target
(if (< t -1.0682974490174067e-39) (+ x (* (/ (- y z) (- a z)) t)) (if (< t 3.9110949887586375e-141) (+ x (/ (* (- y z) t) (- a z))) (+ x (* (/ (- y z) (- a z)) t))))
(+ x (/ (* (- y z) t) (- a z))))