Average Error: 46.5 → 0.1
Time: 8.9s
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}\]
\[\frac{\frac{\frac{i}{2}}{2}}{\mathsf{fma}\left(i, 4, \frac{-1}{i}\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}
\frac{\frac{\frac{i}{2}}{2}}{\mathsf{fma}\left(i, 4, \frac{-1}{i}\right)}
double f(double i) {
        double r83914 = i;
        double r83915 = r83914 * r83914;
        double r83916 = r83915 * r83915;
        double r83917 = 2.0;
        double r83918 = r83917 * r83914;
        double r83919 = r83918 * r83918;
        double r83920 = r83916 / r83919;
        double r83921 = 1.0;
        double r83922 = r83919 - r83921;
        double r83923 = r83920 / r83922;
        return r83923;
}

double f(double i) {
        double r83924 = i;
        double r83925 = 2.0;
        double r83926 = r83924 / r83925;
        double r83927 = r83926 / r83925;
        double r83928 = 4.0;
        double r83929 = 1.0;
        double r83930 = -r83929;
        double r83931 = r83930 / r83924;
        double r83932 = fma(r83924, r83928, r83931);
        double r83933 = r83927 / r83932;
        return r83933;
}

Error

Bits error versus i

Derivation

  1. Initial program 46.5

    \[\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.1

    \[\leadsto \color{blue}{\frac{\frac{\frac{i}{2}}{2}}{2 \cdot \left(i \cdot 2\right) - \frac{1}{i}}}\]
  3. Taylor expanded around 0 0.1

    \[\leadsto \frac{\frac{\frac{i}{2}}{2}}{\color{blue}{4 \cdot i - 1 \cdot \frac{1}{i}}}\]
  4. Simplified0.1

    \[\leadsto \frac{\frac{\frac{i}{2}}{2}}{\color{blue}{\mathsf{fma}\left(i, 4, \frac{-1}{i}\right)}}\]
  5. Final simplification0.1

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

Reproduce

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