Average Error: 1.6 → 0.7
Time: 17.7s
Precision: 64
\[\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\]
\[\begin{array}{l} \mathbf{if}\;x \le -1.237348821278526922224499800172906900589 \cdot 10^{131}:\\ \;\;\;\;\left|\frac{\sqrt[3]{4 + x} \cdot \sqrt[3]{4 + x}}{\frac{y}{\sqrt[3]{4 + x}}} - z \cdot \frac{x}{y}\right|\\ \mathbf{elif}\;x \le 1.998896073279736443750109813264113386158 \cdot 10^{68}:\\ \;\;\;\;\left|\frac{\mathsf{fma}\left(-x, z, 4 + x\right)}{y}\right|\\ \mathbf{else}:\\ \;\;\;\;\left|\mathsf{fma}\left(\frac{-x}{y}, z, {\left(\frac{\sqrt[3]{4 + x}}{\sqrt[3]{y}}\right)}^{3}\right) + \left(z + \left(-z\right)\right) \cdot \frac{x}{y}\right|\\ \end{array}\]
\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|
\begin{array}{l}
\mathbf{if}\;x \le -1.237348821278526922224499800172906900589 \cdot 10^{131}:\\
\;\;\;\;\left|\frac{\sqrt[3]{4 + x} \cdot \sqrt[3]{4 + x}}{\frac{y}{\sqrt[3]{4 + x}}} - z \cdot \frac{x}{y}\right|\\

\mathbf{elif}\;x \le 1.998896073279736443750109813264113386158 \cdot 10^{68}:\\
\;\;\;\;\left|\frac{\mathsf{fma}\left(-x, z, 4 + x\right)}{y}\right|\\

\mathbf{else}:\\
\;\;\;\;\left|\mathsf{fma}\left(\frac{-x}{y}, z, {\left(\frac{\sqrt[3]{4 + x}}{\sqrt[3]{y}}\right)}^{3}\right) + \left(z + \left(-z\right)\right) \cdot \frac{x}{y}\right|\\

\end{array}
double f(double x, double y, double z) {
        double r68812 = x;
        double r68813 = 4.0;
        double r68814 = r68812 + r68813;
        double r68815 = y;
        double r68816 = r68814 / r68815;
        double r68817 = r68812 / r68815;
        double r68818 = z;
        double r68819 = r68817 * r68818;
        double r68820 = r68816 - r68819;
        double r68821 = fabs(r68820);
        return r68821;
}

