Average Error: 0.9 → 0.6
Time: 42.3s
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{\alpha + \beta}{\left(\left(i \cdot 2 + 2.0\right) + \alpha\right) + \beta} \cdot \frac{\beta - \alpha}{\left(\beta + \alpha\right) + i \cdot 2} + 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{\alpha + \beta}{\left(\left(i \cdot 2 + 2.0\right) + \alpha\right) + \beta} \cdot \frac{\beta - \alpha}{\left(\beta + \alpha\right) + i \cdot 2} + 1.0}{2.0}
double f(double alpha, double beta, double i) {
        double r1578062 = alpha;
        double r1578063 = beta;
        double r1578064 = r1578062 + r1578063;
        double r1578065 = r1578063 - r1578062;
        double r1578066 = r1578064 * r1578065;
        double r1578067 = 2.0;
        double r1578068 = /* ERROR: no posit support in C */;
        double r1578069 = i;
        double r1578070 = r1578068 * r1578069;
        double r1578071 = r1578064 + r1578070;
        double r1578072 = r1578066 / r1578071;
        double r1578073 = 2.0;
        double r1578074 = /* ERROR: no posit support in C */;
        double r1578075 = r1578071 + r1578074;
        double r1578076 = r1578072 / r1578075;
        double r1578077 = 1.0;
        double r1578078 = /* ERROR: no posit support in C */;
        double r1578079 = r1578076 + r1578078;
        double r1578080 = r1578079 / r1578074;
        return r1578080;
}

double f(double alpha, double beta, double i) {
        double r1578081 = alpha;
        double r1578082 = beta;
        double r1578083 = r1578081 + r1578082;
        double r1578084 = i;
        double r1578085 = 2.0;
        double r1578086 = r1578084 * r1578085;
        double r1578087 = 2.0;
        double r1578088 = r1578086 + r1578087;
        double r1578089 = r1578088 + r1578081;
        double r1578090 = r1578089 + r1578082;
        double r1578091 = r1578083 / r1578090;
        double r1578092 = r1578082 - r1578081;
        double r1578093 = r1578082 + r1578081;
        double r1578094 = r1578093 + r1578086;
        double r1578095 = r1578092 / r1578094;
        double r1578096 = r1578091 * r1578095;
        double r1578097 = 1.0;
        double r1578098 = r1578096 + r1578097;
        double r1578099 = r1578098 / r1578087;
        return r1578099;
}

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. Using strategy rm
  3. Applied *p16-rgt-identity-expand0.9

    \[\leadsto \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)}{\color{blue}{\left(\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}{\left(2.0\right)}\right) \cdot \left(1.0\right)\right)}}\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}\]
  4. Applied p16-*-un-lft-identity0.9

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

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

    \[\leadsto \frac{\left(\frac{\color{blue}{\left(\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(1.0\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) \cdot \left(\frac{\left(\frac{\left(\beta - \alpha\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)}\right)}{\left(1.0\right)}\right)\right)}}{\left(1.0\right)}\right)}{\left(2.0\right)}\]
  7. Simplified0.6

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

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

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

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

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

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

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

Reproduce

herbie shell --seed 2019153 +o rules:numerics
(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)))