\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 0.4965227290920666836093744223035173490644:\\
\;\;\;\;\left(0.25 \cdot \left(-i \cdot i\right) - \left(\left(i \cdot i\right) \cdot 1\right) \cdot \left(i \cdot i\right)\right) - \left(\left(i \cdot i\right) \cdot i\right) \cdot \left(\left(\left(i \cdot i\right) \cdot i\right) \cdot 4\right)\\
\mathbf{else}:\\
\;\;\;\;\left(0.0625 + \frac{0.00390625}{\left(i \cdot i\right) \cdot \left(i \cdot i\right)}\right) + \frac{\frac{0.015625}{i}}{i}\\
\end{array}double f(double i) {
double r3074522 = i;
double r3074523 = r3074522 * r3074522;
double r3074524 = r3074523 * r3074523;
double r3074525 = 2.0;
double r3074526 = r3074525 * r3074522;
double r3074527 = r3074526 * r3074526;
double r3074528 = r3074524 / r3074527;
double r3074529 = 1.0;
double r3074530 = r3074527 - r3074529;
double r3074531 = r3074528 / r3074530;
return r3074531;
}
double f(double i) {
double r3074532 = i;
double r3074533 = 0.4965227290920667;
bool r3074534 = r3074532 <= r3074533;
double r3074535 = 0.25;
double r3074536 = r3074532 * r3074532;
double r3074537 = -r3074536;
double r3074538 = r3074535 * r3074537;
double r3074539 = 1.0;
double r3074540 = r3074536 * r3074539;
double r3074541 = r3074540 * r3074536;
double r3074542 = r3074538 - r3074541;
double r3074543 = r3074536 * r3074532;
double r3074544 = 4.0;
double r3074545 = r3074543 * r3074544;
double r3074546 = r3074543 * r3074545;
double r3074547 = r3074542 - r3074546;
double r3074548 = 0.0625;
double r3074549 = 0.00390625;
double r3074550 = r3074536 * r3074536;
double r3074551 = r3074549 / r3074550;
double r3074552 = r3074548 + r3074551;
double r3074553 = 0.015625;
double r3074554 = r3074553 / r3074532;
double r3074555 = r3074554 / r3074532;
double r3074556 = r3074552 + r3074555;
double r3074557 = r3074534 ? r3074547 : r3074556;
return r3074557;
}



Bits error versus i
Results
if i < 0.4965227290920667Initial program 45.8
Simplified0.1
Taylor expanded around 0 0.2
Simplified0.2
if 0.4965227290920667 < i Initial program 47.6
Simplified0.3
Taylor expanded around inf 0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019170
(FPCore (i)
:name "Octave 3.8, jcobi/4, as called"
:pre (and (> i 0.0))
(/ (/ (* (* i i) (* i i)) (* (* 2.0 i) (* 2.0 i))) (- (* (* 2.0 i) (* 2.0 i)) 1.0)))