/* If X is not finite or is null return it (with raising exceptions
if necessary. */
- if (xe == 0)
+ if (xe == 0 && (x == 0.0 || isnan (x) || isinf (x)))
return x + x;
u = (0.354895765043919860
/* If X is not finite or is null return it (with raising exceptions
if necessary. */
- if (xe == 0)
+ if (xe == 0 && (x == 0.0 || isnanf (x) || isinff (x)))
return x + x;
u = (0.492659620528969547 + (0.697570460207922770
/* If X is not finite or is null return it (with raising exceptions
if necessary. */
- if (xe == 0)
+ if (xe == 0 && (x == 0.0 || isnanl (x) || isinfl (x)))
return x + x;
u = (0.338058687610520237