Average Error: 16.6 → 5.9
Time: 21.9s
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}\;\alpha \le 49032803.700705133378505706787109375:\\ \;\;\;\;\frac{e^{\log \left({\left(\frac{\beta}{\left(\alpha + \beta\right) + 2}\right)}^{3} - {\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)}^{3}\right) - \log \left(\mathsf{fma}\left(\frac{\beta}{\left(\alpha + \beta\right) + 2}, \frac{\beta}{\left(\alpha + \beta\right) + 2}, \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right) \cdot \left(\frac{\beta}{\left(\alpha + \beta\right) + 2} + \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)\right)\right)\right)}}{2}\\ \mathbf{else}:\\ \;\;\;\;\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}\\ \end{array}\]
\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}
\begin{array}{l}
\mathbf{if}\;\alpha \le 49032803.700705133378505706787109375:\\
\;\;\;\;\frac{e^{\log \left({\left(\frac{\beta}{\left(\alpha + \beta\right) + 2}\right)}^{3} - {\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)}^{3}\right) - \log \left(\mathsf{fma}\left(\frac{\beta}{\left(\alpha + \beta\right) + 2}, \frac{\beta}{\left(\alpha + \beta\right) + 2}, \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right) \cdot \left(\frac{\beta}{\left(\alpha + \beta\right) + 2} + \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)\right)\right)\right)}}{2}\\

\mathbf{else}:\\
\;\;\;\;\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}\\

\end{array}
double f(double alpha, double beta) {
        double r94511 = beta;
        double r94512 = alpha;
        double r94513 = r94511 - r94512;
        double r94514 = r94512 + r94511;
        double r94515 = 2.0;
        double r94516 = r94514 + r94515;
        double r94517 = r94513 / r94516;
        double r94518 = 1.0;
        double r94519 = r94517 + r94518;
        double r94520 = r94519 / r94515;
        return r94520;
}

double f(double alpha, double beta) {
        double r94521 = alpha;
        double r94522 = 49032803.70070513;
        bool r94523 = r94521 <= r94522;
        double r94524 = beta;
        double r94525 = r94521 + r94524;
        double r94526 = 2.0;
        double r94527 = r94525 + r94526;
        double r94528 = r94524 / r94527;
        double r94529 = 3.0;
        double r94530 = pow(r94528, r94529);
        double r94531 = r94521 / r94527;
        double r94532 = 1.0;
        double r94533 = r94531 - r94532;
        double r94534 = pow(r94533, r94529);
        double r94535 = r94530 - r94534;
        double r94536 = log(r94535);
        double r94537 = r94528 + r94533;
        double r94538 = r94533 * r94537;
        double r94539 = fma(r94528, r94528, r94538);
        double r94540 = log(r94539);
        double r94541 = r94536 - r94540;
        double r94542 = exp(r94541);
        double r94543 = r94542 / r94526;
        double r94544 = 4.0;
        double r94545 = r94521 * r94521;
        double r94546 = r94544 / r94545;
        double r94547 = 8.0;
        double r94548 = pow(r94521, r94529);
        double r94549 = r94547 / r94548;
        double r94550 = r94546 - r94549;
        double r94551 = r94526 / r94521;
        double r94552 = r94550 - r94551;
        double r94553 = r94528 - r94552;
        double r94554 = r94553 / r94526;
        double r94555 = r94523 ? r94543 : r94554;
        return r94555;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if alpha < 49032803.70070513

    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-exp-log0.1

      \[\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)}}}{2}\]
    7. Using strategy rm
    8. Applied flip3--0.1

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

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

      \[\leadsto \frac{e^{\log \left({\left(\frac{\beta}{\left(\alpha + \beta\right) + 2}\right)}^{3} - {\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)}^{3}\right) - \color{blue}{\log \left(\mathsf{fma}\left(\frac{\beta}{\left(\alpha + \beta\right) + 2}, \frac{\beta}{\left(\alpha + \beta\right) + 2}, \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right) \cdot \left(\frac{\beta}{\left(\alpha + \beta\right) + 2} + \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)\right)\right)\right)}}}{2}\]

    if 49032803.70070513 < alpha

    1. Initial program 49.7

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

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

      \[\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}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification5.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 49032803.700705133378505706787109375:\\ \;\;\;\;\frac{e^{\log \left({\left(\frac{\beta}{\left(\alpha + \beta\right) + 2}\right)}^{3} - {\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)}^{3}\right) - \log \left(\mathsf{fma}\left(\frac{\beta}{\left(\alpha + \beta\right) + 2}, \frac{\beta}{\left(\alpha + \beta\right) + 2}, \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right) \cdot \left(\frac{\beta}{\left(\alpha + \beta\right) + 2} + \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)\right)\right)\right)}}{2}\\ \mathbf{else}:\\ \;\;\;\;\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}\\ \end{array}\]

Reproduce

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