Average Error: 3.6 → 2.3
Time: 1.0m
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 9.447545610483609 \cdot 10^{+144}:\\ \;\;\;\;\frac{\frac{\frac{1.0 + \left(\beta \cdot \alpha + \left(\beta + \alpha\right)\right)}{\left(\beta + \alpha\right) + 2}}{\left(\beta + \alpha\right) + 2}}{\left(\beta + \alpha\right) + \left(2 + 1.0\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{2.0}{\alpha \cdot \alpha} + \left(1 - \frac{1.0}{\alpha}\right)}{\left(\beta + \alpha\right) + 2}}{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 9.447545610483609 \cdot 10^{+144}:\\
\;\;\;\;\frac{\frac{\frac{1.0 + \left(\beta \cdot \alpha + \left(\beta + \alpha\right)\right)}{\left(\beta + \alpha\right) + 2}}{\left(\beta + \alpha\right) + 2}}{\left(\beta + \alpha\right) + \left(2 + 1.0\right)}\\

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

\end{array}
double f(double alpha, double beta) {
        double r2673966 = alpha;
        double r2673967 = beta;
        double r2673968 = r2673966 + r2673967;
        double r2673969 = r2673967 * r2673966;
        double r2673970 = r2673968 + r2673969;
        double r2673971 = 1.0;
        double r2673972 = r2673970 + r2673971;
        double r2673973 = 2.0;
        double r2673974 = 1.0;
        double r2673975 = r2673973 * r2673974;
        double r2673976 = r2673968 + r2673975;
        double r2673977 = r2673972 / r2673976;
        double r2673978 = r2673977 / r2673976;
        double r2673979 = r2673976 + r2673971;
        double r2673980 = r2673978 / r2673979;
        return r2673980;
}

double f(double alpha, double beta) {
        double r2673981 = alpha;
        double r2673982 = 9.447545610483609e+144;
        bool r2673983 = r2673981 <= r2673982;
        double r2673984 = 1.0;
        double r2673985 = beta;
        double r2673986 = r2673985 * r2673981;
        double r2673987 = r2673985 + r2673981;
        double r2673988 = r2673986 + r2673987;
        double r2673989 = r2673984 + r2673988;
        double r2673990 = 2.0;
        double r2673991 = r2673987 + r2673990;
        double r2673992 = r2673989 / r2673991;
        double r2673993 = r2673992 / r2673991;
        double r2673994 = r2673990 + r2673984;
        double r2673995 = r2673987 + r2673994;
        double r2673996 = r2673993 / r2673995;
        double r2673997 = 2.0;
        double r2673998 = r2673981 * r2673981;
        double r2673999 = r2673997 / r2673998;
        double r2674000 = 1.0;
        double r2674001 = r2673984 / r2673981;
        double r2674002 = r2674000 - r2674001;
        double r2674003 = r2673999 + r2674002;
        double r2674004 = r2674003 / r2673991;
        double r2674005 = r2673984 + r2673991;
        double r2674006 = r2674004 / r2674005;
        double r2674007 = r2673983 ? r2673996 : r2674006;
        return r2674007;
}

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 < 9.447545610483609e+144

    1. Initial program 1.0

      \[\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 associate-+l+1.0

      \[\leadsto \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}}{\color{blue}{\left(\alpha + \beta\right) + \left(2 \cdot 1 + 1.0\right)}}\]

    if 9.447545610483609e+144 < alpha

    1. Initial program 16.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}\]
    2. Taylor expanded around -inf 8.6

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 9.447545610483609 \cdot 10^{+144}:\\ \;\;\;\;\frac{\frac{\frac{1.0 + \left(\beta \cdot \alpha + \left(\beta + \alpha\right)\right)}{\left(\beta + \alpha\right) + 2}}{\left(\beta + \alpha\right) + 2}}{\left(\beta + \alpha\right) + \left(2 + 1.0\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{2.0}{\alpha \cdot \alpha} + \left(1 - \frac{1.0}{\alpha}\right)}{\left(\beta + \alpha\right) + 2}}{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2019151 
(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)))