Average Error: 45.2 → 0.2
Time: 12.8s
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{i}{\left(i \cdot 4 - \frac{1.0}{i}\right) \cdot 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}
\frac{i}{\left(i \cdot 4 - \frac{1.0}{i}\right) \cdot 4}
double f(double i) {
        double r2469853 = i;
        double r2469854 = r2469853 * r2469853;
        double r2469855 = r2469854 * r2469854;
        double r2469856 = 2.0;
        double r2469857 = r2469856 * r2469853;
        double r2469858 = r2469857 * r2469857;
        double r2469859 = r2469855 / r2469858;
        double r2469860 = 1.0;
        double r2469861 = r2469858 - r2469860;
        double r2469862 = r2469859 / r2469861;
        return r2469862;
}

double f(double i) {
        double r2469863 = i;
        double r2469864 = 4.0;
        double r2469865 = r2469863 * r2469864;
        double r2469866 = 1.0;
        double r2469867 = r2469866 / r2469863;
        double r2469868 = r2469865 - r2469867;
        double r2469869 = r2469868 * r2469864;
        double r2469870 = r2469863 / r2469869;
        return r2469870;
}

Error

Bits error versus i

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

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

    \[\leadsto \color{blue}{\frac{i}{\left(4 \cdot i - \frac{1.0}{i}\right) \cdot 4}}\]
  3. Final simplification0.2

    \[\leadsto \frac{i}{\left(i \cdot 4 - \frac{1.0}{i}\right) \cdot 4}\]

Reproduce

herbie shell --seed 2019164 +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)))