Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. /* Copyright (C) 1994 DJ Delorie, see COPYING.DJ for details */
  2. /* @(#)s_isnan.c 5.1 93/09/24 */
  3. /*
  4.  * ====================================================
  5.  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
  6.  *
  7.  * Developed at SunPro, 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. #if defined(LIBM_SCCS) && !defined(lint)
  15. static char rcsid[] = "$Id: s_isnan.c,v 1.6 1994/08/18 23:06:54 jtc Exp $";
  16. #endif
  17.  
  18. /*
  19.  * isnan(x) returns 1 is x is nan, else 0;
  20.  * no branching!
  21.  */
  22.  
  23. #include "math.h"
  24. #include "math_private.h"
  25.  
  26. #ifdef __STDC__
  27.         int isnan(double x)
  28. #else
  29.         int isnan(x)
  30.         double x;
  31. #endif
  32. {
  33.         int32_t hx,lx;
  34.         EXTRACT_WORDS(hx,lx,x);
  35.         hx &= 0x7fffffff;
  36.         hx |= (u_int32_t)(lx|(-lx))>>31;       
  37.         hx = 0x7ff00000 - hx;
  38.         return (int)((u_int32_t)(hx))>>31;
  39. }
  40.