Average Error: 16.0 → 3.2
Time: 5.7s
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.99999967144127622:\\ \;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\left(\frac{\frac{4}{\alpha}}{\alpha} + \frac{-8}{{\alpha}^{3}}\right) + \frac{-2}{\alpha}\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log \left(e^{\frac{\beta}{\left(\alpha + \beta\right) + 2}}\right) - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\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.99999967144127622:\\
\;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\left(\frac{\frac{4}{\alpha}}{\alpha} + \frac{-8}{{\alpha}^{3}}\right) + \frac{-2}{\alpha}\right)}{2}\\

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

\end{array}
double f(double alpha, double beta) {
        double r98017 = beta;
        double r98018 = alpha;
        double r98019 = r98017 - r98018;
        double r98020 = r98018 + r98017;
        double r98021 = 2.0;
        double r98022 = r98020 + r98021;
        double r98023 = r98019 / r98022;
        double r98024 = 1.0;
        double r98025 = r98023 + r98024;
        double r98026 = r98025 / r98021;
        return r98026;
}

double f(double alpha, double beta) {
        double r98027 = beta;
        double r98028 = alpha;
        double r98029 = r98027 - r98028;
        double r98030 = r98028 + r98027;
        double r98031 = 2.0;
        double r98032 = r98030 + r98031;
        double r98033 = r98029 / r98032;
        double r98034 = -0.9999996714412762;
        bool r98035 = r98033 <= r98034;
        double r98036 = r98027 / r98032;
        double r98037 = 4.0;
        double r98038 = r98037 / r98028;
        double r98039 = r98038 / r98028;
        double r98040 = 8.0;
        double r98041 = -r98040;
        double r98042 = 3.0;
        double r98043 = pow(r98028, r98042);
        double r98044 = r98041 / r98043;
        double r98045 = r98039 + r98044;
        double r98046 = -r98031;
        double r98047 = r98046 / r98028;
        double r98048 = r98045 + r98047;
        double r98049 = r98036 - r98048;
        double r98050 = r98049 / r98031;
        double r98051 = exp(r98036);
        double r98052 = log(r98051);
        double r98053 = r98028 / r98032;
        double r98054 = 1.0;
        double r98055 = r98053 - r98054;
        double r98056 = r98052 - r98055;
        double r98057 = r98056 / r98031;
        double r98058 = r98035 ? r98050 : r98057;
        return r98058;
}

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

    1. Initial program 59.8

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

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

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

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

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

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

    1. Initial program 0.1

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

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

      \[\leadsto \frac{\color{blue}{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)}}{2}\]
    5. Using strategy rm
    6. Applied add-log-exp0.1

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

Reproduce

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