Average Error: 46.2 → 0.1
Time: 3.6s
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{i}{2 \cdot 2} \cdot \frac{i}{\mathsf{fma}\left(2, i, \sqrt{1}\right)}}{2 \cdot i - \sqrt{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}
\frac{\frac{i}{2 \cdot 2} \cdot \frac{i}{\mathsf{fma}\left(2, i, \sqrt{1}\right)}}{2 \cdot i - \sqrt{1}}
double f(double i) {
        double r54403 = i;
        double r54404 = r54403 * r54403;
        double r54405 = r54404 * r54404;
        double r54406 = 2.0;
        double r54407 = r54406 * r54403;
        double r54408 = r54407 * r54407;
        double r54409 = r54405 / r54408;
        double r54410 = 1.0;
        double r54411 = r54408 - r54410;
        double r54412 = r54409 / r54411;
        return r54412;
}

double f(double i) {
        double r54413 = i;
        double r54414 = 2.0;
        double r54415 = r54414 * r54414;
        double r54416 = r54413 / r54415;
        double r54417 = 1.0;
        double r54418 = sqrt(r54417);
        double r54419 = fma(r54414, r54413, r54418);
        double r54420 = r54413 / r54419;
        double r54421 = r54416 * r54420;
        double r54422 = r54414 * r54413;
        double r54423 = r54422 - r54418;
        double r54424 = r54421 / r54423;
        return r54424;
}

Error

Bits error versus i

Derivation

  1. Initial program 46.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}\]
  2. Simplified16.4

    \[\leadsto \color{blue}{\frac{i \cdot i}{\left(\left(2 \cdot i\right) \cdot \left(2 \cdot i\right) - 1\right) \cdot \left(2 \cdot 2\right)}}\]
  3. Using strategy rm
  4. Applied times-frac16.0

    \[\leadsto \color{blue}{\frac{i}{\left(2 \cdot i\right) \cdot \left(2 \cdot i\right) - 1} \cdot \frac{i}{2 \cdot 2}}\]
  5. Using strategy rm
  6. Applied add-sqr-sqrt16.0

    \[\leadsto \frac{i}{\left(2 \cdot i\right) \cdot \left(2 \cdot i\right) - \color{blue}{\sqrt{1} \cdot \sqrt{1}}} \cdot \frac{i}{2 \cdot 2}\]
  7. Applied difference-of-squares16.0

    \[\leadsto \frac{i}{\color{blue}{\left(2 \cdot i + \sqrt{1}\right) \cdot \left(2 \cdot i - \sqrt{1}\right)}} \cdot \frac{i}{2 \cdot 2}\]
  8. Applied *-un-lft-identity16.0

    \[\leadsto \frac{\color{blue}{1 \cdot i}}{\left(2 \cdot i + \sqrt{1}\right) \cdot \left(2 \cdot i - \sqrt{1}\right)} \cdot \frac{i}{2 \cdot 2}\]
  9. Applied times-frac0.2

    \[\leadsto \color{blue}{\left(\frac{1}{2 \cdot i + \sqrt{1}} \cdot \frac{i}{2 \cdot i - \sqrt{1}}\right)} \cdot \frac{i}{2 \cdot 2}\]
  10. Using strategy rm
  11. Applied associate-*r/0.1

    \[\leadsto \color{blue}{\frac{\frac{1}{2 \cdot i + \sqrt{1}} \cdot i}{2 \cdot i - \sqrt{1}}} \cdot \frac{i}{2 \cdot 2}\]
  12. Applied associate-*l/0.2

    \[\leadsto \color{blue}{\frac{\left(\frac{1}{2 \cdot i + \sqrt{1}} \cdot i\right) \cdot \frac{i}{2 \cdot 2}}{2 \cdot i - \sqrt{1}}}\]
  13. Simplified0.1

    \[\leadsto \frac{\color{blue}{\frac{i}{2 \cdot 2} \cdot \frac{i}{\mathsf{fma}\left(2, i, \sqrt{1}\right)}}}{2 \cdot i - \sqrt{1}}\]
  14. Final simplification0.1

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

Reproduce

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