Average Error: 3.3 → 3.3
Time: 1.5m
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}\]
\[\frac{\frac{\frac{\left(\beta \cdot \alpha + \left(\alpha + \beta\right)\right) + 1.0}{2 + \left(\alpha + \beta\right)}}{2 + \left(\alpha + \beta\right)}}{\left(1.0 + \left(\alpha + \beta\right)\right) + 2}\]
\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}
\frac{\frac{\frac{\left(\beta \cdot \alpha + \left(\alpha + \beta\right)\right) + 1.0}{2 + \left(\alpha + \beta\right)}}{2 + \left(\alpha + \beta\right)}}{\left(1.0 + \left(\alpha + \beta\right)\right) + 2}
double f(double alpha, double beta) {
        double r5019341 = alpha;
        double r5019342 = beta;
        double r5019343 = r5019341 + r5019342;
        double r5019344 = r5019342 * r5019341;
        double r5019345 = r5019343 + r5019344;
        double r5019346 = 1.0;
        double r5019347 = r5019345 + r5019346;
        double r5019348 = 2.0;
        double r5019349 = 1.0;
        double r5019350 = r5019348 * r5019349;
        double r5019351 = r5019343 + r5019350;
        double r5019352 = r5019347 / r5019351;
        double r5019353 = r5019352 / r5019351;
        double r5019354 = r5019351 + r5019346;
        double r5019355 = r5019353 / r5019354;
        return r5019355;
}

double f(double alpha, double beta) {
        double r5019356 = beta;
        double r5019357 = alpha;
        double r5019358 = r5019356 * r5019357;
        double r5019359 = r5019357 + r5019356;
        double r5019360 = r5019358 + r5019359;
        double r5019361 = 1.0;
        double r5019362 = r5019360 + r5019361;
        double r5019363 = 2.0;
        double r5019364 = r5019363 + r5019359;
        double r5019365 = r5019362 / r5019364;
        double r5019366 = r5019365 / r5019364;
        double r5019367 = r5019361 + r5019359;
        double r5019368 = r5019367 + r5019363;
        double r5019369 = r5019366 / r5019368;
        return r5019369;
}

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. Initial program 3.3

    \[\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. Simplified3.3

    \[\leadsto \color{blue}{\frac{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\left(1.0 + \left(\beta + \alpha\right)\right) + 2}}\]
  3. Final simplification3.3

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

Reproduce

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