\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\left(x - \frac{y}{z \cdot 3}\right) + \frac{\sqrt[3]{t} \cdot \sqrt[3]{t}}{z \cdot 3} \cdot \frac{\sqrt[3]{t}}{y}double f(double x, double y, double z, double t) {
double r765721 = x;
double r765722 = y;
double r765723 = z;
double r765724 = 3.0;
double r765725 = r765723 * r765724;
double r765726 = r765722 / r765725;
double r765727 = r765721 - r765726;
double r765728 = t;
double r765729 = r765725 * r765722;
double r765730 = r765728 / r765729;
double r765731 = r765727 + r765730;
return r765731;
}
double f(double x, double y, double z, double t) {
double r765732 = x;
double r765733 = y;
double r765734 = z;
double r765735 = 3.0;
double r765736 = r765734 * r765735;
double r765737 = r765733 / r765736;
double r765738 = r765732 - r765737;
double r765739 = t;
double r765740 = cbrt(r765739);
double r765741 = r765740 * r765740;
double r765742 = r765741 / r765736;
double r765743 = r765740 / r765733;
double r765744 = r765742 * r765743;
double r765745 = r765738 + r765744;
return r765745;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 3.6 |
|---|---|
| Target | 1.7 |
| Herbie | 1.7 |
Initial program 3.6
rmApplied add-cube-cbrt3.8
Applied times-frac1.7
Final simplification1.7
herbie shell --seed 2020046 +o rules:numerics
(FPCore (x y z t)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, H"
:precision binary64
:herbie-target
(+ (- x (/ y (* z 3))) (/ (/ t (* z 3)) y))
(+ (- x (/ y (* z 3))) (/ t (* (* z 3) y))))