\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le -1316369279572.4138:\\
\;\;\;\;\left|\frac{4 + x}{y} - \frac{x}{y} \cdot z\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\left(\left(4 + x\right) - x \cdot z\right) \cdot \frac{1}{y}\right|\\
\end{array}double f(double x, double y, double z) {
double r892655 = x;
double r892656 = 4.0;
double r892657 = r892655 + r892656;
double r892658 = y;
double r892659 = r892657 / r892658;
double r892660 = r892655 / r892658;
double r892661 = z;
double r892662 = r892660 * r892661;
double r892663 = r892659 - r892662;
double r892664 = fabs(r892663);
return r892664;
}
double f(double x, double y, double z) {
double r892665 = x;
double r892666 = -1316369279572.4138;
bool r892667 = r892665 <= r892666;
double r892668 = 4.0;
double r892669 = r892668 + r892665;
double r892670 = y;
double r892671 = r892669 / r892670;
double r892672 = r892665 / r892670;
double r892673 = z;
double r892674 = r892672 * r892673;
double r892675 = r892671 - r892674;
double r892676 = fabs(r892675);
double r892677 = r892665 * r892673;
double r892678 = r892669 - r892677;
double r892679 = 1.0;
double r892680 = r892679 / r892670;
double r892681 = r892678 * r892680;
double r892682 = fabs(r892681);
double r892683 = r892667 ? r892676 : r892682;
return r892683;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < -1316369279572.4138Initial program 0.1
rmApplied *-un-lft-identity0.1
Applied associate-/r*0.1
Simplified0.1
if -1316369279572.4138 < x Initial program 1.9
rmApplied *-un-lft-identity1.9
Applied associate-/r*1.9
Simplified1.9
rmApplied associate-*l/2.0
Applied sub-div2.0
rmApplied div-inv2.1
Final simplification1.7
herbie shell --seed 2019134
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))