\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\begin{array}{l}
\mathbf{if}\;y \le -465104846371001377193813340330265673728:\\
\;\;\;\;\frac{t}{y \cdot \left(3 \cdot z\right)} + \left(x - \frac{\frac{y}{z}}{3}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{t}{3}}{z}}{y} + \left(x - \frac{1}{z} \cdot \frac{y}{3}\right)\\
\end{array}double f(double x, double y, double z, double t) {
double r29239703 = x;
double r29239704 = y;
double r29239705 = z;
double r29239706 = 3.0;
double r29239707 = r29239705 * r29239706;
double r29239708 = r29239704 / r29239707;
double r29239709 = r29239703 - r29239708;
double r29239710 = t;
double r29239711 = r29239707 * r29239704;
double r29239712 = r29239710 / r29239711;
double r29239713 = r29239709 + r29239712;
return r29239713;
}
double f(double x, double y, double z, double t) {
double r29239714 = y;
double r29239715 = -4.651048463710014e+38;
bool r29239716 = r29239714 <= r29239715;
double r29239717 = t;
double r29239718 = 3.0;
double r29239719 = z;
double r29239720 = r29239718 * r29239719;
double r29239721 = r29239714 * r29239720;
double r29239722 = r29239717 / r29239721;
double r29239723 = x;
double r29239724 = r29239714 / r29239719;
double r29239725 = r29239724 / r29239718;
double r29239726 = r29239723 - r29239725;
double r29239727 = r29239722 + r29239726;
double r29239728 = r29239717 / r29239718;
double r29239729 = r29239728 / r29239719;
double r29239730 = r29239729 / r29239714;
double r29239731 = 1.0;
double r29239732 = r29239731 / r29239719;
double r29239733 = r29239714 / r29239718;
double r29239734 = r29239732 * r29239733;
double r29239735 = r29239723 - r29239734;
double r29239736 = r29239730 + r29239735;
double r29239737 = r29239716 ? r29239727 : r29239736;
return r29239737;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 3.6 |
|---|---|
| Target | 1.8 |
| Herbie | 1.4 |
if y < -4.651048463710014e+38Initial program 0.5
rmApplied associate-/r*0.5
if -4.651048463710014e+38 < y Initial program 4.4
rmApplied associate-/r*1.7
rmApplied associate-/r*1.7
rmApplied *-un-lft-identity1.7
Applied associate-/r*1.7
Simplified1.7
rmApplied *-un-lft-identity1.7
Applied times-frac1.7
Final simplification1.4
herbie shell --seed 2019172 +o rules:numerics
(FPCore (x y z t)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, H"
:herbie-target
(+ (- x (/ y (* z 3.0))) (/ (/ t (* z 3.0)) y))
(+ (- x (/ y (* z 3.0))) (/ t (* (* z 3.0) y))))