Average Error: 15.9 → 6.5
Time: 24.3s
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1\]
\[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\]
\[\begin{array}{l} \mathbf{if}\;\alpha \le 6.866680421773357 \cdot 10^{+32}:\\ \;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \mathsf{fma}\left(\frac{1}{\sqrt[3]{2.0 + \left(\beta + \alpha\right)} \cdot \sqrt[3]{2.0 + \left(\beta + \alpha\right)}}, \frac{\alpha}{\sqrt[3]{2.0 + \left(\beta + \alpha\right)}}, -1.0\right)}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{2.0}{\alpha} + \frac{\frac{8.0}{\alpha}}{\alpha \cdot \alpha}\right)\right)}{2.0}\\ \end{array}\]
\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}
\begin{array}{l}
\mathbf{if}\;\alpha \le 6.866680421773357 \cdot 10^{+32}:\\
\;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \mathsf{fma}\left(\frac{1}{\sqrt[3]{2.0 + \left(\beta + \alpha\right)} \cdot \sqrt[3]{2.0 + \left(\beta + \alpha\right)}}, \frac{\alpha}{\sqrt[3]{2.0 + \left(\beta + \alpha\right)}}, -1.0\right)}{2.0}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{2.0}{\alpha} + \frac{\frac{8.0}{\alpha}}{\alpha \cdot \alpha}\right)\right)}{2.0}\\

\end{array}
double f(double alpha, double beta) {
        double r3416862 = beta;
        double r3416863 = alpha;
        double r3416864 = r3416862 - r3416863;
        double r3416865 = r3416863 + r3416862;
        double r3416866 = 2.0;
        double r3416867 = r3416865 + r3416866;
        double r3416868 = r3416864 / r3416867;
        double r3416869 = 1.0;
        double r3416870 = r3416868 + r3416869;
        double r3416871 = r3416870 / r3416866;
        return r3416871;
}

double f(double alpha, double beta) {
        double r3416872 = alpha;
        double r3416873 = 6.866680421773357e+32;
        bool r3416874 = r3416872 <= r3416873;
        double r3416875 = beta;
        double r3416876 = 2.0;
        double r3416877 = r3416875 + r3416872;
        double r3416878 = r3416876 + r3416877;
        double r3416879 = r3416875 / r3416878;
        double r3416880 = 1.0;
        double r3416881 = cbrt(r3416878);
        double r3416882 = r3416881 * r3416881;
        double r3416883 = r3416880 / r3416882;
        double r3416884 = r3416872 / r3416881;
        double r3416885 = 1.0;
        double r3416886 = -r3416885;
        double r3416887 = fma(r3416883, r3416884, r3416886);
        double r3416888 = r3416879 - r3416887;
        double r3416889 = r3416888 / r3416876;
        double r3416890 = 4.0;
        double r3416891 = r3416872 * r3416872;
        double r3416892 = r3416890 / r3416891;
        double r3416893 = r3416876 / r3416872;
        double r3416894 = 8.0;
        double r3416895 = r3416894 / r3416872;
        double r3416896 = r3416895 / r3416891;
        double r3416897 = r3416893 + r3416896;
        double r3416898 = r3416892 - r3416897;
        double r3416899 = r3416879 - r3416898;
        double r3416900 = r3416899 / r3416876;
        double r3416901 = r3416874 ? r3416889 : r3416900;
        return r3416901;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if alpha < 6.866680421773357e+32

    1. Initial program 1.6

      \[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\]
    2. Using strategy rm
    3. Applied div-sub1.6

      \[\leadsto \frac{\color{blue}{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \frac{\alpha}{\left(\alpha + \beta\right) + 2.0}\right)} + 1.0}{2.0}\]
    4. Applied associate-+l-1.6

      \[\leadsto \frac{\color{blue}{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}}{2.0}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt1.6

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\color{blue}{\left(\sqrt[3]{\left(\alpha + \beta\right) + 2.0} \cdot \sqrt[3]{\left(\alpha + \beta\right) + 2.0}\right) \cdot \sqrt[3]{\left(\alpha + \beta\right) + 2.0}}} - 1.0\right)}{2.0}\]
    7. Applied *-un-lft-identity1.6

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\color{blue}{1 \cdot \alpha}}{\left(\sqrt[3]{\left(\alpha + \beta\right) + 2.0} \cdot \sqrt[3]{\left(\alpha + \beta\right) + 2.0}\right) \cdot \sqrt[3]{\left(\alpha + \beta\right) + 2.0}} - 1.0\right)}{2.0}\]
    8. Applied times-frac1.6

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\color{blue}{\frac{1}{\sqrt[3]{\left(\alpha + \beta\right) + 2.0} \cdot \sqrt[3]{\left(\alpha + \beta\right) + 2.0}} \cdot \frac{\alpha}{\sqrt[3]{\left(\alpha + \beta\right) + 2.0}}} - 1.0\right)}{2.0}\]
    9. Applied fma-neg1.6

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \color{blue}{\mathsf{fma}\left(\frac{1}{\sqrt[3]{\left(\alpha + \beta\right) + 2.0} \cdot \sqrt[3]{\left(\alpha + \beta\right) + 2.0}}, \frac{\alpha}{\sqrt[3]{\left(\alpha + \beta\right) + 2.0}}, -1.0\right)}}{2.0}\]

    if 6.866680421773357e+32 < alpha

    1. Initial program 50.6

      \[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\]
    2. Using strategy rm
    3. Applied div-sub50.6

      \[\leadsto \frac{\color{blue}{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \frac{\alpha}{\left(\alpha + \beta\right) + 2.0}\right)} + 1.0}{2.0}\]
    4. Applied associate-+l-49.0

      \[\leadsto \frac{\color{blue}{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}}{2.0}\]
    5. Taylor expanded around inf 18.4

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \color{blue}{\left(4.0 \cdot \frac{1}{{\alpha}^{2}} - \left(2.0 \cdot \frac{1}{\alpha} + 8.0 \cdot \frac{1}{{\alpha}^{3}}\right)\right)}}{2.0}\]
    6. Simplified18.4

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \color{blue}{\left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{\frac{8.0}{\alpha}}{\alpha \cdot \alpha} + \frac{2.0}{\alpha}\right)\right)}}{2.0}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification6.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 6.866680421773357 \cdot 10^{+32}:\\ \;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \mathsf{fma}\left(\frac{1}{\sqrt[3]{2.0 + \left(\beta + \alpha\right)} \cdot \sqrt[3]{2.0 + \left(\beta + \alpha\right)}}, \frac{\alpha}{\sqrt[3]{2.0 + \left(\beta + \alpha\right)}}, -1.0\right)}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{2.0}{\alpha} + \frac{\frac{8.0}{\alpha}}{\alpha \cdot \alpha}\right)\right)}{2.0}\\ \end{array}\]

Reproduce

herbie shell --seed 2019168 +o rules:numerics
(FPCore (alpha beta)
  :name "Octave 3.8, jcobi/1"
  :pre (and (> alpha -1) (> beta -1))
  (/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0) 2.0))