Average Error: 16.2 → 0.1
Time: 21.3s
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1\]
\[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\]
\[\frac{\frac{\left(2.0 + \beta \cdot 2.0\right) \cdot \left(1.0 + \frac{\alpha}{\beta + \left(\alpha + 2.0\right)}\right)}{\left(1.0 + \frac{\alpha}{\beta + \left(\alpha + 2.0\right)}\right) \cdot \left(\beta + \left(\alpha + 2.0\right)\right)}}{2.0}\]
\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}
\frac{\frac{\left(2.0 + \beta \cdot 2.0\right) \cdot \left(1.0 + \frac{\alpha}{\beta + \left(\alpha + 2.0\right)}\right)}{\left(1.0 + \frac{\alpha}{\beta + \left(\alpha + 2.0\right)}\right) \cdot \left(\beta + \left(\alpha + 2.0\right)\right)}}{2.0}
double f(double alpha, double beta) {
        double r2787371 = beta;
        double r2787372 = alpha;
        double r2787373 = r2787371 - r2787372;
        double r2787374 = r2787372 + r2787371;
        double r2787375 = 2.0;
        double r2787376 = r2787374 + r2787375;
        double r2787377 = r2787373 / r2787376;
        double r2787378 = 1.0;
        double r2787379 = r2787377 + r2787378;
        double r2787380 = r2787379 / r2787375;
        return r2787380;
}

double f(double alpha, double beta) {
        double r2787381 = 2.0;
        double r2787382 = beta;
        double r2787383 = r2787382 * r2787381;
        double r2787384 = r2787381 + r2787383;
        double r2787385 = 1.0;
        double r2787386 = alpha;
        double r2787387 = r2787386 + r2787381;
        double r2787388 = r2787382 + r2787387;
        double r2787389 = r2787386 / r2787388;
        double r2787390 = r2787385 + r2787389;
        double r2787391 = r2787384 * r2787390;
        double r2787392 = r2787390 * r2787388;
        double r2787393 = r2787391 / r2787392;
        double r2787394 = r2787393 / r2787381;
        return r2787394;
}

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 16.2

    \[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\]
  2. Using strategy rm
  3. Applied div-sub16.2

    \[\leadsto \frac{\color{blue}{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \frac{\alpha}{\left(\alpha + \beta\right) + 2.0}\right)} + 1.0}{2.0}\]
  4. Applied associate-+l-15.7

    \[\leadsto \frac{\color{blue}{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}}{2.0}\]
  5. Using strategy rm
  6. Applied add-exp-log15.8

    \[\leadsto \frac{\color{blue}{e^{\log \left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)\right)}}}{2.0}\]
  7. Using strategy rm
  8. Applied flip--15.8

    \[\leadsto \frac{e^{\log \left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \color{blue}{\frac{\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} \cdot \frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0 \cdot 1.0}{\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}}\right)}}{2.0}\]
  9. Applied frac-sub15.8

    \[\leadsto \frac{e^{\log \color{blue}{\left(\frac{\beta \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0\right) - \left(\left(\alpha + \beta\right) + 2.0\right) \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} \cdot \frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0 \cdot 1.0\right)}{\left(\left(\alpha + \beta\right) + 2.0\right) \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0\right)}\right)}}}{2.0}\]
  10. Applied log-div17.3

    \[\leadsto \frac{e^{\color{blue}{\log \left(\beta \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0\right) - \left(\left(\alpha + \beta\right) + 2.0\right) \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} \cdot \frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0 \cdot 1.0\right)\right) - \log \left(\left(\left(\alpha + \beta\right) + 2.0\right) \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0\right)\right)}}}{2.0}\]
  11. Applied exp-diff17.3

    \[\leadsto \frac{\color{blue}{\frac{e^{\log \left(\beta \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0\right) - \left(\left(\alpha + \beta\right) + 2.0\right) \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} \cdot \frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0 \cdot 1.0\right)\right)}}{e^{\log \left(\left(\left(\alpha + \beta\right) + 2.0\right) \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0\right)\right)}}}}{2.0}\]
  12. Simplified17.3

    \[\leadsto \frac{\frac{\color{blue}{\left(1.0 + \frac{\alpha}{\beta + \left(\alpha + 2.0\right)}\right) \cdot \left(\beta - \left(\beta + \left(\alpha + 2.0\right)\right) \cdot \left(\frac{\alpha}{\beta + \left(\alpha + 2.0\right)} - 1.0\right)\right)}}{e^{\log \left(\left(\left(\alpha + \beta\right) + 2.0\right) \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0\right)\right)}}}{2.0}\]
  13. Simplified15.7

    \[\leadsto \frac{\frac{\left(1.0 + \frac{\alpha}{\beta + \left(\alpha + 2.0\right)}\right) \cdot \left(\beta - \left(\beta + \left(\alpha + 2.0\right)\right) \cdot \left(\frac{\alpha}{\beta + \left(\alpha + 2.0\right)} - 1.0\right)\right)}{\color{blue}{\left(\beta + \left(\alpha + 2.0\right)\right) \cdot \left(1.0 + \frac{\alpha}{\beta + \left(\alpha + 2.0\right)}\right)}}}{2.0}\]
  14. Taylor expanded around 0 0.1

    \[\leadsto \frac{\frac{\left(1.0 + \frac{\alpha}{\beta + \left(\alpha + 2.0\right)}\right) \cdot \color{blue}{\left(2.0 \cdot \beta + 2.0\right)}}{\left(\beta + \left(\alpha + 2.0\right)\right) \cdot \left(1.0 + \frac{\alpha}{\beta + \left(\alpha + 2.0\right)}\right)}}{2.0}\]
  15. Final simplification0.1

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

Reproduce

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