\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le 5.5178987553970897 \cdot 10^{-123}:\\
\;\;\;\;\left|\frac{x + 4}{y} - \frac{1}{\sqrt[3]{y} \cdot \sqrt[3]{y}} \cdot \left(\frac{x}{\sqrt[3]{y}} \cdot z\right)\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\frac{x + 4}{y} - x \cdot \frac{z}{y}\right|\\
\end{array}double f(double x, double y, double z) {
double r27190 = x;
double r27191 = 4.0;
double r27192 = r27190 + r27191;
double r27193 = y;
double r27194 = r27192 / r27193;
double r27195 = r27190 / r27193;
double r27196 = z;
double r27197 = r27195 * r27196;
double r27198 = r27194 - r27197;
double r27199 = fabs(r27198);
return r27199;
}
double f(double x, double y, double z) {
double r27200 = x;
double r27201 = 5.51789875539709e-123;
bool r27202 = r27200 <= r27201;
double r27203 = 4.0;
double r27204 = r27200 + r27203;
double r27205 = y;
double r27206 = r27204 / r27205;
double r27207 = 1.0;
double r27208 = cbrt(r27205);
double r27209 = r27208 * r27208;
double r27210 = r27207 / r27209;
double r27211 = r27200 / r27208;
double r27212 = z;
double r27213 = r27211 * r27212;
double r27214 = r27210 * r27213;
double r27215 = r27206 - r27214;
double r27216 = fabs(r27215);
double r27217 = r27212 / r27205;
double r27218 = r27200 * r27217;
double r27219 = r27206 - r27218;
double r27220 = fabs(r27219);
double r27221 = r27202 ? r27216 : r27220;
return r27221;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < 5.51789875539709e-123Initial program 1.9
rmApplied add-cube-cbrt2.1
Applied *-un-lft-identity2.1
Applied times-frac2.1
Applied associate-*l*1.7
if 5.51789875539709e-123 < x Initial program 0.8
rmApplied div-inv0.9
Applied associate-*l*1.2
Simplified1.1
Final simplification1.6
herbie shell --seed 2020083
(FPCore (x y z)
:name "fabs fraction 1"
:precision binary64
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))