Subversion Repositories Kolibri OS

Rev

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

  1. /* Copyright (C) 2002, 2007 by  Red Hat, Incorporated. All rights reserved.
  2.  *
  3.  * Permission to use, copy, modify, and distribute this software
  4.  * is freely granted, provided that this notice is preserved.
  5.  */
  6.  
  7. #include "fdlibm.h"
  8.  
  9. int
  10. __fpclassifyd (double x)
  11. {
  12.   __uint32_t msw, lsw;
  13.  
  14.   EXTRACT_WORDS(msw,lsw,x);
  15.  
  16.   if ((msw == 0x00000000 && lsw == 0x00000000) ||
  17.       (msw == 0x80000000 && lsw == 0x00000000))
  18.     return FP_ZERO;
  19.   else if ((msw >= 0x00100000 && msw <= 0x7fefffff) ||
  20.            (msw >= 0x80100000 && msw <= 0xffefffff))
  21.     return FP_NORMAL;
  22.   else if ((msw >= 0x00000000 && msw <= 0x000fffff) ||
  23.            (msw >= 0x80000000 && msw <= 0x800fffff))
  24.     /* zero is already handled above */
  25.     return FP_SUBNORMAL;
  26.   else if ((msw == 0x7ff00000 && lsw == 0x00000000) ||
  27.            (msw == 0xfff00000 && lsw == 0x00000000))
  28.     return FP_INFINITE;
  29.   else
  30.     return FP_NAN;
  31. }
  32.