Average Error: 3.8 → 2.4
Time: 46.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 1.87295401958515780213293522849806885927 \cdot 10^{215}:\\ \;\;\;\;\frac{\frac{\frac{\sqrt{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}}{\frac{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}{\frac{\sqrt{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}}}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right) + 1}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{\mathsf{fma}\left(\sqrt{0.5}, \beta, \mathsf{fma}\left(1, \sqrt{0.5}, \alpha \cdot \sqrt{0.5}\right)\right) - \mathsf{fma}\left(0.5, \sqrt{0.125} \cdot \beta, \frac{\alpha \cdot 0.125}{\sqrt{0.5}}\right)}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\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 1.87295401958515780213293522849806885927 \cdot 10^{215}:\\
\;\;\;\;\frac{\frac{\frac{\sqrt{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}}{\frac{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}{\frac{\sqrt{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}}}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right) + 1}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{\mathsf{fma}\left(\sqrt{0.5}, \beta, \mathsf{fma}\left(1, \sqrt{0.5}, \alpha \cdot \sqrt{0.5}\right)\right) - \mathsf{fma}\left(0.5, \sqrt{0.125} \cdot \beta, \frac{\alpha \cdot 0.125}{\sqrt{0.5}}\right)}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\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 r5073684 = alpha;
        double r5073685 = beta;
        double r5073686 = r5073684 + r5073685;
        double r5073687 = r5073685 * r5073684;
        double r5073688 = r5073686 + r5073687;
        double r5073689 = 1.0;
        double r5073690 = r5073688 + r5073689;
        double r5073691 = 2.0;
        double r5073692 = r5073691 * r5073689;
        double r5073693 = r5073686 + r5073692;
        double r5073694 = r5073690 / r5073693;
        double r5073695 = r5073694 / r5073693;
        double r5073696 = r5073693 + r5073689;
        double r5073697 = r5073695 / r5073696;
        return r5073697;
}

double f(double alpha, double beta) {
        double r5073698 = beta;
        double r5073699 = 1.8729540195851578e+215;
        bool r5073700 = r5073698 <= r5073699;
        double r5073701 = 1.0;
        double r5073702 = alpha;
        double r5073703 = r5073698 + r5073702;
        double r5073704 = fma(r5073698, r5073702, r5073703);
        double r5073705 = r5073701 + r5073704;
        double r5073706 = sqrt(r5073705);
        double r5073707 = 2.0;
        double r5073708 = fma(r5073707, r5073701, r5073703);
        double r5073709 = sqrt(r5073708);
        double r5073710 = r5073706 / r5073709;
        double r5073711 = r5073708 / r5073710;
        double r5073712 = r5073710 / r5073711;
        double r5073713 = r5073708 + r5073701;
        double r5073714 = r5073712 / r5073713;
        double r5073715 = 0.5;
        double r5073716 = sqrt(r5073715);
        double r5073717 = r5073702 * r5073716;
        double r5073718 = fma(r5073701, r5073716, r5073717);
        double r5073719 = fma(r5073716, r5073698, r5073718);
        double r5073720 = 0.125;
        double r5073721 = sqrt(r5073720);
        double r5073722 = r5073721 * r5073698;
        double r5073723 = r5073702 * r5073720;
        double r5073724 = r5073723 / r5073716;
        double r5073725 = fma(r5073715, r5073722, r5073724);
        double r5073726 = r5073719 - r5073725;
        double r5073727 = r5073726 / r5073709;
        double r5073728 = r5073727 / r5073708;
        double r5073729 = r5073728 / r5073713;
        double r5073730 = r5073700 ? r5073714 : r5073729;
        return r5073730;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if beta < 1.8729540195851578e+215

    1. Initial program 2.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}\]
    2. Simplified2.1

      \[\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 add-sqr-sqrt2.7

      \[\leadsto \frac{\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\color{blue}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\right)} \cdot \sqrt{\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)}\]
    5. Applied add-sqr-sqrt2.6

      \[\leadsto \frac{\frac{\frac{\color{blue}{\sqrt{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)} \cdot \sqrt{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}}}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\right)} \cdot \sqrt{\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)}\]
    6. Applied times-frac2.6

      \[\leadsto \frac{\frac{\color{blue}{\frac{\sqrt{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}} \cdot \frac{\sqrt{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}}{\sqrt{\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)}\]
    7. Applied associate-/l*2.1

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

    if 1.8729540195851578e+215 < beta

    1. Initial program 18.0

      \[\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. Simplified18.0

      \[\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 add-sqr-sqrt18.0

      \[\leadsto \frac{\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\color{blue}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\right)} \cdot \sqrt{\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)}\]
    5. Applied associate-/r*18.0

      \[\leadsto \frac{\frac{\color{blue}{\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}}{\sqrt{\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)}\]
    6. Taylor expanded around 0 4.9

      \[\leadsto \frac{\frac{\frac{\color{blue}{\left(\sqrt{0.5} \cdot \beta + \left(1 \cdot \sqrt{0.5} + \sqrt{0.5} \cdot \alpha\right)\right) - \left(0.5 \cdot \left(\beta \cdot \sqrt{0.125}\right) + 0.125 \cdot \frac{\alpha}{\sqrt{0.5}}\right)}}{\sqrt{\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)}\]
    7. Simplified4.9

      \[\leadsto \frac{\frac{\frac{\color{blue}{\mathsf{fma}\left(\sqrt{0.5}, \beta, \mathsf{fma}\left(1, \sqrt{0.5}, \sqrt{0.5} \cdot \alpha\right)\right) - \mathsf{fma}\left(0.5, \beta \cdot \sqrt{0.125}, \frac{0.125 \cdot \alpha}{\sqrt{0.5}}\right)}}{\sqrt{\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. Recombined 2 regimes into one program.
  4. Final simplification2.4

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

Reproduce

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