Average Error: 47.1 → 0.3
Time: 16.0s
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 r35006 = i;
        double r35007 = r35006 * r35006;
        double r35008 = r35007 * r35007;
        double r35009 = 2.0;
        double r35010 = r35009 * r35006;
        double r35011 = r35010 * r35010;
        double r35012 = r35008 / r35011;
        double r35013 = 1.0;
        double r35014 = r35011 - r35013;
        double r35015 = r35012 / r35014;
        return r35015;
}

double f(double i) {
        double r35016 = 1.0;
        double r35017 = 2.0;
        double r35018 = r35017 * r35017;
        double r35019 = 1.0;
        double r35020 = i;
        double r35021 = r35020 * r35020;
        double r35022 = r35019 / r35021;
        double r35023 = r35018 - r35022;
        double r35024 = r35023 * r35018;
        double r35025 = r35016 / r35024;
        return r35025;
}

Error

Bits error versus i

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 47.1

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