\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\begin{array}{l}
\mathbf{if}\;t \le -3.1361300744902736 \cdot 10^{22}:\\
\;\;\;\;x - \left(\frac{\frac{y}{z}}{3} - t \cdot \frac{\frac{1}{z \cdot 3}}{y}\right)\\
\mathbf{elif}\;t \le 5.46097822804766331 \cdot 10^{49}:\\
\;\;\;\;x - \left(\frac{\frac{y}{z}}{3} - \frac{1}{z} \cdot \frac{\frac{t}{3}}{y}\right)\\
\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 r877806 = x;
double r877807 = y;
double r877808 = z;
double r877809 = 3.0;
double r877810 = r877808 * r877809;
double r877811 = r877807 / r877810;
double r877812 = r877806 - r877811;
double r877813 = t;
double r877814 = r877810 * r877807;
double r877815 = r877813 / r877814;
double r877816 = r877812 + r877815;
return r877816;
}
double f(double x, double y, double z, double t) {
double r877817 = t;
double r877818 = -3.1361300744902736e+22;
bool r877819 = r877817 <= r877818;
double r877820 = x;
double r877821 = y;
double r877822 = z;
double r877823 = r877821 / r877822;
double r877824 = 3.0;
double r877825 = r877823 / r877824;
double r877826 = 1.0;
double r877827 = r877822 * r877824;
double r877828 = r877826 / r877827;
double r877829 = r877828 / r877821;
double r877830 = r877817 * r877829;
double r877831 = r877825 - r877830;
double r877832 = r877820 - r877831;
double r877833 = 5.460978228047663e+49;
bool r877834 = r877817 <= r877833;
double r877835 = r877826 / r877822;
double r877836 = r877817 / r877824;
double r877837 = r877836 / r877821;
double r877838 = r877835 * r877837;
double r877839 = r877825 - r877838;
double r877840 = r877820 - r877839;
double r877841 = r877821 / r877827;
double r877842 = r877820 - r877841;
double r877843 = r877824 * r877821;
double r877844 = r877822 * r877843;
double r877845 = r877817 / r877844;
double r877846 = r877842 + r877845;
double r877847 = r877834 ? r877840 : r877846;
double r877848 = r877819 ? r877832 : r877847;
return r877848;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 3.9 |
|---|---|
| Target | 1.7 |
| Herbie | 0.4 |
if t < -3.1361300744902736e+22Initial program 0.5
rmApplied associate-/r*2.7
rmApplied associate-/r*2.7
rmApplied associate-+l-2.7
rmApplied *-un-lft-identity2.7
Applied div-inv2.8
Applied times-frac0.4
Simplified0.4
if -3.1361300744902736e+22 < t < 5.460978228047663e+49Initial program 5.8
rmApplied associate-/r*1.1
rmApplied associate-/r*1.1
rmApplied associate-+l-1.1
rmApplied *-un-lft-identity1.1
Applied *-un-lft-identity1.1
Applied times-frac1.1
Applied times-frac0.3
Simplified0.3
if 5.460978228047663e+49 < t Initial program 0.6
rmApplied associate-*l*0.6
Final simplification0.4
herbie shell --seed 2020047
(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))))