isinf.c
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:1k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. /* $Id: isinf.c,v 1.6 1998/09/01 03:24:29 momjian Exp $ */
  2. #include <math.h>
  3. #include "config.h"
  4. #if HAVE_FPCLASS
  5. #if HAVE_IEEEFP_H
  6. #include <ieeefp.h>
  7. #endif
  8. int
  9. isinf(double d)
  10. {
  11. fpclass_t type = fpclass(d);
  12. switch (type)
  13. {
  14. case FP_NINF:
  15. case FP_PINF:
  16. return 1;
  17. default:
  18. break;
  19. }
  20. return 0;
  21. }
  22. #else
  23. #if defined(HAVE_FP_CLASS) || defined(HAVE_FP_CLASS_D)
  24. #if HAVE_FP_CLASS_H
  25. #include <fp_class.h>
  26. #endif
  27. int
  28. isinf(x)
  29. double x;
  30. {
  31. #if HAVE_FP_CLASS
  32. int fpclass = fp_class(x);
  33. #else
  34. int fpclass = fp_class_d(x);
  35. #endif
  36. if (fpclass == FP_POS_INF)
  37. return 1;
  38. if (fpclass == FP_NEG_INF)
  39. return -1;
  40. return 0;
  41. }
  42. #endif
  43. #endif
  44. #if defined(HAVE_CLASS)
  45. int
  46. isinf(double x)
  47. {
  48. int fpclass = class(x);
  49. if (fpclass == FP_PLUS_INF)
  50. return 1;
  51. if (fpclass == FP_MINUS_INF)
  52. return -1;
  53. return 0;
  54. }
  55. #endif