Average Error: 46.4 → 0.0
Time: 17.7s
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.03786223385988404799284978707873960956931:\\ \;\;\;\;\frac{\frac{-1}{2}}{2} \cdot \mathsf{fma}\left(1, i \cdot i, \mathsf{fma}\left(4, {i}^{4}, 16 \cdot {i}^{6}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(2, 2, -\log \left(e^{\frac{1}{i \cdot i}}\right)\right)} \cdot \frac{\frac{1}{2}}{2}\\ \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.03786223385988404799284978707873960956931:\\
\;\;\;\;\frac{\frac{-1}{2}}{2} \cdot \mathsf{fma}\left(1, i \cdot i, \mathsf{fma}\left(4, {i}^{4}, 16 \cdot {i}^{6}\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{\mathsf{fma}\left(2, 2, -\log \left(e^{\frac{1}{i \cdot i}}\right)\right)} \cdot \frac{\frac{1}{2}}{2}\\

\end{array}
double f(double i) {
        double r59966 = i;
        double r59967 = r59966 * r59966;
        double r59968 = r59967 * r59967;
        double r59969 = 2.0;
        double r59970 = r59969 * r59966;
        double r59971 = r59970 * r59970;
        double r59972 = r59968 / r59971;
        double r59973 = 1.0;
        double r59974 = r59971 - r59973;
        double r59975 = r59972 / r59974;
        return r59975;
}

double f(double i) {
        double r59976 = i;
        double r59977 = 0.03786223385988405;
        bool r59978 = r59976 <= r59977;
        double r59979 = -1.0;
        double r59980 = 2.0;
        double r59981 = r59979 / r59980;
        double r59982 = r59981 / r59980;
        double r59983 = 1.0;
        double r59984 = r59976 * r59976;
        double r59985 = 4.0;
        double r59986 = 4.0;
        double r59987 = pow(r59976, r59986);
        double r59988 = 16.0;
        double r59989 = 6.0;
        double r59990 = pow(r59976, r59989);
        double r59991 = r59988 * r59990;
        double r59992 = fma(r59985, r59987, r59991);
        double r59993 = fma(r59983, r59984, r59992);
        double r59994 = r59982 * r59993;
        double r59995 = 1.0;
        double r59996 = r59983 / r59984;
        double r59997 = exp(r59996);
        double r59998 = log(r59997);
        double r59999 = -r59998;
        double r60000 = fma(r59980, r59980, r59999);
        double r60001 = r59995 / r60000;
        double r60002 = r59995 / r59980;
        double r60003 = r60002 / r59980;
        double r60004 = r60001 * r60003;
        double r60005 = r59978 ? r59994 : r60004;
        return r60005;
}

Error

Bits error versus i

Derivation

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

    1. Initial program 44.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.7

      \[\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 add-cube-cbrt0.7

      \[\leadsto \frac{\color{blue}{\left(\sqrt[3]{1} \cdot \sqrt[3]{1}\right) \cdot \sqrt[3]{1}}}{\left(2 \cdot 2 - \frac{1}{i \cdot i}\right) \cdot \left(2 \cdot 2\right)}\]
    5. Applied times-frac0.7

      \[\leadsto \color{blue}{\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{2 \cdot 2 - \frac{1}{i \cdot i}} \cdot \frac{\sqrt[3]{1}}{2 \cdot 2}}\]
    6. Simplified0.7

      \[\leadsto \color{blue}{\frac{1}{\mathsf{fma}\left(2, 2, -\frac{1}{i \cdot i}\right)}} \cdot \frac{\sqrt[3]{1}}{2 \cdot 2}\]
    7. Simplified0.7

      \[\leadsto \frac{1}{\mathsf{fma}\left(2, 2, -\frac{1}{i \cdot i}\right)} \cdot \color{blue}{\frac{\frac{1}{2}}{2}}\]
    8. Taylor expanded around 0 0.1

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

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

    if 0.03786223385988405 < i

    1. Initial program 47.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 add-cube-cbrt0.0

      \[\leadsto \frac{\color{blue}{\left(\sqrt[3]{1} \cdot \sqrt[3]{1}\right) \cdot \sqrt[3]{1}}}{\left(2 \cdot 2 - \frac{1}{i \cdot i}\right) \cdot \left(2 \cdot 2\right)}\]
    5. Applied times-frac0.0

      \[\leadsto \color{blue}{\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{2 \cdot 2 - \frac{1}{i \cdot i}} \cdot \frac{\sqrt[3]{1}}{2 \cdot 2}}\]
    6. Simplified0.0

      \[\leadsto \color{blue}{\frac{1}{\mathsf{fma}\left(2, 2, -\frac{1}{i \cdot i}\right)}} \cdot \frac{\sqrt[3]{1}}{2 \cdot 2}\]
    7. Simplified0.0

      \[\leadsto \frac{1}{\mathsf{fma}\left(2, 2, -\frac{1}{i \cdot i}\right)} \cdot \color{blue}{\frac{\frac{1}{2}}{2}}\]
    8. Using strategy rm
    9. Applied add-log-exp0.0

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;i \le 0.03786223385988404799284978707873960956931:\\ \;\;\;\;\frac{\frac{-1}{2}}{2} \cdot \mathsf{fma}\left(1, i \cdot i, \mathsf{fma}\left(4, {i}^{4}, 16 \cdot {i}^{6}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\mathsf{fma}\left(2, 2, -\log \left(e^{\frac{1}{i \cdot i}}\right)\right)} \cdot \frac{\frac{1}{2}}{2}\\ \end{array}\]

Reproduce

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