Average Error: 15.6 → 15.2
Time: 3.6s
Precision: binary64
\[1 - \sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}\]
\[\frac{\frac{0.015625 - {\left(\frac{0.25}{\mathsf{hypot}\left(1, x\right) \cdot \mathsf{hypot}\left(1, x\right)}\right)}^{3}}{\left(0.0625 + \left({\left(\frac{0.5}{\mathsf{hypot}\left(1, x\right)}\right)}^{4} + \frac{0.0625}{{\left(\mathsf{hypot}\left(1, x\right)\right)}^{2}}\right)\right) \cdot \left(0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}\right)}}{1 + \sqrt{0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}}}\]
1 - \sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}
\frac{\frac{0.015625 - {\left(\frac{0.25}{\mathsf{hypot}\left(1, x\right) \cdot \mathsf{hypot}\left(1, x\right)}\right)}^{3}}{\left(0.0625 + \left({\left(\frac{0.5}{\mathsf{hypot}\left(1, x\right)}\right)}^{4} + \frac{0.0625}{{\left(\mathsf{hypot}\left(1, x\right)\right)}^{2}}\right)\right) \cdot \left(0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}\right)}}{1 + \sqrt{0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}}}
(FPCore (x)
 :precision binary64
 (- 1.0 (sqrt (* 0.5 (+ 1.0 (/ 1.0 (hypot 1.0 x)))))))
(FPCore (x)
 :precision binary64
 (/
  (/
   (- 0.015625 (pow (/ 0.25 (* (hypot 1.0 x) (hypot 1.0 x))) 3.0))
   (*
    (+
     0.0625
     (+ (pow (/ 0.5 (hypot 1.0 x)) 4.0) (/ 0.0625 (pow (hypot 1.0 x) 2.0))))
    (+ 0.5 (/ 0.5 (hypot 1.0 x)))))
  (+ 1.0 (sqrt (+ 0.5 (/ 0.5 (hypot 1.0 x)))))))
double code(double x) {
	return 1.0 - sqrt(0.5 * (1.0 + (1.0 / hypot(1.0, x))));
}
double code(double x) {
	return ((0.015625 - pow((0.25 / (hypot(1.0, x) * hypot(1.0, x))), 3.0)) / ((0.0625 + (pow((0.5 / hypot(1.0, x)), 4.0) + (0.0625 / pow(hypot(1.0, x), 2.0)))) * (0.5 + (0.5 / hypot(1.0, x))))) / (1.0 + sqrt(0.5 + (0.5 / hypot(1.0, x))));
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 15.6

    \[1 - \sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}\]
  2. Simplified15.6

    \[\leadsto \color{blue}{1 - \sqrt{0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}}}\]
  3. Using strategy rm
  4. Applied flip--_binary6415.6

    \[\leadsto \color{blue}{\frac{1 \cdot 1 - \sqrt{0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}} \cdot \sqrt{0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}}}{1 + \sqrt{0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}}}}\]
  5. Simplified15.2

    \[\leadsto \frac{\color{blue}{0.5 - \frac{0.5}{\mathsf{hypot}\left(1, x\right)}}}{1 + \sqrt{0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}}}\]
  6. Using strategy rm
  7. Applied flip--_binary6415.2

    \[\leadsto \frac{\color{blue}{\frac{0.5 \cdot 0.5 - \frac{0.5}{\mathsf{hypot}\left(1, x\right)} \cdot \frac{0.5}{\mathsf{hypot}\left(1, x\right)}}{0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}}}}{1 + \sqrt{0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}}}\]
  8. Simplified15.2

    \[\leadsto \frac{\frac{\color{blue}{0.25 - \frac{0.25}{\mathsf{hypot}\left(1, x\right) \cdot \mathsf{hypot}\left(1, x\right)}}}{0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}}}{1 + \sqrt{0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}}}\]
  9. Using strategy rm
  10. Applied flip3--_binary6415.2

    \[\leadsto \frac{\frac{\color{blue}{\frac{{0.25}^{3} - {\left(\frac{0.25}{\mathsf{hypot}\left(1, x\right) \cdot \mathsf{hypot}\left(1, x\right)}\right)}^{3}}{0.25 \cdot 0.25 + \left(\frac{0.25}{\mathsf{hypot}\left(1, x\right) \cdot \mathsf{hypot}\left(1, x\right)} \cdot \frac{0.25}{\mathsf{hypot}\left(1, x\right) \cdot \mathsf{hypot}\left(1, x\right)} + 0.25 \cdot \frac{0.25}{\mathsf{hypot}\left(1, x\right) \cdot \mathsf{hypot}\left(1, x\right)}\right)}}}{0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}}}{1 + \sqrt{0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}}}\]
  11. Applied associate-/l/_binary6415.2

    \[\leadsto \frac{\color{blue}{\frac{{0.25}^{3} - {\left(\frac{0.25}{\mathsf{hypot}\left(1, x\right) \cdot \mathsf{hypot}\left(1, x\right)}\right)}^{3}}{\left(0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}\right) \cdot \left(0.25 \cdot 0.25 + \left(\frac{0.25}{\mathsf{hypot}\left(1, x\right) \cdot \mathsf{hypot}\left(1, x\right)} \cdot \frac{0.25}{\mathsf{hypot}\left(1, x\right) \cdot \mathsf{hypot}\left(1, x\right)} + 0.25 \cdot \frac{0.25}{\mathsf{hypot}\left(1, x\right) \cdot \mathsf{hypot}\left(1, x\right)}\right)\right)}}}{1 + \sqrt{0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}}}\]
  12. Simplified15.2

    \[\leadsto \frac{\frac{{0.25}^{3} - {\left(\frac{0.25}{\mathsf{hypot}\left(1, x\right) \cdot \mathsf{hypot}\left(1, x\right)}\right)}^{3}}{\color{blue}{\left(0.0625 + \left({\left(\frac{0.5}{\mathsf{hypot}\left(1, x\right)}\right)}^{4} + \frac{0.0625}{{\left(\mathsf{hypot}\left(1, x\right)\right)}^{2}}\right)\right) \cdot \left(0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}\right)}}}{1 + \sqrt{0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}}}\]
  13. Final simplification15.2

    \[\leadsto \frac{\frac{0.015625 - {\left(\frac{0.25}{\mathsf{hypot}\left(1, x\right) \cdot \mathsf{hypot}\left(1, x\right)}\right)}^{3}}{\left(0.0625 + \left({\left(\frac{0.5}{\mathsf{hypot}\left(1, x\right)}\right)}^{4} + \frac{0.0625}{{\left(\mathsf{hypot}\left(1, x\right)\right)}^{2}}\right)\right) \cdot \left(0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}\right)}}{1 + \sqrt{0.5 + \frac{0.5}{\mathsf{hypot}\left(1, x\right)}}}\]

Reproduce

herbie shell --seed 2020224 
(FPCore (x)
  :name "Given's Rotation SVD example, simplified"
  :precision binary64
  (- 1.0 (sqrt (* 0.5 (+ 1.0 (/ 1.0 (hypot 1.0 x)))))))