1 - \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}\frac{\frac{\left(\left(1 - \frac{1}{2} \cdot \left(\frac{1}{2} \cdot \frac{1}{2}\right)\right) \cdot \mathsf{hypot}\left(1, x\right) - \left(\frac{1}{2} + \frac{1}{2} \cdot \left(\frac{1}{2} \cdot \frac{1}{2}\right)\right)\right) - \frac{1}{2} \cdot \frac{1}{2}}{\mathsf{hypot}\left(1, x\right) \cdot \left(1 + \left(\frac{1}{2} + \frac{1}{2} \cdot \frac{1}{2}\right)\right)}}{\sqrt{\frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)} + \frac{1}{2}} + 1}double f(double x) {
double r5477416 = 1.0;
double r5477417 = 0.5;
double r5477418 = x;
double r5477419 = hypot(r5477416, r5477418);
double r5477420 = r5477416 / r5477419;
double r5477421 = r5477416 + r5477420;
double r5477422 = r5477417 * r5477421;
double r5477423 = sqrt(r5477422);
double r5477424 = r5477416 - r5477423;
return r5477424;
}
double f(double x) {
double r5477425 = 1.0;
double r5477426 = 0.5;
double r5477427 = r5477426 * r5477426;
double r5477428 = r5477426 * r5477427;
double r5477429 = r5477425 - r5477428;
double r5477430 = x;
double r5477431 = hypot(r5477425, r5477430);
double r5477432 = r5477429 * r5477431;
double r5477433 = r5477426 + r5477428;
double r5477434 = r5477432 - r5477433;
double r5477435 = r5477434 - r5477427;
double r5477436 = r5477426 + r5477427;
double r5477437 = r5477425 + r5477436;
double r5477438 = r5477431 * r5477437;
double r5477439 = r5477435 / r5477438;
double r5477440 = r5477426 / r5477431;
double r5477441 = r5477440 + r5477426;
double r5477442 = sqrt(r5477441);
double r5477443 = r5477442 + r5477425;
double r5477444 = r5477439 / r5477443;
return r5477444;
}



Bits error versus x
Results
Initial program 15.3
Simplified15.3
rmApplied flip--15.3
Simplified14.8
rmApplied flip3--14.8
Applied frac-sub14.9
Simplified14.9
Simplified14.9
Final simplification14.9
herbie shell --seed 2019134
(FPCore (x)
:name "Given's Rotation SVD example, simplified"
(- 1 (sqrt (* 1/2 (+ 1 (/ 1 (hypot 1 x)))))))