Average Error: 46.7 → 0.3
Time: 21.2s
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 0.4965227290920666836093744223035173490644:\\ \;\;\;\;-\mathsf{fma}\left(4, \left(\left(i \cdot i\right) \cdot i\right) \cdot \left(\left(i \cdot i\right) \cdot i\right), \mathsf{fma}\left(i \cdot i, 0.25, 1 \cdot \left(\left(i \cdot i\right) \cdot \left(i \cdot i\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(0.0625 + \frac{0.015625}{i \cdot i}\right) + \frac{\frac{0.00390625}{i \cdot i}}{i \cdot i}\\ \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 0.4965227290920666836093744223035173490644:\\
\;\;\;\;-\mathsf{fma}\left(4, \left(\left(i \cdot i\right) \cdot i\right) \cdot \left(\left(i \cdot i\right) \cdot i\right), \mathsf{fma}\left(i \cdot i, 0.25, 1 \cdot \left(\left(i \cdot i\right) \cdot \left(i \cdot i\right)\right)\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\left(0.0625 + \frac{0.015625}{i \cdot i}\right) + \frac{\frac{0.00390625}{i \cdot i}}{i \cdot i}\\

\end{array}
double f(double i) {
        double r2289093 = i;
        double r2289094 = r2289093 * r2289093;
        double r2289095 = r2289094 * r2289094;
        double r2289096 = 2.0;
        double r2289097 = r2289096 * r2289093;
        double r2289098 = r2289097 * r2289097;
        double r2289099 = r2289095 / r2289098;
        double r2289100 = 1.0;
        double r2289101 = r2289098 - r2289100;
        double r2289102 = r2289099 / r2289101;
        return r2289102;
}

double f(double i) {
        double r2289103 = i;
        double r2289104 = 0.4965227290920667;
        bool r2289105 = r2289103 <= r2289104;
        double r2289106 = 4.0;
        double r2289107 = r2289103 * r2289103;
        double r2289108 = r2289107 * r2289103;
        double r2289109 = r2289108 * r2289108;
        double r2289110 = 0.25;
        double r2289111 = 1.0;
        double r2289112 = r2289107 * r2289107;
        double r2289113 = r2289111 * r2289112;
        double r2289114 = fma(r2289107, r2289110, r2289113);
        double r2289115 = fma(r2289106, r2289109, r2289114);
        double r2289116 = -r2289115;
        double r2289117 = 0.0625;
        double r2289118 = 0.015625;
        double r2289119 = r2289118 / r2289107;
        double r2289120 = r2289117 + r2289119;
        double r2289121 = 0.00390625;
        double r2289122 = r2289121 / r2289107;
        double r2289123 = r2289122 / r2289107;
        double r2289124 = r2289120 + r2289123;
        double r2289125 = r2289105 ? r2289116 : r2289124;
        return r2289125;
}

Error

Bits error versus i

Derivation

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

    1. Initial program 45.8

      \[\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.1

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

      \[\leadsto \color{blue}{-\left(0.25 \cdot {i}^{2} + \left(1 \cdot {i}^{4} + 4 \cdot {i}^{6}\right)\right)}\]
    4. Simplified0.2

      \[\leadsto \color{blue}{-\mathsf{fma}\left(4, \left(\left(i \cdot i\right) \cdot i\right) \cdot \left(\left(i \cdot i\right) \cdot i\right), \mathsf{fma}\left(i \cdot i, 0.25, \left(\left(i \cdot i\right) \cdot \left(i \cdot i\right)\right) \cdot 1\right)\right)}\]

    if 0.4965227290920667 < i

    1. Initial program 47.6

      \[\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.1

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

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

      \[\leadsto \color{blue}{\frac{\frac{0.00390625}{i \cdot i}}{i \cdot i} + \left(\frac{0.015625}{i \cdot i} + 0.0625\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;i \le 0.4965227290920666836093744223035173490644:\\ \;\;\;\;-\mathsf{fma}\left(4, \left(\left(i \cdot i\right) \cdot i\right) \cdot \left(\left(i \cdot i\right) \cdot i\right), \mathsf{fma}\left(i \cdot i, 0.25, 1 \cdot \left(\left(i \cdot i\right) \cdot \left(i \cdot i\right)\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(0.0625 + \frac{0.015625}{i \cdot i}\right) + \frac{\frac{0.00390625}{i \cdot i}}{i \cdot i}\\ \end{array}\]

Reproduce

herbie shell --seed 2019170 +o rules:numerics
(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)))