Average Error: 47.6 → 0.1
Time: 5.6s
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} \]
\[\begin{array}{l} t_0 := \frac{1}{\left|i\right|}\\ \frac{0.5}{2 + t_0} \cdot \frac{0.5}{2 - t_0} \end{array} \]
\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}
\begin{array}{l}
t_0 := \frac{1}{\left|i\right|}\\
\frac{0.5}{2 + t_0} \cdot \frac{0.5}{2 - t_0}
\end{array}
(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
 (let* ((t_0 (/ 1.0 (fabs i)))) (* (/ 0.5 (+ 2.0 t_0)) (/ 0.5 (- 2.0 t_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) {
	double t_0 = 1.0 / fabs(i);
	return (0.5 / (2.0 + t_0)) * (0.5 / (2.0 - t_0));
}

Error

Bits error versus i

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 47.6

    \[\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{0.25}{4 - \frac{1}{i \cdot i}}} \]
  3. Applied add-sqr-sqrt_binary640.5

    \[\leadsto \frac{0.25}{4 - \color{blue}{\sqrt{\frac{1}{i \cdot i}} \cdot \sqrt{\frac{1}{i \cdot i}}}} \]
  4. Applied add-sqr-sqrt_binary640.5

    \[\leadsto \frac{0.25}{\color{blue}{\sqrt{4} \cdot \sqrt{4}} - \sqrt{\frac{1}{i \cdot i}} \cdot \sqrt{\frac{1}{i \cdot i}}} \]
  5. Applied difference-of-squares_binary640.5

    \[\leadsto \frac{0.25}{\color{blue}{\left(\sqrt{4} + \sqrt{\frac{1}{i \cdot i}}\right) \cdot \left(\sqrt{4} - \sqrt{\frac{1}{i \cdot i}}\right)}} \]
  6. Applied add-sqr-sqrt_binary640.5

    \[\leadsto \frac{\color{blue}{\sqrt{0.25} \cdot \sqrt{0.25}}}{\left(\sqrt{4} + \sqrt{\frac{1}{i \cdot i}}\right) \cdot \left(\sqrt{4} - \sqrt{\frac{1}{i \cdot i}}\right)} \]
  7. Applied times-frac_binary640.4

    \[\leadsto \color{blue}{\frac{\sqrt{0.25}}{\sqrt{4} + \sqrt{\frac{1}{i \cdot i}}} \cdot \frac{\sqrt{0.25}}{\sqrt{4} - \sqrt{\frac{1}{i \cdot i}}}} \]
  8. Simplified0.4

    \[\leadsto \color{blue}{\frac{0.5}{2 + \frac{1}{\left|i\right|}}} \cdot \frac{\sqrt{0.25}}{\sqrt{4} - \sqrt{\frac{1}{i \cdot i}}} \]
  9. Simplified0.1

    \[\leadsto \frac{0.5}{2 + \frac{1}{\left|i\right|}} \cdot \color{blue}{\frac{0.5}{2 - \frac{1}{\left|i\right|}}} \]
  10. Final simplification0.1

    \[\leadsto \frac{0.5}{2 + \frac{1}{\left|i\right|}} \cdot \frac{0.5}{2 - \frac{1}{\left|i\right|}} \]

Reproduce

herbie shell --seed 2022104 
(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)))