Average Error: 46.8 → 0.0
Time: 2.3s
Precision: 64
\[i \gt 0.0\]
\[\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 260.729187563373387:\\ \;\;\;\;\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}\]
\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 260.729187563373387:\\
\;\;\;\;\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 r42039 = i;
        double r42040 = r42039 * r42039;
        double r42041 = r42040 * r42040;
        double r42042 = 2.0;
        double r42043 = r42042 * r42039;
        double r42044 = r42043 * r42043;
        double r42045 = r42041 / r42044;
        double r42046 = 1.0;
        double r42047 = r42044 - r42046;
        double r42048 = r42045 / r42047;
        return r42048;
}

double f(double i) {
        double r42049 = i;
        double r42050 = 260.7291875633734;
        bool r42051 = r42049 <= r42050;
        double r42052 = r42049 * r42049;
        double r42053 = 2.0;
        double r42054 = r42053 * r42049;
        double r42055 = r42054 * r42054;
        double r42056 = 1.0;
        double r42057 = r42055 - r42056;
        double r42058 = r42053 * r42053;
        double r42059 = r42057 * r42058;
        double r42060 = r42052 / r42059;
        double r42061 = 0.00390625;
        double r42062 = 1.0;
        double r42063 = 4.0;
        double r42064 = pow(r42049, r42063);
        double r42065 = r42062 / r42064;
        double r42066 = 0.015625;
        double r42067 = 2.0;
        double r42068 = pow(r42049, r42067);
        double r42069 = r42062 / r42068;
        double r42070 = 0.0625;
        double r42071 = fma(r42066, r42069, r42070);
        double r42072 = fma(r42061, r42065, r42071);
        double r42073 = r42051 ? r42060 : r42072;
        return r42073;
}

Error

Bits error versus i

Derivation

  1. Split input into 2 regimes
  2. if i < 260.7291875633734

    1. Initial program 45.1

      \[\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}\]
    2. Simplified0.0

      \[\leadsto \color{blue}{\frac{i \cdot i}{\left(\left(2 \cdot i\right) \cdot \left(2 \cdot i\right) - 1\right) \cdot \left(2 \cdot 2\right)}}\]

    if 260.7291875633734 < i

    1. Initial program 48.5

      \[\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}\]
    2. Simplified32.6

      \[\leadsto \color{blue}{\frac{i \cdot i}{\left(\left(2 \cdot i\right) \cdot \left(2 \cdot i\right) - 1\right) \cdot \left(2 \cdot 2\right)}}\]
    3. Taylor expanded around inf 0.0

      \[\leadsto \color{blue}{0.00390625 \cdot \frac{1}{{i}^{4}} + \left(0.015625 \cdot \frac{1}{{i}^{2}} + 0.0625\right)}\]
    4. Simplified0.0

      \[\leadsto \color{blue}{\mathsf{fma}\left(0.00390625, \frac{1}{{i}^{4}}, \mathsf{fma}\left(0.015625, \frac{1}{{i}^{2}}, 0.0625\right)\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;i \le 260.729187563373387:\\ \;\;\;\;\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}\]

Reproduce

herbie shell --seed 2020035 +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)))