\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\begin{array}{l}
\mathbf{if}\;t \le -6.04040118693943595803771657159403407899 \cdot 10^{54}:\\
\;\;\;\;\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{z \cdot \left(3 \cdot y\right)}\\
\mathbf{elif}\;t \le 17403769.191135458648204803466796875:\\
\;\;\;\;\left(x - \frac{y}{z \cdot 3}\right) + \frac{1}{z} \cdot \frac{\frac{t}{3}}{y}\\
\mathbf{else}:\\
\;\;\;\;\left(x - \frac{\frac{y}{z}}{3}\right) + \frac{\frac{t}{z \cdot 3}}{y}\\
\end{array}double f(double x, double y, double z, double t) {
double r52982976 = x;
double r52982977 = y;
double r52982978 = z;
double r52982979 = 3.0;
double r52982980 = r52982978 * r52982979;
double r52982981 = r52982977 / r52982980;
double r52982982 = r52982976 - r52982981;
double r52982983 = t;
double r52982984 = r52982980 * r52982977;
double r52982985 = r52982983 / r52982984;
double r52982986 = r52982982 + r52982985;
return r52982986;
}
double f(double x, double y, double z, double t) {
double r52982987 = t;
double r52982988 = -6.040401186939436e+54;
bool r52982989 = r52982987 <= r52982988;
double r52982990 = x;
double r52982991 = y;
double r52982992 = z;
double r52982993 = 3.0;
double r52982994 = r52982992 * r52982993;
double r52982995 = r52982991 / r52982994;
double r52982996 = r52982990 - r52982995;
double r52982997 = r52982993 * r52982991;
double r52982998 = r52982992 * r52982997;
double r52982999 = r52982987 / r52982998;
double r52983000 = r52982996 + r52982999;
double r52983001 = 17403769.19113546;
bool r52983002 = r52982987 <= r52983001;
double r52983003 = 1.0;
double r52983004 = r52983003 / r52982992;
double r52983005 = r52982987 / r52982993;
double r52983006 = r52983005 / r52982991;
double r52983007 = r52983004 * r52983006;
double r52983008 = r52982996 + r52983007;
double r52983009 = r52982991 / r52982992;
double r52983010 = r52983009 / r52982993;
double r52983011 = r52982990 - r52983010;
double r52983012 = r52982987 / r52982994;
double r52983013 = r52983012 / r52982991;
double r52983014 = r52983011 + r52983013;
double r52983015 = r52983002 ? r52983008 : r52983014;
double r52983016 = r52982989 ? r52983000 : r52983015;
return r52983016;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 3.6 |
|---|---|
| Target | 1.6 |
| Herbie | 0.8 |
if t < -6.040401186939436e+54Initial program 0.7
rmApplied associate-*l*0.6
if -6.040401186939436e+54 < t < 17403769.19113546Initial program 5.3
rmApplied associate-/r*1.0
rmApplied *-un-lft-identity1.0
Applied *-un-lft-identity1.0
Applied times-frac1.1
Applied times-frac0.3
Simplified0.3
if 17403769.19113546 < t Initial program 0.8
rmApplied associate-/r*2.1
rmApplied associate-/r*2.1
Final simplification0.8
herbie shell --seed 2019174
(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))))