\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}\begin{array}{l}
\mathbf{if}\;i \le 8.630747673551834343863564669163679354824 \cdot 10^{-5}:\\
\;\;\;\;-\mathsf{fma}\left(0.25, i \cdot i, \mathsf{fma}\left(1, {i}^{4}, 4 \cdot {i}^{6}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{{2}^{4} - \frac{1 \cdot 1}{{i}^{4}}}}{2 \cdot 2} \cdot \left(2 \cdot 2 + \frac{1}{i \cdot i}\right)\\
\end{array}double f(double i) {
double r97916 = i;
double r97917 = r97916 * r97916;
double r97918 = r97917 * r97917;
double r97919 = 2.0;
double r97920 = r97919 * r97916;
double r97921 = r97920 * r97920;
double r97922 = r97918 / r97921;
double r97923 = 1.0;
double r97924 = r97921 - r97923;
double r97925 = r97922 / r97924;
return r97925;
}
double f(double i) {
double r97926 = i;
double r97927 = 8.630747673551834e-05;
bool r97928 = r97926 <= r97927;
double r97929 = 0.25;
double r97930 = r97926 * r97926;
double r97931 = 1.0;
double r97932 = 4.0;
double r97933 = pow(r97926, r97932);
double r97934 = 4.0;
double r97935 = 6.0;
double r97936 = pow(r97926, r97935);
double r97937 = r97934 * r97936;
double r97938 = fma(r97931, r97933, r97937);
double r97939 = fma(r97929, r97930, r97938);
double r97940 = -r97939;
double r97941 = 1.0;
double r97942 = 2.0;
double r97943 = pow(r97942, r97932);
double r97944 = r97931 * r97931;
double r97945 = r97944 / r97933;
double r97946 = r97943 - r97945;
double r97947 = r97941 / r97946;
double r97948 = r97942 * r97942;
double r97949 = r97947 / r97948;
double r97950 = r97931 / r97930;
double r97951 = r97948 + r97950;
double r97952 = r97949 * r97951;
double r97953 = r97928 ? r97940 : r97952;
return r97953;
}



Bits error versus i
if i < 8.630747673551834e-05Initial program 45.7
Simplified0.6
Taylor expanded around 0 0.0
Simplified0.0
if 8.630747673551834e-05 < i Initial program 46.9
Simplified0.0
rmApplied flip--0.0
Applied associate-*l/0.0
Applied associate-/r/0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019350 +o rules:numerics
(FPCore (i)
:name "Octave 3.8, jcobi/4, as called"
:precision binary64
:pre (and (> i 0.0))
(/ (/ (* (* i i) (* i i)) (* (* 2 i) (* 2 i))) (- (* (* 2 i) (* 2 i)) 1)))