Average Error: 46.0 → 0.3
Time: 19.9s
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 r1398110 = i;
        double r1398111 = r1398110 * r1398110;
        double r1398112 = r1398111 * r1398111;
        double r1398113 = 2.0;
        double r1398114 = r1398113 * r1398110;
        double r1398115 = r1398114 * r1398114;
        double r1398116 = r1398112 / r1398115;
        double r1398117 = 1.0;
        double r1398118 = r1398115 - r1398117;
        double r1398119 = r1398116 / r1398118;
        return r1398119;
}

double f(double i) {
        double r1398120 = 1.0;
        double r1398121 = 1.0;
        double r1398122 = i;
        double r1398123 = r1398122 * r1398122;
        double r1398124 = r1398121 / r1398123;
        double r1398125 = -4.0;
        double r1398126 = 16.0;
        double r1398127 = fma(r1398124, r1398125, r1398126);
        double r1398128 = r1398120 / r1398127;
        return r1398128;
}

Error

Bits error versus i

Derivation

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

    \[\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-num16.2

    \[\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 2019128 +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)))