Average Error: 16.1 → 3.1
Time: 19.5s
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.9999999999999996669330926124530378729105:\\ \;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\left(\frac{4}{\alpha \cdot \alpha} - \frac{8}{{\alpha}^{3}}\right) - \frac{2}{\alpha}\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{e^{\log \left(\frac{\beta - \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.9999999999999996669330926124530378729105:\\
\;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\left(\frac{4}{\alpha \cdot \alpha} - \frac{8}{{\alpha}^{3}}\right) - \frac{2}{\alpha}\right)}{2}\\

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

\end{array}
double f(double alpha, double beta) {
        double r93489 = beta;
        double r93490 = alpha;
        double r93491 = r93489 - r93490;
        double r93492 = r93490 + r93489;
        double r93493 = 2.0;
        double r93494 = r93492 + r93493;
        double r93495 = r93491 / r93494;
        double r93496 = 1.0;
        double r93497 = r93495 + r93496;
        double r93498 = r93497 / r93493;
        return r93498;
}

double f(double alpha, double beta) {
        double r93499 = beta;
        double r93500 = alpha;
        double r93501 = r93499 - r93500;
        double r93502 = r93500 + r93499;
        double r93503 = 2.0;
        double r93504 = r93502 + r93503;
        double r93505 = r93501 / r93504;
        double r93506 = -0.9999999999999997;
        bool r93507 = r93505 <= r93506;
        double r93508 = r93499 / r93504;
        double r93509 = 4.0;
        double r93510 = r93500 * r93500;
        double r93511 = r93509 / r93510;
        double r93512 = 8.0;
        double r93513 = 3.0;
        double r93514 = pow(r93500, r93513);
        double r93515 = r93512 / r93514;
        double r93516 = r93511 - r93515;
        double r93517 = r93503 / r93500;
        double r93518 = r93516 - r93517;
        double r93519 = r93508 - r93518;
        double r93520 = r93519 / r93503;
        double r93521 = 1.0;
        double r93522 = r93505 + r93521;
        double r93523 = log(r93522);
        double r93524 = exp(r93523);
        double r93525 = r93524 / r93503;
        double r93526 = r93507 ? r93520 : r93525;
        return r93526;
}

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

    1. Initial program 60.5

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

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

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

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

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

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

    1. Initial program 0.4

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} \le -0.9999999999999996669330926124530378729105:\\ \;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\left(\frac{4}{\alpha \cdot \alpha} - \frac{8}{{\alpha}^{3}}\right) - \frac{2}{\alpha}\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{e^{\log \left(\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1\right)}}{2}\\ \end{array}\]

Reproduce

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