Average Error: 16.6 → 3.2
Time: 17.9s
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1\]
\[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}\]
\[\begin{array}{l} \mathbf{if}\;\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} \le -0.9999815020213579375152335160237271338701:\\ \;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\frac{4}{\alpha \cdot \alpha} - \left(\frac{8}{{\alpha}^{3}} + \frac{2}{\alpha}\right)\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{{\left(\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}\right)}^{3} + {1}^{3}}{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} \cdot \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1 \cdot \left(1 - \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}\right)}}{2}\\ \end{array}\]
\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}
\begin{array}{l}
\mathbf{if}\;\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} \le -0.9999815020213579375152335160237271338701:\\
\;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\frac{4}{\alpha \cdot \alpha} - \left(\frac{8}{{\alpha}^{3}} + \frac{2}{\alpha}\right)\right)}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{{\left(\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}\right)}^{3} + {1}^{3}}{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} \cdot \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1 \cdot \left(1 - \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}\right)}}{2}\\

\end{array}
double f(double alpha, double beta) {
        double r87617 = beta;
        double r87618 = alpha;
        double r87619 = r87617 - r87618;
        double r87620 = r87618 + r87617;
        double r87621 = 2.0;
        double r87622 = r87620 + r87621;
        double r87623 = r87619 / r87622;
        double r87624 = 1.0;
        double r87625 = r87623 + r87624;
        double r87626 = r87625 / r87621;
        return r87626;
}

double f(double alpha, double beta) {
        double r87627 = beta;
        double r87628 = alpha;
        double r87629 = r87627 - r87628;
        double r87630 = r87628 + r87627;
        double r87631 = 2.0;
        double r87632 = r87630 + r87631;
        double r87633 = r87629 / r87632;
        double r87634 = -0.9999815020213579;
        bool r87635 = r87633 <= r87634;
        double r87636 = r87627 / r87632;
        double r87637 = 4.0;
        double r87638 = r87628 * r87628;
        double r87639 = r87637 / r87638;
        double r87640 = 8.0;
        double r87641 = 3.0;
        double r87642 = pow(r87628, r87641);
        double r87643 = r87640 / r87642;
        double r87644 = r87631 / r87628;
        double r87645 = r87643 + r87644;
        double r87646 = r87639 - r87645;
        double r87647 = r87636 - r87646;
        double r87648 = r87647 / r87631;
        double r87649 = pow(r87633, r87641);
        double r87650 = 1.0;
        double r87651 = pow(r87650, r87641);
        double r87652 = r87649 + r87651;
        double r87653 = r87633 * r87633;
        double r87654 = r87650 - r87633;
        double r87655 = r87650 * r87654;
        double r87656 = r87653 + r87655;
        double r87657 = r87652 / r87656;
        double r87658 = r87657 / r87631;
        double r87659 = r87635 ? r87648 : r87658;
        return r87659;
}

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.9999815020213579

    1. Initial program 59.5

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

      \[\leadsto \frac{\color{blue}{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2} - \frac{\alpha}{\left(\alpha + \beta\right) + 2}\right)} + 1}{2}\]
    4. Applied associate-+l-57.6

      \[\leadsto \frac{\color{blue}{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)}}{2}\]
    5. Taylor expanded around inf 11.4

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

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \color{blue}{\left(\frac{4}{\alpha \cdot \alpha} - \left(\frac{8}{{\alpha}^{3}} + \frac{2}{\alpha}\right)\right)}}{2}\]

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

    1. Initial program 0.0

      \[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}\]
    2. Using strategy rm
    3. Applied flip3-+0.1

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

      \[\leadsto \frac{\frac{{\left(\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}\right)}^{3} + {1}^{3}}{\color{blue}{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} \cdot \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1 \cdot \left(1 - \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}\right)}}}{2}\]
  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} \le -0.9999815020213579375152335160237271338701:\\ \;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\frac{4}{\alpha \cdot \alpha} - \left(\frac{8}{{\alpha}^{3}} + \frac{2}{\alpha}\right)\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{{\left(\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}\right)}^{3} + {1}^{3}}{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} \cdot \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1 \cdot \left(1 - \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2}\right)}}{2}\\ \end{array}\]

Reproduce

herbie shell --seed 2019208 
(FPCore (alpha beta)
  :name "Octave 3.8, jcobi/1"
  :precision binary64
  :pre (and (> alpha -1) (> beta -1))
  (/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2)) 1) 2))