Average Error: 3.5 → 1.0
Time: 1.1m
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 6.983660355824237799669142124636947694996 \cdot 10^{156}:\\ \;\;\;\;\frac{\frac{1}{\frac{\left(\alpha + \beta\right) + 1 \cdot 2}{\frac{\left(\beta \cdot \alpha + \left(\alpha + \beta\right)\right) + 1}{\left(\alpha + \beta\right) + 1 \cdot 2}}}}{\left(\left(\alpha + \beta\right) + 1 \cdot 2\right) + 1}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{\left(\frac{\alpha}{\beta} + 2\right) + \frac{\beta}{\alpha}}}{\left(\left(\alpha + \beta\right) + 1 \cdot 2\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 6.983660355824237799669142124636947694996 \cdot 10^{156}:\\
\;\;\;\;\frac{\frac{1}{\frac{\left(\alpha + \beta\right) + 1 \cdot 2}{\frac{\left(\beta \cdot \alpha + \left(\alpha + \beta\right)\right) + 1}{\left(\alpha + \beta\right) + 1 \cdot 2}}}}{\left(\left(\alpha + \beta\right) + 1 \cdot 2\right) + 1}\\

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

\end{array}
double f(double alpha, double beta) {
        double r5575306 = alpha;
        double r5575307 = beta;
        double r5575308 = r5575306 + r5575307;
        double r5575309 = r5575307 * r5575306;
        double r5575310 = r5575308 + r5575309;
        double r5575311 = 1.0;
        double r5575312 = r5575310 + r5575311;
        double r5575313 = 2.0;
        double r5575314 = r5575313 * r5575311;
        double r5575315 = r5575308 + r5575314;
        double r5575316 = r5575312 / r5575315;
        double r5575317 = r5575316 / r5575315;
        double r5575318 = r5575315 + r5575311;
        double r5575319 = r5575317 / r5575318;
        return r5575319;
}

double f(double alpha, double beta) {
        double r5575320 = alpha;
        double r5575321 = 6.983660355824238e+156;
        bool r5575322 = r5575320 <= r5575321;
        double r5575323 = 1.0;
        double r5575324 = beta;
        double r5575325 = r5575320 + r5575324;
        double r5575326 = 1.0;
        double r5575327 = 2.0;
        double r5575328 = r5575326 * r5575327;
        double r5575329 = r5575325 + r5575328;
        double r5575330 = r5575324 * r5575320;
        double r5575331 = r5575330 + r5575325;
        double r5575332 = r5575331 + r5575326;
        double r5575333 = r5575332 / r5575329;
        double r5575334 = r5575329 / r5575333;
        double r5575335 = r5575323 / r5575334;
        double r5575336 = r5575329 + r5575326;
        double r5575337 = r5575335 / r5575336;
        double r5575338 = r5575320 / r5575324;
        double r5575339 = 2.0;
        double r5575340 = r5575338 + r5575339;
        double r5575341 = r5575324 / r5575320;
        double r5575342 = r5575340 + r5575341;
        double r5575343 = r5575323 / r5575342;
        double r5575344 = r5575343 / r5575336;
        double r5575345 = r5575322 ? r5575337 : r5575344;
        return r5575345;
}

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 < 6.983660355824238e+156

    1. Initial program 1.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}\]
    2. Using strategy rm
    3. Applied clear-num1.1

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

    if 6.983660355824238e+156 < alpha

    1. Initial program 15.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 clear-num15.9

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

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

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

Reproduce

herbie shell --seed 2019171 
(FPCore (alpha beta)
  :name "Octave 3.8, jcobi/3"
  :pre (and (> alpha -1.0) (> beta -1.0))
  (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2.0 1.0))) (+ (+ alpha beta) (* 2.0 1.0))) (+ (+ (+ alpha beta) (* 2.0 1.0)) 1.0)))