Average Error: 3.5 → 2.1
Time: 18.6s
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 2.53550349086935904 \cdot 10^{170}:\\ \;\;\;\;\frac{\frac{\frac{1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\left(\alpha + \beta\right) + \mathsf{fma}\left(2, 1, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;0\\ \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 2.53550349086935904 \cdot 10^{170}:\\
\;\;\;\;\frac{\frac{\frac{1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\left(\alpha + \beta\right) + \mathsf{fma}\left(2, 1, 1\right)}\\

\mathbf{else}:\\
\;\;\;\;0\\

\end{array}
double f(double alpha, double beta) {
        double r107559 = alpha;
        double r107560 = beta;
        double r107561 = r107559 + r107560;
        double r107562 = r107560 * r107559;
        double r107563 = r107561 + r107562;
        double r107564 = 1.0;
        double r107565 = r107563 + r107564;
        double r107566 = 2.0;
        double r107567 = r107566 * r107564;
        double r107568 = r107561 + r107567;
        double r107569 = r107565 / r107568;
        double r107570 = r107569 / r107568;
        double r107571 = r107568 + r107564;
        double r107572 = r107570 / r107571;
        return r107572;
}

double f(double alpha, double beta) {
        double r107573 = beta;
        double r107574 = 2.535503490869359e+170;
        bool r107575 = r107573 <= r107574;
        double r107576 = 1.0;
        double r107577 = alpha;
        double r107578 = r107577 + r107573;
        double r107579 = fma(r107577, r107573, r107578);
        double r107580 = r107576 + r107579;
        double r107581 = 2.0;
        double r107582 = fma(r107576, r107581, r107578);
        double r107583 = r107580 / r107582;
        double r107584 = r107583 / r107582;
        double r107585 = fma(r107581, r107576, r107576);
        double r107586 = r107578 + r107585;
        double r107587 = r107584 / r107586;
        double r107588 = 0.0;
        double r107589 = r107575 ? r107587 : r107588;
        return r107589;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if beta < 2.535503490869359e+170

    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(\alpha, \beta, \alpha + \beta\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\left(\alpha + \beta\right) + \mathsf{fma}\left(2, 1, 1\right)}}\]

    if 2.535503490869359e+170 < beta

    1. Initial program 16.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}\]
    2. Simplified16.1

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

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

      \[\leadsto \color{blue}{0}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification2.1

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

Reproduce

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