Average Error: 46.1 → 0.0
Time: 2.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 240.320719614824583:\\ \;\;\;\;\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 240.320719614824583:\\
\;\;\;\;\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 r54386 = i;
        double r54387 = r54386 * r54386;
        double r54388 = r54387 * r54387;
        double r54389 = 2.0;
        double r54390 = r54389 * r54386;
        double r54391 = r54390 * r54390;
        double r54392 = r54388 / r54391;
        double r54393 = 1.0;
        double r54394 = r54391 - r54393;
        double r54395 = r54392 / r54394;
        return r54395;
}

double f(double i) {
        double r54396 = i;
        double r54397 = 240.32071961482458;
        bool r54398 = r54396 <= r54397;
        double r54399 = r54396 * r54396;
        double r54400 = 2.0;
        double r54401 = r54400 * r54396;
        double r54402 = r54401 * r54401;
        double r54403 = 1.0;
        double r54404 = r54402 - r54403;
        double r54405 = r54400 * r54400;
        double r54406 = r54404 * r54405;
        double r54407 = r54399 / r54406;
        double r54408 = 0.00390625;
        double r54409 = 1.0;
        double r54410 = 4.0;
        double r54411 = pow(r54396, r54410);
        double r54412 = r54409 / r54411;
        double r54413 = 0.015625;
        double r54414 = 2.0;
        double r54415 = pow(r54396, r54414);
        double r54416 = r54409 / r54415;
        double r54417 = 0.0625;
        double r54418 = fma(r54413, r54416, r54417);
        double r54419 = fma(r54408, r54412, r54418);
        double r54420 = r54398 ? r54407 : r54419;
        return r54420;
}

Error

Bits error versus i

Derivation

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

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

    1. Initial program 47.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. Simplified32.4

      \[\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 240.320719614824583:\\ \;\;\;\;\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 2020036 +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)))