Average Error: 16.5 → 6.0
Time: 6.2s
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 25643285862390824:\\ \;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \mathsf{fma}\left(\alpha, \frac{1}{\left(\alpha + \beta\right) + 2}, -1\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\beta \cdot \frac{1}{\left(\alpha + \beta\right) + 2} - \mathsf{fma}\left(4, \frac{1}{{\alpha}^{2}}, -\mathsf{fma}\left(2, \frac{1}{\alpha}, 8 \cdot \frac{1}{{\alpha}^{3}}\right)\right)}{2}\\ \end{array}\]
\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}
\begin{array}{l}
\mathbf{if}\;\alpha \le 25643285862390824:\\
\;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \mathsf{fma}\left(\alpha, \frac{1}{\left(\alpha + \beta\right) + 2}, -1\right)}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{\beta \cdot \frac{1}{\left(\alpha + \beta\right) + 2} - \mathsf{fma}\left(4, \frac{1}{{\alpha}^{2}}, -\mathsf{fma}\left(2, \frac{1}{\alpha}, 8 \cdot \frac{1}{{\alpha}^{3}}\right)\right)}{2}\\

\end{array}
double f(double alpha, double beta) {
        double r103527 = beta;
        double r103528 = alpha;
        double r103529 = r103527 - r103528;
        double r103530 = r103528 + r103527;
        double r103531 = 2.0;
        double r103532 = r103530 + r103531;
        double r103533 = r103529 / r103532;
        double r103534 = 1.0;
        double r103535 = r103533 + r103534;
        double r103536 = r103535 / r103531;
        return r103536;
}

double f(double alpha, double beta) {
        double r103537 = alpha;
        double r103538 = 25643285862390824.0;
        bool r103539 = r103537 <= r103538;
        double r103540 = beta;
        double r103541 = r103537 + r103540;
        double r103542 = 2.0;
        double r103543 = r103541 + r103542;
        double r103544 = r103540 / r103543;
        double r103545 = 1.0;
        double r103546 = r103545 / r103543;
        double r103547 = 1.0;
        double r103548 = -r103547;
        double r103549 = fma(r103537, r103546, r103548);
        double r103550 = r103544 - r103549;
        double r103551 = r103550 / r103542;
        double r103552 = r103540 * r103546;
        double r103553 = 4.0;
        double r103554 = 2.0;
        double r103555 = pow(r103537, r103554);
        double r103556 = r103545 / r103555;
        double r103557 = r103545 / r103537;
        double r103558 = 8.0;
        double r103559 = 3.0;
        double r103560 = pow(r103537, r103559);
        double r103561 = r103545 / r103560;
        double r103562 = r103558 * r103561;
        double r103563 = fma(r103542, r103557, r103562);
        double r103564 = -r103563;
        double r103565 = fma(r103553, r103556, r103564);
        double r103566 = r103552 - r103565;
        double r103567 = r103566 / r103542;
        double r103568 = r103539 ? r103551 : r103567;
        return r103568;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

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

    1. Initial program 0.3

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

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

      \[\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 div-inv0.3

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\color{blue}{\alpha \cdot \frac{1}{\left(\alpha + \beta\right) + 2}} - 1\right)}{2}\]
    7. Applied fma-neg0.3

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

    if 25643285862390824.0 < alpha

    1. Initial program 50.9

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

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

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

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

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

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \log \color{blue}{\left(e^{\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1}\right)}}{2}\]
    10. Using strategy rm
    11. Applied div-inv49.3

      \[\leadsto \frac{\color{blue}{\beta \cdot \frac{1}{\left(\alpha + \beta\right) + 2}} - \log \left(e^{\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1}\right)}{2}\]
    12. Taylor expanded around inf 18.1

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

      \[\leadsto \frac{\beta \cdot \frac{1}{\left(\alpha + \beta\right) + 2} - \color{blue}{\mathsf{fma}\left(4, \frac{1}{{\alpha}^{2}}, -\mathsf{fma}\left(2, \frac{1}{\alpha}, 8 \cdot \frac{1}{{\alpha}^{3}}\right)\right)}}{2}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification6.0

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

Reproduce

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