1 - \sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}\frac{\frac{\left(0.875 - \left(\frac{0.375}{\mathsf{hypot}\left(1, x\right)} + \frac{0.375}{{\left(\mathsf{hypot}\left(1, x\right)\right)}^{2}}\right)\right) - \log \left(e^{\frac{0.125}{{\left(\mathsf{hypot}\left(1, x\right)\right)}^{3}}}\right)}{1.75 + \left(\frac{1}{\mathsf{hypot}\left(1, x\right)} + \frac{0.25}{{\left(\mathsf{hypot}\left(1, x\right)\right)}^{2}}\right)}}{1 + \sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}}double f(double x) {
double r174582 = 1.0;
double r174583 = 0.5;
double r174584 = x;
double r174585 = hypot(r174582, r174584);
double r174586 = r174582 / r174585;
double r174587 = r174582 + r174586;
double r174588 = r174583 * r174587;
double r174589 = sqrt(r174588);
double r174590 = r174582 - r174589;
return r174590;
}
double f(double x) {
double r174591 = 0.875;
double r174592 = 0.375;
double r174593 = 1.0;
double r174594 = x;
double r174595 = hypot(r174593, r174594);
double r174596 = r174592 / r174595;
double r174597 = 2.0;
double r174598 = pow(r174595, r174597);
double r174599 = r174592 / r174598;
double r174600 = r174596 + r174599;
double r174601 = r174591 - r174600;
double r174602 = 0.125;
double r174603 = 3.0;
double r174604 = pow(r174595, r174603);
double r174605 = r174602 / r174604;
double r174606 = exp(r174605);
double r174607 = log(r174606);
double r174608 = r174601 - r174607;
double r174609 = 1.75;
double r174610 = r174593 / r174595;
double r174611 = 0.25;
double r174612 = r174611 / r174598;
double r174613 = r174610 + r174612;
double r174614 = r174609 + r174613;
double r174615 = r174608 / r174614;
double r174616 = 0.5;
double r174617 = r174593 + r174610;
double r174618 = r174616 * r174617;
double r174619 = sqrt(r174618);
double r174620 = r174593 + r174619;
double r174621 = r174615 / r174620;
return r174621;
}



Bits error versus x
Results
Initial program 15.0
rmApplied flip--15.0
Simplified14.5
rmApplied flip3--14.5
Simplified14.5
Simplified14.5
Taylor expanded around 0 14.5
Simplified14.5
rmApplied add-log-exp14.5
Final simplification14.5
herbie shell --seed 2020045
(FPCore (x)
:name "Given's Rotation SVD example, simplified"
:precision binary64
(- 1 (sqrt (* 0.5 (+ 1 (/ 1 (hypot 1 x)))))))