Average Error: 24.0 → 12.4
Time: 1.1m
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1 \land i \gt 0\]
\[\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} + 1.0}{2.0}\]
\[\frac{\frac{{1.0}^{3} + {\left(\frac{\frac{\beta + \alpha}{\frac{2 \cdot i + \left(\beta + \alpha\right)}{\beta - \alpha}}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)}\right)}^{3}}{\left(1.0 \cdot 1.0 - 1.0 \cdot \frac{\frac{\beta + \alpha}{\frac{2 \cdot i + \left(\beta + \alpha\right)}{\beta - \alpha}}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)}\right) + \frac{\frac{\beta + \alpha}{\frac{2 \cdot i + \left(\beta + \alpha\right)}{\beta - \alpha}}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} \cdot \frac{\frac{\beta + \alpha}{\frac{2 \cdot i + \left(\beta + \alpha\right)}{\beta - \alpha}}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)}}}{2.0}\]
\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} + 1.0}{2.0}
\frac{\frac{{1.0}^{3} + {\left(\frac{\frac{\beta + \alpha}{\frac{2 \cdot i + \left(\beta + \alpha\right)}{\beta - \alpha}}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)}\right)}^{3}}{\left(1.0 \cdot 1.0 - 1.0 \cdot \frac{\frac{\beta + \alpha}{\frac{2 \cdot i + \left(\beta + \alpha\right)}{\beta - \alpha}}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)}\right) + \frac{\frac{\beta + \alpha}{\frac{2 \cdot i + \left(\beta + \alpha\right)}{\beta - \alpha}}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} \cdot \frac{\frac{\beta + \alpha}{\frac{2 \cdot i + \left(\beta + \alpha\right)}{\beta - \alpha}}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)}}}{2.0}
double f(double alpha, double beta, double i) {
        double r4553663 = alpha;
        double r4553664 = beta;
        double r4553665 = r4553663 + r4553664;
        double r4553666 = r4553664 - r4553663;
        double r4553667 = r4553665 * r4553666;
        double r4553668 = 2.0;
        double r4553669 = i;
        double r4553670 = r4553668 * r4553669;
        double r4553671 = r4553665 + r4553670;
        double r4553672 = r4553667 / r4553671;
        double r4553673 = 2.0;
        double r4553674 = r4553671 + r4553673;
        double r4553675 = r4553672 / r4553674;
        double r4553676 = 1.0;
        double r4553677 = r4553675 + r4553676;
        double r4553678 = r4553677 / r4553673;
        return r4553678;
}

double f(double alpha, double beta, double i) {
        double r4553679 = 1.0;
        double r4553680 = 3.0;
        double r4553681 = pow(r4553679, r4553680);
        double r4553682 = beta;
        double r4553683 = alpha;
        double r4553684 = r4553682 + r4553683;
        double r4553685 = 2.0;
        double r4553686 = i;
        double r4553687 = r4553685 * r4553686;
        double r4553688 = r4553687 + r4553684;
        double r4553689 = r4553682 - r4553683;
        double r4553690 = r4553688 / r4553689;
        double r4553691 = r4553684 / r4553690;
        double r4553692 = 2.0;
        double r4553693 = r4553692 + r4553688;
        double r4553694 = r4553691 / r4553693;
        double r4553695 = pow(r4553694, r4553680);
        double r4553696 = r4553681 + r4553695;
        double r4553697 = r4553679 * r4553679;
        double r4553698 = r4553679 * r4553694;
        double r4553699 = r4553697 - r4553698;
        double r4553700 = r4553694 * r4553694;
        double r4553701 = r4553699 + r4553700;
        double r4553702 = r4553696 / r4553701;
        double r4553703 = r4553702 / r4553692;
        return r4553703;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 24.0

    \[\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} + 1.0}{2.0}\]
  2. Using strategy rm
  3. Applied associate-/l*12.4

    \[\leadsto \frac{\frac{\color{blue}{\frac{\alpha + \beta}{\frac{\left(\alpha + \beta\right) + 2 \cdot i}{\beta - \alpha}}}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} + 1.0}{2.0}\]
  4. Using strategy rm
  5. Applied flip3-+12.4

    \[\leadsto \frac{\color{blue}{\frac{{\left(\frac{\frac{\alpha + \beta}{\frac{\left(\alpha + \beta\right) + 2 \cdot i}{\beta - \alpha}}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0}\right)}^{3} + {1.0}^{3}}{\frac{\frac{\alpha + \beta}{\frac{\left(\alpha + \beta\right) + 2 \cdot i}{\beta - \alpha}}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} \cdot \frac{\frac{\alpha + \beta}{\frac{\left(\alpha + \beta\right) + 2 \cdot i}{\beta - \alpha}}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} + \left(1.0 \cdot 1.0 - \frac{\frac{\alpha + \beta}{\frac{\left(\alpha + \beta\right) + 2 \cdot i}{\beta - \alpha}}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} \cdot 1.0\right)}}}{2.0}\]
  6. Final simplification12.4

    \[\leadsto \frac{\frac{{1.0}^{3} + {\left(\frac{\frac{\beta + \alpha}{\frac{2 \cdot i + \left(\beta + \alpha\right)}{\beta - \alpha}}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)}\right)}^{3}}{\left(1.0 \cdot 1.0 - 1.0 \cdot \frac{\frac{\beta + \alpha}{\frac{2 \cdot i + \left(\beta + \alpha\right)}{\beta - \alpha}}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)}\right) + \frac{\frac{\beta + \alpha}{\frac{2 \cdot i + \left(\beta + \alpha\right)}{\beta - \alpha}}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} \cdot \frac{\frac{\beta + \alpha}{\frac{2 \cdot i + \left(\beta + \alpha\right)}{\beta - \alpha}}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)}}}{2.0}\]

Reproduce

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