Average Error: 46.9 → 0.0
Time: 1.8s
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 383.2464823959830368949042167514562606812:\\ \;\;\;\;\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 383.2464823959830368949042167514562606812:\\
\;\;\;\;\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 r57402 = i;
        double r57403 = r57402 * r57402;
        double r57404 = r57403 * r57403;
        double r57405 = 2.0;
        double r57406 = r57405 * r57402;
        double r57407 = r57406 * r57406;
        double r57408 = r57404 / r57407;
        double r57409 = 1.0;
        double r57410 = r57407 - r57409;
        double r57411 = r57408 / r57410;
        return r57411;
}

double f(double i) {
        double r57412 = i;
        double r57413 = 383.24648239598304;
        bool r57414 = r57412 <= r57413;
        double r57415 = r57412 * r57412;
        double r57416 = 2.0;
        double r57417 = r57416 * r57412;
        double r57418 = r57417 * r57417;
        double r57419 = 1.0;
        double r57420 = r57418 - r57419;
        double r57421 = r57416 * r57416;
        double r57422 = r57420 * r57421;
        double r57423 = r57415 / r57422;
        double r57424 = 0.00390625;
        double r57425 = 1.0;
        double r57426 = 4.0;
        double r57427 = pow(r57412, r57426);
        double r57428 = r57425 / r57427;
        double r57429 = 0.015625;
        double r57430 = 2.0;
        double r57431 = pow(r57412, r57430);
        double r57432 = r57425 / r57431;
        double r57433 = 0.0625;
        double r57434 = fma(r57429, r57432, r57433);
        double r57435 = fma(r57424, r57428, r57434);
        double r57436 = r57414 ? r57423 : r57435;
        return r57436;
}

Error

Bits error versus i

Derivation

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

    1. Initial program 45.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 383.24648239598304 < i

    1. Initial program 48.2

      \[\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. Simplified31.5

      \[\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 383.2464823959830368949042167514562606812:\\ \;\;\;\;\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 2019352 +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)))