double f(double x, double y, double z) {
double r1745199 = x;
double r1745200 = 4.0;
double r1745201 = r1745199 + r1745200;
double r1745202 = y;
double r1745203 = r1745201 / r1745202;
double r1745204 = r1745199 / r1745202;
double r1745205 = z;
double r1745206 = r1745204 * r1745205;
double r1745207 = r1745203 - r1745206;
double r1745208 = fabs(r1745207);
return r1745208;
}
double f(double x, double y, double z) {
double r1745209 = 4.0;
double r1745210 = x;
double r1745211 = r1745209 + r1745210;
double r1745212 = y;
double r1745213 = r1745211 / r1745212;
double r1745214 = r1745210 / r1745212;
double r1745215 = z;
double r1745216 = r1745214 * r1745215;
double r1745217 = r1745213 - r1745216;
double r1745218 = fabs(r1745217);
double r1745219 = 1.5810969147855623e+194;
bool r1745220 = r1745218 <= r1745219;
double r1745221 = r1745215 / r1745212;
double r1745222 = r1745221 * r1745210;
double r1745223 = r1745213 - r1745222;
double r1745224 = fabs(r1745223);
double r1745225 = r1745220 ? r1745224 : r1745218;
return r1745225;
}
\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;\left|\frac{4 + x}{y} - \frac{x}{y} \cdot z\right| \le 1.5810969147855623 \cdot 10^{+194}:\\
\;\;\;\;\left|\frac{4 + x}{y} - \frac{z}{y} \cdot x\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\frac{4 + x}{y} - \frac{x}{y} \cdot z\right|\\
\end{array}


Bits error versus x



Bits error versus y



Bits error versus z
if (fabs (- (/ (+ x 4) y) (* (/ x y) z))) < 1.5810969147855623e+194Initial program 2.1
rmApplied div-inv2.2
Applied associate-*l*1.0
Taylor expanded around -inf 1.0
if 1.5810969147855623e+194 < (fabs (- (/ (+ x 4) y) (* (/ x y) z))) Initial program 0.1
Final simplification0.8
herbie shell --seed 2019102 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))