Average Error: 3.9 → 2.4
Time: 1.2m
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 3.097558604616753343996040534278213161537 \cdot 10^{192}:\\ \;\;\;\;\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)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) + 1}\\ \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 3.097558604616753343996040534278213161537 \cdot 10^{192}:\\
\;\;\;\;\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)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) + 1}\\

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

\end{array}
double f(double alpha, double beta) {
        double r197517 = alpha;
        double r197518 = beta;
        double r197519 = r197517 + r197518;
        double r197520 = r197518 * r197517;
        double r197521 = r197519 + r197520;
        double r197522 = 1.0;
        double r197523 = r197521 + r197522;
        double r197524 = 2.0;
        double r197525 = r197524 * r197522;
        double r197526 = r197519 + r197525;
        double r197527 = r197523 / r197526;
        double r197528 = r197527 / r197526;
        double r197529 = r197526 + r197522;
        double r197530 = r197528 / r197529;
        return r197530;
}

double f(double alpha, double beta) {
        double r197531 = beta;
        double r197532 = 3.0975586046167533e+192;
        bool r197533 = r197531 <= r197532;
        double r197534 = 1.0;
        double r197535 = alpha;
        double r197536 = r197535 + r197531;
        double r197537 = fma(r197535, r197531, r197536);
        double r197538 = r197534 + r197537;
        double r197539 = 2.0;
        double r197540 = fma(r197534, r197539, r197536);
        double r197541 = r197538 / r197540;
        double r197542 = r197541 / r197540;
        double r197543 = r197540 + r197534;
        double r197544 = r197542 / r197543;
        double r197545 = 0.0;
        double r197546 = r197533 ? r197544 : r197545;
        return r197546;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if beta < 3.0975586046167533e+192

    1. Initial program 1.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. Simplified1.7

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

    if 3.0975586046167533e+192 < beta

    1. Initial program 19.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. Simplified19.7

      \[\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)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) + 1}}\]
    3. Taylor expanded around inf 7.3

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

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

Reproduce

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