Average Error: 3.8 → 3.3
Time: 36.9s
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.109119190261578358132330194373949295203 \cdot 10^{60}:\\ \;\;\;\;\frac{\frac{1}{\frac{\mathsf{fma}\left(2, 1, \beta + \alpha\right) + 1}{\frac{\mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right) + 1}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{\frac{2}{\beta}}{\beta} + \left(1 - \frac{1}{\beta}\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{\mathsf{fma}\left(2, 1, \beta + \alpha\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.109119190261578358132330194373949295203 \cdot 10^{60}:\\
\;\;\;\;\frac{\frac{1}{\frac{\mathsf{fma}\left(2, 1, \beta + \alpha\right) + 1}{\frac{\mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right) + 1}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{\frac{2}{\beta}}{\beta} + \left(1 - \frac{1}{\beta}\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right) + 1}\\

\end{array}
double f(double alpha, double beta) {
        double r3465288 = alpha;
        double r3465289 = beta;
        double r3465290 = r3465288 + r3465289;
        double r3465291 = r3465289 * r3465288;
        double r3465292 = r3465290 + r3465291;
        double r3465293 = 1.0;
        double r3465294 = r3465292 + r3465293;
        double r3465295 = 2.0;
        double r3465296 = r3465295 * r3465293;
        double r3465297 = r3465290 + r3465296;
        double r3465298 = r3465294 / r3465297;
        double r3465299 = r3465298 / r3465297;
        double r3465300 = r3465297 + r3465293;
        double r3465301 = r3465299 / r3465300;
        return r3465301;
}

double f(double alpha, double beta) {
        double r3465302 = beta;
        double r3465303 = 3.1091191902615784e+60;
        bool r3465304 = r3465302 <= r3465303;
        double r3465305 = 1.0;
        double r3465306 = 2.0;
        double r3465307 = 1.0;
        double r3465308 = alpha;
        double r3465309 = r3465302 + r3465308;
        double r3465310 = fma(r3465306, r3465307, r3465309);
        double r3465311 = r3465310 + r3465307;
        double r3465312 = fma(r3465302, r3465308, r3465309);
        double r3465313 = r3465312 + r3465307;
        double r3465314 = r3465313 / r3465310;
        double r3465315 = r3465311 / r3465314;
        double r3465316 = r3465305 / r3465315;
        double r3465317 = r3465316 / r3465310;
        double r3465318 = r3465306 / r3465302;
        double r3465319 = r3465318 / r3465302;
        double r3465320 = r3465307 / r3465302;
        double r3465321 = r3465305 - r3465320;
        double r3465322 = r3465319 + r3465321;
        double r3465323 = r3465322 / r3465310;
        double r3465324 = r3465323 / r3465311;
        double r3465325 = r3465304 ? r3465317 : r3465324;
        return r3465325;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if beta < 3.1091191902615784e+60

    1. Initial program 0.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. Simplified0.3

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

      \[\leadsto \color{blue}{\frac{1}{\frac{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}{\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}}}\]
    5. Using strategy rm
    6. Applied associate-/r/0.5

      \[\leadsto \frac{1}{\color{blue}{\frac{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}} \cdot \mathsf{fma}\left(2, 1, \beta + \alpha\right)}}\]
    7. Applied associate-/r*0.3

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

    if 3.1091191902615784e+60 < beta

    1. Initial program 13.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. Simplified13.4

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

      \[\leadsto \frac{\frac{\color{blue}{\left(2 \cdot \frac{1}{{\beta}^{2}} + 1\right) - 1 \cdot \frac{1}{\beta}}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}\]
    4. Simplified11.5

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

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

Reproduce

herbie shell --seed 2019192 +o rules:numerics
(FPCore (alpha beta)
  :name "Octave 3.8, jcobi/3"
  :pre (and (> alpha -1.0) (> beta -1.0))
  (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2.0 1.0))) (+ (+ alpha beta) (* 2.0 1.0))) (+ (+ (+ alpha beta) (* 2.0 1.0)) 1.0)))