Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. #ifndef ISL_VAL_H
  2. #define ISL_VAL_H
  3.  
  4. #include <isl/stdint.h>
  5. #include <isl/ctx.h>
  6. #include <isl/list.h>
  7. #include <isl/multi.h>
  8. #include <isl/printer.h>
  9. #include <isl/val_type.h>
  10.  
  11. #if defined(__cplusplus)
  12. extern "C" {
  13. #endif
  14.  
  15. ISL_DECLARE_MULTI(val)
  16. ISL_DECLARE_MULTI_ARITH(val)
  17. ISL_DECLARE_MULTI_MIN_MAX(val)
  18. ISL_DECLARE_MULTI_ZERO(val)
  19. ISL_DECLARE_MULTI_NAN(val)
  20. ISL_DECLARE_MULTI_DIMS(val)
  21. ISL_DECLARE_MULTI_DIM_ID(val)
  22. ISL_DECLARE_MULTI_TUPLE_ID(val)
  23. ISL_DECLARE_MULTI_WITH_DOMAIN(val)
  24.  
  25. __isl_export
  26. __isl_give isl_val *isl_val_zero(isl_ctx *ctx);
  27. __isl_export
  28. __isl_give isl_val *isl_val_one(isl_ctx *ctx);
  29. __isl_export
  30. __isl_give isl_val *isl_val_negone(isl_ctx *ctx);
  31. __isl_export
  32. __isl_give isl_val *isl_val_nan(isl_ctx *ctx);
  33. __isl_export
  34. __isl_give isl_val *isl_val_infty(isl_ctx *ctx);
  35. __isl_export
  36. __isl_give isl_val *isl_val_neginfty(isl_ctx *ctx);
  37. __isl_constructor
  38. __isl_give isl_val *isl_val_int_from_si(isl_ctx *ctx, long i);
  39. __isl_give isl_val *isl_val_int_from_ui(isl_ctx *ctx, unsigned long u);
  40. __isl_give isl_val *isl_val_int_from_chunks(isl_ctx *ctx, size_t n,
  41.         size_t size, const void *chunks);
  42.  
  43. __isl_give isl_val *isl_val_copy(__isl_keep isl_val *v);
  44. __isl_null isl_val *isl_val_free(__isl_take isl_val *v);
  45.  
  46. isl_ctx *isl_val_get_ctx(__isl_keep isl_val *val);
  47. uint32_t isl_val_get_hash(__isl_keep isl_val *val);
  48. __isl_export
  49. long isl_val_get_num_si(__isl_keep isl_val *v);
  50. __isl_export
  51. long isl_val_get_den_si(__isl_keep isl_val *v);
  52. __isl_give isl_val *isl_val_get_den_val(__isl_keep isl_val *v);
  53. double isl_val_get_d(__isl_keep isl_val *v);
  54. isl_size isl_val_n_abs_num_chunks(__isl_keep isl_val *v, size_t size);
  55. isl_stat isl_val_get_abs_num_chunks(__isl_keep isl_val *v, size_t size,
  56.         void *chunks);
  57.  
  58. __isl_give isl_val *isl_val_set_si(__isl_take isl_val *v, long i);
  59.  
  60. __isl_export
  61. __isl_give isl_val *isl_val_abs(__isl_take isl_val *v);
  62. __isl_export
  63. __isl_give isl_val *isl_val_neg(__isl_take isl_val *v);
  64. __isl_export
  65. __isl_give isl_val *isl_val_inv(__isl_take isl_val *v);
  66. __isl_export
  67. __isl_give isl_val *isl_val_floor(__isl_take isl_val *v);
  68. __isl_export
  69. __isl_give isl_val *isl_val_ceil(__isl_take isl_val *v);
  70. __isl_export
  71. __isl_give isl_val *isl_val_trunc(__isl_take isl_val *v);
  72. __isl_give isl_val *isl_val_2exp(__isl_take isl_val *v);
  73. __isl_export
  74. __isl_give isl_val *isl_val_pow2(__isl_take isl_val *v);
  75. __isl_export
  76. __isl_give isl_val *isl_val_min(__isl_take isl_val *v1, __isl_take isl_val *v2);
  77. __isl_export
  78. __isl_give isl_val *isl_val_max(__isl_take isl_val *v1, __isl_take isl_val *v2);
  79. __isl_export
  80. __isl_give isl_val *isl_val_add(__isl_take isl_val *v1, __isl_take isl_val *v2);
  81. __isl_give isl_val *isl_val_add_ui(__isl_take isl_val *v1, unsigned long v2);
  82. __isl_export
  83. __isl_give isl_val *isl_val_sub(__isl_take isl_val *v1, __isl_take isl_val *v2);
  84. __isl_give isl_val *isl_val_sub_ui(__isl_take isl_val *v1, unsigned long v2);
  85. __isl_export
  86. __isl_give isl_val *isl_val_mul(__isl_take isl_val *v1, __isl_take isl_val *v2);
  87. __isl_give isl_val *isl_val_mul_ui(__isl_take isl_val *v1, unsigned long v2);
  88. __isl_export
  89. __isl_give isl_val *isl_val_div(__isl_take isl_val *v1, __isl_take isl_val *v2);
  90. __isl_give isl_val *isl_val_div_ui(__isl_take isl_val *v1, unsigned long v2);
  91. __isl_export
  92. __isl_give isl_val *isl_val_mod(__isl_take isl_val *v1, __isl_take isl_val *v2);
  93. __isl_export
  94. __isl_give isl_val *isl_val_gcd(__isl_take isl_val *v1, __isl_take isl_val *v2);
  95. __isl_give isl_val *isl_val_gcdext(__isl_take isl_val *v1,
  96.         __isl_take isl_val *v2, __isl_give isl_val **x, __isl_give isl_val **y);
  97.  
  98. __isl_export
  99. int isl_val_sgn(__isl_keep isl_val *v);
  100. __isl_export
  101. isl_bool isl_val_is_zero(__isl_keep isl_val *v);
  102. __isl_export
  103. isl_bool isl_val_is_one(__isl_keep isl_val *v);
  104. __isl_export
  105. isl_bool isl_val_is_negone(__isl_keep isl_val *v);
  106. __isl_export
  107. isl_bool isl_val_is_nonneg(__isl_keep isl_val *v);
  108. __isl_export
  109. isl_bool isl_val_is_nonpos(__isl_keep isl_val *v);
  110. __isl_export
  111. isl_bool isl_val_is_pos(__isl_keep isl_val *v);
  112. __isl_export
  113. isl_bool isl_val_is_neg(__isl_keep isl_val *v);
  114. __isl_export
  115. isl_bool isl_val_is_int(__isl_keep isl_val *v);
  116. __isl_export
  117. isl_bool isl_val_is_rat(__isl_keep isl_val *v);
  118. __isl_export
  119. isl_bool isl_val_is_nan(__isl_keep isl_val *v);
  120. __isl_export
  121. isl_bool isl_val_is_infty(__isl_keep isl_val *v);
  122. __isl_export
  123. isl_bool isl_val_is_neginfty(__isl_keep isl_val *v);
  124.  
  125. __isl_export
  126. int isl_val_cmp_si(__isl_keep isl_val *v, long i);
  127.  
  128. __isl_export
  129. isl_bool isl_val_lt(__isl_keep isl_val *v1, __isl_keep isl_val *v2);
  130. __isl_export
  131. isl_bool isl_val_le(__isl_keep isl_val *v1, __isl_keep isl_val *v2);
  132. __isl_export
  133. isl_bool isl_val_gt(__isl_keep isl_val *v1, __isl_keep isl_val *v2);
  134. isl_bool isl_val_gt_si(__isl_keep isl_val *v, long i);
  135. __isl_export
  136. isl_bool isl_val_ge(__isl_keep isl_val *v1, __isl_keep isl_val *v2);
  137. __isl_export
  138. isl_bool isl_val_eq(__isl_keep isl_val *v1, __isl_keep isl_val *v2);
  139. isl_bool isl_val_eq_si(__isl_keep isl_val *v, long i);
  140. __isl_export
  141. isl_bool isl_val_ne(__isl_keep isl_val *v1, __isl_keep isl_val *v2);
  142. __isl_export
  143. isl_bool isl_val_abs_eq(__isl_keep isl_val *v1, __isl_keep isl_val *v2);
  144.  
  145. __isl_export
  146. isl_bool isl_val_is_divisible_by(__isl_keep isl_val *v1,
  147.         __isl_keep isl_val *v2);
  148.  
  149. __isl_constructor
  150. __isl_give isl_val *isl_val_read_from_str(isl_ctx *ctx, const char *str);
  151. __isl_give isl_printer *isl_printer_print_val(__isl_take isl_printer *p,
  152.         __isl_keep isl_val *v);
  153. void isl_val_dump(__isl_keep isl_val *v);
  154. __isl_give char *isl_val_to_str(__isl_keep isl_val *v);
  155.  
  156. isl_bool isl_multi_val_is_zero(__isl_keep isl_multi_val *mv);
  157.  
  158. __isl_overload
  159. __isl_give isl_multi_val *isl_multi_val_add_val(__isl_take isl_multi_val *mv,
  160.         __isl_take isl_val *v);
  161. __isl_give isl_multi_val *isl_multi_val_mod_val(__isl_take isl_multi_val *mv,
  162.         __isl_take isl_val *v);
  163.  
  164. __isl_constructor
  165. __isl_give isl_multi_val *isl_multi_val_read_from_str(isl_ctx *ctx,
  166.         const char *str);
  167. __isl_give isl_printer *isl_printer_print_multi_val(__isl_take isl_printer *p,
  168.         __isl_keep isl_multi_val *mv);
  169. void isl_multi_val_dump(__isl_keep isl_multi_val *mv);
  170. __isl_give char *isl_multi_val_to_str(__isl_keep isl_multi_val *mv);
  171.  
  172. ISL_DECLARE_EXPORTED_LIST_FN(val)
  173. ISL_DECLARE_EXPORTED_LIST_FN_READ(val)
  174.  
  175. #if defined(__cplusplus)
  176. }
  177. #endif
  178.  
  179. #endif
  180.