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

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

\end{array}
double f(double alpha, double beta) {
        double r2534199 = alpha;
        double r2534200 = beta;
        double r2534201 = r2534199 + r2534200;
        double r2534202 = r2534200 * r2534199;
        double r2534203 = r2534201 + r2534202;
        double r2534204 = 1.0;
        double r2534205 = r2534203 + r2534204;
        double r2534206 = 2.0;
        double r2534207 = 1.0;
        double r2534208 = r2534206 * r2534207;
        double r2534209 = r2534201 + r2534208;
        double r2534210 = r2534205 / r2534209;
        double r2534211 = r2534210 / r2534209;
        double r2534212 = r2534209 + r2534204;
        double r2534213 = r2534211 / r2534212;
        return r2534213;
}

double f(double alpha, double beta) {
        double r2534214 = alpha;
        double r2534215 = 3.9275252152036123e+114;
        bool r2534216 = r2534214 <= r2534215;
        double r2534217 = 1.0;
        double r2534218 = beta;
        double r2534219 = r2534218 * r2534214;
        double r2534220 = r2534218 + r2534214;
        double r2534221 = r2534219 + r2534220;
        double r2534222 = r2534217 + r2534221;
        double r2534223 = 2.0;
        double r2534224 = r2534220 + r2534223;
        double r2534225 = r2534222 / r2534224;
        double r2534226 = r2534225 / r2534224;
        double r2534227 = r2534217 + r2534224;
        double r2534228 = r2534226 / r2534227;
        double r2534229 = 1.0;
        double r2534230 = r2534217 / r2534214;
        double r2534231 = r2534229 - r2534230;
        double r2534232 = 2.0;
        double r2534233 = r2534214 * r2534214;
        double r2534234 = r2534232 / r2534233;
        double r2534235 = r2534231 + r2534234;
        double r2534236 = r2534235 / r2534224;
        double r2534237 = r2534236 / r2534227;
        double r2534238 = r2534216 ? r2534228 : r2534237;
        return r2534238;
}

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 < 3.9275252152036123e+114

    1. Initial program 0.8

      \[\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 +-commutative0.8

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

    if 3.9275252152036123e+114 < alpha

    1. Initial program 14.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 9.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. Simplified9.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.7

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

Reproduce

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