\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;\frac{4 + x}{y} - \frac{x}{y} \cdot z \le -1.540140242651518318633673548087898092755 \cdot 10^{165} \lor \neg \left(\frac{4 + x}{y} - \frac{x}{y} \cdot z \le 3.227438539306355727994396233811805318431 \cdot 10^{64}\right):\\
\;\;\;\;\left|\frac{4 + x}{y} - \frac{x}{y} \cdot z\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\frac{4 + x}{y} - x \cdot \frac{z}{y}\right|\\
\end{array}double f(double x, double y, double z) {
double r42634 = x;
double r42635 = 4.0;
double r42636 = r42634 + r42635;
double r42637 = y;
double r42638 = r42636 / r42637;
double r42639 = r42634 / r42637;
double r42640 = z;
double r42641 = r42639 * r42640;
double r42642 = r42638 - r42641;
double r42643 = fabs(r42642);
return r42643;
}
double f(double x, double y, double z) {
double r42644 = 4.0;
double r42645 = x;
double r42646 = r42644 + r42645;
double r42647 = y;
double r42648 = r42646 / r42647;
double r42649 = r42645 / r42647;
double r42650 = z;
double r42651 = r42649 * r42650;
double r42652 = r42648 - r42651;
double r42653 = -1.5401402426515183e+165;
bool r42654 = r42652 <= r42653;
double r42655 = 3.227438539306356e+64;
bool r42656 = r42652 <= r42655;
double r42657 = !r42656;
bool r42658 = r42654 || r42657;
double r42659 = fabs(r42652);
double r42660 = r42650 / r42647;
double r42661 = r42645 * r42660;
double r42662 = r42648 - r42661;
double r42663 = fabs(r42662);
double r42664 = r42658 ? r42659 : r42663;
return r42664;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if (- (/ (+ x 4.0) y) (* (/ x y) z)) < -1.5401402426515183e+165 or 3.227438539306356e+64 < (- (/ (+ x 4.0) y) (* (/ x y) z)) Initial program 0.1
if -1.5401402426515183e+165 < (- (/ (+ x 4.0) y) (* (/ x y) z)) < 3.227438539306356e+64Initial program 2.6
rmApplied div-inv2.6
Applied associate-*l*0.5
Simplified0.5
Final simplification0.3
herbie shell --seed 2019179
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4.0) y) (* (/ x y) z))))