Average Error: 45.4 → 0.3
Time: 35.2s
Precision: 64
\[i \gt 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.0}\]
\[\frac{1}{\mathsf{fma}\left(\left(\frac{1.0}{i \cdot i}\right), -4, 16\right)}\]
\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.0}
\frac{1}{\mathsf{fma}\left(\left(\frac{1.0}{i \cdot i}\right), -4, 16\right)}
double f(double i) {
        double r5157716 = i;
        double r5157717 = r5157716 * r5157716;
        double r5157718 = r5157717 * r5157717;
        double r5157719 = 2.0;
        double r5157720 = r5157719 * r5157716;
        double r5157721 = r5157720 * r5157720;
        double r5157722 = r5157718 / r5157721;
        double r5157723 = 1.0;
        double r5157724 = r5157721 - r5157723;
        double r5157725 = r5157722 / r5157724;
        return r5157725;
}

double f(double i) {
        double r5157726 = 1.0;
        double r5157727 = 1.0;
        double r5157728 = i;
        double r5157729 = r5157728 * r5157728;
        double r5157730 = r5157727 / r5157729;
        double r5157731 = -4.0;
        double r5157732 = 16.0;
        double r5157733 = fma(r5157730, r5157731, r5157732);
        double r5157734 = r5157726 / r5157733;
        return r5157734;
}

Error

Bits error versus i

Derivation

  1. Initial program 45.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.0}\]
  2. Simplified15.1

    \[\leadsto \color{blue}{\frac{i \cdot i}{\left(4 \cdot \left(i \cdot i\right) - 1.0\right) \cdot 4}}\]
  3. Using strategy rm
  4. Applied clear-num15.4

    \[\leadsto \color{blue}{\frac{1}{\frac{\left(4 \cdot \left(i \cdot i\right) - 1.0\right) \cdot 4}{i \cdot i}}}\]
  5. Simplified0.3

    \[\leadsto \frac{1}{\color{blue}{\mathsf{fma}\left(\left(\frac{1.0}{i \cdot i}\right), -4, 16\right)}}\]
  6. Final simplification0.3

    \[\leadsto \frac{1}{\mathsf{fma}\left(\left(\frac{1.0}{i \cdot i}\right), -4, 16\right)}\]

Reproduce

herbie shell --seed 2019125 +o rules:numerics
(FPCore (i)
  :name "Octave 3.8, jcobi/4, as called"
  :pre (and (> i 0))
  (/ (/ (* (* i i) (* i i)) (* (* 2 i) (* 2 i))) (- (* (* 2 i) (* 2 i)) 1.0)))