Average Error: 3.7 → 2.3
Time: 11.3s
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 8.4856429570103299 \cdot 10^{177}:\\ \;\;\;\;\frac{\frac{\frac{1 + \left(\alpha \cdot \beta + \left(\alpha + \beta\right)\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}:\\ \;\;\;\;\frac{0}{\left(\alpha + \beta\right) + \mathsf{fma}\left(2, 1, 1\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}\;\beta \le 8.4856429570103299 \cdot 10^{177}:\\
\;\;\;\;\frac{\frac{\frac{1 + \left(\alpha \cdot \beta + \left(\alpha + \beta\right)\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}:\\
\;\;\;\;\frac{0}{\left(\alpha + \beta\right) + \mathsf{fma}\left(2, 1, 1\right)}\\

\end{array}
double f(double alpha, double beta) {
        double r128369 = alpha;
        double r128370 = beta;
        double r128371 = r128369 + r128370;
        double r128372 = r128370 * r128369;
        double r128373 = r128371 + r128372;
        double r128374 = 1.0;
        double r128375 = r128373 + r128374;
        double r128376 = 2.0;
        double r128377 = r128376 * r128374;
        double r128378 = r128371 + r128377;
        double r128379 = r128375 / r128378;
        double r128380 = r128379 / r128378;
        double r128381 = r128378 + r128374;
        double r128382 = r128380 / r128381;
        return r128382;
}

double f(double alpha, double beta) {
        double r128383 = beta;
        double r128384 = 8.48564295701033e+177;
        bool r128385 = r128383 <= r128384;
        double r128386 = 1.0;
        double r128387 = alpha;
        double r128388 = r128387 * r128383;
        double r128389 = r128387 + r128383;
        double r128390 = r128388 + r128389;
        double r128391 = r128386 + r128390;
        double r128392 = 2.0;
        double r128393 = fma(r128386, r128392, r128389);
        double r128394 = r128391 / r128393;
        double r128395 = r128394 / r128393;
        double r128396 = fma(r128392, r128386, r128386);
        double r128397 = r128389 + r128396;
        double r128398 = r128395 / r128397;
        double r128399 = 0.0;
        double r128400 = r128399 / r128397;
        double r128401 = r128385 ? r128398 : r128400;
        return r128401;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if beta < 8.48564295701033e+177

    1. Initial program 1.6

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

      \[\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 fma-udef1.6

      \[\leadsto \frac{\frac{\frac{1 + \color{blue}{\left(\alpha \cdot \beta + \left(\alpha + \beta\right)\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 8.48564295701033e+177 < beta

    1. Initial program 16.3

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

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

      \[\leadsto \frac{\frac{\frac{1 + \color{blue}{\left(\alpha \cdot \beta + \left(\alpha + \beta\right)\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.4

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

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

Reproduce

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