Home | History | Annotate | Download | only in fdlibm
      1 
      2 /* @(#)s_isnan.c 1.3 95/01/18 */
      3 /*
      4  * ====================================================
      5  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
      6  *
      7  * Developed at SunSoft, a Sun Microsystems, Inc. business.
      8  * Permission to use, copy, modify, and distribute this
      9  * software is freely granted, provided that this notice
     10  * is preserved.
     11  * ====================================================
     12  */
     13 
     14 /*
     15  * ieee_isnan(x) returns 1 is x is nan, else 0;
     16  * no branching!
     17  */
     18 
     19 #include "fdlibm.h"
     20 
     21 #ifdef __STDC__
     22 	int ieee_isnan(double x)
     23 #else
     24 	int ieee_isnan(x)
     25 	double x;
     26 #endif
     27 {
     28 	int hx,lx;
     29 	hx = (__HI(x)&0x7fffffff);
     30 	lx = __LO(x);
     31 	hx |= (unsigned)(lx|(-lx))>>31;
     32 	hx = 0x7ff00000 - hx;
     33 	return ((unsigned)(hx))>>31;
     34 }
     35