Average Error: 16.3 → 3.2
Time: 22.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}\;\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} \le -0.9999999551912412:\\ \;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{2.0}{\alpha} + \frac{\frac{8.0}{\alpha}}{\alpha \cdot \alpha}\right)\right)}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{e^{\log \left(1.0 + \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0}\right)}}{2.0}\\ \end{array}\]
\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}
\begin{array}{l}
\mathbf{if}\;\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} \le -0.9999999551912412:\\
\;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{2.0}{\alpha} + \frac{\frac{8.0}{\alpha}}{\alpha \cdot \alpha}\right)\right)}{2.0}\\

\mathbf{else}:\\
\;\;\;\;\frac{e^{\log \left(1.0 + \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0}\right)}}{2.0}\\

\end{array}
double f(double alpha, double beta) {
        double r6652753 = beta;
        double r6652754 = alpha;
        double r6652755 = r6652753 - r6652754;
        double r6652756 = r6652754 + r6652753;
        double r6652757 = 2.0;
        double r6652758 = r6652756 + r6652757;
        double r6652759 = r6652755 / r6652758;
        double r6652760 = 1.0;
        double r6652761 = r6652759 + r6652760;
        double r6652762 = r6652761 / r6652757;
        return r6652762;
}

double f(double alpha, double beta) {
        double r6652763 = beta;
        double r6652764 = alpha;
        double r6652765 = r6652763 - r6652764;
        double r6652766 = r6652764 + r6652763;
        double r6652767 = 2.0;
        double r6652768 = r6652766 + r6652767;
        double r6652769 = r6652765 / r6652768;
        double r6652770 = -0.9999999551912412;
        bool r6652771 = r6652769 <= r6652770;
        double r6652772 = r6652763 / r6652768;
        double r6652773 = 4.0;
        double r6652774 = r6652764 * r6652764;
        double r6652775 = r6652773 / r6652774;
        double r6652776 = r6652767 / r6652764;
        double r6652777 = 8.0;
        double r6652778 = r6652777 / r6652764;
        double r6652779 = r6652778 / r6652774;
        double r6652780 = r6652776 + r6652779;
        double r6652781 = r6652775 - r6652780;
        double r6652782 = r6652772 - r6652781;
        double r6652783 = r6652782 / r6652767;
        double r6652784 = 1.0;
        double r6652785 = r6652784 + r6652769;
        double r6652786 = log(r6652785);
        double r6652787 = exp(r6652786);
        double r6652788 = r6652787 / r6652767;
        double r6652789 = r6652771 ? r6652783 : r6652788;
        return r6652789;
}

Error

Bits error versus alpha

Bits error versus beta

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if (/ (- beta alpha) (+ (+ alpha beta) 2.0)) < -0.9999999551912412

    1. Initial program 59.7

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

      \[\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-57.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. Taylor expanded around inf 11.5

      \[\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. Simplified11.5

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \color{blue}{\left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{2.0}{\alpha} + \frac{\frac{8.0}{\alpha}}{\alpha \cdot \alpha}\right)\right)}}{2.0}\]

    if -0.9999999551912412 < (/ (- beta alpha) (+ (+ alpha beta) 2.0))

    1. Initial program 0.1

      \[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\]
    2. Using strategy rm
    3. Applied add-exp-log0.1

      \[\leadsto \frac{\color{blue}{e^{\log \left(\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0\right)}}}{2.0}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification3.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} \le -0.9999999551912412:\\ \;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{2.0}{\alpha} + \frac{\frac{8.0}{\alpha}}{\alpha \cdot \alpha}\right)\right)}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{e^{\log \left(1.0 + \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0}\right)}}{2.0}\\ \end{array}\]

Reproduce

herbie shell --seed 2019158 
(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))