\left(x - \frac{y}{z \cdot 3.0}\right) + \frac{t}{\left(z \cdot 3.0\right) \cdot y}\begin{array}{l}
\mathbf{if}\;y \le -353705408395.80334:\\
\;\;\;\;\frac{t}{z \cdot \left(3.0 \cdot y\right)} + \left(x - \frac{y}{z \cdot 3.0}\right)\\
\mathbf{else}:\\
\;\;\;\;x - \left(\frac{y}{z \cdot 3.0} - \frac{\frac{\frac{t}{z}}{3.0}}{y}\right)\\
\end{array}double f(double x, double y, double z, double t) {
double r35485978 = x;
double r35485979 = y;
double r35485980 = z;
double r35485981 = 3.0;
double r35485982 = r35485980 * r35485981;
double r35485983 = r35485979 / r35485982;
double r35485984 = r35485978 - r35485983;
double r35485985 = t;
double r35485986 = r35485982 * r35485979;
double r35485987 = r35485985 / r35485986;
double r35485988 = r35485984 + r35485987;
return r35485988;
}
double f(double x, double y, double z, double t) {
double r35485989 = y;
double r35485990 = -353705408395.80334;
bool r35485991 = r35485989 <= r35485990;
double r35485992 = t;
double r35485993 = z;
double r35485994 = 3.0;
double r35485995 = r35485994 * r35485989;
double r35485996 = r35485993 * r35485995;
double r35485997 = r35485992 / r35485996;
double r35485998 = x;
double r35485999 = r35485993 * r35485994;
double r35486000 = r35485989 / r35485999;
double r35486001 = r35485998 - r35486000;
double r35486002 = r35485997 + r35486001;
double r35486003 = r35485992 / r35485993;
double r35486004 = r35486003 / r35485994;
double r35486005 = r35486004 / r35485989;
double r35486006 = r35486000 - r35486005;
double r35486007 = r35485998 - r35486006;
double r35486008 = r35485991 ? r35486002 : r35486007;
return r35486008;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 3.3 |
|---|---|
| Target | 1.7 |
| Herbie | 1.3 |
if y < -353705408395.80334Initial program 0.5
rmApplied associate-/r*2.1
rmApplied div-inv2.1
Applied associate-/l*0.5
Simplified0.5
if -353705408395.80334 < y Initial program 4.2
rmApplied associate-/r*1.5
rmApplied *-un-lft-identity1.5
Applied associate-/r*1.5
Simplified1.5
rmApplied associate-+l-1.5
Final simplification1.3
herbie shell --seed 2019165
(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))))