fenv.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /* Floating point environment, LoongArch64 version.
  2. Copyright (C) 2024 uClibc-ng contributors.
  3. Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  4. */
  5. #ifndef _FENV_H
  6. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  7. #endif
  8. enum
  9. {
  10. FE_INEXACT =
  11. #define FE_INEXACT (0x010000)
  12. FE_INEXACT,
  13. FE_UNDERFLOW =
  14. #define FE_UNDERFLOW (0x020000)
  15. FE_UNDERFLOW,
  16. FE_OVERFLOW =
  17. #define FE_OVERFLOW (0x040000)
  18. FE_OVERFLOW,
  19. FE_DIVBYZERO =
  20. #define FE_DIVBYZERO (0x080000)
  21. FE_DIVBYZERO,
  22. FE_INVALID =
  23. #define FE_INVALID (0x100000)
  24. FE_INVALID
  25. };
  26. #define FE_ALL_EXCEPT \
  27. (FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID)
  28. enum
  29. {
  30. FE_TONEAREST =
  31. #define FE_TONEAREST (0x000)
  32. FE_TONEAREST,
  33. FE_TOWARDZERO =
  34. #define FE_TOWARDZERO (0x100)
  35. FE_TOWARDZERO,
  36. FE_UPWARD =
  37. #define FE_UPWARD (0x200)
  38. FE_UPWARD,
  39. FE_DOWNWARD =
  40. #define FE_DOWNWARD (0x300)
  41. FE_DOWNWARD
  42. };
  43. typedef unsigned int fexcept_t;
  44. typedef unsigned int fenv_t;
  45. /* If the default argument is used we use this value. */
  46. #define FE_DFL_ENV ((__const fenv_t *) -1)
  47. /* Type representing floating-point control modes. */
  48. typedef unsigned int femode_t;
  49. /* Default floating-point control modes. */
  50. # define FE_DFL_MODE ((const femode_t *) -1L)