Average Error: 3.7 → 2.3
Time: 37.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}\;\alpha \le 1.1856454375998788 \cdot 10^{206}:\\ \;\;\;\;\frac{\frac{-\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)}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{-\left(\left(2 \cdot \frac{1}{{\alpha}^{2}} + 1\right) - 1 \cdot \frac{1}{\alpha}\right)}{-\left(\left(\alpha + \beta\right) + 2 \cdot 1\right)}}{\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 1.1856454375998788 \cdot 10^{206}:\\
\;\;\;\;\frac{\frac{-\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)}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\

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

\end{array}
double f(double alpha, double beta) {
        double r237329 = alpha;
        double r237330 = beta;
        double r237331 = r237329 + r237330;
        double r237332 = r237330 * r237329;
        double r237333 = r237331 + r237332;
        double r237334 = 1.0;
        double r237335 = r237333 + r237334;
        double r237336 = 2.0;
        double r237337 = r237336 * r237334;
        double r237338 = r237331 + r237337;
        double r237339 = r237335 / r237338;
        double r237340 = r237339 / r237338;
        double r237341 = r237338 + r237334;
        double r237342 = r237340 / r237341;
        return r237342;
}

double f(double alpha, double beta) {
        double r237343 = alpha;
        double r237344 = 1.1856454375998788e+206;
        bool r237345 = r237343 <= r237344;
        double r237346 = beta;
        double r237347 = r237343 + r237346;
        double r237348 = r237346 * r237343;
        double r237349 = r237347 + r237348;
        double r237350 = 1.0;
        double r237351 = r237349 + r237350;
        double r237352 = 2.0;
        double r237353 = r237352 * r237350;
        double r237354 = r237347 + r237353;
        double r237355 = r237351 / r237354;
        double r237356 = -r237355;
        double r237357 = -r237354;
        double r237358 = r237356 / r237357;
        double r237359 = r237354 + r237350;
        double r237360 = r237358 / r237359;
        double r237361 = 1.0;
        double r237362 = 2.0;
        double r237363 = pow(r237343, r237362);
        double r237364 = r237361 / r237363;
        double r237365 = r237352 * r237364;
        double r237366 = r237365 + r237361;
        double r237367 = r237361 / r237343;
        double r237368 = r237350 * r237367;
        double r237369 = r237366 - r237368;
        double r237370 = -r237369;
        double r237371 = r237370 / r237357;
        double r237372 = r237371 / r237359;
        double r237373 = r237345 ? r237360 : r237372;
        return r237373;
}

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 < 1.1856454375998788e+206

    1. Initial program 1.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 frac-2neg1.9

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

    if 1.1856454375998788e+206 < alpha

    1. Initial program 17.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 frac-2neg17.8

      \[\leadsto \frac{\color{blue}{\frac{-\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)}}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
    4. Taylor expanded around inf 5.4

      \[\leadsto \frac{\frac{-\color{blue}{\left(\left(2 \cdot \frac{1}{{\alpha}^{2}} + 1\right) - 1 \cdot \frac{1}{\alpha}\right)}}{-\left(\left(\alpha + \beta\right) + 2 \cdot 1\right)}}{\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 1.1856454375998788 \cdot 10^{206}:\\ \;\;\;\;\frac{\frac{-\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)}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{-\left(\left(2 \cdot \frac{1}{{\alpha}^{2}} + 1\right) - 1 \cdot \frac{1}{\alpha}\right)}{-\left(\left(\alpha + \beta\right) + 2 \cdot 1\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\\ \end{array}\]

Reproduce

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