Average Error: 47.0 → 0.1
Time: 9.5s
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}}{2 \cdot \left(i \cdot 2\right) - \frac{1}{i}}\]
\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}}{2 \cdot \left(i \cdot 2\right) - \frac{1}{i}}
double f(double i) {
        double r41493 = i;
        double r41494 = r41493 * r41493;
        double r41495 = r41494 * r41494;
        double r41496 = 2.0;
        double r41497 = r41496 * r41493;
        double r41498 = r41497 * r41497;
        double r41499 = r41495 / r41498;
        double r41500 = 1.0;
        double r41501 = r41498 - r41500;
        double r41502 = r41499 / r41501;
        return r41502;
}

double f(double i) {
        double r41503 = i;
        double r41504 = 2.0;
        double r41505 = r41503 / r41504;
        double r41506 = r41505 / r41504;
        double r41507 = r41503 * r41504;
        double r41508 = r41504 * r41507;
        double r41509 = 1.0;
        double r41510 = r41509 / r41503;
        double r41511 = r41508 - r41510;
        double r41512 = r41506 / r41511;
        return r41512;
}

Error

Bits error versus i

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

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

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

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

Reproduce

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