Average Error: 3.4 → 2.3
Time: 13.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 2.32226670411452933 \cdot 10^{126}:\\ \;\;\;\;\frac{\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}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(\left(1 - 1 \cdot \frac{1}{\alpha}\right) + \frac{\frac{2}{\alpha}}{\alpha}\right) \cdot \frac{1}{\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 2.32226670411452933 \cdot 10^{126}:\\
\;\;\;\;\frac{\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}\\

\mathbf{else}:\\
\;\;\;\;\frac{\left(\left(1 - 1 \cdot \frac{1}{\alpha}\right) + \frac{\frac{2}{\alpha}}{\alpha}\right) \cdot \frac{1}{\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 r172474 = alpha;
        double r172475 = beta;
        double r172476 = r172474 + r172475;
        double r172477 = r172475 * r172474;
        double r172478 = r172476 + r172477;
        double r172479 = 1.0;
        double r172480 = r172478 + r172479;
        double r172481 = 2.0;
        double r172482 = r172481 * r172479;
        double r172483 = r172476 + r172482;
        double r172484 = r172480 / r172483;
        double r172485 = r172484 / r172483;
        double r172486 = r172483 + r172479;
        double r172487 = r172485 / r172486;
        return r172487;
}

double f(double alpha, double beta) {
        double r172488 = alpha;
        double r172489 = 2.3222667041145293e+126;
        bool r172490 = r172488 <= r172489;
        double r172491 = beta;
        double r172492 = r172488 + r172491;
        double r172493 = r172491 * r172488;
        double r172494 = r172492 + r172493;
        double r172495 = 1.0;
        double r172496 = r172494 + r172495;
        double r172497 = 2.0;
        double r172498 = r172497 * r172495;
        double r172499 = r172492 + r172498;
        double r172500 = r172496 / r172499;
        double r172501 = 1.0;
        double r172502 = r172501 / r172499;
        double r172503 = r172500 * r172502;
        double r172504 = r172499 + r172495;
        double r172505 = r172503 / r172504;
        double r172506 = r172501 / r172488;
        double r172507 = r172495 * r172506;
        double r172508 = r172501 - r172507;
        double r172509 = r172497 / r172488;
        double r172510 = r172509 / r172488;
        double r172511 = r172508 + r172510;
        double r172512 = r172511 * r172502;
        double r172513 = r172512 / r172504;
        double r172514 = r172490 ? r172505 : r172513;
        return r172514;
}

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 < 2.3222667041145293e+126

    1. Initial program 0.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. Using strategy rm
    3. Applied div-inv0.8

      \[\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}\]

    if 2.3222667041145293e+126 < alpha

    1. Initial program 13.9

      \[\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-inv13.9

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

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

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

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

Reproduce

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