\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 0.4965227290920666836093744223035173490644:\\
\;\;\;\;-\mathsf{fma}\left(4, \left(\left(i \cdot i\right) \cdot i\right) \cdot \left(\left(i \cdot i\right) \cdot i\right), \mathsf{fma}\left(i \cdot i, 0.25, 1 \cdot \left(\left(i \cdot i\right) \cdot \left(i \cdot i\right)\right)\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\left(0.0625 + \frac{0.015625}{i \cdot i}\right) + \frac{\frac{0.00390625}{i \cdot i}}{i \cdot i}\\
\end{array}double f(double i) {
double r2289093 = i;
double r2289094 = r2289093 * r2289093;
double r2289095 = r2289094 * r2289094;
double r2289096 = 2.0;
double r2289097 = r2289096 * r2289093;
double r2289098 = r2289097 * r2289097;
double r2289099 = r2289095 / r2289098;
double r2289100 = 1.0;
double r2289101 = r2289098 - r2289100;
double r2289102 = r2289099 / r2289101;
return r2289102;
}
double f(double i) {
double r2289103 = i;
double r2289104 = 0.4965227290920667;
bool r2289105 = r2289103 <= r2289104;
double r2289106 = 4.0;
double r2289107 = r2289103 * r2289103;
double r2289108 = r2289107 * r2289103;
double r2289109 = r2289108 * r2289108;
double r2289110 = 0.25;
double r2289111 = 1.0;
double r2289112 = r2289107 * r2289107;
double r2289113 = r2289111 * r2289112;
double r2289114 = fma(r2289107, r2289110, r2289113);
double r2289115 = fma(r2289106, r2289109, r2289114);
double r2289116 = -r2289115;
double r2289117 = 0.0625;
double r2289118 = 0.015625;
double r2289119 = r2289118 / r2289107;
double r2289120 = r2289117 + r2289119;
double r2289121 = 0.00390625;
double r2289122 = r2289121 / r2289107;
double r2289123 = r2289122 / r2289107;
double r2289124 = r2289120 + r2289123;
double r2289125 = r2289105 ? r2289116 : r2289124;
return r2289125;
}



Bits error versus i
if i < 0.4965227290920667Initial program 45.8
Simplified0.1
Taylor expanded around 0 0.2
Simplified0.2
if 0.4965227290920667 < i Initial program 47.6
Simplified0.1
Taylor expanded around inf 0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019170 +o rules:numerics
(FPCore (i)
:name "Octave 3.8, jcobi/4, as called"
:pre (and (> i 0.0))
(/ (/ (* (* i i) (* i i)) (* (* 2.0 i) (* 2.0 i))) (- (* (* 2.0 i) (* 2.0 i)) 1.0)))