Average Error: 3.6 → 2.1
Time: 12.5s
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.0414729809724826 \cdot 10^{175}:\\ \;\;\;\;\frac{\frac{\left(\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1\right) \cdot \frac{1}{\frac{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}{1}}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\ \mathbf{else}:\\ \;\;\;\;\frac{0}{\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}\;\alpha \le 2.0414729809724826 \cdot 10^{175}:\\
\;\;\;\;\frac{\frac{\left(\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1\right) \cdot \frac{1}{\frac{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}{1}}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\

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

\end{array}
double f(double alpha, double beta) {
        double r151592 = alpha;
        double r151593 = beta;
        double r151594 = r151592 + r151593;
        double r151595 = r151593 * r151592;
        double r151596 = r151594 + r151595;
        double r151597 = 1.0;
        double r151598 = r151596 + r151597;
        double r151599 = 2.0;
        double r151600 = r151599 * r151597;
        double r151601 = r151594 + r151600;
        double r151602 = r151598 / r151601;
        double r151603 = r151602 / r151601;
        double r151604 = r151601 + r151597;
        double r151605 = r151603 / r151604;
        return r151605;
}

double f(double alpha, double beta) {
        double r151606 = alpha;
        double r151607 = 2.0414729809724826e+175;
        bool r151608 = r151606 <= r151607;
        double r151609 = beta;
        double r151610 = r151606 + r151609;
        double r151611 = r151609 * r151606;
        double r151612 = r151610 + r151611;
        double r151613 = 1.0;
        double r151614 = r151612 + r151613;
        double r151615 = 1.0;
        double r151616 = 2.0;
        double r151617 = fma(r151613, r151616, r151610);
        double r151618 = r151617 / r151615;
        double r151619 = r151615 / r151618;
        double r151620 = r151614 * r151619;
        double r151621 = r151616 * r151613;
        double r151622 = r151610 + r151621;
        double r151623 = r151620 / r151622;
        double r151624 = r151622 + r151613;
        double r151625 = r151623 / r151624;
        double r151626 = 0.0;
        double r151627 = r151626 / r151624;
        double r151628 = r151608 ? r151625 : r151627;
        return r151628;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if alpha < 2.0414729809724826e+175

    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. Using strategy rm
    3. Applied div-inv1.4

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

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

    if 2.0414729809724826e+175 < alpha

    1. Initial program 16.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. Using strategy rm
    3. Applied div-inv16.4

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

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

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

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

Reproduce

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