\frac{\left(\frac{\left(\left(i \cdot i\right) \cdot \left(i \cdot i\right)\right)}{\left(\left(\left(2\right) \cdot i\right) \cdot \left(\left(2\right) \cdot i\right)\right)}\right)}{\left(\left(\left(\left(2\right) \cdot i\right) \cdot \left(\left(2\right) \cdot i\right)\right) - \left(1.0\right)\right)}\frac{\frac{i}{\frac{2}{\frac{i}{i}}}}{2 \cdot i + 1.0} \cdot \frac{\frac{i}{\frac{2}{\frac{i}{i}}}}{2 \cdot i - 1.0}double f(double i) {
double r1488111 = i;
double r1488112 = r1488111 * r1488111;
double r1488113 = r1488112 * r1488112;
double r1488114 = 2.0;
double r1488115 = /* ERROR: no posit support in C */;
double r1488116 = r1488115 * r1488111;
double r1488117 = r1488116 * r1488116;
double r1488118 = r1488113 / r1488117;
double r1488119 = 1.0;
double r1488120 = /* ERROR: no posit support in C */;
double r1488121 = r1488117 - r1488120;
double r1488122 = r1488118 / r1488121;
return r1488122;
}
double f(double i) {
double r1488123 = i;
double r1488124 = 2.0;
double r1488125 = r1488123 / r1488123;
double r1488126 = r1488124 / r1488125;
double r1488127 = r1488123 / r1488126;
double r1488128 = r1488124 * r1488123;
double r1488129 = 1.0;
double r1488130 = r1488128 + r1488129;
double r1488131 = r1488127 / r1488130;
double r1488132 = r1488128 - r1488129;
double r1488133 = r1488127 / r1488132;
double r1488134 = r1488131 * r1488133;
return r1488134;
}



Bits error versus i
Initial program 2.4
rmApplied associate-/l*1.0
rmApplied difference-of-sqr-11.0
Applied p16-times-frac0.8
Applied p16-times-frac0.9
Applied p16-times-frac0.5
rmApplied associate-/l*0.4
rmApplied associate-/l*0.4
Final simplification0.4
herbie shell --seed 2019120
(FPCore (i)
:name "Octave 3.8, jcobi/4, as called"
:pre (and (>.p16 i (real->posit16 0)))
(/.p16 (/.p16 (*.p16 (*.p16 i i) (*.p16 i i)) (*.p16 (*.p16 (real->posit16 2) i) (*.p16 (real->posit16 2) i))) (-.p16 (*.p16 (*.p16 (real->posit16 2) i) (*.p16 (real->posit16 2) i)) (real->posit16 1.0))))