Average Error: 0.4 → 0.3
Time: 44.0s
Precision: 64
\[\alpha \gt \left(-1\right) \land \beta \gt \left(-1\right)\]
\[\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)}\]
\[\frac{\left(\left(\left(\left(\left(\frac{\alpha}{\left(1.0\right)}\right) \cdot \left(\frac{\left(\frac{\left(1.0\right)}{\beta}\right)}{\left(\frac{\beta}{\left(\frac{\left(\left(2\right) \cdot \left(1\right)\right)}{\alpha}\right)}\right)}\right)\right)\right)\right) \cdot \left(\frac{\left(1.0\right)}{\left(\frac{\left(\frac{\beta}{\left(\left(1\right) \cdot \left(2\right)\right)}\right)}{\alpha}\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)}\]
\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)}
\frac{\left(\left(\left(\left(\left(\frac{\alpha}{\left(1.0\right)}\right) \cdot \left(\frac{\left(\frac{\left(1.0\right)}{\beta}\right)}{\left(\frac{\beta}{\left(\frac{\left(\left(2\right) \cdot \left(1\right)\right)}{\alpha}\right)}\right)}\right)\right)\right)\right) \cdot \left(\frac{\left(1.0\right)}{\left(\frac{\left(\frac{\beta}{\left(\left(1\right) \cdot \left(2\right)\right)}\right)}{\alpha}\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)}
double f(double alpha, double beta) {
        double r3145024 = alpha;
        double r3145025 = beta;
        double r3145026 = r3145024 + r3145025;
        double r3145027 = r3145025 * r3145024;
        double r3145028 = r3145026 + r3145027;
        double r3145029 = 1.0;
        double r3145030 = /* ERROR: no posit support in C */;
        double r3145031 = r3145028 + r3145030;
        double r3145032 = 2.0;
        double r3145033 = /* ERROR: no posit support in C */;
        double r3145034 = 1.0;
        double r3145035 = /* ERROR: no posit support in C */;
        double r3145036 = r3145033 * r3145035;
        double r3145037 = r3145026 + r3145036;
        double r3145038 = r3145031 / r3145037;
        double r3145039 = r3145038 / r3145037;
        double r3145040 = r3145037 + r3145030;
        double r3145041 = r3145039 / r3145040;
        return r3145041;
}

double f(double alpha, double beta) {
        double r3145042 = alpha;
        double r3145043 = 1.0;
        double r3145044 = /* ERROR: no posit support in C */;
        double r3145045 = r3145042 + r3145044;
        double r3145046 = beta;
        double r3145047 = r3145044 + r3145046;
        double r3145048 = 2.0;
        double r3145049 = /* ERROR: no posit support in C */;
        double r3145050 = 1.0;
        double r3145051 = /* ERROR: no posit support in C */;
        double r3145052 = r3145049 * r3145051;
        double r3145053 = r3145052 + r3145042;
        double r3145054 = r3145046 + r3145053;
        double r3145055 = r3145047 / r3145054;
        double r3145056 = r3145045 * r3145055;
        double r3145057 = /*Error: no posit support in C */;
        double r3145058 = /*Error: no posit support in C */;
        double r3145059 = r3145051 * r3145049;
        double r3145060 = r3145046 + r3145059;
        double r3145061 = r3145060 + r3145042;
        double r3145062 = r3145044 / r3145061;
        double r3145063 = r3145058 * r3145062;
        double r3145064 = r3145042 + r3145046;
        double r3145065 = r3145064 + r3145052;
        double r3145066 = r3145065 + r3145044;
        double r3145067 = r3145063 / r3145066;
        return r3145067;
}

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 *p16-rgt-identity-expand0.4

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

    \[\leadsto \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)}{\color{blue}{\left(\left(1.0\right) \cdot \left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)\right)}}\right)}{\left(\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right) \cdot \left(1.0\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)}\]
  5. Applied *p16-rgt-identity-expand0.4

    \[\leadsto \frac{\left(\frac{\left(\frac{\left(\frac{\color{blue}{\left(\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\beta \cdot \alpha\right)}\right) \cdot \left(1.0\right)\right)}}{\left(1.0\right)}\right)}{\left(\left(1.0\right) \cdot \left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)\right)}\right)}{\left(\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right) \cdot \left(1.0\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)}\]
  6. Applied distribute-lft1-in0.4

    \[\leadsto \frac{\left(\frac{\left(\frac{\color{blue}{\left(\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\beta \cdot \alpha\right)}\right)}{\left(1.0\right)}\right) \cdot \left(1.0\right)\right)}}{\left(\left(1.0\right) \cdot \left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)\right)}\right)}{\left(\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right) \cdot \left(1.0\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)}\]
  7. Applied p16-times-frac0.4

    \[\leadsto \frac{\left(\frac{\color{blue}{\left(\left(\frac{\left(\frac{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\beta \cdot \alpha\right)}\right)}{\left(1.0\right)}\right)}{\left(1.0\right)}\right) \cdot \left(\frac{\left(1.0\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)}\right)\right)}}{\left(\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right) \cdot \left(1.0\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)}\]
  8. Applied p16-times-frac0.4

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

    \[\leadsto \frac{\left(\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(1.0\right)}\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)}\right) \cdot \color{blue}{\left(\frac{\left(1.0\right)}{\left(\frac{\left(\frac{\beta}{\left(\left(1\right) \cdot \left(2\right)\right)}\right)}{\alpha}\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)}\]
  10. Using strategy rm
  11. Applied associate-+l+0.4

    \[\leadsto \frac{\left(\left(\frac{\left(\frac{\left(\frac{\color{blue}{\left(\frac{\alpha}{\left(\frac{\beta}{\left(\beta \cdot \alpha\right)}\right)}\right)}}{\left(1.0\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) \cdot \left(\frac{\left(1.0\right)}{\left(\frac{\left(\frac{\beta}{\left(\left(1\right) \cdot \left(2\right)\right)}\right)}{\alpha}\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)}\]
  12. Using strategy rm
  13. Applied *p16-rgt-identity-expand0.4

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

    \[\leadsto \frac{\left(\left(\frac{\color{blue}{\left(\left(1.0\right) \cdot \left(\frac{\left(\frac{\left(\frac{\alpha}{\left(\frac{\beta}{\left(\beta \cdot \alpha\right)}\right)}\right)}{\left(1.0\right)}\right)}{\left(1.0\right)}\right)\right)}}{\left(\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right) \cdot \left(1.0\right)\right)}\right) \cdot \left(\frac{\left(1.0\right)}{\left(\frac{\left(\frac{\beta}{\left(\left(1\right) \cdot \left(2\right)\right)}\right)}{\alpha}\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)}\]
  15. Applied p16-times-frac0.4

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

    \[\leadsto \frac{\left(\left(\left(\frac{\left(1.0\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot \left(1\right)\right)}\right)}\right) \cdot \color{blue}{\left(\left(\frac{\left(1.0\right)}{\beta}\right) \cdot \left(\frac{\left(1.0\right)}{\alpha}\right)\right)}\right) \cdot \left(\frac{\left(1.0\right)}{\left(\frac{\left(\frac{\beta}{\left(\left(1\right) \cdot \left(2\right)\right)}\right)}{\alpha}\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)}\]
  17. Using strategy rm
  18. Applied introduce-quire0.3

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

    \[\leadsto \frac{\left(\left(\color{blue}{\left(\left(\left(\frac{\alpha}{\left(1.0\right)}\right) \cdot \left(\frac{\left(\frac{\left(1.0\right)}{\beta}\right)}{\left(\frac{\beta}{\left(\frac{\left(\left(2\right) \cdot \left(1\right)\right)}{\alpha}\right)}\right)}\right)\right)\right)}\right) \cdot \left(\frac{\left(1.0\right)}{\left(\frac{\left(\frac{\beta}{\left(\left(1\right) \cdot \left(2\right)\right)}\right)}{\alpha}\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)}\]
  20. Final simplification0.3

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

Reproduce

herbie shell --seed 2019164 
(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))))