Average Error: 46.5 → 0.3
Time: 15.7s
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{1}{\left(2 \cdot 2 - \frac{1}{i \cdot i}\right) \cdot \left(2 \cdot 2\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{1}{\left(2 \cdot 2 - \frac{1}{i \cdot i}\right) \cdot \left(2 \cdot 2\right)}
double f(double i) {
        double r62203 = i;
        double r62204 = r62203 * r62203;
        double r62205 = r62204 * r62204;
        double r62206 = 2.0;
        double r62207 = r62206 * r62203;
        double r62208 = r62207 * r62207;
        double r62209 = r62205 / r62208;
        double r62210 = 1.0;
        double r62211 = r62208 - r62210;
        double r62212 = r62209 / r62211;
        return r62212;
}

double f(double i) {
        double r62213 = 1.0;
        double r62214 = 2.0;
        double r62215 = r62214 * r62214;
        double r62216 = 1.0;
        double r62217 = i;
        double r62218 = r62217 * r62217;
        double r62219 = r62216 / r62218;
        double r62220 = r62215 - r62219;
        double r62221 = r62220 * r62215;
        double r62222 = r62213 / r62221;
        return r62222;
}

Error

Bits error versus i

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

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.3

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

    \[\leadsto \frac{1}{\left(2 \cdot 2 - \frac{1}{i \cdot i}\right) \cdot \left(2 \cdot 2\right)}\]

Reproduce

herbie shell --seed 2019323 +o rules:numerics
(FPCore (i)
  :name "Octave 3.8, jcobi/4, as called"
  :precision binary64
  :pre (and (> i 0.0))
  (/ (/ (* (* i i) (* i i)) (* (* 2 i) (* 2 i))) (- (* (* 2 i) (* 2 i)) 1)))