isl_int.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*
  2. * Copyright 2008-2009 Katholieke Universiteit Leuven
  3. *
  4. * Use of this software is governed by the MIT license
  5. *
  6. * Written by Sven Verdoolaege, K.U.Leuven, Departement
  7. * Computerwetenschappen, Celestijnenlaan 200A, B-3001 Leuven, Belgium
  8. */
  9. #ifndef ISL_INT_H
  10. #define ISL_INT_H
  11. #define ISL_DEPRECATED_INT_H
  12. #include <isl/hash.h>
  13. #include <isl/printer.h>
  14. #include <string.h>
  15. #include <isl_config.h>
  16. #ifdef USE_GMP_FOR_MP
  17. #error #include <isl_int_gmp.h>
  18. #endif
  19. #ifdef USE_IMATH_FOR_MP
  20. #ifdef USE_SMALL_INT_OPT
  21. #include <isl_int_sioimath.h>
  22. #else /* USE_SMALL_INT_OPT */
  23. #error #include <isl_int_imath.h>
  24. #endif /* USE_SMALL_INT_OPT */
  25. #endif /* USE_IMATH_FOR_MP */
  26. #define isl_int_is_zero(i) (isl_int_sgn(i) == 0)
  27. #define isl_int_is_one(i) (isl_int_cmp_si(i,1) == 0)
  28. #define isl_int_is_negone(i) (isl_int_cmp_si(i,-1) == 0)
  29. #define isl_int_is_pos(i) (isl_int_sgn(i) > 0)
  30. #define isl_int_is_neg(i) (isl_int_sgn(i) < 0)
  31. #define isl_int_is_nonpos(i) (isl_int_sgn(i) <= 0)
  32. #define isl_int_is_nonneg(i) (isl_int_sgn(i) >= 0)
  33. #ifndef USE_SMALL_INT_OPT
  34. #define isl_int_print(out,i,width) \
  35. do { \
  36. char *s; \
  37. s = isl_int_get_str(i); \
  38. fprintf(out, "%*s", width, s); \
  39. isl_int_free_str(s); \
  40. } while (0)
  41. #endif /* USE_SMALL_INT_OPT */
  42. __isl_give isl_printer *isl_printer_print_isl_int(__isl_take isl_printer *p,
  43. isl_int i);
  44. #endif /* ISL_INT_H */