\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 383.2464823959830368949042167514562606812:\\
\;\;\;\;\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 r57402 = i;
double r57403 = r57402 * r57402;
double r57404 = r57403 * r57403;
double r57405 = 2.0;
double r57406 = r57405 * r57402;
double r57407 = r57406 * r57406;
double r57408 = r57404 / r57407;
double r57409 = 1.0;
double r57410 = r57407 - r57409;
double r57411 = r57408 / r57410;
return r57411;
}
double f(double i) {
double r57412 = i;
double r57413 = 383.24648239598304;
bool r57414 = r57412 <= r57413;
double r57415 = r57412 * r57412;
double r57416 = 2.0;
double r57417 = r57416 * r57412;
double r57418 = r57417 * r57417;
double r57419 = 1.0;
double r57420 = r57418 - r57419;
double r57421 = r57416 * r57416;
double r57422 = r57420 * r57421;
double r57423 = r57415 / r57422;
double r57424 = 0.00390625;
double r57425 = 1.0;
double r57426 = 4.0;
double r57427 = pow(r57412, r57426);
double r57428 = r57425 / r57427;
double r57429 = 0.015625;
double r57430 = 2.0;
double r57431 = pow(r57412, r57430);
double r57432 = r57425 / r57431;
double r57433 = 0.0625;
double r57434 = fma(r57429, r57432, r57433);
double r57435 = fma(r57424, r57428, r57434);
double r57436 = r57414 ? r57423 : r57435;
return r57436;
}



Bits error versus i
if i < 383.24648239598304Initial program 45.6
Simplified0.0
if 383.24648239598304 < i Initial program 48.2
Simplified31.5
Taylor expanded around inf 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019352 +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)))