1 - \sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}\frac{e^{\log \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 r121393 = 1.0;
double r121394 = 0.5;
double r121395 = x;
double r121396 = hypot(r121393, r121395);
double r121397 = r121393 / r121396;
double r121398 = r121393 + r121397;
double r121399 = r121394 * r121398;
double r121400 = sqrt(r121399);
double r121401 = r121393 - r121400;
return r121401;
}
double f(double x) {
double r121402 = 1.0;
double r121403 = r121402 * r121402;
double r121404 = 0.5;
double r121405 = x;
double r121406 = hypot(r121402, r121405);
double r121407 = r121402 / r121406;
double r121408 = r121402 + r121407;
double r121409 = r121404 * r121408;
double r121410 = r121403 - r121409;
double r121411 = log(r121410);
double r121412 = exp(r121411);
double r121413 = sqrt(r121409);
double r121414 = r121402 + r121413;
double r121415 = r121412 / r121414;
return r121415;
}



Bits error versus x
Results
Initial program 15.5
rmApplied flip--15.5
Simplified15.0
rmApplied add-exp-log15.0
Final simplification15.0
herbie shell --seed 2019199
(FPCore (x)
:name "Given's Rotation SVD example, simplified"
(- 1.0 (sqrt (* 0.5 (+ 1.0 (/ 1.0 (hypot 1.0 x)))))))