\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\begin{array}{l}
\mathbf{if}\;x \le 7.728357076454139829024825303349643945694:\\
\;\;\;\;\left|\left(\frac{4}{y} - \frac{z \cdot x}{y}\right) + \frac{x}{y}\right|\\
\mathbf{else}:\\
\;\;\;\;\left|\mathsf{fma}\left(\frac{\sqrt{4}}{\sqrt[3]{y} \cdot \sqrt[3]{y}}, \frac{\sqrt{4}}{\sqrt[3]{y}}, -z \cdot \frac{x}{y}\right) + \frac{x}{y}\right|\\
\end{array}double f(double x, double y, double z) {
double r26915 = x;
double r26916 = 4.0;
double r26917 = r26915 + r26916;
double r26918 = y;
double r26919 = r26917 / r26918;
double r26920 = r26915 / r26918;
double r26921 = z;
double r26922 = r26920 * r26921;
double r26923 = r26919 - r26922;
double r26924 = fabs(r26923);
return r26924;
}
double f(double x, double y, double z) {
double r26925 = x;
double r26926 = 7.72835707645414;
bool r26927 = r26925 <= r26926;
double r26928 = 4.0;
double r26929 = y;
double r26930 = r26928 / r26929;
double r26931 = z;
double r26932 = r26931 * r26925;
double r26933 = r26932 / r26929;
double r26934 = r26930 - r26933;
double r26935 = r26925 / r26929;
double r26936 = r26934 + r26935;
double r26937 = fabs(r26936);
double r26938 = sqrt(r26928);
double r26939 = cbrt(r26929);
double r26940 = r26939 * r26939;
double r26941 = r26938 / r26940;
double r26942 = r26938 / r26939;
double r26943 = r26931 * r26935;
double r26944 = -r26943;
double r26945 = fma(r26941, r26942, r26944);
double r26946 = r26945 + r26935;
double r26947 = fabs(r26946);
double r26948 = r26927 ? r26937 : r26947;
return r26948;
}



Bits error versus x



Bits error versus y



Bits error versus z
if x < 7.72835707645414Initial program 2.1
Taylor expanded around 0 2.2
Simplified2.1
rmApplied associate-*r/2.2
Simplified2.2
if 7.72835707645414 < x Initial program 0.1
Taylor expanded around 0 8.5
Simplified0.1
rmApplied add-cube-cbrt0.1
Applied add-sqr-sqrt0.1
Applied times-frac0.1
Applied fma-neg0.1
Simplified0.1
Final simplification1.8
herbie shell --seed 2019174 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4.0) y) (* (/ x y) z))))