\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}{\frac{\left(\alpha + \beta\right) + 2 \cdot i}{\left(\alpha + \beta\right) + i}}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 1.0} \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 r1698212 = i;
double r1698213 = alpha;
double r1698214 = beta;
double r1698215 = r1698213 + r1698214;
double r1698216 = r1698215 + r1698212;
double r1698217 = r1698212 * r1698216;
double r1698218 = r1698214 * r1698213;
double r1698219 = r1698218 + r1698217;
double r1698220 = r1698217 * r1698219;
double r1698221 = 2.0;
double r1698222 = /* ERROR: no posit support in C */;
double r1698223 = r1698222 * r1698212;
double r1698224 = r1698215 + r1698223;
double r1698225 = r1698224 * r1698224;
double r1698226 = r1698220 / r1698225;
double r1698227 = 1.0;
double r1698228 = /* ERROR: no posit support in C */;
double r1698229 = r1698225 - r1698228;
double r1698230 = r1698226 / r1698229;
return r1698230;
}
double f(double alpha, double beta, double i) {
double r1698231 = i;
double r1698232 = alpha;
double r1698233 = beta;
double r1698234 = r1698232 + r1698233;
double r1698235 = 2.0;
double r1698236 = r1698235 * r1698231;
double r1698237 = r1698234 + r1698236;
double r1698238 = r1698234 + r1698231;
double r1698239 = r1698237 / r1698238;
double r1698240 = r1698231 / r1698239;
double r1698241 = 1.0;
double r1698242 = r1698237 + r1698241;
double r1698243 = r1698240 / r1698242;
double r1698244 = r1698233 * r1698232;
double r1698245 = r1698231 * r1698238;
double r1698246 = r1698244 + r1698245;
double r1698247 = r1698246 / r1698237;
double r1698248 = r1698237 - r1698241;
double r1698249 = r1698247 / r1698248;
double r1698250 = r1698243 * r1698249;
return r1698250;
}



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.8
Applied p16-times-frac1.7
rmApplied associate-/l*1.5
Final simplification1.5
herbie shell --seed 2019134 +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))))