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

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

\end{array}
double f(double alpha, double beta) {
        double r94298 = beta;
        double r94299 = alpha;
        double r94300 = r94298 - r94299;
        double r94301 = r94299 + r94298;
        double r94302 = 2.0;
        double r94303 = r94301 + r94302;
        double r94304 = r94300 / r94303;
        double r94305 = 1.0;
        double r94306 = r94304 + r94305;
        double r94307 = r94306 / r94302;
        return r94307;
}

double f(double alpha, double beta) {
        double r94308 = beta;
        double r94309 = alpha;
        double r94310 = r94308 - r94309;
        double r94311 = r94309 + r94308;
        double r94312 = 2.0;
        double r94313 = r94311 + r94312;
        double r94314 = r94310 / r94313;
        double r94315 = -0.999999999845438;
        bool r94316 = r94314 <= r94315;
        double r94317 = r94308 / r94313;
        double r94318 = 4.0;
        double r94319 = 1.0;
        double r94320 = 2.0;
        double r94321 = pow(r94309, r94320);
        double r94322 = r94319 / r94321;
        double r94323 = r94318 * r94322;
        double r94324 = r94319 / r94309;
        double r94325 = r94312 * r94324;
        double r94326 = 8.0;
        double r94327 = 3.0;
        double r94328 = pow(r94309, r94327);
        double r94329 = r94319 / r94328;
        double r94330 = r94326 * r94329;
        double r94331 = r94325 + r94330;
        double r94332 = r94323 - r94331;
        double r94333 = r94317 - r94332;
        double r94334 = r94333 / r94312;
        double r94335 = r94309 / r94313;
        double r94336 = 1.0;
        double r94337 = r94335 - r94336;
        double r94338 = r94317 - r94337;
        double r94339 = r94338 / r94312;
        double r94340 = log(r94339);
        double r94341 = exp(r94340);
        double r94342 = r94316 ? r94334 : r94341;
        return r94342;
}

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

    1. Initial program 60.2

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

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

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

      \[\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}\]

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

    1. Initial program 0.2

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

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

      \[\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-exp-log0.2

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)}{\color{blue}{e^{\log 2}}}\]
    7. Applied add-exp-log0.2

      \[\leadsto \frac{\color{blue}{e^{\log \left(\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)\right)}}}{e^{\log 2}}\]
    8. Applied div-exp0.2

      \[\leadsto \color{blue}{e^{\log \left(\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)\right) - \log 2}}\]
    9. Simplified0.2

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

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

Reproduce

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