Average Error: 0.4 → 0.4
Time: 18.1s
Precision: 64
\[\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(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}}{\left(\alpha + \beta\right) + 2 \cdot 1}\]
double f(double alpha, double beta) {
        double r1204504 = alpha;
        double r1204505 = beta;
        double r1204506 = r1204504 + r1204505;
        double r1204507 = r1204505 * r1204504;
        double r1204508 = r1204506 + r1204507;
        double r1204509 = 1.0;
        double r1204510 = r1204508 + r1204509;
        double r1204511 = 2.0;
        double r1204512 = 1.0;
        double r1204513 = r1204511 * r1204512;
        double r1204514 = r1204506 + r1204513;
        double r1204515 = r1204510 / r1204514;
        double r1204516 = r1204515 / r1204514;
        double r1204517 = r1204514 + r1204509;
        double r1204518 = r1204516 / r1204517;
        return r1204518;
}

double f(double alpha, double beta) {
        double r1204519 = alpha;
        double r1204520 = beta;
        double r1204521 = r1204519 + r1204520;
        double r1204522 = r1204520 * r1204519;
        double r1204523 = r1204521 + r1204522;
        double r1204524 = 1.0;
        double r1204525 = r1204523 + r1204524;
        double r1204526 = 2.0;
        double r1204527 = 1.0;
        double r1204528 = r1204526 * r1204527;
        double r1204529 = r1204521 + r1204528;
        double r1204530 = r1204525 / r1204529;
        double r1204531 = r1204529 + r1204524;
        double r1204532 = r1204530 / r1204531;
        double r1204533 = r1204532 / r1204529;
        return r1204533;
}

\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(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}}{\left(\alpha + \beta\right) + 2 \cdot 1}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Initial program 0.4

    \[\frac{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\beta \cdot \alpha\right)}\right)}{\left(1.0\right)}\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)}\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)}\right)}{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)}{\left(1.0\right)}\right)}\]
  2. Using strategy rm
  3. Applied associate-/l/0.4

    \[\leadsto \color{blue}{\frac{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\beta \cdot \alpha\right)}\right)}{\left(1.0\right)}\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)}\right)}{\left(\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)}{\left(1.0\right)}\right) \cdot \left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)\right)}}\]
  4. Using strategy rm
  5. Applied associate-/r*0.4

    \[\leadsto \color{blue}{\frac{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\beta \cdot \alpha\right)}\right)}{\left(1.0\right)}\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)}\right)}{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)}{\left(1.0\right)}\right)}\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)}}\]
  6. Final simplification0.4

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

Reproduce

herbie shell --seed 2019101 
(FPCore (alpha beta)
  :name "Octave 3.8, jcobi/3"
  :pre (and (>.p16 alpha (real->posit16 -1)) (>.p16 beta (real->posit16 -1)))
  (/.p16 (/.p16 (/.p16 (+.p16 (+.p16 (+.p16 alpha beta) (*.p16 beta alpha)) (real->posit16 1.0)) (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) (real->posit16 1)))) (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) (real->posit16 1)))) (+.p16 (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) (real->posit16 1))) (real->posit16 1.0))))