1 - \sqrt{\frac{1}{2} \cdot \left(1 + \frac{1}{\mathsf{hypot}\left(1, x\right)}\right)}\begin{array}{l}
\mathbf{if}\;x \le -0.00990965624909386:\\
\;\;\;\;\frac{\frac{1}{2} - \frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)}}{1 + \sqrt{\frac{1}{2} + \frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)}}}\\
\mathbf{elif}\;x \le 0.011507891242233352:\\
\;\;\;\;\left(x \cdot x\right) \cdot \left(\frac{1}{8} + \left(x \cdot x\right) \cdot \left(\left(x \cdot x\right) \cdot \frac{69}{1024} - \frac{11}{128}\right)\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{\frac{1}{512} - \left(\left(\frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)} \cdot \frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)}\right) \cdot \left(\frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)} \cdot \frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)}\right)\right) \cdot \left(\frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)} \cdot \left(\left(\frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)} \cdot \frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)}\right) \cdot \left(\frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)} \cdot \frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)}\right)\right)\right)}{\mathsf{fma}\left(\left(\frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)} \cdot \left(\frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)} \cdot \frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)}\right)\right), \left(\frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)} \cdot \left(\frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)} \cdot \frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)}\right)\right), \left(\mathsf{fma}\left(\left(\frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)} \cdot \left(\frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)} \cdot \frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)}\right)\right), \frac{1}{8}, \frac{1}{64}\right)\right)\right)}}{\mathsf{fma}\left(\left(\frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)}\right), \left(\frac{1}{2} + \frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)}\right), \frac{1}{4}\right)}}{1 + \sqrt{\frac{1}{2} + \frac{\frac{1}{2}}{\mathsf{hypot}\left(1, x\right)}}}\\
\end{array}double f(double x) {
double r17209127 = 1.0;
double r17209128 = 0.5;
double r17209129 = x;
double r17209130 = hypot(r17209127, r17209129);
double r17209131 = r17209127 / r17209130;
double r17209132 = r17209127 + r17209131;
double r17209133 = r17209128 * r17209132;
double r17209134 = sqrt(r17209133);
double r17209135 = r17209127 - r17209134;
return r17209135;
}
double f(double x) {
double r17209136 = x;
double r17209137 = -0.00990965624909386;
bool r17209138 = r17209136 <= r17209137;
double r17209139 = 0.5;
double r17209140 = 1.0;
double r17209141 = hypot(r17209140, r17209136);
double r17209142 = r17209139 / r17209141;
double r17209143 = r17209139 - r17209142;
double r17209144 = r17209139 + r17209142;
double r17209145 = sqrt(r17209144);
double r17209146 = r17209140 + r17209145;
double r17209147 = r17209143 / r17209146;
double r17209148 = 0.011507891242233352;
bool r17209149 = r17209136 <= r17209148;
double r17209150 = r17209136 * r17209136;
double r17209151 = 0.125;
double r17209152 = 0.0673828125;
double r17209153 = r17209150 * r17209152;
double r17209154 = 0.0859375;
double r17209155 = r17209153 - r17209154;
double r17209156 = r17209150 * r17209155;
double r17209157 = r17209151 + r17209156;
double r17209158 = r17209150 * r17209157;
double r17209159 = 0.001953125;
double r17209160 = r17209142 * r17209142;
double r17209161 = r17209160 * r17209160;
double r17209162 = r17209142 * r17209161;
double r17209163 = r17209161 * r17209162;
double r17209164 = r17209159 - r17209163;
double r17209165 = r17209142 * r17209160;
double r17209166 = 0.015625;
double r17209167 = fma(r17209165, r17209151, r17209166);
double r17209168 = fma(r17209165, r17209165, r17209167);
double r17209169 = r17209164 / r17209168;
double r17209170 = 0.25;
double r17209171 = fma(r17209142, r17209144, r17209170);
double r17209172 = r17209169 / r17209171;
double r17209173 = r17209172 / r17209146;
double r17209174 = r17209149 ? r17209158 : r17209173;
double r17209175 = r17209138 ? r17209147 : r17209174;
return r17209175;
}



Bits error versus x
if x < -0.00990965624909386Initial program 1.0
Simplified1.0
rmApplied flip--1.0
Simplified0.1
if -0.00990965624909386 < x < 0.011507891242233352Initial program 29.9
Simplified29.9
Taylor expanded around 0 0.0
Simplified0.0
if 0.011507891242233352 < x Initial program 1.0
Simplified1.0
rmApplied flip--1.0
Simplified0.0
rmApplied flip3--0.1
Simplified0.1
Simplified0.1
rmApplied add-exp-log1.0
rmApplied flip3--1.0
Applied log-div1.0
Applied exp-diff1.6
Simplified1.6
Simplified0.1
Final simplification0.0
herbie shell --seed 2019128 +o rules:numerics
(FPCore (x)
:name "Given's Rotation SVD example, simplified"
(- 1 (sqrt (* 1/2 (+ 1 (/ 1 (hypot 1 x)))))))