Average Error: 15.9 → 6.0
Time: 18.3s
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}\;\alpha \le 11629067263522.379:\\ \;\;\;\;\frac{e^{\log \left(\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \left(\frac{\alpha}{2.0 + \left(\beta + \alpha\right)} - 1.0\right)\right)}}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\beta \cdot \frac{1}{2.0 + \left(\beta + \alpha\right)} - \left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{2.0}{\alpha} + \frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)}\right)\right)}{2.0}\\ \end{array}\]
\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}
\begin{array}{l}
\mathbf{if}\;\alpha \le 11629067263522.379:\\
\;\;\;\;\frac{e^{\log \left(\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \left(\frac{\alpha}{2.0 + \left(\beta + \alpha\right)} - 1.0\right)\right)}}{2.0}\\

\mathbf{else}:\\
\;\;\;\;\frac{\beta \cdot \frac{1}{2.0 + \left(\beta + \alpha\right)} - \left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{2.0}{\alpha} + \frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)}\right)\right)}{2.0}\\

\end{array}
double f(double alpha, double beta) {
        double r4090506 = beta;
        double r4090507 = alpha;
        double r4090508 = r4090506 - r4090507;
        double r4090509 = r4090507 + r4090506;
        double r4090510 = 2.0;
        double r4090511 = r4090509 + r4090510;
        double r4090512 = r4090508 / r4090511;
        double r4090513 = 1.0;
        double r4090514 = r4090512 + r4090513;
        double r4090515 = r4090514 / r4090510;
        return r4090515;
}

double f(double alpha, double beta) {
        double r4090516 = alpha;
        double r4090517 = 11629067263522.379;
        bool r4090518 = r4090516 <= r4090517;
        double r4090519 = beta;
        double r4090520 = 2.0;
        double r4090521 = r4090519 + r4090516;
        double r4090522 = r4090520 + r4090521;
        double r4090523 = r4090519 / r4090522;
        double r4090524 = r4090516 / r4090522;
        double r4090525 = 1.0;
        double r4090526 = r4090524 - r4090525;
        double r4090527 = r4090523 - r4090526;
        double r4090528 = log(r4090527);
        double r4090529 = exp(r4090528);
        double r4090530 = r4090529 / r4090520;
        double r4090531 = 1.0;
        double r4090532 = r4090531 / r4090522;
        double r4090533 = r4090519 * r4090532;
        double r4090534 = 4.0;
        double r4090535 = r4090516 * r4090516;
        double r4090536 = r4090534 / r4090535;
        double r4090537 = r4090520 / r4090516;
        double r4090538 = 8.0;
        double r4090539 = r4090516 * r4090535;
        double r4090540 = r4090538 / r4090539;
        double r4090541 = r4090537 + r4090540;
        double r4090542 = r4090536 - r4090541;
        double r4090543 = r4090533 - r4090542;
        double r4090544 = r4090543 / r4090520;
        double r4090545 = r4090518 ? r4090530 : r4090544;
        return r4090545;
}

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 alpha < 11629067263522.379

    1. Initial program 0.3

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

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

      \[\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. Using strategy rm
    6. Applied add-exp-log0.3

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

    if 11629067263522.379 < alpha

    1. Initial program 49.9

      \[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\]
    2. Using strategy rm
    3. Applied div-sub49.9

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

      \[\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. Using strategy rm
    6. Applied div-inv48.3

      \[\leadsto \frac{\color{blue}{\beta \cdot \frac{1}{\left(\alpha + \beta\right) + 2.0}} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}{2.0}\]
    7. Using strategy rm
    8. Applied add-log-exp48.3

      \[\leadsto \frac{\beta \cdot \frac{1}{\left(\alpha + \beta\right) + 2.0} - \color{blue}{\log \left(e^{\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0}\right)}}{2.0}\]
    9. Taylor expanded around inf 18.5

      \[\leadsto \frac{\beta \cdot \frac{1}{\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}\]
    10. Simplified18.5

      \[\leadsto \frac{\beta \cdot \frac{1}{\left(\alpha + \beta\right) + 2.0} - \color{blue}{\left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)} + \frac{2.0}{\alpha}\right)\right)}}{2.0}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification6.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 11629067263522.379:\\ \;\;\;\;\frac{e^{\log \left(\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \left(\frac{\alpha}{2.0 + \left(\beta + \alpha\right)} - 1.0\right)\right)}}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\beta \cdot \frac{1}{2.0 + \left(\beta + \alpha\right)} - \left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{2.0}{\alpha} + \frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)}\right)\right)}{2.0}\\ \end{array}\]

Reproduce

herbie shell --seed 2019163 
(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))