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

\end{array}
double f(double alpha, double beta) {
        double r204319 = alpha;
        double r204320 = beta;
        double r204321 = r204319 + r204320;
        double r204322 = r204320 * r204319;
        double r204323 = r204321 + r204322;
        double r204324 = 1.0;
        double r204325 = r204323 + r204324;
        double r204326 = 2.0;
        double r204327 = r204326 * r204324;
        double r204328 = r204321 + r204327;
        double r204329 = r204325 / r204328;
        double r204330 = r204329 / r204328;
        double r204331 = r204328 + r204324;
        double r204332 = r204330 / r204331;
        return r204332;
}

double f(double alpha, double beta) {
        double r204333 = beta;
        double r204334 = 3.0975586046167533e+192;
        bool r204335 = r204333 <= r204334;
        double r204336 = 1.0;
        double r204337 = alpha;
        double r204338 = r204337 + r204333;
        double r204339 = fma(r204337, r204333, r204338);
        double r204340 = r204336 + r204339;
        double r204341 = 2.0;
        double r204342 = fma(r204336, r204341, r204338);
        double r204343 = r204340 / r204342;
        double r204344 = r204343 / r204342;
        double r204345 = r204342 + r204336;
        double r204346 = r204344 / r204345;
        double r204347 = 0.0;
        double r204348 = r204347 / r204345;
        double r204349 = r204335 ? r204346 : r204348;
        return r204349;
}

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