1 - \sqrt{0.5 \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}\frac{\log \left(e^{1 \cdot \left(1 \cdot 1\right) - \sqrt{0.5 \cdot \left(\frac{1}{\mathsf{hypot}\left(1, x\right)} + 1\right)} \cdot \left(0.5 \cdot \left(\frac{1}{\mathsf{hypot}\left(1, x\right)} + 1\right)\right)}\right)}{1 \cdot \left(\sqrt{0.5 \cdot \left(\frac{1}{\mathsf{hypot}\left(1, x\right)} + 1\right)} + 1\right) + 0.5 \cdot \left(\frac{1}{\mathsf{hypot}\left(1, x\right)} + 1\right)}double f(double x) {
double r7852398 = 1.0;
double r7852399 = 0.5;
double r7852400 = x;
double r7852401 = hypot(r7852398, r7852400);
double r7852402 = r7852398 / r7852401;
double r7852403 = r7852398 + r7852402;
double r7852404 = r7852399 * r7852403;
double r7852405 = sqrt(r7852404);
double r7852406 = r7852398 - r7852405;
return r7852406;
}
double f(double x) {
double r7852407 = 1.0;
double r7852408 = r7852407 * r7852407;
double r7852409 = r7852407 * r7852408;
double r7852410 = 0.5;
double r7852411 = x;
double r7852412 = hypot(r7852407, r7852411);
double r7852413 = r7852407 / r7852412;
double r7852414 = r7852413 + r7852407;
double r7852415 = r7852410 * r7852414;
double r7852416 = sqrt(r7852415);
double r7852417 = r7852416 * r7852415;
double r7852418 = r7852409 - r7852417;
double r7852419 = exp(r7852418);
double r7852420 = log(r7852419);
double r7852421 = r7852416 + r7852407;
double r7852422 = r7852407 * r7852421;
double r7852423 = r7852422 + r7852415;
double r7852424 = r7852420 / r7852423;
return r7852424;
}



Bits error versus x
Results
Initial program 15.1
rmApplied flip3--15.4
Simplified15.1
Simplified14.6
rmApplied add-log-exp14.6
rmApplied *-un-lft-identity14.6
Applied *-un-lft-identity14.6
Applied times-frac14.6
Simplified14.6
Final simplification14.6
herbie shell --seed 2019168
(FPCore (x)
:name "Given's Rotation SVD example, simplified"
(- 1.0 (sqrt (* 0.5 (+ 1.0 (/ 1.0 (hypot 1.0 x)))))))