\frac{\left(\frac{\left(\frac{\left(\beta - \alpha\right)}{\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(2.0\right)}\right)}\right)}{\left(1.0\right)}\right)}{\left(2.0\right)}\frac{\left(\mathsf{qma}\left(\left(\mathsf{qma}\left(\left(\left(\frac{\beta}{\left(\beta + \alpha\right) + 2.0}\right)\right), \left(\frac{-\alpha}{\left(\beta + \alpha\right) + 2.0}\right), 1.0\right)\right), 1.0, 1.0\right)\right)}{2.0}double f(double alpha, double beta) {
double r653088 = beta;
double r653089 = alpha;
double r653090 = r653088 - r653089;
double r653091 = r653089 + r653088;
double r653092 = 2.0;
double r653093 = /* ERROR: no posit support in C */;
double r653094 = r653091 + r653093;
double r653095 = r653090 / r653094;
double r653096 = 1.0;
double r653097 = /* ERROR: no posit support in C */;
double r653098 = r653095 + r653097;
double r653099 = r653098 / r653093;
return r653099;
}
double f(double alpha, double beta) {
double r653100 = beta;
double r653101 = alpha;
double r653102 = r653100 + r653101;
double r653103 = 2.0;
double r653104 = r653102 + r653103;
double r653105 = r653100 / r653104;
double r653106 = /*Error: no posit support in C */;
double r653107 = -r653101;
double r653108 = r653107 / r653104;
double r653109 = 1.0;
double r653110 = /*Error: no posit support in C */;
double r653111 = /*Error: no posit support in C */;
double r653112 = /*Error: no posit support in C */;
double r653113 = r653112 / r653103;
return r653113;
}



Bits error versus alpha



Bits error versus beta
Initial program 0.7
rmApplied *p16-rgt-identity-expand0.7
Applied p16-*-un-lft-identity0.7
Applied p16-times-frac0.8
Simplified0.8
rmApplied sub-neg0.8
Applied distribute-lft-in0.7
rmApplied introduce-quire0.7
Applied insert-quire-add0.7
Applied insert-quire-add0.7
Simplified0.6
Final simplification0.6
herbie shell --seed 2019156 +o rules:numerics
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/1"
:pre (and (>.p16 alpha (real->posit16 -1)) (>.p16 beta (real->posit16 -1)))
(/.p16 (+.p16 (/.p16 (-.p16 beta alpha) (+.p16 (+.p16 alpha beta) (real->posit16 2.0))) (real->posit16 1.0)) (real->posit16 2.0)))