Average Error: 16.2 → 6.4
Time: 19.0s
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 2.1159100932126255 \cdot 10^{+26}:\\ \;\;\;\;e^{\log \left(\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \left(\frac{\alpha}{2.0 + \left(\beta + \alpha\right)} - 1.0\right)}{2.0}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\frac{\sqrt[3]{\beta} \cdot \sqrt[3]{\beta}}{\sqrt[3]{2.0 + \left(\beta + \alpha\right)} \cdot \sqrt[3]{2.0 + \left(\beta + \alpha\right)}}, \frac{\sqrt[3]{\beta}}{\sqrt[3]{2.0 + \left(\beta + \alpha\right)}}, -\left(\left(\frac{\frac{4.0}{\alpha}}{\alpha} - \frac{\frac{8.0}{\alpha}}{\alpha \cdot \alpha}\right) - \frac{2.0}{\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 2.1159100932126255 \cdot 10^{+26}:\\
\;\;\;\;e^{\log \left(\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \left(\frac{\alpha}{2.0 + \left(\beta + \alpha\right)} - 1.0\right)}{2.0}\right)}\\

\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{\sqrt[3]{\beta} \cdot \sqrt[3]{\beta}}{\sqrt[3]{2.0 + \left(\beta + \alpha\right)} \cdot \sqrt[3]{2.0 + \left(\beta + \alpha\right)}}, \frac{\sqrt[3]{\beta}}{\sqrt[3]{2.0 + \left(\beta + \alpha\right)}}, -\left(\left(\frac{\frac{4.0}{\alpha}}{\alpha} - \frac{\frac{8.0}{\alpha}}{\alpha \cdot \alpha}\right) - \frac{2.0}{\alpha}\right)\right)}{2.0}\\

\end{array}
double f(double alpha, double beta) {
        double r2572694 = beta;
        double r2572695 = alpha;
        double r2572696 = r2572694 - r2572695;
        double r2572697 = r2572695 + r2572694;
        double r2572698 = 2.0;
        double r2572699 = r2572697 + r2572698;
        double r2572700 = r2572696 / r2572699;
        double r2572701 = 1.0;
        double r2572702 = r2572700 + r2572701;
        double r2572703 = r2572702 / r2572698;
        return r2572703;
}

double f(double alpha, double beta) {
        double r2572704 = alpha;
        double r2572705 = 2.1159100932126255e+26;
        bool r2572706 = r2572704 <= r2572705;
        double r2572707 = beta;
        double r2572708 = 2.0;
        double r2572709 = r2572707 + r2572704;
        double r2572710 = r2572708 + r2572709;
        double r2572711 = r2572707 / r2572710;
        double r2572712 = r2572704 / r2572710;
        double r2572713 = 1.0;
        double r2572714 = r2572712 - r2572713;
        double r2572715 = r2572711 - r2572714;
        double r2572716 = r2572715 / r2572708;
        double r2572717 = log(r2572716);
        double r2572718 = exp(r2572717);
        double r2572719 = cbrt(r2572707);
        double r2572720 = r2572719 * r2572719;
        double r2572721 = cbrt(r2572710);
        double r2572722 = r2572721 * r2572721;
        double r2572723 = r2572720 / r2572722;
        double r2572724 = r2572719 / r2572721;
        double r2572725 = 4.0;
        double r2572726 = r2572725 / r2572704;
        double r2572727 = r2572726 / r2572704;
        double r2572728 = 8.0;
        double r2572729 = r2572728 / r2572704;
        double r2572730 = r2572704 * r2572704;
        double r2572731 = r2572729 / r2572730;
        double r2572732 = r2572727 - r2572731;
        double r2572733 = r2572708 / r2572704;
        double r2572734 = r2572732 - r2572733;
        double r2572735 = -r2572734;
        double r2572736 = fma(r2572723, r2572724, r2572735);
        double r2572737 = r2572736 / r2572708;
        double r2572738 = r2572706 ? r2572718 : r2572737;
        return r2572738;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if alpha < 2.1159100932126255e+26

    1. Initial program 1.2

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

      \[\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.2

      \[\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-exp-log1.2

      \[\leadsto \color{blue}{e^{\log \left(\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}{2.0}\right)}}\]

    if 2.1159100932126255e+26 < alpha

    1. Initial program 50.4

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

      \[\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-48.8

      \[\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-cbrt48.9

      \[\leadsto \frac{\frac{\beta}{\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}}} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}{2.0}\]
    7. Applied add-cube-cbrt48.8

      \[\leadsto \frac{\frac{\color{blue}{\left(\sqrt[3]{\beta} \cdot \sqrt[3]{\beta}\right) \cdot \sqrt[3]{\beta}}}{\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}} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}{2.0}\]
    8. Applied times-frac48.8

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

      \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\frac{\sqrt[3]{\beta} \cdot \sqrt[3]{\beta}}{\sqrt[3]{\left(\alpha + \beta\right) + 2.0} \cdot \sqrt[3]{\left(\alpha + \beta\right) + 2.0}}, \frac{\sqrt[3]{\beta}}{\sqrt[3]{\left(\alpha + \beta\right) + 2.0}}, -\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)\right)}}{2.0}\]
    10. Taylor expanded around inf 18.3

      \[\leadsto \frac{\mathsf{fma}\left(\frac{\sqrt[3]{\beta} \cdot \sqrt[3]{\beta}}{\sqrt[3]{\left(\alpha + \beta\right) + 2.0} \cdot \sqrt[3]{\left(\alpha + \beta\right) + 2.0}}, \frac{\sqrt[3]{\beta}}{\sqrt[3]{\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)}\right)}{2.0}\]
    11. Simplified18.3

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

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

Reproduce

herbie shell --seed 2019152 +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))