\frac{\left(\frac{\left(\left(i \cdot \left(\frac{\left(\frac{\alpha}{\beta}\right)}{i}\right)\right) \cdot \left(\frac{\left(\beta \cdot \alpha\right)}{\left(i \cdot \left(\frac{\left(\frac{\alpha}{\beta}\right)}{i}\right)\right)}\right)\right)}{\left(\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right) \cdot \left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)\right)}\right)}{\left(\left(\left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right) \cdot \left(\frac{\left(\frac{\alpha}{\beta}\right)}{\left(\left(2\right) \cdot i\right)}\right)\right) - \left(1.0\right)\right)}\frac{\frac{i}{\left(\alpha + \beta\right) + 2 \cdot i}}{\frac{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 1.0}{\left(\alpha + \beta\right) + i}} \cdot \frac{\frac{\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1.0}double f(double alpha, double beta, double i) {
double r2977258 = i;
double r2977259 = alpha;
double r2977260 = beta;
double r2977261 = r2977259 + r2977260;
double r2977262 = r2977261 + r2977258;
double r2977263 = r2977258 * r2977262;
double r2977264 = r2977260 * r2977259;
double r2977265 = r2977264 + r2977263;
double r2977266 = r2977263 * r2977265;
double r2977267 = 2.0;
double r2977268 = /* ERROR: no posit support in C */;
double r2977269 = r2977268 * r2977258;
double r2977270 = r2977261 + r2977269;
double r2977271 = r2977270 * r2977270;
double r2977272 = r2977266 / r2977271;
double r2977273 = 1.0;
double r2977274 = /* ERROR: no posit support in C */;
double r2977275 = r2977271 - r2977274;
double r2977276 = r2977272 / r2977275;
return r2977276;
}
double f(double alpha, double beta, double i) {
double r2977277 = i;
double r2977278 = alpha;
double r2977279 = beta;
double r2977280 = r2977278 + r2977279;
double r2977281 = 2.0;
double r2977282 = r2977281 * r2977277;
double r2977283 = r2977280 + r2977282;
double r2977284 = r2977277 / r2977283;
double r2977285 = 1.0;
double r2977286 = r2977283 + r2977285;
double r2977287 = r2977280 + r2977277;
double r2977288 = r2977286 / r2977287;
double r2977289 = r2977284 / r2977288;
double r2977290 = r2977279 * r2977278;
double r2977291 = r2977277 * r2977287;
double r2977292 = r2977290 + r2977291;
double r2977293 = r2977292 / r2977283;
double r2977294 = r2977283 - r2977285;
double r2977295 = r2977293 / r2977294;
double r2977296 = r2977289 * r2977295;
return r2977296;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 3.3
rmApplied difference-of-sqr-13.3
Applied p16-times-frac1.7
Applied p16-times-frac1.7
rmApplied associate-/l*1.5
rmApplied associate-/r/1.5
Applied associate-/l*1.5
Final simplification1.5
herbie shell --seed 2019112 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/4"
:pre (and (>.p16 alpha (real->posit16 -1)) (>.p16 beta (real->posit16 -1)) (>.p16 i (real->posit16 1)))
(/.p16 (/.p16 (*.p16 (*.p16 i (+.p16 (+.p16 alpha beta) i)) (+.p16 (*.p16 beta alpha) (*.p16 i (+.p16 (+.p16 alpha beta) i)))) (*.p16 (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i)) (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i)))) (-.p16 (*.p16 (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i)) (+.p16 (+.p16 alpha beta) (*.p16 (real->posit16 2) i))) (real->posit16 1.0))))