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)}}{\sqrt{\frac{1}{2} + \frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)}} + 1}double f(double x) {
double r85187735 = 1.0;
double r85187736 = 0.5;
double r85187737 = x;
double r85187738 = hypot(r85187735, r85187737);
double r85187739 = r85187735 / r85187738;
double r85187740 = r85187735 + r85187739;
double r85187741 = r85187736 * r85187740;
double r85187742 = sqrt(r85187741);
double r85187743 = r85187735 - r85187742;
return r85187743;
}
double f(double x) {
double r85187744 = 0.5;
double r85187745 = 1.0;
double r85187746 = x;
double r85187747 = hypot(r85187745, r85187746);
double r85187748 = r85187744 / r85187747;
double r85187749 = r85187744 - r85187748;
double r85187750 = r85187744 + r85187748;
double r85187751 = sqrt(r85187750);
double r85187752 = r85187751 + r85187745;
double r85187753 = r85187749 / r85187752;
return r85187753;
}



Bits error versus x
Results
Initial program 15.4
Simplified15.4
rmApplied flip--15.4
Simplified14.9
Final simplification14.9
herbie shell --seed 2019125
(FPCore (x)
:name "Given's Rotation SVD example, simplified"
(- 1 (sqrt (* 1/2 (+ 1 (/ 1 (hypot 1 x)))))))