Average Error: 3.6 → 2.2
Time: 18.1s
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1\]
\[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
\[\begin{array}{l} \mathbf{if}\;\alpha \le 2.944356741901989853696489064027108588251 \cdot 10^{166}:\\ \;\;\;\;\frac{\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \alpha + \beta\right)}{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}}{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}}{1 + \mathsf{fma}\left(2, 1, \alpha + \beta\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(0.25, \alpha + \beta, 0.5\right)}{\mathsf{fma}\left(2, 1, \alpha + \beta\right) \cdot \left(1 + \mathsf{fma}\left(2, 1, \alpha + \beta\right)\right)}\\ \end{array}\]
\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}
\begin{array}{l}
\mathbf{if}\;\alpha \le 2.944356741901989853696489064027108588251 \cdot 10^{166}:\\
\;\;\;\;\frac{\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \alpha + \beta\right)}{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}}{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}}{1 + \mathsf{fma}\left(2, 1, \alpha + \beta\right)}\\

\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(0.25, \alpha + \beta, 0.5\right)}{\mathsf{fma}\left(2, 1, \alpha + \beta\right) \cdot \left(1 + \mathsf{fma}\left(2, 1, \alpha + \beta\right)\right)}\\

\end{array}
double f(double alpha, double beta) {
        double r121464 = alpha;
        double r121465 = beta;
        double r121466 = r121464 + r121465;
        double r121467 = r121465 * r121464;
        double r121468 = r121466 + r121467;
        double r121469 = 1.0;
        double r121470 = r121468 + r121469;
        double r121471 = 2.0;
        double r121472 = r121471 * r121469;
        double r121473 = r121466 + r121472;
        double r121474 = r121470 / r121473;
        double r121475 = r121474 / r121473;
        double r121476 = r121473 + r121469;
        double r121477 = r121475 / r121476;
        return r121477;
}

double f(double alpha, double beta) {
        double r121478 = alpha;
        double r121479 = 2.94435674190199e+166;
        bool r121480 = r121478 <= r121479;
        double r121481 = 1.0;
        double r121482 = beta;
        double r121483 = r121478 + r121482;
        double r121484 = fma(r121482, r121478, r121483);
        double r121485 = r121481 + r121484;
        double r121486 = 2.0;
        double r121487 = fma(r121486, r121481, r121483);
        double r121488 = r121485 / r121487;
        double r121489 = r121488 / r121487;
        double r121490 = r121481 + r121487;
        double r121491 = r121489 / r121490;
        double r121492 = 0.25;
        double r121493 = 0.5;
        double r121494 = fma(r121492, r121483, r121493);
        double r121495 = r121487 * r121490;
        double r121496 = r121494 / r121495;
        double r121497 = r121480 ? r121491 : r121496;
        return r121497;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if alpha < 2.94435674190199e+166

    1. Initial program 1.4

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
    2. Simplified1.4

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

    if 2.94435674190199e+166 < alpha

    1. Initial program 15.7

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
    2. Simplified15.7

      \[\leadsto \color{blue}{\frac{\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}}\]
    3. Using strategy rm
    4. Applied div-inv15.7

      \[\leadsto \frac{\color{blue}{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)} \cdot \frac{1}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}\]
    5. Applied associate-/l*16.6

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

      \[\leadsto \frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{\color{blue}{\mathsf{fma}\left(2, 1, \beta + \alpha\right) \cdot \left(1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)\right)}}\]
    7. Taylor expanded around 0 6.6

      \[\leadsto \frac{\color{blue}{0.5 + \left(0.25 \cdot \beta + 0.25 \cdot \alpha\right)}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right) \cdot \left(1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)\right)}\]
    8. Simplified6.6

      \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(0.25, \alpha + \beta, 0.5\right)}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right) \cdot \left(1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification2.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 2.944356741901989853696489064027108588251 \cdot 10^{166}:\\ \;\;\;\;\frac{\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \alpha + \beta\right)}{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}}{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}}{1 + \mathsf{fma}\left(2, 1, \alpha + \beta\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(0.25, \alpha + \beta, 0.5\right)}{\mathsf{fma}\left(2, 1, \alpha + \beta\right) \cdot \left(1 + \mathsf{fma}\left(2, 1, \alpha + \beta\right)\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2019195 +o rules:numerics
(FPCore (alpha beta)
  :name "Octave 3.8, jcobi/3"
  :pre (and (> alpha -1.0) (> beta -1.0))
  (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2.0 1.0))) (+ (+ alpha beta) (* 2.0 1.0))) (+ (+ (+ alpha beta) (* 2.0 1.0)) 1.0)))