1 - \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}\frac{\frac{1}{2} - \frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)}}{\frac{\sqrt{\left(\frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)} \cdot \frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)}\right) \cdot \frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)} + \frac{1}{8}}}{\sqrt{\frac{1}{4} - \frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)} \cdot \left(\frac{1}{2} - \frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)}\right)}} + 1}double f(double x) {
double r6920746 = 1.0;
double r6920747 = 0.5;
double r6920748 = x;
double r6920749 = hypot(r6920746, r6920748);
double r6920750 = r6920746 / r6920749;
double r6920751 = r6920746 + r6920750;
double r6920752 = r6920747 * r6920751;
double r6920753 = sqrt(r6920752);
double r6920754 = r6920746 - r6920753;
return r6920754;
}
double f(double x) {
double r6920755 = 0.5;
double r6920756 = 1.0;
double r6920757 = x;
double r6920758 = hypot(r6920756, r6920757);
double r6920759 = r6920755 / r6920758;
double r6920760 = r6920755 - r6920759;
double r6920761 = r6920759 * r6920759;
double r6920762 = r6920761 * r6920759;
double r6920763 = 0.125;
double r6920764 = r6920762 + r6920763;
double r6920765 = sqrt(r6920764);
double r6920766 = 0.25;
double r6920767 = r6920759 * r6920760;
double r6920768 = r6920766 - r6920767;
double r6920769 = sqrt(r6920768);
double r6920770 = r6920765 / r6920769;
double r6920771 = r6920770 + r6920756;
double r6920772 = r6920760 / r6920771;
return r6920772;
}



Bits error versus x
Results
Initial program 14.8
Simplified14.8
rmApplied flip--14.8
Simplified14.3
rmApplied flip3-+14.3
Applied sqrt-div14.3
Simplified14.3
Simplified14.3
Final simplification14.3
herbie shell --seed 2019139
(FPCore (x)
:name "Given's Rotation SVD example, simplified"
(- 1 (sqrt (* 1/2 (+ 1 (/ 1 (hypot 1 x)))))))