\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 631.9542587844484842207748442888259887695:\\
\;\;\;\;\frac{i \cdot i}{\left(\left(2 \cdot i\right) \cdot \left(2 \cdot i\right) - 1\right) \cdot \left(2 \cdot 2\right)}\\
\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(0.00390625, \frac{1}{{i}^{4}}, \mathsf{fma}\left(0.015625, \frac{1}{{i}^{2}}, 0.0625\right)\right)\\
\end{array}double f(double i) {
double r58277 = i;
double r58278 = r58277 * r58277;
double r58279 = r58278 * r58278;
double r58280 = 2.0;
double r58281 = r58280 * r58277;
double r58282 = r58281 * r58281;
double r58283 = r58279 / r58282;
double r58284 = 1.0;
double r58285 = r58282 - r58284;
double r58286 = r58283 / r58285;
return r58286;
}
double f(double i) {
double r58287 = i;
double r58288 = 631.9542587844485;
bool r58289 = r58287 <= r58288;
double r58290 = r58287 * r58287;
double r58291 = 2.0;
double r58292 = r58291 * r58287;
double r58293 = r58292 * r58292;
double r58294 = 1.0;
double r58295 = r58293 - r58294;
double r58296 = r58291 * r58291;
double r58297 = r58295 * r58296;
double r58298 = r58290 / r58297;
double r58299 = 0.00390625;
double r58300 = 1.0;
double r58301 = 4.0;
double r58302 = pow(r58287, r58301);
double r58303 = r58300 / r58302;
double r58304 = 0.015625;
double r58305 = 2.0;
double r58306 = pow(r58287, r58305);
double r58307 = r58300 / r58306;
double r58308 = 0.0625;
double r58309 = fma(r58304, r58307, r58308);
double r58310 = fma(r58299, r58303, r58309);
double r58311 = r58289 ? r58298 : r58310;
return r58311;
}



Bits error versus i
if i < 631.9542587844485Initial program 45.2
Simplified0.0
if 631.9542587844485 < i Initial program 47.9
Simplified32.4
Taylor expanded around inf 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019362 +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)))