Average Error: 46.3 → 0.0
Time: 3.7s
Precision: binary64
\[i > 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}}{\mathsf{fma}\left(i, 2, 1\right)} \cdot \frac{\frac{i}{2}}{\mathsf{fma}\left(i, 2, -1\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{\frac{i}{2}}{\mathsf{fma}\left(i, 2, 1\right)} \cdot \frac{\frac{i}{2}}{\mathsf{fma}\left(i, 2, -1\right)}
(FPCore (i)
 :precision binary64
 (/
  (/ (* (* i i) (* i i)) (* (* 2.0 i) (* 2.0 i)))
  (- (* (* 2.0 i) (* 2.0 i)) 1.0)))
(FPCore (i)
 :precision binary64
 (* (/ (/ i 2.0) (fma i 2.0 1.0)) (/ (/ i 2.0) (fma i 2.0 -1.0))))
double code(double i) {
	return (((i * i) * (i * i)) / ((2.0 * i) * (2.0 * i))) / (((2.0 * i) * (2.0 * i)) - 1.0);
}
double code(double i) {
	return ((i / 2.0) / fma(i, 2.0, 1.0)) * ((i / 2.0) / fma(i, 2.0, -1.0));
}

Error

Bits error versus i

Derivation

  1. Initial program 46.3

    \[\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. Applied difference-of-sqr-1_binary6446.3

    \[\leadsto \frac{\frac{\left(i \cdot i\right) \cdot \left(i \cdot i\right)}{\left(2 \cdot i\right) \cdot \left(2 \cdot i\right)}}{\color{blue}{\left(2 \cdot i + 1\right) \cdot \left(2 \cdot i - 1\right)}} \]
  3. Applied add-sqr-sqrt_binary6446.3

    \[\leadsto \frac{\color{blue}{\sqrt{\frac{\left(i \cdot i\right) \cdot \left(i \cdot i\right)}{\left(2 \cdot i\right) \cdot \left(2 \cdot i\right)}} \cdot \sqrt{\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 + 1\right) \cdot \left(2 \cdot i - 1\right)} \]
  4. Applied times-frac_binary6446.3

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

    \[\leadsto \color{blue}{\frac{\frac{i}{2}}{\mathsf{fma}\left(i, 2, 1\right)}} \cdot \frac{\sqrt{\frac{\left(i \cdot i\right) \cdot \left(i \cdot i\right)}{\left(2 \cdot i\right) \cdot \left(2 \cdot i\right)}}}{2 \cdot i - 1} \]
  6. Simplified0.0

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

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

Reproduce

herbie shell --seed 2022055 
(FPCore (i)
  :name "Octave 3.8, jcobi/4, as called"
  :precision binary64
  :pre (> i 0.0)
  (/ (/ (* (* i i) (* i i)) (* (* 2.0 i) (* 2.0 i))) (- (* (* 2.0 i) (* 2.0 i)) 1.0)))