double f(double x, double y, double z) {
        double r68822 = x;
        double r68823 = -1.237348821278527e+131;
        bool r68824 = r68822 <= r68823;
        double r68825 = 4.0;
        double r68826 = r68825 + r68822;
        double r68827 = cbrt(r68826);
        double r68828 = r68827 * r68827;
        double r68829 = y;
        double r68830 = r68829 / r68827;
        double r68831 = r68828 / r68830;
        double r68832 = z;
        double r68833 = r68822 / r68829;
        double r68834 = r68832 * r68833;
        double r68835 = r68831 - r68834;
        double r68836 = fabs(r68835);
        double r68837 = 1.9988960732797364e+68;
        bool r68838 = r68822 <= r68837;
        double r68839 = -r68822;
        double r68840 = fma(r68839, r68832, r68826);
        double r68841 = r68840 / r68829;
        double r68842 = fabs(r68841);
        double r68843 = r68839 / r68829;
        double r68844 = cbrt(r68829);
        double r68845 = r68827 / r68844;
        double r68846 = 3.0;
        double r68847 = pow(r68845, r68846);
        double r68848 = fma(r68843, r68832, r68847);
        double r68849 = -r68832;
        double r68850 = r68832 + r68849;
        double r68851 = r68850 * r68833;
        double r68852 = r68848 + r68851;
        double r68853 = fabs(r68852);
        double r68854 = r68838 ? r68842 : r68853;
        double r68855 = r68824 ? r68836 : r68854;
        return r68855;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Derivation

  1. Split input into 3 regimes
  2. if x < -1.237348821278527e+131

    1. Initial program 0.1

      \[\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\]
    2. Using strategy rm
    3. Applied add-cube-cbrt0.8

      \[\leadsto \left|\frac{\color{blue}{\left(\sqrt[3]{x + 4} \cdot \sqrt[3]{x + 4}\right) \cdot \sqrt[3]{x + 4}}}{y} - \frac{x}{y} \cdot z\right|\]
    4. Applied associate-/l*0.9

      \[\leadsto \left|\color{blue}{\frac{\sqrt[3]{x + 4} \cdot \sqrt[3]{x + 4}}{\frac{y}{\sqrt[3]{x + 4}}}} - \frac{x}{y} \cdot z\right|\]
    5. Simplified0.9

      \[\leadsto \left|\frac{\sqrt[3]{x + 4} \cdot \sqrt[3]{x + 4}}{\color{blue}{\frac{y}{\sqrt[3]{4 + x}}}} - \frac{x}{y} \cdot z\right|\]

    if -1.237348821278527e+131 < x < 1.9988960732797364e+68

    1. Initial program 2.0

      \[\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\]
    2. Using strategy rm
    3. Applied associate-*l/0.6

      \[\leadsto \left|\frac{x + 4}{y} - \color{blue}{\frac{x \cdot z}{y}}\right|\]
    4. Applied sub-div0.6

      \[\leadsto \left|\color{blue}{\frac{\left(x + 4\right) - x \cdot z}{y}}\right|\]
    5. Simplified0.6

      \[\leadsto \left|\frac{\color{blue}{\mathsf{fma}\left(-x, z, 4 + x\right)}}{y}\right|\]

    if 1.9988960732797364e+68 < x

    1. Initial program 0.1

      \[\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\]
    2. Using strategy rm
    3. Applied add-cube-cbrt0.9

      \[\leadsto \left|\frac{x + 4}{\color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}}} - \frac{x}{y} \cdot z\right|\]
    4. Applied add-cube-cbrt1.1

      \[\leadsto \left|\frac{\color{blue}{\left(\sqrt[3]{x + 4} \cdot \sqrt[3]{x + 4}\right) \cdot \sqrt[3]{x + 4}}}{\left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}} - \frac{x}{y} \cdot z\right|\]
    5. Applied times-frac1.1

      \[\leadsto \left|\color{blue}{\frac{\sqrt[3]{x + 4} \cdot \sqrt[3]{x + 4}}{\sqrt[3]{y} \cdot \sqrt[3]{y}} \cdot \frac{\sqrt[3]{x + 4}}{\sqrt[3]{y}}} - \frac{x}{y} \cdot z\right|\]
    6. Applied prod-diff1.1

      \[\leadsto \left|\color{blue}{\mathsf{fma}\left(\frac{\sqrt[3]{x + 4} \cdot \sqrt[3]{x + 4}}{\sqrt[3]{y} \cdot \sqrt[3]{y}}, \frac{\sqrt[3]{x + 4}}{\sqrt[3]{y}}, -z \cdot \frac{x}{y}\right) + \mathsf{fma}\left(-z, \frac{x}{y}, z \cdot \frac{x}{y}\right)}\right|\]
    7. Simplified1.1

      \[\leadsto \left|\color{blue}{\mathsf{fma}\left(-\frac{x}{y}, z, {\left(\frac{\sqrt[3]{4 + x}}{\sqrt[3]{y}}\right)}^{3}\right)} + \mathsf{fma}\left(-z, \frac{x}{y}, z \cdot \frac{x}{y}\right)\right|\]
    8. Simplified1.1

      \[\leadsto \left|\mathsf{fma}\left(-\frac{x}{y}, z, {\left(\frac{\sqrt[3]{4 + x}}{\sqrt[3]{y}}\right)}^{3}\right) + \color{blue}{\frac{x}{y} \cdot \left(\left(-z\right) + z\right)}\right|\]
  3. Recombined 3 regimes into one program.
  4. Final simplification0.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -1.237348821278526922224499800172906900589 \cdot 10^{131}:\\ \;\;\;\;\left|\frac{\sqrt[3]{4 + x} \cdot \sqrt[3]{4 + x}}{\frac{y}{\sqrt[3]{4 + x}}} - z \cdot \frac{x}{y}\right|\\ \mathbf{elif}\;x \le 1.998896073279736443750109813264113386158 \cdot 10^{68}:\\ \;\;\;\;\left|\frac{\mathsf{fma}\left(-x, z, 4 + x\right)}{y}\right|\\ \mathbf{else}:\\ \;\;\;\;\left|\mathsf{fma}\left(\frac{-x}{y}, z, {\left(\frac{\sqrt[3]{4 + x}}{\sqrt[3]{y}}\right)}^{3}\right) + \left(z + \left(-z\right)\right) \cdot \frac{x}{y}\right|\\ \end{array}\]

Reproduce

herbie shell --seed 2019195 +o rules:numerics
(FPCore (x y z)
  :name "fabs fraction 1"
  (fabs (- (/ (+ x 4.0) y) (* (/ x y) z))))