double f(double i) {
double r2088867 = i;
double r2088868 = r2088867 * r2088867;
double r2088869 = r2088868 * r2088868;
double r2088870 = 2.0;
double r2088871 = r2088870 * r2088867;
double r2088872 = r2088871 * r2088871;
double r2088873 = r2088869 / r2088872;
double r2088874 = 1.0;
double r2088875 = r2088872 - r2088874;
double r2088876 = r2088873 / r2088875;
return r2088876;
}
double f(double i) {
double r2088877 = i;
double r2088878 = 2.0;
double r2088879 = r2088877 / r2088878;
double r2088880 = r2088877 * r2088878;
double r2088881 = 1.0;
double r2088882 = r2088880 - r2088881;
double r2088883 = r2088879 / r2088882;
double r2088884 = r2088879 * r2088883;
double r2088885 = r2088880 + r2088881;
double r2088886 = r2088884 / r2088885;
return r2088886;
}
\frac{\frac{\left(i \cdot i\right) \cdot \left(i \cdot i\right)}{\left(2 \cdot i\right) \cdot \left(2 \cdot i\right)}}{\left(2 \cdot i\right) \cdot \left(2 \cdot i\right) - 1.0}\frac{\frac{i}{2} \cdot \frac{\frac{i}{2}}{i \cdot 2 - 1.0}}{i \cdot 2 + 1.0}


Bits error versus i
Initial program 2.4
Simplified2.4
rmApplied p16-times-frac1.2
rmApplied associate-*r/1.2
Applied associate-*l/1.1
Simplified0.9
rmApplied difference-of-sqr-10.8
Applied p16-times-frac0.4
rmApplied associate-*l/0.4
Final simplification0.4
herbie shell --seed 2019101 +o rules:numerics
(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))))