Average Error: 3.9 → 1.0
Time: 14.7s
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}\;\beta \le 1.60910787064666076333431354702557863221 \cdot 10^{158}:\\ \;\;\;\;\frac{\frac{\frac{1}{\frac{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}{\beta + \left(\alpha + \mathsf{fma}\left(\alpha, \beta, 1\right)\right)}}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{1}{\left(\frac{1}{\alpha} + \frac{1}{\beta}\right) - \frac{1}{{\alpha}^{2}}}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\ \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}\;\beta \le 1.60910787064666076333431354702557863221 \cdot 10^{158}:\\
\;\;\;\;\frac{\frac{\frac{1}{\frac{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}{\beta + \left(\alpha + \mathsf{fma}\left(\alpha, \beta, 1\right)\right)}}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\

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

\end{array}
double f(double alpha, double beta) {
        double r183434 = alpha;
        double r183435 = beta;
        double r183436 = r183434 + r183435;
        double r183437 = r183435 * r183434;
        double r183438 = r183436 + r183437;
        double r183439 = 1.0;
        double r183440 = r183438 + r183439;
        double r183441 = 2.0;
        double r183442 = r183441 * r183439;
        double r183443 = r183436 + r183442;
        double r183444 = r183440 / r183443;
        double r183445 = r183444 / r183443;
        double r183446 = r183443 + r183439;
        double r183447 = r183445 / r183446;
        return r183447;
}

double f(double alpha, double beta) {
        double r183448 = beta;
        double r183449 = 1.6091078706466608e+158;
        bool r183450 = r183448 <= r183449;
        double r183451 = 1.0;
        double r183452 = 1.0;
        double r183453 = 2.0;
        double r183454 = alpha;
        double r183455 = r183454 + r183448;
        double r183456 = fma(r183452, r183453, r183455);
        double r183457 = fma(r183454, r183448, r183452);
        double r183458 = r183454 + r183457;
        double r183459 = r183448 + r183458;
        double r183460 = r183456 / r183459;
        double r183461 = r183451 / r183460;
        double r183462 = r183453 * r183452;
        double r183463 = r183455 + r183462;
        double r183464 = r183461 / r183463;
        double r183465 = r183463 + r183452;
        double r183466 = r183464 / r183465;
        double r183467 = r183451 / r183454;
        double r183468 = r183451 / r183448;
        double r183469 = r183467 + r183468;
        double r183470 = 2.0;
        double r183471 = pow(r183454, r183470);
        double r183472 = r183451 / r183471;
        double r183473 = r183469 - r183472;
        double r183474 = r183451 / r183473;
        double r183475 = r183474 / r183463;
        double r183476 = r183475 / r183465;
        double r183477 = r183450 ? r183466 : r183476;
        return r183477;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if beta < 1.6091078706466608e+158

    1. Initial program 1.2

      \[\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. Using strategy rm
    3. Applied clear-num1.2

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

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

    if 1.6091078706466608e+158 < beta

    1. Initial program 17.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. Using strategy rm
    3. Applied clear-num17.7

      \[\leadsto \frac{\frac{\color{blue}{\frac{1}{\frac{\left(\alpha + \beta\right) + 2 \cdot 1}{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}}}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
    4. Simplified17.7

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

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

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

Reproduce

herbie shell --seed 2019344 +o rules:numerics
(FPCore (alpha beta)
  :name "Octave 3.8, jcobi/3"
  :precision binary64
  :pre (and (> alpha -1) (> beta -1))
  (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1)))