Average Error: 3.8 → 2.3
Time: 31.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.375269332570682982425723545116600911087 \cdot 10^{160}:\\ \;\;\;\;\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}}{\alpha + \left(3 + \beta\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{0.25 \cdot \alpha + \left(0.5 + 0.25 \cdot \beta\right)}{\left(\alpha + \left(\beta + 2 \cdot 1\right)\right) \cdot \left(\left(\alpha + \beta\right) + \left(2 \cdot 1 + 1\right)\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.375269332570682982425723545116600911087 \cdot 10^{160}:\\
\;\;\;\;\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}}{\alpha + \left(3 + \beta\right)}\\

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

\end{array}
double f(double alpha, double beta) {
        double r73419 = alpha;
        double r73420 = beta;
        double r73421 = r73419 + r73420;
        double r73422 = r73420 * r73419;
        double r73423 = r73421 + r73422;
        double r73424 = 1.0;
        double r73425 = r73423 + r73424;
        double r73426 = 2.0;
        double r73427 = r73426 * r73424;
        double r73428 = r73421 + r73427;
        double r73429 = r73425 / r73428;
        double r73430 = r73429 / r73428;
        double r73431 = r73428 + r73424;
        double r73432 = r73430 / r73431;
        return r73432;
}

double f(double alpha, double beta) {
        double r73433 = beta;
        double r73434 = 6.375269332570683e+160;
        bool r73435 = r73433 <= r73434;
        double r73436 = alpha;
        double r73437 = r73436 + r73433;
        double r73438 = r73433 * r73436;
        double r73439 = r73437 + r73438;
        double r73440 = 1.0;
        double r73441 = r73439 + r73440;
        double r73442 = 2.0;
        double r73443 = r73442 * r73440;
        double r73444 = r73437 + r73443;
        double r73445 = r73441 / r73444;
        double r73446 = r73445 / r73444;
        double r73447 = 3.0;
        double r73448 = r73447 + r73433;
        double r73449 = r73436 + r73448;
        double r73450 = r73446 / r73449;
        double r73451 = 0.25;
        double r73452 = r73451 * r73436;
        double r73453 = 0.5;
        double r73454 = r73451 * r73433;
        double r73455 = r73453 + r73454;
        double r73456 = r73452 + r73455;
        double r73457 = r73433 + r73443;
        double r73458 = r73436 + r73457;
        double r73459 = r73443 + r73440;
        double r73460 = r73437 + r73459;
        double r73461 = r73458 * r73460;
        double r73462 = r73456 / r73461;
        double r73463 = r73435 ? r73450 : r73462;
        return r73463;
}

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 beta < 6.375269332570683e+160

    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. Taylor expanded around 0 1.3

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

    if 6.375269332570683e+160 < beta

    1. Initial program 17.5

      \[\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 div-inv17.5

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

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

      \[\leadsto \frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\color{blue}{\left(\alpha + \left(\beta + 2 \cdot 1\right)\right) \cdot \left(\left(\alpha + \beta\right) + \left(2 \cdot 1 + 1\right)\right)}}\]
    6. Taylor expanded around 0 8.0

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\beta \le 6.375269332570682982425723545116600911087 \cdot 10^{160}:\\ \;\;\;\;\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}}{\alpha + \left(3 + \beta\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{0.25 \cdot \alpha + \left(0.5 + 0.25 \cdot \beta\right)}{\left(\alpha + \left(\beta + 2 \cdot 1\right)\right) \cdot \left(\left(\alpha + \beta\right) + \left(2 \cdot 1 + 1\right)\right)}\\ \end{array}\]

Reproduce

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