1 - \sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}\frac{1 \cdot \left(1 - 0.5\right) - 0.5 \cdot \frac{1}{\mathsf{hypot}\left(1, x\right)}}{\left(\sqrt[3]{1 + \sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}} \cdot \sqrt[3]{1 + \sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}}\right) \cdot \sqrt[3]{1 + \sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}}}double f(double x) {
double r157576 = 1.0;
double r157577 = 0.5;
double r157578 = x;
double r157579 = hypot(r157576, r157578);
double r157580 = r157576 / r157579;
double r157581 = r157576 + r157580;
double r157582 = r157577 * r157581;
double r157583 = sqrt(r157582);
double r157584 = r157576 - r157583;
return r157584;
}
double f(double x) {
double r157585 = 1.0;
double r157586 = 0.5;
double r157587 = r157585 - r157586;
double r157588 = r157585 * r157587;
double r157589 = x;
double r157590 = hypot(r157585, r157589);
double r157591 = r157585 / r157590;
double r157592 = r157586 * r157591;
double r157593 = r157588 - r157592;
double r157594 = r157585 + r157591;
double r157595 = r157586 * r157594;
double r157596 = sqrt(r157595);
double r157597 = r157585 + r157596;
double r157598 = cbrt(r157597);
double r157599 = r157598 * r157598;
double r157600 = r157599 * r157598;
double r157601 = r157593 / r157600;
return r157601;
}



Bits error versus x
Results
Initial program 15.4
rmApplied flip--15.4
Simplified14.9
rmApplied add-cube-cbrt14.9
Final simplification14.9
herbie shell --seed 2020057
(FPCore (x)
:name "Given's Rotation SVD example, simplified"
:precision binary64
(- 1 (sqrt (* 0.5 (+ 1 (/ 1 (hypot 1 x)))))))