Average Error: 46.3 → 0.0
Time: 13.0s
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 8.630747673551834343863564669163679354824 \cdot 10^{-5}:\\ \;\;\;\;-\mathsf{fma}\left(0.25, i \cdot i, \mathsf{fma}\left(1, {i}^{4}, 4 \cdot {i}^{6}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{{2}^{4} - \frac{1 \cdot 1}{{i}^{4}}}}{2 \cdot 2} \cdot \left(2 \cdot 2 + \frac{1}{i \cdot i}\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 8.630747673551834343863564669163679354824 \cdot 10^{-5}:\\
\;\;\;\;-\mathsf{fma}\left(0.25, i \cdot i, \mathsf{fma}\left(1, {i}^{4}, 4 \cdot {i}^{6}\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{1}{{2}^{4} - \frac{1 \cdot 1}{{i}^{4}}}}{2 \cdot 2} \cdot \left(2 \cdot 2 + \frac{1}{i \cdot i}\right)\\

\end{array}
double f(double i) {
        double r97916 = i;
        double r97917 = r97916 * r97916;
        double r97918 = r97917 * r97917;
        double r97919 = 2.0;
        double r97920 = r97919 * r97916;
        double r97921 = r97920 * r97920;
        double r97922 = r97918 / r97921;
        double r97923 = 1.0;
        double r97924 = r97921 - r97923;
        double r97925 = r97922 / r97924;
        return r97925;
}

double f(double i) {
        double r97926 = i;
        double r97927 = 8.630747673551834e-05;
        bool r97928 = r97926 <= r97927;
        double r97929 = 0.25;
        double r97930 = r97926 * r97926;
        double r97931 = 1.0;
        double r97932 = 4.0;
        double r97933 = pow(r97926, r97932);
        double r97934 = 4.0;
        double r97935 = 6.0;
        double r97936 = pow(r97926, r97935);
        double r97937 = r97934 * r97936;
        double r97938 = fma(r97931, r97933, r97937);
        double r97939 = fma(r97929, r97930, r97938);
        double r97940 = -r97939;
        double r97941 = 1.0;
        double r97942 = 2.0;
        double r97943 = pow(r97942, r97932);
        double r97944 = r97931 * r97931;
        double r97945 = r97944 / r97933;
        double r97946 = r97943 - r97945;
        double r97947 = r97941 / r97946;
        double r97948 = r97942 * r97942;
        double r97949 = r97947 / r97948;
        double r97950 = r97931 / r97930;
        double r97951 = r97948 + r97950;
        double r97952 = r97949 * r97951;
        double r97953 = r97928 ? r97940 : r97952;
        return r97953;
}

Error

Bits error versus i

Derivation

  1. Split input into 2 regimes
  2. if i < 8.630747673551834e-05

    1. Initial program 45.7

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

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

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

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

    if 8.630747673551834e-05 < i

    1. Initial program 46.9

      \[\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{1}{\left(2 \cdot 2 - \frac{1}{i \cdot i}\right) \cdot \left(2 \cdot 2\right)}}\]
    3. Using strategy rm
    4. Applied flip--0.0

      \[\leadsto \frac{1}{\color{blue}{\frac{\left(2 \cdot 2\right) \cdot \left(2 \cdot 2\right) - \frac{1}{i \cdot i} \cdot \frac{1}{i \cdot i}}{2 \cdot 2 + \frac{1}{i \cdot i}}} \cdot \left(2 \cdot 2\right)}\]
    5. Applied associate-*l/0.0

      \[\leadsto \frac{1}{\color{blue}{\frac{\left(\left(2 \cdot 2\right) \cdot \left(2 \cdot 2\right) - \frac{1}{i \cdot i} \cdot \frac{1}{i \cdot i}\right) \cdot \left(2 \cdot 2\right)}{2 \cdot 2 + \frac{1}{i \cdot i}}}}\]
    6. Applied associate-/r/0.0

      \[\leadsto \color{blue}{\frac{1}{\left(\left(2 \cdot 2\right) \cdot \left(2 \cdot 2\right) - \frac{1}{i \cdot i} \cdot \frac{1}{i \cdot i}\right) \cdot \left(2 \cdot 2\right)} \cdot \left(2 \cdot 2 + \frac{1}{i \cdot i}\right)}\]
    7. Simplified0.0

      \[\leadsto \color{blue}{\frac{\frac{1}{{2}^{4} - \frac{1 \cdot 1}{{i}^{4}}}}{2 \cdot 2}} \cdot \left(2 \cdot 2 + \frac{1}{i \cdot i}\right)\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;i \le 8.630747673551834343863564669163679354824 \cdot 10^{-5}:\\ \;\;\;\;-\mathsf{fma}\left(0.25, i \cdot i, \mathsf{fma}\left(1, {i}^{4}, 4 \cdot {i}^{6}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{{2}^{4} - \frac{1 \cdot 1}{{i}^{4}}}}{2 \cdot 2} \cdot \left(2 \cdot 2 + \frac{1}{i \cdot i}\right)\\ \end{array}\]

Reproduce

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