\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;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 0.9
rmApplied *p16-rgt-identity-expand0.9
Applied p16-*-un-lft-identity0.9
Applied p16-times-frac0.6
Applied p16-times-frac0.6
Simplified0.6
Simplified0.6
rmApplied p16-*-un-lft-identity0.6
Applied associate-*r*0.6
Simplified0.6
rmApplied associate-+r+0.6
Final simplification0.6
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)))