\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 219.59142050633432:\\
\;\;\;\;\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 r100080 = i;
double r100081 = r100080 * r100080;
double r100082 = r100081 * r100081;
double r100083 = 2.0;
double r100084 = r100083 * r100080;
double r100085 = r100084 * r100084;
double r100086 = r100082 / r100085;
double r100087 = 1.0;
double r100088 = r100085 - r100087;
double r100089 = r100086 / r100088;
return r100089;
}
double f(double i) {
double r100090 = i;
double r100091 = 219.59142050633432;
bool r100092 = r100090 <= r100091;
double r100093 = r100090 * r100090;
double r100094 = 2.0;
double r100095 = r100094 * r100090;
double r100096 = r100095 * r100095;
double r100097 = 1.0;
double r100098 = r100096 - r100097;
double r100099 = r100094 * r100094;
double r100100 = r100098 * r100099;
double r100101 = r100093 / r100100;
double r100102 = 0.00390625;
double r100103 = 1.0;
double r100104 = 4.0;
double r100105 = pow(r100090, r100104);
double r100106 = r100103 / r100105;
double r100107 = r100102 * r100106;
double r100108 = 0.015625;
double r100109 = 2.0;
double r100110 = pow(r100090, r100109);
double r100111 = r100103 / r100110;
double r100112 = r100108 * r100111;
double r100113 = 0.0625;
double r100114 = r100112 + r100113;
double r100115 = r100107 + r100114;
double r100116 = r100092 ? r100101 : r100115;
return r100116;
}



Bits error versus i
Results
if i < 219.59142050633432Initial program 44.3
Simplified0.0
if 219.59142050633432 < i Initial program 48.8
Simplified32.7
Taylor expanded around inf 0.0
Final simplification0.0
herbie shell --seed 2020060
(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)))