Average Error: 3.6 → 2.3
Time: 10.0s
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 6.85580170450604043 \cdot 10^{160}:\\ \;\;\;\;\frac{\frac{\frac{\sqrt{1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)}}{\sqrt{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}}{\frac{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}{\frac{\sqrt{1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)}}{\sqrt{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}}}}{\left(\alpha + \beta\right) + \mathsf{fma}\left(2, 1, 1\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(0.25, \alpha, \mathsf{fma}\left(\beta, 0.25, 0.5\right)\right)}{\left(\left(\alpha + \beta\right) + \mathsf{fma}\left(2, 1, 1\right)\right) \cdot \mathsf{fma}\left(1, 2, \alpha + \beta\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 6.85580170450604043 \cdot 10^{160}:\\
\;\;\;\;\frac{\frac{\frac{\sqrt{1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)}}{\sqrt{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}}{\frac{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}{\frac{\sqrt{1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)}}{\sqrt{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}}}}{\left(\alpha + \beta\right) + \mathsf{fma}\left(2, 1, 1\right)}\\

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

\end{array}
double f(double alpha, double beta) {
        double r107740 = alpha;
        double r107741 = beta;
        double r107742 = r107740 + r107741;
        double r107743 = r107741 * r107740;
        double r107744 = r107742 + r107743;
        double r107745 = 1.0;
        double r107746 = r107744 + r107745;
        double r107747 = 2.0;
        double r107748 = r107747 * r107745;
        double r107749 = r107742 + r107748;
        double r107750 = r107746 / r107749;
        double r107751 = r107750 / r107749;
        double r107752 = r107749 + r107745;
        double r107753 = r107751 / r107752;
        return r107753;
}

double f(double alpha, double beta) {
        double r107754 = beta;
        double r107755 = 6.85580170450604e+160;
        bool r107756 = r107754 <= r107755;
        double r107757 = 1.0;
        double r107758 = alpha;
        double r107759 = r107758 + r107754;
        double r107760 = fma(r107758, r107754, r107759);
        double r107761 = r107757 + r107760;
        double r107762 = sqrt(r107761);
        double r107763 = 2.0;
        double r107764 = fma(r107757, r107763, r107759);
        double r107765 = sqrt(r107764);
        double r107766 = r107762 / r107765;
        double r107767 = r107764 / r107766;
        double r107768 = r107766 / r107767;
        double r107769 = fma(r107763, r107757, r107757);
        double r107770 = r107759 + r107769;
        double r107771 = r107768 / r107770;
        double r107772 = 0.25;
        double r107773 = 0.5;
        double r107774 = fma(r107754, r107772, r107773);
        double r107775 = fma(r107772, r107758, r107774);
        double r107776 = r107770 * r107764;
        double r107777 = r107775 / r107776;
        double r107778 = r107756 ? r107771 : r107777;
        return r107778;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if beta < 6.85580170450604e+160

    1. Initial program 1.2

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

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

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

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

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

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

    if 6.85580170450604e+160 < 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 div-inv16.3

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

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

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

      \[\leadsto \frac{\color{blue}{0.25 \cdot \alpha + \left(0.5 + 0.25 \cdot \beta\right)}}{\left(\left(\alpha + \beta\right) + \mathsf{fma}\left(2, 1, 1\right)\right) \cdot \mathsf{fma}\left(1, 2, \alpha + \beta\right)}\]
    8. Simplified7.6

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

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

Reproduce

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