\frac{x + \frac{y \cdot z - x}{t \cdot z - x}}{x + 1}\begin{array}{l}
\mathbf{if}\;z \le -1.58916669710278921 \cdot 10^{134} \lor \neg \left(z \le 3.3811815738088196 \cdot 10^{134}\right):\\
\;\;\;\;\frac{x + \frac{y}{t}}{x + 1}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\frac{x + 1}{x + \frac{1}{\frac{t \cdot z - x}{y \cdot z - x}}}}\\
\end{array}double f(double x, double y, double z, double t) {
double r1223145 = x;
double r1223146 = y;
double r1223147 = z;
double r1223148 = r1223146 * r1223147;
double r1223149 = r1223148 - r1223145;
double r1223150 = t;
double r1223151 = r1223150 * r1223147;
double r1223152 = r1223151 - r1223145;
double r1223153 = r1223149 / r1223152;
double r1223154 = r1223145 + r1223153;
double r1223155 = 1.0;
double r1223156 = r1223145 + r1223155;
double r1223157 = r1223154 / r1223156;
return r1223157;
}
double f(double x, double y, double z, double t) {
double r1223158 = z;
double r1223159 = -1.5891666971027892e+134;
bool r1223160 = r1223158 <= r1223159;
double r1223161 = 3.3811815738088196e+134;
bool r1223162 = r1223158 <= r1223161;
double r1223163 = !r1223162;
bool r1223164 = r1223160 || r1223163;
double r1223165 = x;
double r1223166 = y;
double r1223167 = t;
double r1223168 = r1223166 / r1223167;
double r1223169 = r1223165 + r1223168;
double r1223170 = 1.0;
double r1223171 = r1223165 + r1223170;
double r1223172 = r1223169 / r1223171;
double r1223173 = 1.0;
double r1223174 = r1223167 * r1223158;
double r1223175 = r1223174 - r1223165;
double r1223176 = r1223166 * r1223158;
double r1223177 = r1223176 - r1223165;
double r1223178 = r1223175 / r1223177;
double r1223179 = r1223173 / r1223178;
double r1223180 = r1223165 + r1223179;
double r1223181 = r1223171 / r1223180;
double r1223182 = r1223173 / r1223181;
double r1223183 = r1223164 ? r1223172 : r1223182;
return r1223183;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 7.4 |
|---|---|
| Target | 0.4 |
| Herbie | 3.6 |
if z < -1.5891666971027892e+134 or 3.3811815738088196e+134 < z Initial program 21.2
Taylor expanded around inf 7.2
if -1.5891666971027892e+134 < z < 3.3811815738088196e+134Initial program 2.2
rmApplied clear-num2.2
rmApplied clear-num2.3
Final simplification3.6
herbie shell --seed 2020065
(FPCore (x y z t)
:name "Diagrams.Trail:splitAtParam from diagrams-lib-1.3.0.3, A"
:precision binary64
:herbie-target
(/ (+ x (- (/ y (- t (/ x z))) (/ x (- (* t z) x)))) (+ x 1))
(/ (+ x (/ (- (* y z) x) (- (* t z) x))) (+ x 1)))