1 - \sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}\frac{\frac{{1}^{6} - \sqrt[3]{{\left({\left(\left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right) \cdot 0.5\right)}^{3}\right)}^{3}}}{\mathsf{fma}\left(\left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right) \cdot 0.5, \mathsf{fma}\left(1, 1, 0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)\right), {1}^{4}\right)}}{1 + \sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}}double f(double x) {
double r488744 = 1.0;
double r488745 = 0.5;
double r488746 = x;
double r488747 = hypot(r488744, r488746);
double r488748 = r488744 / r488747;
double r488749 = r488744 + r488748;
double r488750 = r488745 * r488749;
double r488751 = sqrt(r488750);
double r488752 = r488744 - r488751;
return r488752;
}
double f(double x) {
double r488753 = 1.0;
double r488754 = 6.0;
double r488755 = pow(r488753, r488754);
double r488756 = x;
double r488757 = hypot(r488753, r488756);
double r488758 = r488753 / r488757;
double r488759 = r488753 + r488758;
double r488760 = 0.5;
double r488761 = r488759 * r488760;
double r488762 = 3.0;
double r488763 = pow(r488761, r488762);
double r488764 = pow(r488763, r488762);
double r488765 = cbrt(r488764);
double r488766 = r488755 - r488765;
double r488767 = r488760 * r488759;
double r488768 = fma(r488753, r488753, r488767);
double r488769 = 4.0;
double r488770 = pow(r488753, r488769);
double r488771 = fma(r488761, r488768, r488770);
double r488772 = r488766 / r488771;
double r488773 = sqrt(r488767);
double r488774 = r488753 + r488773;
double r488775 = r488772 / r488774;
return r488775;
}



Bits error versus x
Initial program 15.1
rmApplied flip--15.1
Simplified14.6
rmApplied flip3--14.6
Simplified14.6
Simplified14.6
rmApplied add-cbrt-cube14.6
Simplified14.6
Final simplification14.6
herbie shell --seed 2020046 +o rules:numerics
(FPCore (x)
:name "Given's Rotation SVD example, simplified"
:precision binary64
(- 1 (sqrt (* 0.5 (+ 1 (/ 1 (hypot 1 x)))))))