Average Error: 46.5 → 0.0
Time: 1.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 217.9947108587691388947860104963183403015:\\ \;\;\;\;\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 217.9947108587691388947860104963183403015:\\
\;\;\;\;\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 r55699 = i;
        double r55700 = r55699 * r55699;
        double r55701 = r55700 * r55700;
        double r55702 = 2.0;
        double r55703 = r55702 * r55699;
        double r55704 = r55703 * r55703;
        double r55705 = r55701 / r55704;
        double r55706 = 1.0;
        double r55707 = r55704 - r55706;
        double r55708 = r55705 / r55707;
        return r55708;
}

double f(double i) {
        double r55709 = i;
        double r55710 = 217.99471085876914;
        bool r55711 = r55709 <= r55710;
        double r55712 = r55709 * r55709;
        double r55713 = 2.0;
        double r55714 = r55713 * r55709;
        double r55715 = r55714 * r55714;
        double r55716 = 1.0;
        double r55717 = r55715 - r55716;
        double r55718 = r55713 * r55713;
        double r55719 = r55717 * r55718;
        double r55720 = r55712 / r55719;
        double r55721 = 0.00390625;
        double r55722 = 1.0;
        double r55723 = 4.0;
        double r55724 = pow(r55709, r55723);
        double r55725 = r55722 / r55724;
        double r55726 = 0.015625;
        double r55727 = 2.0;
        double r55728 = pow(r55709, r55727);
        double r55729 = r55722 / r55728;
        double r55730 = 0.0625;
        double r55731 = fma(r55726, r55729, r55730);
        double r55732 = fma(r55721, r55725, r55731);
        double r55733 = r55711 ? r55720 : r55732;
        return r55733;
}

Error

Bits error versus i

Derivation

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

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

    1. Initial program 48.4

      \[\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 217.9947108587691388947860104963183403015:\\ \;\;\;\;\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 2020001 +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)))