Average Error: 0.9 → 0.6
Time: 52.6s
Precision: 64
\[\alpha \gt \left(-1\right) \land \beta \gt \left(-1\right) \land i \gt \left(0\right)\]
\[\frac{\left(\frac{\left(\frac{\left(\frac{\left(\left(\frac{\alpha}{\beta}\right) \cdot \left(\beta - \alpha\right)\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}\right)}{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}{\left(2.0\right)}\right)}\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}\]
\[\frac{\frac{\beta - \alpha}{\alpha + \left(i \cdot 2 + \beta\right)} \cdot \frac{1.0}{\frac{\left(i \cdot 2 + \alpha\right) + \left(2.0 + \beta\right)}{\beta + \alpha}} + 1.0}{2.0}\]
\frac{\left(\frac{\left(\frac{\left(\frac{\left(\left(\frac{\alpha}{\beta}\right) \cdot \left(\beta - \alpha\right)\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}\right)}{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}{\left(2.0\right)}\right)}\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}
\frac{\frac{\beta - \alpha}{\alpha + \left(i \cdot 2 + \beta\right)} \cdot \frac{1.0}{\frac{\left(i \cdot 2 + \alpha\right) + \left(2.0 + \beta\right)}{\beta + \alpha}} + 1.0}{2.0}
double f(double alpha, double beta, double i) {
        double r3721262 = alpha;
        double r3721263 = beta;
        double r3721264 = r3721262 + r3721263;
        double r3721265 = r3721263 - r3721262;
        double r3721266 = r3721264 * r3721265;
        double r3721267 = 2.0;
        double r3721268 = /* ERROR: no posit support in C */;
        double r3721269 = i;
        double r3721270 = r3721268 * r3721269;
        double r3721271 = r3721264 + r3721270;
        double r3721272 = r3721266 / r3721271;
        double r3721273 = 2.0;
        double r3721274 = /* ERROR: no posit support in C */;
        double r3721275 = r3721271 + r3721274;
        double r3721276 = r3721272 / r3721275;
        double r3721277 = 1.0;
        double r3721278 = /* ERROR: no posit support in C */;
        double r3721279 = r3721276 + r3721278;
        double r3721280 = r3721279 / r3721274;
        return r3721280;
}

double f(double alpha, double beta, double i) {
        double r3721281 = beta;
        double r3721282 = alpha;
        double r3721283 = r3721281 - r3721282;
        double r3721284 = i;
        double r3721285 = 2.0;
        double r3721286 = r3721284 * r3721285;
        double r3721287 = r3721286 + r3721281;
        double r3721288 = r3721282 + r3721287;
        double r3721289 = r3721283 / r3721288;
        double r3721290 = 1.0;
        double r3721291 = r3721286 + r3721282;
        double r3721292 = 2.0;
        double r3721293 = r3721292 + r3721281;
        double r3721294 = r3721291 + r3721293;
        double r3721295 = r3721281 + r3721282;
        double r3721296 = r3721294 / r3721295;
        double r3721297 = r3721290 / r3721296;
        double r3721298 = r3721289 * r3721297;
        double r3721299 = r3721298 + r3721290;
        double r3721300 = r3721299 / r3721292;
        return r3721300;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Initial program 0.9

    \[\frac{\left(\frac{\left(\frac{\left(\frac{\left(\left(\frac{\alpha}{\beta}\right) \cdot \left(\beta - \alpha\right)\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}\right)}{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}{\left(2.0\right)}\right)}\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}\]
  2. Simplified1.0

    \[\leadsto \color{blue}{\frac{\left(\frac{\left(\frac{\left(\left(\beta - \alpha\right) \cdot \left(\frac{\beta}{\alpha}\right)\right)}{\left(\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(\frac{\beta}{\alpha}\right)}\right) \cdot \left(\frac{\alpha}{\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(\frac{\left(2.0\right)}{\beta}\right)}\right)}\right)\right)}\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}}\]
  3. Using strategy rm
  4. Applied p16-times-frac0.6

    \[\leadsto \frac{\left(\frac{\color{blue}{\left(\left(\frac{\left(\beta - \alpha\right)}{\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(\frac{\beta}{\alpha}\right)}\right)}\right) \cdot \left(\frac{\left(\frac{\beta}{\alpha}\right)}{\left(\frac{\alpha}{\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(\frac{\left(2.0\right)}{\beta}\right)}\right)}\right)}\right)\right)}}{\left(1.0\right)}\right)}{\left(2.0\right)}\]
  5. Using strategy rm
  6. Applied p16-*-un-lft-identity0.6

    \[\leadsto \frac{\left(\frac{\left(\left(\frac{\left(\beta - \alpha\right)}{\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(\frac{\beta}{\alpha}\right)}\right)}\right) \cdot \left(\frac{\color{blue}{\left(\left(1.0\right) \cdot \left(\frac{\beta}{\alpha}\right)\right)}}{\left(\frac{\alpha}{\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(\frac{\left(2.0\right)}{\beta}\right)}\right)}\right)}\right)\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}\]
  7. Applied associate-/l*0.6

    \[\leadsto \frac{\left(\frac{\left(\left(\frac{\left(\beta - \alpha\right)}{\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(\frac{\beta}{\alpha}\right)}\right)}\right) \cdot \color{blue}{\left(\frac{\left(1.0\right)}{\left(\frac{\left(\frac{\alpha}{\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(\frac{\left(2.0\right)}{\beta}\right)}\right)}\right)}{\left(\frac{\beta}{\alpha}\right)}\right)}\right)}\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}\]
  8. Using strategy rm
  9. Applied *p16-rgt-identity-expand0.6

    \[\leadsto \frac{\left(\frac{\left(\left(\frac{\color{blue}{\left(\left(\beta - \alpha\right) \cdot \left(1.0\right)\right)}}{\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(\frac{\beta}{\alpha}\right)}\right)}\right) \cdot \left(\frac{\left(1.0\right)}{\left(\frac{\left(\frac{\alpha}{\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(\frac{\left(2.0\right)}{\beta}\right)}\right)}\right)}{\left(\frac{\beta}{\alpha}\right)}\right)}\right)\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}\]
  10. Applied associate-/l*0.6

    \[\leadsto \frac{\left(\frac{\left(\color{blue}{\left(\frac{\left(\beta - \alpha\right)}{\left(\frac{\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(\frac{\beta}{\alpha}\right)}\right)}{\left(1.0\right)}\right)}\right)} \cdot \left(\frac{\left(1.0\right)}{\left(\frac{\left(\frac{\alpha}{\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(\frac{\left(2.0\right)}{\beta}\right)}\right)}\right)}{\left(\frac{\beta}{\alpha}\right)}\right)}\right)\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}\]
  11. Simplified0.6

    \[\leadsto \frac{\left(\frac{\left(\left(\frac{\left(\beta - \alpha\right)}{\color{blue}{\left(\frac{\alpha}{\left(\frac{\left(i \cdot \left(2\right)\right)}{\beta}\right)}\right)}}\right) \cdot \left(\frac{\left(1.0\right)}{\left(\frac{\left(\frac{\alpha}{\left(\frac{\left(\left(2\right) \cdot i\right)}{\left(\frac{\left(2.0\right)}{\beta}\right)}\right)}\right)}{\left(\frac{\beta}{\alpha}\right)}\right)}\right)\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}\]
  12. Using strategy rm
  13. Applied associate-+r+0.6

    \[\leadsto \frac{\left(\frac{\left(\left(\frac{\left(\beta - \alpha\right)}{\left(\frac{\alpha}{\left(\frac{\left(i \cdot \left(2\right)\right)}{\beta}\right)}\right)}\right) \cdot \left(\frac{\left(1.0\right)}{\left(\frac{\color{blue}{\left(\frac{\left(\frac{\alpha}{\left(\left(2\right) \cdot i\right)}\right)}{\left(\frac{\left(2.0\right)}{\beta}\right)}\right)}}{\left(\frac{\beta}{\alpha}\right)}\right)}\right)\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}\]
  14. Simplified0.6

    \[\leadsto \frac{\left(\frac{\left(\left(\frac{\left(\beta - \alpha\right)}{\left(\frac{\alpha}{\left(\frac{\left(i \cdot \left(2\right)\right)}{\beta}\right)}\right)}\right) \cdot \left(\frac{\left(1.0\right)}{\left(\frac{\left(\frac{\color{blue}{\left(\frac{\left(i \cdot \left(2\right)\right)}{\alpha}\right)}}{\left(\frac{\left(2.0\right)}{\beta}\right)}\right)}{\left(\frac{\beta}{\alpha}\right)}\right)}\right)\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}\]
  15. Final simplification0.6

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

Reproduce

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