Average Error: 16.3 → 3.2
Time: 23.4s
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(\left(\frac{4.0}{\alpha \cdot \alpha} - \frac{2.0}{\alpha}\right) - \frac{8.0}{\left(\alpha \cdot \alpha\right) \cdot \alpha}\right)}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log \left(e^{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(\left(\frac{4.0}{\alpha \cdot \alpha} - \frac{2.0}{\alpha}\right) - \frac{8.0}{\left(\alpha \cdot \alpha\right) \cdot \alpha}\right)}{2.0}\\

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

\end{array}
double f(double alpha, double beta) {
        double r3815538 = beta;
        double r3815539 = alpha;
        double r3815540 = r3815538 - r3815539;
        double r3815541 = r3815539 + r3815538;
        double r3815542 = 2.0;
        double r3815543 = r3815541 + r3815542;
        double r3815544 = r3815540 / r3815543;
        double r3815545 = 1.0;
        double r3815546 = r3815544 + r3815545;
        double r3815547 = r3815546 / r3815542;
        return r3815547;
}

double f(double alpha, double beta) {
        double r3815548 = beta;
        double r3815549 = alpha;
        double r3815550 = r3815548 - r3815549;
        double r3815551 = r3815549 + r3815548;
        double r3815552 = 2.0;
        double r3815553 = r3815551 + r3815552;
        double r3815554 = r3815550 / r3815553;
        double r3815555 = -0.9999999551912412;
        bool r3815556 = r3815554 <= r3815555;
        double r3815557 = r3815548 / r3815553;
        double r3815558 = 4.0;
        double r3815559 = r3815549 * r3815549;
        double r3815560 = r3815558 / r3815559;
        double r3815561 = r3815552 / r3815549;
        double r3815562 = r3815560 - r3815561;
        double r3815563 = 8.0;
        double r3815564 = r3815559 * r3815549;
        double r3815565 = r3815563 / r3815564;
        double r3815566 = r3815562 - r3815565;
        double r3815567 = r3815557 - r3815566;
        double r3815568 = r3815567 / r3815552;
        double r3815569 = 1.0;
        double r3815570 = r3815569 + r3815554;
        double r3815571 = exp(r3815570);
        double r3815572 = log(r3815571);
        double r3815573 = r3815572 / r3815552;
        double r3815574 = r3815556 ? r3815568 : r3815573;
        return r3815574;
}

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(\left(\frac{4.0}{\alpha \cdot \alpha} - \frac{2.0}{\alpha}\right) - \frac{8.0}{\left(\alpha \cdot \alpha\right) \cdot \alpha}\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-log-exp0.1

      \[\leadsto \frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + \color{blue}{\log \left(e^{1.0}\right)}}{2.0}\]
    4. Applied add-log-exp0.1

      \[\leadsto \frac{\color{blue}{\log \left(e^{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0}}\right)} + \log \left(e^{1.0}\right)}{2.0}\]
    5. Applied sum-log0.2

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

      \[\leadsto \frac{\log \color{blue}{\left(e^{1.0 + \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.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(\left(\frac{4.0}{\alpha \cdot \alpha} - \frac{2.0}{\alpha}\right) - \frac{8.0}{\left(\alpha \cdot \alpha\right) \cdot \alpha}\right)}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log \left(e^{1.0 + \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0}}\right)}{2.0}\\ \end{array}\]

Reproduce

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