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 r5462630 = 1.0;
double r5462631 = 0.5;
double r5462632 = x;
double r5462633 = hypot(r5462630, r5462632);
double r5462634 = r5462630 / r5462633;
double r5462635 = r5462630 + r5462634;
double r5462636 = r5462631 * r5462635;
double r5462637 = sqrt(r5462636);
double r5462638 = r5462630 - r5462637;
return r5462638;
}
double f(double x) {
double r5462639 = 0.5;
double r5462640 = 1.0;
double r5462641 = x;
double r5462642 = hypot(r5462640, r5462641);
double r5462643 = r5462639 / r5462642;
double r5462644 = r5462639 - r5462643;
double r5462645 = r5462639 + r5462643;
double r5462646 = sqrt(r5462645);
double r5462647 = r5462646 + r5462640;
double r5462648 = r5462644 / r5462647;
return r5462648;
}



Bits error versus x
Results
Initial program 15.3
Simplified15.3
rmApplied flip--15.3
Simplified14.8
rmApplied *-un-lft-identity14.8
Applied *-un-lft-identity14.8
Applied distribute-lft-out14.8
Applied associate-/r*14.8
Simplified14.8
Final simplification14.8
herbie shell --seed 2019143
(FPCore (x)
:name "Given's Rotation SVD example, simplified"
(- 1 (sqrt (* 1/2 (+ 1 (/ 1 (hypot 1 x)))))))