\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.679549677934962912371060912947000332007 \cdot 10^{-9}:\\
\;\;\;\;\left(x - 0.3333333333333333148296162562473909929395 \cdot \frac{y}{z}\right) + \frac{\frac{t}{3}}{z \cdot y}\\
\mathbf{elif}\;z \cdot 3 \le 1.988546582597582853711732660366369539647 \cdot 10^{129}:\\
\;\;\;\;\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{\frac{t}{z \cdot 3}}{y}\\
\end{array}double f(double x, double y, double z, double t) {
double r503128 = x;
double r503129 = y;
double r503130 = z;
double r503131 = 3.0;
double r503132 = r503130 * r503131;
double r503133 = r503129 / r503132;
double r503134 = r503128 - r503133;
double r503135 = t;
double r503136 = r503132 * r503129;
double r503137 = r503135 / r503136;
double r503138 = r503134 + r503137;
return r503138;
}
double f(double x, double y, double z, double t) {
double r503139 = z;
double r503140 = 3.0;
double r503141 = r503139 * r503140;
double r503142 = -1.679549677934963e-09;
bool r503143 = r503141 <= r503142;
double r503144 = x;
double r503145 = 0.3333333333333333;
double r503146 = y;
double r503147 = r503146 / r503139;
double r503148 = r503145 * r503147;
double r503149 = r503144 - r503148;
double r503150 = t;
double r503151 = r503150 / r503140;
double r503152 = r503139 * r503146;
double r503153 = r503151 / r503152;
double r503154 = r503149 + r503153;
double r503155 = 1.988546582597583e+129;
bool r503156 = r503141 <= r503155;
double r503157 = r503146 / r503141;
double r503158 = r503144 - r503157;
double r503159 = 1.0;
double r503160 = r503159 / r503141;
double r503161 = r503150 / r503146;
double r503162 = r503160 * r503161;
double r503163 = r503158 + r503162;
double r503164 = r503150 / r503141;
double r503165 = r503164 / r503146;
double r503166 = r503158 + r503165;
double r503167 = r503156 ? r503163 : r503166;
double r503168 = r503143 ? r503154 : r503167;
return r503168;
}




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.9 |
if (* z 3.0) < -1.679549677934963e-09Initial program 0.5
Taylor expanded around 0 0.5
rmApplied associate-/r*0.5
Taylor expanded around 0 0.5
if -1.679549677934963e-09 < (* z 3.0) < 1.988546582597583e+129Initial program 7.9
rmApplied *-un-lft-identity7.9
Applied times-frac1.1
if 1.988546582597583e+129 < (* z 3.0) Initial program 0.4
rmApplied associate-/r*1.5
Final simplification0.9
herbie shell --seed 2019325
(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))))