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

VxWorks

开发平台:

C/C++

  1. /* fabs.c - fabs math routine */
  2. /* Copyright 1992-1993 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01g,05feb99,dgp  document errno values
  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. * fabs - compute an absolute value (ANSI)
  27. *
  28. * This routine returns the absolute value of <v> in double precision.
  29. *
  30. * INCLUDE FILES: math.h
  31. *
  32. * RETURNS: The double-precision absolute value of <v>.
  33. *
  34. * ERRNO: EDOM, ERANGE
  35. *
  36. * SEE ALSO: mathALib
  37. */
  38. double fabs
  39.     (
  40.     double v /* number to return the absolute value of */
  41.     )
  42.     {
  43.     switch (fpTypeGet (v, NULL))
  44. {
  45. case ZERO: /* ZERO */
  46.     return (0.0);
  47. case NAN: /* NOT  A NUMBER */
  48.     errno = EDOM;
  49.     return (v);
  50. case INF: /* INFINITE */
  51.     errno = ERANGE;
  52. case INTEGER: /* INTEGER */
  53. case REAL: /* REAL */
  54.     return ((v < 0.0) ? - v : v);
  55. default:
  56.     return (0.0);
  57. }
  58.     }