ceil.c
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:2k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* ceil.c - ceil math routine */
  2. /* Copyright 1992-1993 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01g,27oct98,yh   return itself if it is ZERO or INF.
  7. 01f,05feb93,jdi  doc changes based on kdl review.
  8. 01e,02dec92,jdi  doc tweaks.
  9. 01d,28oct92,jdi  documentation cleanup.
  10. 01c,20sep92,smb  documentation additions
  11. 01b,30jul92,kdl  changed _d_type() calls to fpTypeGet().
  12. 01a,08jul92,smb  documentation.
  13. */
  14. /*
  15. DESCRIPTION
  16. SEE ALSO: American National Standard X3.159-1989
  17. NOMANUAL
  18. */
  19. #include "vxWorks.h"
  20. #include "math.h"
  21. #include "stddef.h"
  22. #include "errno.h"
  23. #include "private/mathP.h"
  24. /*******************************************************************************
  25. *
  26. * ceil - compute the smallest integer greater than or equal to a specified value (ANSI)
  27. *
  28. * This routine returns the smallest integer greater than or equal to <v>,
  29. * in double precision.
  30. *
  31. * INCLUDE FILES: math.h
  32. *
  33. * RETURNS: The smallest integral value greater than or equal to <v>, in
  34. * double precision.
  35. *
  36. * SEE ALSO: mathALib
  37. */
  38. double ceil
  39.     (
  40.     double v /* value to find the ceiling of */
  41.     )
  42.     {
  43.     double r;
  44.     switch (fpTypeGet (v, &r)) /* get the type of v */
  45.         {
  46.      case ZERO: /* ZERO */
  47.      case INF: /* INFINITY */
  48.     return (v);
  49.      case NAN: /* NOT A NUMBER */
  50.             return (v);
  51.      case INTEGER: /* INTEGER */
  52.             return (v);
  53.      case REAL: /* REAL */
  54.             return (((v < 0.0) || (v == r)) ? r : r + 1.0);
  55. default:
  56.     return (0.0); /* this should never happen */
  57.         }
  58.     }