\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 215.890116719305212:\\
\;\;\;\;\frac{i \cdot i}{\left(\left(2 \cdot i + \sqrt{1}\right) \cdot \left(2 \cdot i - \sqrt{1}\right)\right) \cdot \left(2 \cdot 2\right)}\\
\mathbf{else}:\\
\;\;\;\;0.00390625 \cdot \frac{1}{{i}^{4}} + \left(0.015625 \cdot \frac{1}{{i}^{2}} + 0.0625\right)\\
\end{array}double f(double i) {
double r50019 = i;
double r50020 = r50019 * r50019;
double r50021 = r50020 * r50020;
double r50022 = 2.0;
double r50023 = r50022 * r50019;
double r50024 = r50023 * r50023;
double r50025 = r50021 / r50024;
double r50026 = 1.0;
double r50027 = r50024 - r50026;
double r50028 = r50025 / r50027;
return r50028;
}
double f(double i) {
double r50029 = i;
double r50030 = 215.8901167193052;
bool r50031 = r50029 <= r50030;
double r50032 = r50029 * r50029;
double r50033 = 2.0;
double r50034 = r50033 * r50029;
double r50035 = 1.0;
double r50036 = sqrt(r50035);
double r50037 = r50034 + r50036;
double r50038 = r50034 - r50036;
double r50039 = r50037 * r50038;
double r50040 = r50033 * r50033;
double r50041 = r50039 * r50040;
double r50042 = r50032 / r50041;
double r50043 = 0.00390625;
double r50044 = 1.0;
double r50045 = 4.0;
double r50046 = pow(r50029, r50045);
double r50047 = r50044 / r50046;
double r50048 = r50043 * r50047;
double r50049 = 0.015625;
double r50050 = 2.0;
double r50051 = pow(r50029, r50050);
double r50052 = r50044 / r50051;
double r50053 = r50049 * r50052;
double r50054 = 0.0625;
double r50055 = r50053 + r50054;
double r50056 = r50048 + r50055;
double r50057 = r50031 ? r50042 : r50056;
return r50057;
}



Bits error versus i
Results
if i < 215.8901167193052Initial program 45.2
Simplified0.0
rmApplied add-sqr-sqrt0.0
Applied difference-of-squares0.0
if 215.8901167193052 < i Initial program 48.5
Simplified32.0
Taylor expanded around inf 0.0
Final simplification0.0
herbie shell --seed 2020056
(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)))