Average Error: 3.7 → 2.2
Time: 11.7s
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 3.23212151752266544 \cdot 10^{162}:\\ \;\;\;\;\frac{\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\left(\alpha + \beta\right) - 2 \cdot 1}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)} \cdot \left(\left(\alpha + \beta\right) - 2 \cdot 1\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\mathsf{fma}\left(2, \frac{1}{{\alpha}^{2}}, 1 - 1 \cdot \frac{1}{\alpha}\right)}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\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 3.23212151752266544 \cdot 10^{162}:\\
\;\;\;\;\frac{\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\left(\alpha + \beta\right) - 2 \cdot 1}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)} \cdot \left(\left(\alpha + \beta\right) - 2 \cdot 1\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\

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

\end{array}
double f(double alpha, double beta) {
        double r108674 = alpha;
        double r108675 = beta;
        double r108676 = r108674 + r108675;
        double r108677 = r108675 * r108674;
        double r108678 = r108676 + r108677;
        double r108679 = 1.0;
        double r108680 = r108678 + r108679;
        double r108681 = 2.0;
        double r108682 = r108681 * r108679;
        double r108683 = r108676 + r108682;
        double r108684 = r108680 / r108683;
        double r108685 = r108684 / r108683;
        double r108686 = r108683 + r108679;
        double r108687 = r108685 / r108686;
        return r108687;
}

double f(double alpha, double beta) {
        double r108688 = alpha;
        double r108689 = 3.2321215175226654e+162;
        bool r108690 = r108688 <= r108689;
        double r108691 = beta;
        double r108692 = r108688 + r108691;
        double r108693 = r108691 * r108688;
        double r108694 = r108692 + r108693;
        double r108695 = 1.0;
        double r108696 = r108694 + r108695;
        double r108697 = 2.0;
        double r108698 = fma(r108695, r108697, r108692);
        double r108699 = r108696 / r108698;
        double r108700 = r108697 * r108695;
        double r108701 = r108692 - r108700;
        double r108702 = r108699 / r108701;
        double r108703 = r108702 / r108698;
        double r108704 = r108703 * r108701;
        double r108705 = r108692 + r108700;
        double r108706 = r108705 + r108695;
        double r108707 = r108704 / r108706;
        double r108708 = 1.0;
        double r108709 = 2.0;
        double r108710 = pow(r108688, r108709);
        double r108711 = r108708 / r108710;
        double r108712 = r108708 / r108688;
        double r108713 = r108695 * r108712;
        double r108714 = r108708 - r108713;
        double r108715 = fma(r108697, r108711, r108714);
        double r108716 = r108715 / r108705;
        double r108717 = r108716 / r108706;
        double r108718 = r108690 ? r108707 : r108717;
        return r108718;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if alpha < 3.2321215175226654e+162

    1. Initial program 1.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. Using strategy rm
    3. Applied flip-+1.9

      \[\leadsto \frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\color{blue}{\frac{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - \left(2 \cdot 1\right) \cdot \left(2 \cdot 1\right)}{\left(\alpha + \beta\right) - 2 \cdot 1}}}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
    4. Applied associate-/r/1.9

      \[\leadsto \frac{\color{blue}{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - \left(2 \cdot 1\right) \cdot \left(2 \cdot 1\right)} \cdot \left(\left(\alpha + \beta\right) - 2 \cdot 1\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
    5. Simplified1.3

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

    if 3.2321215175226654e+162 < alpha

    1. Initial program 16.8

      \[\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. Taylor expanded around inf 7.6

      \[\leadsto \frac{\frac{\color{blue}{\left(2 \cdot \frac{1}{{\alpha}^{2}} + 1\right) - 1 \cdot \frac{1}{\alpha}}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
    3. Simplified7.6

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

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

Reproduce

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