\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\begin{array}{l}
\mathbf{if}\;z \cdot 3 \le -1.16964350915532777 \cdot 10^{116}:\\
\;\;\;\;\left(x - \frac{\frac{\frac{y}{z}}{\sqrt[3]{3} \cdot \sqrt[3]{3}}}{\sqrt[3]{3}}\right) + \frac{\frac{t}{z \cdot 3}}{y}\\
\mathbf{elif}\;z \cdot 3 \le 1.52241256667558003 \cdot 10^{-52}:\\
\;\;\;\;\left(x - \frac{y}{z \cdot 3}\right) + \frac{1}{z \cdot 3} \cdot \frac{t}{y}\\
\mathbf{else}:\\
\;\;\;\;\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{z \cdot \left(3 \cdot y\right)}\\
\end{array}double f(double x, double y, double z, double t) {
double r833803 = x;
double r833804 = y;
double r833805 = z;
double r833806 = 3.0;
double r833807 = r833805 * r833806;
double r833808 = r833804 / r833807;
double r833809 = r833803 - r833808;
double r833810 = t;
double r833811 = r833807 * r833804;
double r833812 = r833810 / r833811;
double r833813 = r833809 + r833812;
return r833813;
}
double f(double x, double y, double z, double t) {
double r833814 = z;
double r833815 = 3.0;
double r833816 = r833814 * r833815;
double r833817 = -1.1696435091553278e+116;
bool r833818 = r833816 <= r833817;
double r833819 = x;
double r833820 = y;
double r833821 = r833820 / r833814;
double r833822 = cbrt(r833815);
double r833823 = r833822 * r833822;
double r833824 = r833821 / r833823;
double r833825 = r833824 / r833822;
double r833826 = r833819 - r833825;
double r833827 = t;
double r833828 = r833827 / r833816;
double r833829 = r833828 / r833820;
double r833830 = r833826 + r833829;
double r833831 = 1.52241256667558e-52;
bool r833832 = r833816 <= r833831;
double r833833 = r833820 / r833816;
double r833834 = r833819 - r833833;
double r833835 = 1.0;
double r833836 = r833835 / r833816;
double r833837 = r833827 / r833820;
double r833838 = r833836 * r833837;
double r833839 = r833834 + r833838;
double r833840 = r833815 * r833820;
double r833841 = r833814 * r833840;
double r833842 = r833827 / r833841;
double r833843 = r833834 + r833842;
double r833844 = r833832 ? r833839 : r833843;
double r833845 = r833818 ? r833830 : r833844;
return r833845;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 3.7 |
|---|---|
| Target | 1.8 |
| Herbie | 0.9 |
if (* z 3.0) < -1.1696435091553278e+116Initial program 0.7
rmApplied associate-/r*1.1
rmApplied associate-/r*1.1
rmApplied add-cube-cbrt1.1
Applied associate-/r*1.2
if -1.1696435091553278e+116 < (* z 3.0) < 1.52241256667558e-52Initial program 8.3
rmApplied *-un-lft-identity8.3
Applied times-frac1.1
if 1.52241256667558e-52 < (* z 3.0) Initial program 0.6
rmApplied associate-*l*0.5
Final simplification0.9
herbie shell --seed 2020021
(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))))