1 - \sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}\frac{\frac{1 \cdot \left(\left(1 \cdot 1 - 0.5 \cdot 0.5\right) \cdot \mathsf{hypot}\left(1, x\right) - 0.5 \cdot \left(0.5 + 1\right)\right)}{\left(1 + 0.5\right) \cdot \mathsf{hypot}\left(1, x\right)}}{{1}^{3} + {\left(\sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}\right)}^{3}} \cdot \left(1 \cdot 1 + \left(\sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)} \cdot \sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)} - 1 \cdot \sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}\right)\right)double f(double x) {
double r194698 = 1.0;
double r194699 = 0.5;
double r194700 = x;
double r194701 = hypot(r194698, r194700);
double r194702 = r194698 / r194701;
double r194703 = r194698 + r194702;
double r194704 = r194699 * r194703;
double r194705 = sqrt(r194704);
double r194706 = r194698 - r194705;
return r194706;
}
double f(double x) {
double r194707 = 1.0;
double r194708 = r194707 * r194707;
double r194709 = 0.5;
double r194710 = r194709 * r194709;
double r194711 = r194708 - r194710;
double r194712 = x;
double r194713 = hypot(r194707, r194712);
double r194714 = r194711 * r194713;
double r194715 = r194709 + r194707;
double r194716 = r194709 * r194715;
double r194717 = r194714 - r194716;
double r194718 = r194707 * r194717;
double r194719 = r194707 + r194709;
double r194720 = r194719 * r194713;
double r194721 = r194718 / r194720;
double r194722 = 3.0;
double r194723 = pow(r194707, r194722);
double r194724 = r194707 / r194713;
double r194725 = r194707 + r194724;
double r194726 = r194709 * r194725;
double r194727 = sqrt(r194726);
double r194728 = pow(r194727, r194722);
double r194729 = r194723 + r194728;
double r194730 = r194721 / r194729;
double r194731 = r194727 * r194727;
double r194732 = r194707 * r194727;
double r194733 = r194731 - r194732;
double r194734 = r194708 + r194733;
double r194735 = r194730 * r194734;
return r194735;
}



Bits error versus x
Results
Initial program 15.6
rmApplied flip--15.6
Simplified15.1
rmApplied associate-*r/15.1
Applied flip--15.1
Applied associate-*r/15.1
Applied frac-sub15.1
Simplified15.1
rmApplied flip3-+15.6
Applied associate-/r/15.1
Final simplification15.1
herbie shell --seed 2020001
(FPCore (x)
:name "Given's Rotation SVD example, simplified"
:precision binary64
(- 1 (sqrt (* 0.5 (+ 1 (/ 1 (hypot 1 x)))))))