Average Error: 45.8 → 0.2
Time: 16.7s
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 r3557772 = i;
        double r3557773 = r3557772 * r3557772;
        double r3557774 = r3557773 * r3557773;
        double r3557775 = 2.0;
        double r3557776 = r3557775 * r3557772;
        double r3557777 = r3557776 * r3557776;
        double r3557778 = r3557774 / r3557777;
        double r3557779 = 1.0;
        double r3557780 = r3557777 - r3557779;
        double r3557781 = r3557778 / r3557780;
        return r3557781;
}

double f(double i) {
        double r3557782 = i;
        double r3557783 = 4.0;
        double r3557784 = r3557782 * r3557783;
        double r3557785 = 1.0;
        double r3557786 = r3557785 / r3557782;
        double r3557787 = r3557784 - r3557786;
        double r3557788 = r3557787 * r3557783;
        double r3557789 = r3557782 / r3557788;
        return r3557789;
}

Error

Bits error versus i

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 45.8

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