Average Error: 3.7 → 2.4
Time: 35.5s
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1\]
\[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
\[\begin{array}{l} \mathbf{if}\;\alpha \le 1.1138260050088568 \cdot 10^{+191}:\\ \;\;\;\;\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\frac{1.0 + \left(\beta \cdot \alpha + \left(\beta + \alpha\right)\right)}{\left(\beta + \alpha\right) + 2}}{\left(\beta + \alpha\right) + 2}\right)\right)}{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(\frac{1}{\alpha} + \frac{7.999999999999998}{\alpha \cdot \left(\alpha \cdot \alpha\right)}\right) - \frac{3.0}{\alpha \cdot \alpha}}{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}\\ \end{array}\]
\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}
\begin{array}{l}
\mathbf{if}\;\alpha \le 1.1138260050088568 \cdot 10^{+191}:\\
\;\;\;\;\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\frac{1.0 + \left(\beta \cdot \alpha + \left(\beta + \alpha\right)\right)}{\left(\beta + \alpha\right) + 2}}{\left(\beta + \alpha\right) + 2}\right)\right)}{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}\\

\mathbf{else}:\\
\;\;\;\;\frac{\left(\frac{1}{\alpha} + \frac{7.999999999999998}{\alpha \cdot \left(\alpha \cdot \alpha\right)}\right) - \frac{3.0}{\alpha \cdot \alpha}}{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}\\

\end{array}
double f(double alpha, double beta) {
        double r2486725 = alpha;
        double r2486726 = beta;
        double r2486727 = r2486725 + r2486726;
        double r2486728 = r2486726 * r2486725;
        double r2486729 = r2486727 + r2486728;
        double r2486730 = 1.0;
        double r2486731 = r2486729 + r2486730;
        double r2486732 = 2.0;
        double r2486733 = 1.0;
        double r2486734 = r2486732 * r2486733;
        double r2486735 = r2486727 + r2486734;
        double r2486736 = r2486731 / r2486735;
        double r2486737 = r2486736 / r2486735;
        double r2486738 = r2486735 + r2486730;
        double r2486739 = r2486737 / r2486738;
        return r2486739;
}

double f(double alpha, double beta) {
        double r2486740 = alpha;
        double r2486741 = 1.1138260050088568e+191;
        bool r2486742 = r2486740 <= r2486741;
        double r2486743 = 1.0;
        double r2486744 = beta;
        double r2486745 = r2486744 * r2486740;
        double r2486746 = r2486744 + r2486740;
        double r2486747 = r2486745 + r2486746;
        double r2486748 = r2486743 + r2486747;
        double r2486749 = 2.0;
        double r2486750 = r2486746 + r2486749;
        double r2486751 = r2486748 / r2486750;
        double r2486752 = r2486751 / r2486750;
        double r2486753 = log1p(r2486752);
        double r2486754 = expm1(r2486753);
        double r2486755 = r2486743 + r2486750;
        double r2486756 = r2486754 / r2486755;
        double r2486757 = 1.0;
        double r2486758 = r2486757 / r2486740;
        double r2486759 = 7.999999999999998;
        double r2486760 = r2486740 * r2486740;
        double r2486761 = r2486740 * r2486760;
        double r2486762 = r2486759 / r2486761;
        double r2486763 = r2486758 + r2486762;
        double r2486764 = 3.0;
        double r2486765 = r2486764 / r2486760;
        double r2486766 = r2486763 - r2486765;
        double r2486767 = r2486766 / r2486755;
        double r2486768 = r2486742 ? r2486756 : r2486767;
        return r2486768;
}

Error

Bits error versus alpha

Bits error versus beta

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if alpha < 1.1138260050088568e+191

    1. Initial program 1.7

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    2. Using strategy rm
    3. Applied expm1-log1p-u1.7

      \[\leadsto \frac{\color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}\right)\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]

    if 1.1138260050088568e+191 < alpha

    1. Initial program 17.2

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    2. Using strategy rm
    3. Applied expm1-log1p-u17.2

      \[\leadsto \frac{\color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}\right)\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    4. Taylor expanded around inf 7.3

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 1.1138260050088568 \cdot 10^{+191}:\\ \;\;\;\;\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\frac{1.0 + \left(\beta \cdot \alpha + \left(\beta + \alpha\right)\right)}{\left(\beta + \alpha\right) + 2}}{\left(\beta + \alpha\right) + 2}\right)\right)}{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(\frac{1}{\alpha} + \frac{7.999999999999998}{\alpha \cdot \left(\alpha \cdot \alpha\right)}\right) - \frac{3.0}{\alpha \cdot \alpha}}{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}\\ \end{array}\]

Reproduce

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