\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}:\\
\;\;\;\;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 r124183 = i;
double r124184 = r124183 * r124183;
double r124185 = r124184 * r124184;
double r124186 = 2.0;
double r124187 = r124186 * r124183;
double r124188 = r124187 * r124187;
double r124189 = r124185 / r124188;
double r124190 = 1.0;
double r124191 = r124188 - r124190;
double r124192 = r124189 / r124191;
return r124192;
}
double f(double i) {
double r124193 = i;
double r124194 = 631.9542587844485;
bool r124195 = r124193 <= r124194;
double r124196 = r124193 * r124193;
double r124197 = 2.0;
double r124198 = r124197 * r124193;
double r124199 = r124198 * r124198;
double r124200 = 1.0;
double r124201 = r124199 - r124200;
double r124202 = r124197 * r124197;
double r124203 = r124201 * r124202;
double r124204 = r124196 / r124203;
double r124205 = 0.00390625;
double r124206 = 1.0;
double r124207 = 4.0;
double r124208 = pow(r124193, r124207);
double r124209 = r124206 / r124208;
double r124210 = r124205 * r124209;
double r124211 = 0.015625;
double r124212 = 2.0;
double r124213 = pow(r124193, r124212);
double r124214 = r124206 / r124213;
double r124215 = r124211 * r124214;
double r124216 = 0.0625;
double r124217 = r124215 + r124216;
double r124218 = r124210 + r124217;
double r124219 = r124195 ? r124204 : r124218;
return r124219;
}



Bits error versus i
Results
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
Final simplification0.0
herbie shell --seed 2019362
(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)))