x - \frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t}\begin{array}{l}
\mathbf{if}\;\frac{\left(y \cdot 2\right) \cdot z}{\left(z \cdot 2\right) \cdot z - y \cdot t} \le 2.464886803267391919927686813979327944665 \cdot 10^{169}:\\
\;\;\;\;x - \frac{y \cdot 2}{\sqrt[3]{\left(z \cdot 2\right) \cdot z - y \cdot t} \cdot \sqrt[3]{\left(z \cdot 2\right) \cdot z - y \cdot t}} \cdot \frac{z}{\sqrt[3]{\left(z \cdot 2\right) \cdot z - y \cdot t}}\\
\mathbf{else}:\\
\;\;\;\;x - 0\\
\end{array}double f(double x, double y, double z, double t) {
double r399137 = x;
double r399138 = y;
double r399139 = 2.0;
double r399140 = r399138 * r399139;
double r399141 = z;
double r399142 = r399140 * r399141;
double r399143 = r399141 * r399139;
double r399144 = r399143 * r399141;
double r399145 = t;
double r399146 = r399138 * r399145;
double r399147 = r399144 - r399146;
double r399148 = r399142 / r399147;
double r399149 = r399137 - r399148;
return r399149;
}
double f(double x, double y, double z, double t) {
double r399150 = y;
double r399151 = 2.0;
double r399152 = r399150 * r399151;
double r399153 = z;
double r399154 = r399152 * r399153;
double r399155 = r399153 * r399151;
double r399156 = r399155 * r399153;
double r399157 = t;
double r399158 = r399150 * r399157;
double r399159 = r399156 - r399158;
double r399160 = r399154 / r399159;
double r399161 = 2.464886803267392e+169;
bool r399162 = r399160 <= r399161;
double r399163 = x;
double r399164 = cbrt(r399159);
double r399165 = r399164 * r399164;
double r399166 = r399152 / r399165;
double r399167 = r399153 / r399164;
double r399168 = r399166 * r399167;
double r399169 = r399163 - r399168;
double r399170 = 0.0;
double r399171 = r399163 - r399170;
double r399172 = r399162 ? r399169 : r399171;
return r399172;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 11.8 |
|---|---|
| Target | 0.1 |
| Herbie | 5.5 |
if (/ (* (* y 2.0) z) (- (* (* z 2.0) z) (* y t))) < 2.464886803267392e+169Initial program 2.6
rmApplied add-cube-cbrt2.8
Applied times-frac1.5
if 2.464886803267392e+169 < (/ (* (* y 2.0) z) (- (* (* z 2.0) z) (* y t))) Initial program 61.7
Taylor expanded around 0 27.3
Final simplification5.5
herbie shell --seed 2019303
(FPCore (x y z t)
:name "Numeric.AD.Rank1.Halley:findZero from ad-4.2.4"
:precision binary64
:herbie-target
(- x (/ 1 (- (/ z y) (/ (/ t 2) z))))
(- x (/ (* (* y 2) z) (- (* (* z 2) z) (* y t)))))