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}}}{{1}^{4} + \left(0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)\right) \cdot \left(1 \cdot 1 + 0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)\right)}}{1 + \sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}}double f(double x) {
double r223682 = 1.0;
double r223683 = 0.5;
double r223684 = x;
double r223685 = hypot(r223682, r223684);
double r223686 = r223682 / r223685;
double r223687 = r223682 + r223686;
double r223688 = r223683 * r223687;
double r223689 = sqrt(r223688);
double r223690 = r223682 - r223689;
return r223690;
}
double f(double x) {
double r223691 = 1.0;
double r223692 = 6.0;
double r223693 = pow(r223691, r223692);
double r223694 = x;
double r223695 = hypot(r223691, r223694);
double r223696 = r223691 / r223695;
double r223697 = r223691 + r223696;
double r223698 = 0.5;
double r223699 = r223697 * r223698;
double r223700 = 3.0;
double r223701 = pow(r223699, r223700);
double r223702 = pow(r223701, r223700);
double r223703 = cbrt(r223702);
double r223704 = r223693 - r223703;
double r223705 = 4.0;
double r223706 = pow(r223691, r223705);
double r223707 = r223698 * r223697;
double r223708 = r223691 * r223691;
double r223709 = r223708 + r223707;
double r223710 = r223707 * r223709;
double r223711 = r223706 + r223710;
double r223712 = r223704 / r223711;
double r223713 = sqrt(r223707);
double r223714 = r223691 + r223713;
double r223715 = r223712 / r223714;
return r223715;
}



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