aff.h 60 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490
  1. #ifndef ISL_AFF_H
  2. #define ISL_AFF_H
  3. #include <isl/stdint.h>
  4. #include <isl/local_space.h>
  5. #include <isl/printer.h>
  6. #include <isl/id_type.h>
  7. #include <isl/set_type.h>
  8. #include <isl/aff_type.h>
  9. #include <isl/list.h>
  10. #include <isl/multi.h>
  11. #include <isl/union_set_type.h>
  12. #include <isl/val_type.h>
  13. #include <isl/point.h>
  14. #if defined(__cplusplus)
  15. extern "C" {
  16. #endif
  17. __isl_overload
  18. __isl_give isl_aff *isl_aff_zero_on_domain_space(__isl_take isl_space *space);
  19. __isl_export
  20. __isl_give isl_aff *isl_space_zero_aff_on_domain(__isl_take isl_space *space);
  21. __isl_give isl_aff *isl_aff_zero_on_domain(__isl_take isl_local_space *ls);
  22. __isl_give isl_aff *isl_aff_val_on_domain_space(__isl_take isl_space *space,
  23. __isl_take isl_val *val);
  24. __isl_give isl_aff *isl_aff_val_on_domain(__isl_take isl_local_space *ls,
  25. __isl_take isl_val *val);
  26. __isl_give isl_aff *isl_aff_var_on_domain(__isl_take isl_local_space *ls,
  27. enum isl_dim_type type, unsigned pos);
  28. __isl_give isl_aff *isl_aff_nan_on_domain_space(__isl_take isl_space *space);
  29. __isl_give isl_aff *isl_aff_nan_on_domain(__isl_take isl_local_space *ls);
  30. __isl_give isl_aff *isl_aff_param_on_domain_space_id(
  31. __isl_take isl_space *space, __isl_take isl_id *id);
  32. __isl_overload
  33. __isl_give isl_aff *isl_space_param_aff_on_domain_id(
  34. __isl_take isl_space *space, __isl_take isl_id *id);
  35. __isl_give isl_aff *isl_aff_copy(__isl_keep isl_aff *aff);
  36. __isl_null isl_aff *isl_aff_free(__isl_take isl_aff *aff);
  37. isl_ctx *isl_aff_get_ctx(__isl_keep isl_aff *aff);
  38. uint32_t isl_aff_get_hash(__isl_keep isl_aff *aff);
  39. isl_bool isl_aff_involves_locals(__isl_keep isl_aff *aff);
  40. isl_size isl_aff_dim(__isl_keep isl_aff *aff, enum isl_dim_type type);
  41. isl_bool isl_aff_involves_dims(__isl_keep isl_aff *aff,
  42. enum isl_dim_type type, unsigned first, unsigned n);
  43. __isl_give isl_space *isl_aff_get_domain_space(__isl_keep isl_aff *aff);
  44. __isl_give isl_space *isl_aff_get_space(__isl_keep isl_aff *aff);
  45. __isl_give isl_local_space *isl_aff_get_domain_local_space(
  46. __isl_keep isl_aff *aff);
  47. __isl_give isl_local_space *isl_aff_get_local_space(__isl_keep isl_aff *aff);
  48. const char *isl_aff_get_dim_name(__isl_keep isl_aff *aff,
  49. enum isl_dim_type type, unsigned pos);
  50. __isl_export
  51. __isl_give isl_val *isl_aff_get_constant_val(__isl_keep isl_aff *aff);
  52. __isl_give isl_val *isl_aff_get_coefficient_val(__isl_keep isl_aff *aff,
  53. enum isl_dim_type type, int pos);
  54. int isl_aff_coefficient_sgn(__isl_keep isl_aff *aff,
  55. enum isl_dim_type type, int pos);
  56. __isl_give isl_val *isl_aff_get_denominator_val(__isl_keep isl_aff *aff);
  57. __isl_give isl_aff *isl_aff_set_constant_si(__isl_take isl_aff *aff, int v);
  58. __isl_give isl_aff *isl_aff_set_constant_val(__isl_take isl_aff *aff,
  59. __isl_take isl_val *v);
  60. __isl_give isl_aff *isl_aff_set_coefficient_si(__isl_take isl_aff *aff,
  61. enum isl_dim_type type, int pos, int v);
  62. __isl_give isl_aff *isl_aff_set_coefficient_val(__isl_take isl_aff *aff,
  63. enum isl_dim_type type, int pos, __isl_take isl_val *v);
  64. __isl_give isl_aff *isl_aff_add_constant_si(__isl_take isl_aff *aff, int v);
  65. __isl_overload
  66. __isl_give isl_aff *isl_aff_add_constant_val(__isl_take isl_aff *aff,
  67. __isl_take isl_val *v);
  68. __isl_give isl_aff *isl_aff_add_constant_num_si(__isl_take isl_aff *aff, int v);
  69. __isl_give isl_aff *isl_aff_add_coefficient_si(__isl_take isl_aff *aff,
  70. enum isl_dim_type type, int pos, int v);
  71. __isl_give isl_aff *isl_aff_add_coefficient_val(__isl_take isl_aff *aff,
  72. enum isl_dim_type type, int pos, __isl_take isl_val *v);
  73. __isl_export
  74. isl_bool isl_aff_is_cst(__isl_keep isl_aff *aff);
  75. __isl_give isl_aff *isl_aff_set_tuple_id(__isl_take isl_aff *aff,
  76. enum isl_dim_type type, __isl_take isl_id *id);
  77. __isl_give isl_aff *isl_aff_set_dim_name(__isl_take isl_aff *aff,
  78. enum isl_dim_type type, unsigned pos, const char *s);
  79. __isl_give isl_aff *isl_aff_set_dim_id(__isl_take isl_aff *aff,
  80. enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
  81. int isl_aff_find_dim_by_name(__isl_keep isl_aff *aff, enum isl_dim_type type,
  82. const char *name);
  83. isl_bool isl_aff_plain_is_equal(__isl_keep isl_aff *aff1,
  84. __isl_keep isl_aff *aff2);
  85. isl_bool isl_aff_plain_is_zero(__isl_keep isl_aff *aff);
  86. isl_bool isl_aff_is_nan(__isl_keep isl_aff *aff);
  87. __isl_give isl_aff *isl_aff_get_div(__isl_keep isl_aff *aff, int pos);
  88. __isl_give isl_aff *isl_aff_from_range(__isl_take isl_aff *aff);
  89. __isl_export
  90. __isl_give isl_aff *isl_aff_neg(__isl_take isl_aff *aff);
  91. __isl_export
  92. __isl_give isl_aff *isl_aff_ceil(__isl_take isl_aff *aff);
  93. __isl_export
  94. __isl_give isl_aff *isl_aff_floor(__isl_take isl_aff *aff);
  95. __isl_overload
  96. __isl_give isl_aff *isl_aff_mod_val(__isl_take isl_aff *aff,
  97. __isl_take isl_val *mod);
  98. __isl_export
  99. __isl_give isl_aff *isl_aff_mul(__isl_take isl_aff *aff1,
  100. __isl_take isl_aff *aff2);
  101. __isl_export
  102. __isl_give isl_aff *isl_aff_div(__isl_take isl_aff *aff1,
  103. __isl_take isl_aff *aff2);
  104. __isl_export
  105. __isl_give isl_aff *isl_aff_add(__isl_take isl_aff *aff1,
  106. __isl_take isl_aff *aff2);
  107. __isl_export
  108. __isl_give isl_aff *isl_aff_sub(__isl_take isl_aff *aff1,
  109. __isl_take isl_aff *aff2);
  110. __isl_overload
  111. __isl_give isl_aff *isl_aff_scale_val(__isl_take isl_aff *aff,
  112. __isl_take isl_val *v);
  113. __isl_give isl_aff *isl_aff_scale_down_ui(__isl_take isl_aff *aff, unsigned f);
  114. __isl_overload
  115. __isl_give isl_aff *isl_aff_scale_down_val(__isl_take isl_aff *aff,
  116. __isl_take isl_val *v);
  117. __isl_give isl_aff *isl_aff_insert_dims(__isl_take isl_aff *aff,
  118. enum isl_dim_type type, unsigned first, unsigned n);
  119. __isl_give isl_aff *isl_aff_add_dims(__isl_take isl_aff *aff,
  120. enum isl_dim_type type, unsigned n);
  121. __isl_give isl_aff *isl_aff_move_dims(__isl_take isl_aff *aff,
  122. enum isl_dim_type dst_type, unsigned dst_pos,
  123. enum isl_dim_type src_type, unsigned src_pos, unsigned n);
  124. __isl_give isl_aff *isl_aff_drop_dims(__isl_take isl_aff *aff,
  125. enum isl_dim_type type, unsigned first, unsigned n);
  126. __isl_give isl_aff *isl_aff_project_domain_on_params(__isl_take isl_aff *aff);
  127. __isl_export
  128. __isl_give isl_aff *isl_aff_unbind_params_insert_domain(
  129. __isl_take isl_aff *aff, __isl_take isl_multi_id *domain);
  130. __isl_give isl_aff *isl_aff_align_params(__isl_take isl_aff *aff,
  131. __isl_take isl_space *model);
  132. __isl_export
  133. __isl_give isl_aff *isl_aff_gist(__isl_take isl_aff *aff,
  134. __isl_take isl_set *context);
  135. __isl_export
  136. __isl_give isl_aff *isl_aff_gist_params(__isl_take isl_aff *aff,
  137. __isl_take isl_set *context);
  138. __isl_export
  139. __isl_give isl_val *isl_aff_eval(__isl_take isl_aff *aff,
  140. __isl_take isl_point *pnt);
  141. __isl_give isl_aff *isl_aff_pullback_aff(__isl_take isl_aff *aff1,
  142. __isl_take isl_aff *aff2);
  143. __isl_overload
  144. __isl_give isl_aff *isl_aff_pullback_multi_aff(__isl_take isl_aff *aff,
  145. __isl_take isl_multi_aff *ma);
  146. __isl_give isl_basic_set *isl_aff_zero_basic_set(__isl_take isl_aff *aff);
  147. __isl_give isl_basic_set *isl_aff_neg_basic_set(__isl_take isl_aff *aff);
  148. __isl_give isl_basic_set *isl_aff_eq_basic_set(__isl_take isl_aff *aff1,
  149. __isl_take isl_aff *aff2);
  150. __isl_export
  151. __isl_give isl_set *isl_aff_eq_set(__isl_take isl_aff *aff1,
  152. __isl_take isl_aff *aff2);
  153. __isl_export
  154. __isl_give isl_set *isl_aff_ne_set(__isl_take isl_aff *aff1,
  155. __isl_take isl_aff *aff2);
  156. __isl_give isl_basic_set *isl_aff_le_basic_set(__isl_take isl_aff *aff1,
  157. __isl_take isl_aff *aff2);
  158. __isl_export
  159. __isl_give isl_set *isl_aff_le_set(__isl_take isl_aff *aff1,
  160. __isl_take isl_aff *aff2);
  161. __isl_give isl_basic_set *isl_aff_lt_basic_set(__isl_take isl_aff *aff1,
  162. __isl_take isl_aff *aff2);
  163. __isl_export
  164. __isl_give isl_set *isl_aff_lt_set(__isl_take isl_aff *aff1,
  165. __isl_take isl_aff *aff2);
  166. __isl_give isl_basic_set *isl_aff_ge_basic_set(__isl_take isl_aff *aff1,
  167. __isl_take isl_aff *aff2);
  168. __isl_export
  169. __isl_give isl_set *isl_aff_ge_set(__isl_take isl_aff *aff1,
  170. __isl_take isl_aff *aff2);
  171. __isl_give isl_basic_set *isl_aff_gt_basic_set(__isl_take isl_aff *aff1,
  172. __isl_take isl_aff *aff2);
  173. __isl_export
  174. __isl_give isl_set *isl_aff_gt_set(__isl_take isl_aff *aff1,
  175. __isl_take isl_aff *aff2);
  176. __isl_overload
  177. __isl_give isl_basic_set *isl_aff_bind_id(__isl_take isl_aff *aff,
  178. __isl_take isl_id *id);
  179. __isl_constructor
  180. __isl_give isl_aff *isl_aff_read_from_str(isl_ctx *ctx, const char *str);
  181. __isl_give char *isl_aff_to_str(__isl_keep isl_aff *aff);
  182. __isl_give isl_printer *isl_printer_print_aff(__isl_take isl_printer *p,
  183. __isl_keep isl_aff *aff);
  184. void isl_aff_dump(__isl_keep isl_aff *aff);
  185. isl_ctx *isl_pw_aff_get_ctx(__isl_keep isl_pw_aff *pwaff);
  186. uint32_t isl_pw_aff_get_hash(__isl_keep isl_pw_aff *pa);
  187. __isl_give isl_space *isl_pw_aff_get_domain_space(__isl_keep isl_pw_aff *pwaff);
  188. __isl_export
  189. __isl_give isl_space *isl_pw_aff_get_space(__isl_keep isl_pw_aff *pwaff);
  190. __isl_constructor
  191. __isl_give isl_pw_aff *isl_pw_aff_from_aff(__isl_take isl_aff *aff);
  192. __isl_give isl_pw_aff *isl_pw_aff_empty(__isl_take isl_space *space);
  193. __isl_give isl_pw_aff *isl_pw_aff_alloc(__isl_take isl_set *set,
  194. __isl_take isl_aff *aff);
  195. __isl_give isl_pw_aff *isl_pw_aff_zero_on_domain(
  196. __isl_take isl_local_space *ls);
  197. __isl_give isl_pw_aff *isl_pw_aff_var_on_domain(__isl_take isl_local_space *ls,
  198. enum isl_dim_type type, unsigned pos);
  199. __isl_give isl_pw_aff *isl_pw_aff_nan_on_domain_space(
  200. __isl_take isl_space *space);
  201. __isl_give isl_pw_aff *isl_pw_aff_nan_on_domain(__isl_take isl_local_space *ls);
  202. __isl_give isl_pw_aff *isl_pw_aff_val_on_domain(__isl_take isl_set *domain,
  203. __isl_take isl_val *v);
  204. __isl_overload
  205. __isl_give isl_pw_aff *isl_set_pw_aff_on_domain_val(__isl_take isl_set *domain,
  206. __isl_take isl_val *v);
  207. __isl_overload
  208. __isl_give isl_pw_aff *isl_pw_aff_param_on_domain_id(
  209. __isl_take isl_set *domain, __isl_take isl_id *id);
  210. __isl_overload
  211. __isl_give isl_pw_aff *isl_set_param_pw_aff_on_domain_id(
  212. __isl_take isl_set *domain, __isl_take isl_id *id);
  213. __isl_export
  214. __isl_give isl_pw_aff *isl_set_indicator_function(__isl_take isl_set *set);
  215. const char *isl_pw_aff_get_dim_name(__isl_keep isl_pw_aff *pa,
  216. enum isl_dim_type type, unsigned pos);
  217. isl_bool isl_pw_aff_has_dim_id(__isl_keep isl_pw_aff *pa,
  218. enum isl_dim_type type, unsigned pos);
  219. __isl_give isl_id *isl_pw_aff_get_dim_id(__isl_keep isl_pw_aff *pa,
  220. enum isl_dim_type type, unsigned pos);
  221. __isl_give isl_pw_aff *isl_pw_aff_set_dim_id(__isl_take isl_pw_aff *pma,
  222. enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
  223. int isl_pw_aff_find_dim_by_name(__isl_keep isl_pw_aff *pa,
  224. enum isl_dim_type type, const char *name);
  225. isl_bool isl_pw_aff_is_empty(__isl_keep isl_pw_aff *pwaff);
  226. isl_bool isl_pw_aff_involves_nan(__isl_keep isl_pw_aff *pa);
  227. int isl_pw_aff_plain_cmp(__isl_keep isl_pw_aff *pa1,
  228. __isl_keep isl_pw_aff *pa2);
  229. isl_bool isl_pw_aff_plain_is_equal(__isl_keep isl_pw_aff *pwaff1,
  230. __isl_keep isl_pw_aff *pwaff2);
  231. isl_bool isl_pw_aff_is_equal(__isl_keep isl_pw_aff *pa1,
  232. __isl_keep isl_pw_aff *pa2);
  233. __isl_give isl_pw_aff *isl_pw_aff_union_min(__isl_take isl_pw_aff *pwaff1,
  234. __isl_take isl_pw_aff *pwaff2);
  235. __isl_give isl_pw_aff *isl_pw_aff_union_max(__isl_take isl_pw_aff *pwaff1,
  236. __isl_take isl_pw_aff *pwaff2);
  237. __isl_export
  238. __isl_give isl_pw_aff *isl_pw_aff_union_add(__isl_take isl_pw_aff *pwaff1,
  239. __isl_take isl_pw_aff *pwaff2);
  240. __isl_give isl_pw_aff *isl_pw_aff_copy(__isl_keep isl_pw_aff *pwaff);
  241. __isl_null isl_pw_aff *isl_pw_aff_free(__isl_take isl_pw_aff *pwaff);
  242. isl_size isl_pw_aff_dim(__isl_keep isl_pw_aff *pwaff, enum isl_dim_type type);
  243. isl_bool isl_pw_aff_involves_param_id(__isl_keep isl_pw_aff *pa,
  244. __isl_keep isl_id *id);
  245. isl_bool isl_pw_aff_involves_dims(__isl_keep isl_pw_aff *pwaff,
  246. enum isl_dim_type type, unsigned first, unsigned n);
  247. isl_bool isl_pw_aff_is_cst(__isl_keep isl_pw_aff *pwaff);
  248. __isl_export
  249. __isl_give isl_pw_aff *isl_pw_aff_insert_domain(__isl_take isl_pw_aff *pa,
  250. __isl_take isl_space *domain);
  251. __isl_give isl_pw_aff *isl_pw_aff_project_domain_on_params(
  252. __isl_take isl_pw_aff *pa);
  253. __isl_give isl_pw_aff *isl_pw_aff_align_params(__isl_take isl_pw_aff *pwaff,
  254. __isl_take isl_space *model);
  255. __isl_give isl_pw_aff *isl_pw_aff_drop_unused_params(
  256. __isl_take isl_pw_aff *pa);
  257. isl_bool isl_pw_aff_has_tuple_id(__isl_keep isl_pw_aff *pa,
  258. enum isl_dim_type type);
  259. __isl_give isl_id *isl_pw_aff_get_tuple_id(__isl_keep isl_pw_aff *pa,
  260. enum isl_dim_type type);
  261. __isl_give isl_pw_aff *isl_pw_aff_set_tuple_id(__isl_take isl_pw_aff *pwaff,
  262. enum isl_dim_type type, __isl_take isl_id *id);
  263. __isl_give isl_pw_aff *isl_pw_aff_reset_tuple_id(__isl_take isl_pw_aff *pa,
  264. enum isl_dim_type type);
  265. __isl_give isl_pw_aff *isl_pw_aff_reset_user(__isl_take isl_pw_aff *pa);
  266. __isl_give isl_set *isl_pw_aff_params(__isl_take isl_pw_aff *pwa);
  267. __isl_export
  268. __isl_give isl_set *isl_pw_aff_domain(__isl_take isl_pw_aff *pwaff);
  269. __isl_give isl_pw_aff *isl_pw_aff_from_range(__isl_take isl_pw_aff *pwa);
  270. __isl_export
  271. __isl_give isl_pw_aff *isl_pw_aff_min(__isl_take isl_pw_aff *pwaff1,
  272. __isl_take isl_pw_aff *pwaff2);
  273. __isl_export
  274. __isl_give isl_pw_aff *isl_pw_aff_max(__isl_take isl_pw_aff *pwaff1,
  275. __isl_take isl_pw_aff *pwaff2);
  276. __isl_export
  277. __isl_give isl_pw_aff *isl_pw_aff_mul(__isl_take isl_pw_aff *pwaff1,
  278. __isl_take isl_pw_aff *pwaff2);
  279. __isl_export
  280. __isl_give isl_pw_aff *isl_pw_aff_div(__isl_take isl_pw_aff *pa1,
  281. __isl_take isl_pw_aff *pa2);
  282. __isl_export
  283. __isl_give isl_pw_aff *isl_pw_aff_add(__isl_take isl_pw_aff *pwaff1,
  284. __isl_take isl_pw_aff *pwaff2);
  285. __isl_export
  286. __isl_give isl_pw_aff *isl_pw_aff_sub(__isl_take isl_pw_aff *pwaff1,
  287. __isl_take isl_pw_aff *pwaff2);
  288. __isl_export
  289. __isl_give isl_pw_aff *isl_pw_aff_neg(__isl_take isl_pw_aff *pwaff);
  290. __isl_export
  291. __isl_give isl_pw_aff *isl_pw_aff_ceil(__isl_take isl_pw_aff *pwaff);
  292. __isl_export
  293. __isl_give isl_pw_aff *isl_pw_aff_floor(__isl_take isl_pw_aff *pwaff);
  294. __isl_overload
  295. __isl_give isl_pw_aff *isl_pw_aff_mod_val(__isl_take isl_pw_aff *pa,
  296. __isl_take isl_val *mod);
  297. __isl_export
  298. __isl_give isl_pw_aff *isl_pw_aff_tdiv_q(__isl_take isl_pw_aff *pa1,
  299. __isl_take isl_pw_aff *pa2);
  300. __isl_export
  301. __isl_give isl_pw_aff *isl_pw_aff_tdiv_r(__isl_take isl_pw_aff *pa1,
  302. __isl_take isl_pw_aff *pa2);
  303. __isl_export
  304. __isl_give isl_pw_aff *isl_pw_aff_intersect_params(__isl_take isl_pw_aff *pa,
  305. __isl_take isl_set *set);
  306. __isl_export
  307. __isl_give isl_pw_aff *isl_pw_aff_intersect_domain(__isl_take isl_pw_aff *pa,
  308. __isl_take isl_set *set);
  309. __isl_give isl_pw_aff *isl_pw_aff_intersect_domain_wrapped_domain(
  310. __isl_take isl_pw_aff *pa, __isl_take isl_set *set);
  311. __isl_give isl_pw_aff *isl_pw_aff_intersect_domain_wrapped_range(
  312. __isl_take isl_pw_aff *pa, __isl_take isl_set *set);
  313. __isl_export
  314. __isl_give isl_pw_aff *isl_pw_aff_subtract_domain(__isl_take isl_pw_aff *pa,
  315. __isl_take isl_set *set);
  316. __isl_export
  317. __isl_give isl_pw_aff *isl_pw_aff_cond(__isl_take isl_pw_aff *cond,
  318. __isl_take isl_pw_aff *pwaff_true, __isl_take isl_pw_aff *pwaff_false);
  319. __isl_overload
  320. __isl_give isl_pw_aff *isl_pw_aff_add_constant_val(__isl_take isl_pw_aff *pa,
  321. __isl_take isl_val *v);
  322. __isl_overload
  323. __isl_give isl_pw_aff *isl_pw_aff_scale_val(__isl_take isl_pw_aff *pa,
  324. __isl_take isl_val *v);
  325. __isl_overload
  326. __isl_give isl_pw_aff *isl_pw_aff_scale_down_val(__isl_take isl_pw_aff *pa,
  327. __isl_take isl_val *f);
  328. __isl_give isl_pw_aff *isl_pw_aff_insert_dims(__isl_take isl_pw_aff *pwaff,
  329. enum isl_dim_type type, unsigned first, unsigned n);
  330. __isl_give isl_pw_aff *isl_pw_aff_add_dims(__isl_take isl_pw_aff *pwaff,
  331. enum isl_dim_type type, unsigned n);
  332. __isl_give isl_pw_aff *isl_pw_aff_move_dims(__isl_take isl_pw_aff *pa,
  333. enum isl_dim_type dst_type, unsigned dst_pos,
  334. enum isl_dim_type src_type, unsigned src_pos, unsigned n);
  335. __isl_give isl_pw_aff *isl_pw_aff_drop_dims(__isl_take isl_pw_aff *pwaff,
  336. enum isl_dim_type type, unsigned first, unsigned n);
  337. __isl_export
  338. __isl_give isl_pw_aff *isl_pw_aff_coalesce(__isl_take isl_pw_aff *pa);
  339. __isl_export
  340. __isl_give isl_pw_aff *isl_pw_aff_gist(__isl_take isl_pw_aff *pwaff,
  341. __isl_take isl_set *context);
  342. __isl_export
  343. __isl_give isl_pw_aff *isl_pw_aff_gist_params(__isl_take isl_pw_aff *pwaff,
  344. __isl_take isl_set *context);
  345. __isl_export
  346. __isl_give isl_val *isl_pw_aff_eval(__isl_take isl_pw_aff *pa,
  347. __isl_take isl_point *pnt);
  348. __isl_overload
  349. __isl_give isl_pw_aff *isl_pw_aff_pullback_multi_aff(
  350. __isl_take isl_pw_aff *pa, __isl_take isl_multi_aff *ma);
  351. __isl_overload
  352. __isl_give isl_pw_aff *isl_pw_aff_pullback_pw_multi_aff(
  353. __isl_take isl_pw_aff *pa, __isl_take isl_pw_multi_aff *pma);
  354. __isl_overload
  355. __isl_give isl_pw_aff *isl_pw_aff_pullback_multi_pw_aff(
  356. __isl_take isl_pw_aff *pa, __isl_take isl_multi_pw_aff *mpa);
  357. isl_size isl_pw_aff_n_piece(__isl_keep isl_pw_aff *pwaff);
  358. isl_stat isl_pw_aff_foreach_piece(__isl_keep isl_pw_aff *pwaff,
  359. isl_stat (*fn)(__isl_take isl_set *set, __isl_take isl_aff *aff,
  360. void *user), void *user);
  361. isl_bool isl_pw_aff_every_piece(__isl_keep isl_pw_aff *pa,
  362. isl_bool (*test)(__isl_keep isl_set *set, __isl_keep isl_aff *aff,
  363. void *user), void *user);
  364. __isl_export
  365. isl_bool isl_pw_aff_isa_aff(__isl_keep isl_pw_aff *pa);
  366. __isl_export
  367. __isl_give isl_aff *isl_pw_aff_as_aff(__isl_take isl_pw_aff *pa);
  368. __isl_export
  369. __isl_give isl_map *isl_pw_aff_as_map(__isl_take isl_pw_aff *pa);
  370. __isl_give isl_set *isl_set_from_pw_aff(__isl_take isl_pw_aff *pwaff);
  371. __isl_give isl_map *isl_map_from_pw_aff(__isl_take isl_pw_aff *pwaff);
  372. __isl_give isl_set *isl_pw_aff_pos_set(__isl_take isl_pw_aff *pa);
  373. __isl_give isl_set *isl_pw_aff_nonneg_set(__isl_take isl_pw_aff *pwaff);
  374. __isl_give isl_set *isl_pw_aff_zero_set(__isl_take isl_pw_aff *pwaff);
  375. __isl_give isl_set *isl_pw_aff_non_zero_set(__isl_take isl_pw_aff *pwaff);
  376. __isl_export
  377. __isl_give isl_set *isl_pw_aff_eq_set(__isl_take isl_pw_aff *pwaff1,
  378. __isl_take isl_pw_aff *pwaff2);
  379. __isl_export
  380. __isl_give isl_set *isl_pw_aff_ne_set(__isl_take isl_pw_aff *pwaff1,
  381. __isl_take isl_pw_aff *pwaff2);
  382. __isl_export
  383. __isl_give isl_set *isl_pw_aff_le_set(__isl_take isl_pw_aff *pwaff1,
  384. __isl_take isl_pw_aff *pwaff2);
  385. __isl_export
  386. __isl_give isl_set *isl_pw_aff_lt_set(__isl_take isl_pw_aff *pwaff1,
  387. __isl_take isl_pw_aff *pwaff2);
  388. __isl_export
  389. __isl_give isl_set *isl_pw_aff_ge_set(__isl_take isl_pw_aff *pwaff1,
  390. __isl_take isl_pw_aff *pwaff2);
  391. __isl_export
  392. __isl_give isl_set *isl_pw_aff_gt_set(__isl_take isl_pw_aff *pwaff1,
  393. __isl_take isl_pw_aff *pwaff2);
  394. __isl_give isl_map *isl_pw_aff_eq_map(__isl_take isl_pw_aff *pa1,
  395. __isl_take isl_pw_aff *pa2);
  396. __isl_give isl_map *isl_pw_aff_le_map(__isl_take isl_pw_aff *pa1,
  397. __isl_take isl_pw_aff *pa2);
  398. __isl_give isl_map *isl_pw_aff_lt_map(__isl_take isl_pw_aff *pa1,
  399. __isl_take isl_pw_aff *pa2);
  400. __isl_give isl_map *isl_pw_aff_ge_map(__isl_take isl_pw_aff *pa1,
  401. __isl_take isl_pw_aff *pa2);
  402. __isl_give isl_map *isl_pw_aff_gt_map(__isl_take isl_pw_aff *pa1,
  403. __isl_take isl_pw_aff *pa2);
  404. __isl_export
  405. __isl_give isl_pw_aff *isl_pw_aff_bind_domain(__isl_take isl_pw_aff *pa,
  406. __isl_take isl_multi_id *tuple);
  407. __isl_export
  408. __isl_give isl_pw_aff *isl_pw_aff_bind_domain_wrapped_domain(
  409. __isl_take isl_pw_aff *pa, __isl_take isl_multi_id *tuple);
  410. __isl_overload
  411. __isl_give isl_set *isl_pw_aff_bind_id(__isl_take isl_pw_aff *pa,
  412. __isl_take isl_id *id);
  413. __isl_constructor
  414. __isl_give isl_pw_aff *isl_pw_aff_read_from_str(isl_ctx *ctx, const char *str);
  415. __isl_give char *isl_pw_aff_to_str(__isl_keep isl_pw_aff *pa);
  416. __isl_give isl_printer *isl_printer_print_pw_aff(__isl_take isl_printer *p,
  417. __isl_keep isl_pw_aff *pwaff);
  418. void isl_pw_aff_dump(__isl_keep isl_pw_aff *pwaff);
  419. __isl_give isl_pw_aff *isl_pw_aff_list_min(__isl_take isl_pw_aff_list *list);
  420. __isl_give isl_pw_aff *isl_pw_aff_list_max(__isl_take isl_pw_aff_list *list);
  421. __isl_give isl_set *isl_pw_aff_list_eq_set(__isl_take isl_pw_aff_list *list1,
  422. __isl_take isl_pw_aff_list *list2);
  423. __isl_give isl_set *isl_pw_aff_list_ne_set(__isl_take isl_pw_aff_list *list1,
  424. __isl_take isl_pw_aff_list *list2);
  425. __isl_give isl_set *isl_pw_aff_list_le_set(__isl_take isl_pw_aff_list *list1,
  426. __isl_take isl_pw_aff_list *list2);
  427. __isl_give isl_set *isl_pw_aff_list_lt_set(__isl_take isl_pw_aff_list *list1,
  428. __isl_take isl_pw_aff_list *list2);
  429. __isl_give isl_set *isl_pw_aff_list_ge_set(__isl_take isl_pw_aff_list *list1,
  430. __isl_take isl_pw_aff_list *list2);
  431. __isl_give isl_set *isl_pw_aff_list_gt_set(__isl_take isl_pw_aff_list *list1,
  432. __isl_take isl_pw_aff_list *list2);
  433. ISL_DECLARE_MULTI(aff)
  434. ISL_DECLARE_MULTI_IDENTITY(aff)
  435. ISL_DECLARE_MULTI_CMP(aff)
  436. ISL_DECLARE_MULTI_ARITH(aff)
  437. ISL_DECLARE_MULTI_ADD_CONSTANT(aff)
  438. ISL_DECLARE_MULTI_ZERO(aff)
  439. ISL_DECLARE_MULTI_NAN(aff)
  440. ISL_DECLARE_MULTI_DIMS(aff)
  441. ISL_DECLARE_MULTI_INSERT_DOMAIN(aff)
  442. ISL_DECLARE_MULTI_LOCALS(aff)
  443. ISL_DECLARE_MULTI_DIM_ID(aff)
  444. ISL_DECLARE_MULTI_TUPLE_ID(aff)
  445. ISL_DECLARE_MULTI_WITH_DOMAIN(aff)
  446. ISL_DECLARE_MULTI_BIND_DOMAIN(aff)
  447. ISL_DECLARE_MULTI_UNBIND_PARAMS(aff)
  448. __isl_constructor
  449. __isl_give isl_multi_aff *isl_multi_aff_from_aff(__isl_take isl_aff *aff);
  450. __isl_export
  451. __isl_give isl_multi_aff *isl_multi_aff_domain_map(__isl_take isl_space *space);
  452. __isl_export
  453. __isl_give isl_multi_aff *isl_space_domain_map_multi_aff(
  454. __isl_take isl_space *space);
  455. __isl_export
  456. __isl_give isl_multi_aff *isl_multi_aff_range_map(__isl_take isl_space *space);
  457. __isl_export
  458. __isl_give isl_multi_aff *isl_space_range_map_multi_aff(
  459. __isl_take isl_space *space);
  460. __isl_give isl_multi_aff *isl_multi_aff_project_out_map(
  461. __isl_take isl_space *space, enum isl_dim_type type,
  462. unsigned first, unsigned n);
  463. __isl_overload
  464. __isl_give isl_multi_aff *isl_multi_aff_multi_val_on_domain_space(
  465. __isl_take isl_space *space, __isl_take isl_multi_val *mv);
  466. __isl_overload
  467. __isl_give isl_multi_aff *isl_space_multi_aff_on_domain_multi_val(
  468. __isl_take isl_space *space, __isl_take isl_multi_val *mv);
  469. __isl_give isl_multi_aff *isl_multi_aff_multi_val_on_space(
  470. __isl_take isl_space *space, __isl_take isl_multi_val *mv);
  471. __isl_export
  472. __isl_give isl_multi_val *isl_multi_aff_get_constant_multi_val(
  473. __isl_keep isl_multi_aff *ma);
  474. __isl_export
  475. __isl_give isl_multi_aff *isl_multi_aff_floor(__isl_take isl_multi_aff *ma);
  476. __isl_export
  477. __isl_give isl_multi_aff *isl_multi_aff_gist_params(
  478. __isl_take isl_multi_aff *maff, __isl_take isl_set *context);
  479. __isl_export
  480. __isl_give isl_multi_aff *isl_multi_aff_gist(__isl_take isl_multi_aff *maff,
  481. __isl_take isl_set *context);
  482. __isl_give isl_multi_aff *isl_multi_aff_lift(__isl_take isl_multi_aff *maff,
  483. __isl_give isl_local_space **ls);
  484. __isl_overload
  485. __isl_give isl_multi_aff *isl_multi_aff_pullback_multi_aff(
  486. __isl_take isl_multi_aff *ma1, __isl_take isl_multi_aff *ma2);
  487. __isl_give isl_multi_aff *isl_multi_aff_move_dims(__isl_take isl_multi_aff *ma,
  488. enum isl_dim_type dst_type, unsigned dst_pos,
  489. enum isl_dim_type src_type, unsigned src_pos, unsigned n);
  490. __isl_give isl_set *isl_multi_aff_lex_lt_set(__isl_take isl_multi_aff *ma1,
  491. __isl_take isl_multi_aff *ma2);
  492. __isl_give isl_set *isl_multi_aff_lex_le_set(__isl_take isl_multi_aff *ma1,
  493. __isl_take isl_multi_aff *ma2);
  494. __isl_give isl_set *isl_multi_aff_lex_gt_set(__isl_take isl_multi_aff *ma1,
  495. __isl_take isl_multi_aff *ma2);
  496. __isl_give isl_set *isl_multi_aff_lex_ge_set(__isl_take isl_multi_aff *ma1,
  497. __isl_take isl_multi_aff *ma2);
  498. __isl_export
  499. __isl_give isl_basic_set *isl_multi_aff_bind(__isl_take isl_multi_aff *ma,
  500. __isl_take isl_multi_id *tuple);
  501. __isl_give char *isl_multi_aff_to_str(__isl_keep isl_multi_aff *ma);
  502. __isl_give isl_printer *isl_printer_print_multi_aff(__isl_take isl_printer *p,
  503. __isl_keep isl_multi_aff *maff);
  504. __isl_constructor
  505. __isl_give isl_multi_aff *isl_multi_aff_read_from_str(isl_ctx *ctx,
  506. const char *str);
  507. void isl_multi_aff_dump(__isl_keep isl_multi_aff *maff);
  508. ISL_DECLARE_MULTI(pw_aff)
  509. ISL_DECLARE_MULTI_IDENTITY(pw_aff)
  510. ISL_DECLARE_MULTI_ARITH(pw_aff)
  511. ISL_DECLARE_MULTI_MIN_MAX(pw_aff)
  512. ISL_DECLARE_MULTI_ADD_CONSTANT(pw_aff)
  513. ISL_DECLARE_MULTI_ZERO(pw_aff)
  514. ISL_DECLARE_MULTI_NAN(pw_aff)
  515. ISL_DECLARE_MULTI_DIMS(pw_aff)
  516. ISL_DECLARE_MULTI_DIM_ID(pw_aff)
  517. ISL_DECLARE_MULTI_INSERT_DOMAIN(pw_aff)
  518. ISL_DECLARE_MULTI_TUPLE_ID(pw_aff)
  519. ISL_DECLARE_MULTI_WITH_DOMAIN(pw_aff)
  520. ISL_DECLARE_MULTI_BIND_DOMAIN(pw_aff)
  521. ISL_DECLARE_MULTI_PARAM(pw_aff)
  522. ISL_DECLARE_MULTI_UNBIND_PARAMS(pw_aff)
  523. __isl_export
  524. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_zero(__isl_take isl_space *space);
  525. __isl_overload
  526. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_identity_on_domain_space(
  527. __isl_take isl_space *space);
  528. __isl_export
  529. __isl_give isl_pw_multi_aff *isl_space_identity_pw_multi_aff_on_domain(
  530. __isl_take isl_space *space);
  531. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_identity(
  532. __isl_take isl_space *space);
  533. __isl_export
  534. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_domain_map(
  535. __isl_take isl_space *space);
  536. __isl_export
  537. __isl_give isl_pw_multi_aff *isl_space_domain_map_pw_multi_aff(
  538. __isl_take isl_space *space);
  539. __isl_export
  540. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_range_map(
  541. __isl_take isl_space *space);
  542. __isl_export
  543. __isl_give isl_pw_multi_aff *isl_space_range_map_pw_multi_aff(
  544. __isl_take isl_space *space);
  545. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_project_out_map(
  546. __isl_take isl_space *space, enum isl_dim_type type,
  547. unsigned first, unsigned n);
  548. __isl_export
  549. __isl_give isl_pw_multi_aff *isl_multi_aff_to_pw_multi_aff(
  550. __isl_take isl_multi_aff *ma);
  551. __isl_constructor
  552. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_multi_aff(
  553. __isl_take isl_multi_aff *ma);
  554. __isl_constructor
  555. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_pw_aff(
  556. __isl_take isl_pw_aff *pa);
  557. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_alloc(__isl_take isl_set *set,
  558. __isl_take isl_multi_aff *maff);
  559. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_copy(
  560. __isl_keep isl_pw_multi_aff *pma);
  561. __isl_null isl_pw_multi_aff *isl_pw_multi_aff_free(
  562. __isl_take isl_pw_multi_aff *pma);
  563. isl_size isl_pw_multi_aff_dim(__isl_keep isl_pw_multi_aff *pma,
  564. enum isl_dim_type type);
  565. __isl_export
  566. isl_bool isl_pw_multi_aff_involves_locals(__isl_keep isl_pw_multi_aff *pma);
  567. isl_bool isl_pw_multi_aff_involves_param_id(__isl_keep isl_pw_multi_aff *pma,
  568. __isl_keep isl_id *id);
  569. isl_bool isl_pw_multi_aff_involves_dims(__isl_keep isl_pw_multi_aff *pma,
  570. enum isl_dim_type type, unsigned first, unsigned n);
  571. __isl_export
  572. __isl_give isl_pw_aff *isl_pw_multi_aff_get_at(
  573. __isl_keep isl_pw_multi_aff *pma, int pos);
  574. __isl_give isl_pw_aff *isl_pw_multi_aff_get_pw_aff(
  575. __isl_keep isl_pw_multi_aff *pma, int pos);
  576. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_set_pw_aff(
  577. __isl_take isl_pw_multi_aff *pma, unsigned pos,
  578. __isl_take isl_pw_aff *pa);
  579. isl_ctx *isl_pw_multi_aff_get_ctx(__isl_keep isl_pw_multi_aff *pma);
  580. __isl_give isl_space *isl_pw_multi_aff_get_domain_space(
  581. __isl_keep isl_pw_multi_aff *pma);
  582. __isl_export
  583. __isl_give isl_space *isl_pw_multi_aff_get_space(
  584. __isl_keep isl_pw_multi_aff *pma);
  585. isl_bool isl_pw_multi_aff_has_tuple_name(__isl_keep isl_pw_multi_aff *pma,
  586. enum isl_dim_type type);
  587. const char *isl_pw_multi_aff_get_tuple_name(__isl_keep isl_pw_multi_aff *pma,
  588. enum isl_dim_type type);
  589. __isl_export
  590. __isl_give isl_id *isl_pw_multi_aff_get_range_tuple_id(
  591. __isl_keep isl_pw_multi_aff *pma);
  592. __isl_give isl_id *isl_pw_multi_aff_get_tuple_id(
  593. __isl_keep isl_pw_multi_aff *pma, enum isl_dim_type type);
  594. __isl_export
  595. isl_bool isl_pw_multi_aff_has_range_tuple_id(__isl_keep isl_pw_multi_aff *pma);
  596. isl_bool isl_pw_multi_aff_has_tuple_id(__isl_keep isl_pw_multi_aff *pma,
  597. enum isl_dim_type type);
  598. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_set_tuple_id(
  599. __isl_take isl_pw_multi_aff *pma,
  600. enum isl_dim_type type, __isl_take isl_id *id);
  601. __isl_overload
  602. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_set_range_tuple_id(
  603. __isl_take isl_pw_multi_aff *pma, __isl_take isl_id *id);
  604. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_reset_tuple_id(
  605. __isl_take isl_pw_multi_aff *pma, enum isl_dim_type type);
  606. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_reset_user(
  607. __isl_take isl_pw_multi_aff *pma);
  608. int isl_pw_multi_aff_find_dim_by_name(__isl_keep isl_pw_multi_aff *pma,
  609. enum isl_dim_type type, const char *name);
  610. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_drop_dims(
  611. __isl_take isl_pw_multi_aff *pma,
  612. enum isl_dim_type type, unsigned first, unsigned n);
  613. __isl_export
  614. __isl_give isl_set *isl_pw_multi_aff_domain(__isl_take isl_pw_multi_aff *pma);
  615. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_empty(__isl_take isl_space *space);
  616. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_domain(
  617. __isl_take isl_set *set);
  618. __isl_export
  619. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_multi_val_on_domain(
  620. __isl_take isl_set *domain, __isl_take isl_multi_val *mv);
  621. __isl_overload
  622. __isl_give isl_pw_multi_aff *isl_set_pw_multi_aff_on_domain_multi_val(
  623. __isl_take isl_set *domain, __isl_take isl_multi_val *mv);
  624. const char *isl_pw_multi_aff_get_dim_name(__isl_keep isl_pw_multi_aff *pma,
  625. enum isl_dim_type type, unsigned pos);
  626. __isl_give isl_id *isl_pw_multi_aff_get_dim_id(
  627. __isl_keep isl_pw_multi_aff *pma, enum isl_dim_type type,
  628. unsigned pos);
  629. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_set_dim_id(
  630. __isl_take isl_pw_multi_aff *pma,
  631. enum isl_dim_type type, unsigned pos, __isl_take isl_id *id);
  632. isl_bool isl_pw_multi_aff_involves_nan(__isl_keep isl_pw_multi_aff *pma);
  633. isl_bool isl_pw_multi_aff_plain_is_equal(__isl_keep isl_pw_multi_aff *pma1,
  634. __isl_keep isl_pw_multi_aff *pma2);
  635. isl_bool isl_pw_multi_aff_is_equal(__isl_keep isl_pw_multi_aff *pma1,
  636. __isl_keep isl_pw_multi_aff *pma2);
  637. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_fix_si(
  638. __isl_take isl_pw_multi_aff *pma, enum isl_dim_type type,
  639. unsigned pos, int value);
  640. __isl_export
  641. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_union_add(
  642. __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
  643. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_neg(
  644. __isl_take isl_pw_multi_aff *pma);
  645. __isl_export
  646. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_add(
  647. __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
  648. __isl_export
  649. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_sub(
  650. __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
  651. __isl_overload
  652. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_add_constant_val(
  653. __isl_take isl_pw_multi_aff *pma, __isl_take isl_val *v);
  654. __isl_overload
  655. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_add_constant_multi_val(
  656. __isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_val *mv);
  657. __isl_overload
  658. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_scale_val(
  659. __isl_take isl_pw_multi_aff *pma, __isl_take isl_val *v);
  660. __isl_overload
  661. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_scale_down_val(
  662. __isl_take isl_pw_multi_aff *pma, __isl_take isl_val *v);
  663. __isl_overload
  664. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_scale_multi_val(
  665. __isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_val *mv);
  666. __isl_overload
  667. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_scale_down_multi_val(
  668. __isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_val *mv);
  669. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_union_lexmin(
  670. __isl_take isl_pw_multi_aff *pma1,
  671. __isl_take isl_pw_multi_aff *pma2);
  672. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_union_lexmax(
  673. __isl_take isl_pw_multi_aff *pma1,
  674. __isl_take isl_pw_multi_aff *pma2);
  675. __isl_give isl_multi_aff *isl_multi_aff_flatten_domain(
  676. __isl_take isl_multi_aff *ma);
  677. __isl_export
  678. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_range_product(
  679. __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
  680. __isl_export
  681. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_flat_range_product(
  682. __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
  683. __isl_export
  684. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_product(
  685. __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
  686. __isl_export
  687. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_range_factor_domain(
  688. __isl_take isl_pw_multi_aff *pma);
  689. __isl_export
  690. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_range_factor_range(
  691. __isl_take isl_pw_multi_aff *pma);
  692. __isl_export
  693. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_intersect_params(
  694. __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
  695. __isl_export
  696. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_intersect_domain(
  697. __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
  698. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_intersect_domain_wrapped_domain(
  699. __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
  700. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_intersect_domain_wrapped_range(
  701. __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
  702. __isl_export
  703. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_subtract_domain(
  704. __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
  705. __isl_export
  706. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_insert_domain(
  707. __isl_take isl_pw_multi_aff *pma, __isl_take isl_space *domain);
  708. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_project_domain_on_params(
  709. __isl_take isl_pw_multi_aff *pma);
  710. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_align_params(
  711. __isl_take isl_pw_multi_aff *pma, __isl_take isl_space *model);
  712. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_drop_unused_params(
  713. __isl_take isl_pw_multi_aff *pma);
  714. __isl_export
  715. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_coalesce(
  716. __isl_take isl_pw_multi_aff *pma);
  717. __isl_export
  718. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_gist_params(
  719. __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
  720. __isl_export
  721. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_gist(
  722. __isl_take isl_pw_multi_aff *pma, __isl_take isl_set *set);
  723. __isl_overload
  724. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_pullback_multi_aff(
  725. __isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_aff *ma);
  726. __isl_overload
  727. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_pullback_pw_multi_aff(
  728. __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
  729. __isl_overload
  730. __isl_give isl_pw_multi_aff *
  731. isl_pw_multi_aff_preimage_domain_wrapped_domain_pw_multi_aff(
  732. __isl_take isl_pw_multi_aff *pma1, __isl_take isl_pw_multi_aff *pma2);
  733. __isl_export
  734. isl_size isl_pw_multi_aff_n_piece(__isl_keep isl_pw_multi_aff *pma);
  735. __isl_export
  736. isl_stat isl_pw_multi_aff_foreach_piece(__isl_keep isl_pw_multi_aff *pma,
  737. isl_stat (*fn)(__isl_take isl_set *set, __isl_take isl_multi_aff *maff,
  738. void *user), void *user);
  739. isl_bool isl_pw_multi_aff_every_piece(__isl_keep isl_pw_multi_aff *pma,
  740. isl_bool (*test)(__isl_keep isl_set *set, __isl_keep isl_multi_aff *ma,
  741. void *user), void *user);
  742. __isl_export
  743. isl_bool isl_pw_multi_aff_isa_multi_aff(__isl_keep isl_pw_multi_aff *pma);
  744. __isl_export
  745. __isl_give isl_multi_aff *isl_pw_multi_aff_as_multi_aff(
  746. __isl_take isl_pw_multi_aff *pma);
  747. __isl_export
  748. __isl_give isl_map *isl_pw_multi_aff_as_map(__isl_take isl_pw_multi_aff *pma);
  749. __isl_give isl_map *isl_map_from_pw_multi_aff(__isl_take isl_pw_multi_aff *pma);
  750. __isl_export
  751. __isl_give isl_set *isl_pw_multi_aff_as_set(__isl_take isl_pw_multi_aff *pma);
  752. __isl_give isl_set *isl_set_from_pw_multi_aff(__isl_take isl_pw_multi_aff *pma);
  753. __isl_give char *isl_pw_multi_aff_to_str(__isl_keep isl_pw_multi_aff *pma);
  754. __isl_give isl_printer *isl_printer_print_pw_multi_aff(__isl_take isl_printer *p,
  755. __isl_keep isl_pw_multi_aff *pma);
  756. __isl_export
  757. __isl_give isl_pw_multi_aff *isl_set_as_pw_multi_aff(__isl_take isl_set *set);
  758. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_set(__isl_take isl_set *set);
  759. __isl_export
  760. __isl_give isl_pw_multi_aff *isl_map_as_pw_multi_aff(__isl_take isl_map *map);
  761. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_map(__isl_take isl_map *map);
  762. __isl_export
  763. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_bind_domain(
  764. __isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_id *tuple);
  765. __isl_export
  766. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_bind_domain_wrapped_domain(
  767. __isl_take isl_pw_multi_aff *pma, __isl_take isl_multi_id *tuple);
  768. __isl_constructor
  769. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_read_from_str(isl_ctx *ctx,
  770. const char *str);
  771. void isl_pw_multi_aff_dump(__isl_keep isl_pw_multi_aff *pma);
  772. __isl_overload
  773. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_empty_ctx(
  774. isl_ctx *ctx);
  775. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_empty_space(
  776. __isl_take isl_space *space);
  777. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_empty(
  778. __isl_take isl_space *space);
  779. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_aff(
  780. __isl_take isl_aff *aff);
  781. __isl_constructor
  782. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_multi_aff(
  783. __isl_take isl_multi_aff *ma);
  784. __isl_export
  785. __isl_give isl_union_pw_multi_aff *isl_pw_multi_aff_to_union_pw_multi_aff(
  786. __isl_take isl_pw_multi_aff *pma);
  787. __isl_constructor
  788. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_pw_multi_aff(
  789. __isl_take isl_pw_multi_aff *pma);
  790. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_domain(
  791. __isl_take isl_union_set *uset);
  792. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_multi_val_on_domain(
  793. __isl_take isl_union_set *domain, __isl_take isl_multi_val *mv);
  794. __isl_give isl_union_pw_aff *isl_union_pw_aff_param_on_domain_id(
  795. __isl_take isl_union_set *domain, __isl_take isl_id *id);
  796. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_copy(
  797. __isl_keep isl_union_pw_multi_aff *upma);
  798. __isl_null isl_union_pw_multi_aff *isl_union_pw_multi_aff_free(
  799. __isl_take isl_union_pw_multi_aff *upma);
  800. __isl_give isl_union_pw_multi_aff *isl_union_set_identity_union_pw_multi_aff(
  801. __isl_take isl_union_set *uset);
  802. __isl_give isl_union_pw_aff *isl_union_pw_multi_aff_get_union_pw_aff(
  803. __isl_keep isl_union_pw_multi_aff *upma, int pos);
  804. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_add_pw_multi_aff(
  805. __isl_take isl_union_pw_multi_aff *upma,
  806. __isl_take isl_pw_multi_aff *pma);
  807. isl_ctx *isl_union_pw_multi_aff_get_ctx(
  808. __isl_keep isl_union_pw_multi_aff *upma);
  809. __isl_export
  810. __isl_give isl_space *isl_union_pw_multi_aff_get_space(
  811. __isl_keep isl_union_pw_multi_aff *upma);
  812. __isl_export
  813. __isl_give isl_pw_multi_aff_list *isl_union_pw_multi_aff_get_pw_multi_aff_list(
  814. __isl_keep isl_union_pw_multi_aff *upma);
  815. isl_size isl_union_pw_multi_aff_dim(__isl_keep isl_union_pw_multi_aff *upma,
  816. enum isl_dim_type type);
  817. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_set_dim_name(
  818. __isl_take isl_union_pw_multi_aff *upma,
  819. enum isl_dim_type type, unsigned pos, const char *s);
  820. int isl_union_pw_multi_aff_find_dim_by_name(
  821. __isl_keep isl_union_pw_multi_aff *upma, enum isl_dim_type type,
  822. const char *name);
  823. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_drop_dims(
  824. __isl_take isl_union_pw_multi_aff *upma,
  825. enum isl_dim_type type, unsigned first, unsigned n);
  826. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_reset_user(
  827. __isl_take isl_union_pw_multi_aff *upma);
  828. __isl_export
  829. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_coalesce(
  830. __isl_take isl_union_pw_multi_aff *upma);
  831. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_gist_params(
  832. __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_set *context);
  833. __isl_export
  834. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_gist(
  835. __isl_take isl_union_pw_multi_aff *upma,
  836. __isl_take isl_union_set *context);
  837. __isl_overload
  838. __isl_give isl_union_pw_multi_aff *
  839. isl_union_pw_multi_aff_pullback_union_pw_multi_aff(
  840. __isl_take isl_union_pw_multi_aff *upma1,
  841. __isl_take isl_union_pw_multi_aff *upma2);
  842. __isl_overload
  843. __isl_give isl_union_pw_multi_aff *
  844. isl_union_pw_multi_aff_apply_union_pw_multi_aff(
  845. __isl_take isl_union_pw_multi_aff *upma1,
  846. __isl_take isl_union_pw_multi_aff *upma2);
  847. __isl_overload
  848. __isl_give isl_union_pw_multi_aff *
  849. isl_union_pw_multi_aff_preimage_domain_wrapped_domain_union_pw_multi_aff(
  850. __isl_take isl_union_pw_multi_aff *upma1,
  851. __isl_take isl_union_pw_multi_aff *upma2);
  852. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_align_params(
  853. __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_space *model);
  854. isl_size isl_union_pw_multi_aff_n_pw_multi_aff(
  855. __isl_keep isl_union_pw_multi_aff *upma);
  856. isl_stat isl_union_pw_multi_aff_foreach_pw_multi_aff(
  857. __isl_keep isl_union_pw_multi_aff *upma,
  858. isl_stat (*fn)(__isl_take isl_pw_multi_aff *pma, void *user),
  859. void *user);
  860. isl_bool isl_union_pw_multi_aff_every_pw_multi_aff(
  861. __isl_keep isl_union_pw_multi_aff *upma,
  862. isl_bool (*test)(__isl_keep isl_pw_multi_aff *pma, void *user),
  863. void *user);
  864. __isl_export
  865. __isl_give isl_pw_multi_aff *isl_union_pw_multi_aff_extract_pw_multi_aff(
  866. __isl_keep isl_union_pw_multi_aff *upma, __isl_take isl_space *space);
  867. __isl_export
  868. isl_bool isl_union_pw_multi_aff_isa_pw_multi_aff(
  869. __isl_keep isl_union_pw_multi_aff *upma);
  870. __isl_export
  871. __isl_give isl_pw_multi_aff *isl_union_pw_multi_aff_as_pw_multi_aff(
  872. __isl_take isl_union_pw_multi_aff *upma);
  873. __isl_export
  874. isl_bool isl_union_pw_multi_aff_plain_is_empty(
  875. __isl_keep isl_union_pw_multi_aff *upma);
  876. __isl_export
  877. isl_bool isl_union_pw_multi_aff_involves_locals(
  878. __isl_keep isl_union_pw_multi_aff *upma);
  879. isl_bool isl_union_pw_multi_aff_involves_nan(
  880. __isl_keep isl_union_pw_multi_aff *upma);
  881. isl_bool isl_union_pw_multi_aff_plain_is_equal(
  882. __isl_keep isl_union_pw_multi_aff *upma1,
  883. __isl_keep isl_union_pw_multi_aff *upma2);
  884. __isl_export
  885. __isl_give isl_union_set *isl_union_pw_multi_aff_domain(
  886. __isl_take isl_union_pw_multi_aff *upma);
  887. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_neg(
  888. __isl_take isl_union_pw_multi_aff *upma);
  889. __isl_export
  890. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_add(
  891. __isl_take isl_union_pw_multi_aff *upma1,
  892. __isl_take isl_union_pw_multi_aff *upma2);
  893. __isl_export
  894. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_union_add(
  895. __isl_take isl_union_pw_multi_aff *upma1,
  896. __isl_take isl_union_pw_multi_aff *upma2);
  897. __isl_export
  898. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_sub(
  899. __isl_take isl_union_pw_multi_aff *upma1,
  900. __isl_take isl_union_pw_multi_aff *upma2);
  901. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_scale_val(
  902. __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_val *val);
  903. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_scale_down_val(
  904. __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_val *val);
  905. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_scale_multi_val(
  906. __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_multi_val *mv);
  907. __isl_export
  908. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_range_product(
  909. __isl_take isl_union_pw_multi_aff *upma1,
  910. __isl_take isl_union_pw_multi_aff *upma2);
  911. __isl_export
  912. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_flat_range_product(
  913. __isl_take isl_union_pw_multi_aff *upma1,
  914. __isl_take isl_union_pw_multi_aff *upma2);
  915. __isl_export
  916. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_range_factor_domain(
  917. __isl_take isl_union_pw_multi_aff *upma);
  918. __isl_export
  919. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_range_factor_range(
  920. __isl_take isl_union_pw_multi_aff *upma);
  921. __isl_export
  922. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_intersect_params(
  923. __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_set *set);
  924. __isl_overload
  925. __isl_give isl_union_pw_multi_aff *
  926. isl_union_pw_multi_aff_intersect_domain_union_set(
  927. __isl_take isl_union_pw_multi_aff *upma,
  928. __isl_take isl_union_set *uset);
  929. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_intersect_domain(
  930. __isl_take isl_union_pw_multi_aff *upma,
  931. __isl_take isl_union_set *uset);
  932. __isl_overload
  933. __isl_give isl_union_pw_multi_aff *
  934. isl_union_pw_multi_aff_intersect_domain_space(
  935. __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_space *space);
  936. __isl_export
  937. __isl_give isl_union_pw_multi_aff *
  938. isl_union_pw_multi_aff_intersect_domain_wrapped_domain(
  939. __isl_take isl_union_pw_multi_aff *upma,
  940. __isl_take isl_union_set *uset);
  941. __isl_export
  942. __isl_give isl_union_pw_multi_aff *
  943. isl_union_pw_multi_aff_intersect_domain_wrapped_range(
  944. __isl_take isl_union_pw_multi_aff *upma,
  945. __isl_take isl_union_set *uset);
  946. __isl_overload
  947. __isl_give isl_union_pw_multi_aff *
  948. isl_union_pw_multi_aff_subtract_domain_union_set(
  949. __isl_take isl_union_pw_multi_aff *upma,
  950. __isl_take isl_union_set *uset);
  951. __isl_overload
  952. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_subtract_domain_space(
  953. __isl_take isl_union_pw_multi_aff *upma, __isl_take isl_space *space);
  954. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_subtract_domain(
  955. __isl_take isl_union_pw_multi_aff *upma,
  956. __isl_take isl_union_set *uset);
  957. __isl_export
  958. __isl_give isl_union_map *isl_union_pw_multi_aff_as_union_map(
  959. __isl_take isl_union_pw_multi_aff *upma);
  960. __isl_overload
  961. __isl_give isl_union_map *isl_union_map_from_union_pw_multi_aff(
  962. __isl_take isl_union_pw_multi_aff *upma);
  963. __isl_give isl_printer *isl_printer_print_union_pw_multi_aff(
  964. __isl_take isl_printer *p, __isl_keep isl_union_pw_multi_aff *upma);
  965. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_union_set(
  966. __isl_take isl_union_set *uset);
  967. __isl_export
  968. __isl_give isl_union_pw_multi_aff *isl_union_map_as_union_pw_multi_aff(
  969. __isl_take isl_union_map *umap);
  970. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_union_map(
  971. __isl_take isl_union_map *umap);
  972. __isl_constructor
  973. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_read_from_str(
  974. isl_ctx *ctx, const char *str);
  975. void isl_union_pw_multi_aff_dump(__isl_keep isl_union_pw_multi_aff *upma);
  976. __isl_give char *isl_union_pw_multi_aff_to_str(
  977. __isl_keep isl_union_pw_multi_aff *upma);
  978. uint32_t isl_multi_pw_aff_get_hash(__isl_keep isl_multi_pw_aff *mpa);
  979. __isl_constructor
  980. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_from_aff(__isl_take isl_aff *aff);
  981. __isl_export
  982. __isl_give isl_multi_pw_aff *isl_multi_aff_to_multi_pw_aff(
  983. __isl_take isl_multi_aff *ma);
  984. __isl_constructor
  985. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_from_multi_aff(
  986. __isl_take isl_multi_aff *ma);
  987. __isl_constructor
  988. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_from_pw_aff(
  989. __isl_take isl_pw_aff *pa);
  990. __isl_export
  991. __isl_give isl_set *isl_multi_pw_aff_domain(__isl_take isl_multi_pw_aff *mpa);
  992. __isl_export
  993. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_intersect_params(
  994. __isl_take isl_multi_pw_aff *mpa, __isl_take isl_set *set);
  995. __isl_export
  996. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_intersect_domain(
  997. __isl_take isl_multi_pw_aff *mpa, __isl_take isl_set *domain);
  998. __isl_export
  999. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_coalesce(
  1000. __isl_take isl_multi_pw_aff *mpa);
  1001. __isl_export
  1002. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_gist(
  1003. __isl_take isl_multi_pw_aff *mpa, __isl_take isl_set *set);
  1004. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_gist_params(
  1005. __isl_take isl_multi_pw_aff *mpa, __isl_take isl_set *set);
  1006. isl_bool isl_multi_pw_aff_is_cst(__isl_keep isl_multi_pw_aff *mpa);
  1007. isl_bool isl_multi_pw_aff_is_equal(__isl_keep isl_multi_pw_aff *mpa1,
  1008. __isl_keep isl_multi_pw_aff *mpa2);
  1009. __isl_overload
  1010. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_pullback_multi_aff(
  1011. __isl_take isl_multi_pw_aff *mpa, __isl_take isl_multi_aff *ma);
  1012. __isl_overload
  1013. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_pullback_pw_multi_aff(
  1014. __isl_take isl_multi_pw_aff *mpa, __isl_take isl_pw_multi_aff *pma);
  1015. __isl_overload
  1016. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_pullback_multi_pw_aff(
  1017. __isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2);
  1018. __isl_export
  1019. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_union_add(
  1020. __isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2);
  1021. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_move_dims(
  1022. __isl_take isl_multi_pw_aff *pma,
  1023. enum isl_dim_type dst_type, unsigned dst_pos,
  1024. enum isl_dim_type src_type, unsigned src_pos, unsigned n);
  1025. __isl_export
  1026. isl_bool isl_multi_pw_aff_isa_multi_aff(__isl_keep isl_multi_pw_aff *mpa);
  1027. __isl_export
  1028. __isl_give isl_multi_aff *isl_multi_pw_aff_as_multi_aff(
  1029. __isl_take isl_multi_pw_aff *mpa);
  1030. __isl_export
  1031. __isl_give isl_set *isl_multi_pw_aff_as_set(__isl_take isl_multi_pw_aff *mpa);
  1032. __isl_give isl_set *isl_set_from_multi_pw_aff(__isl_take isl_multi_pw_aff *mpa);
  1033. __isl_export
  1034. __isl_give isl_map *isl_multi_pw_aff_as_map(__isl_take isl_multi_pw_aff *mpa);
  1035. __isl_give isl_map *isl_map_from_multi_pw_aff(__isl_take isl_multi_pw_aff *mpa);
  1036. __isl_give isl_pw_multi_aff *isl_pw_multi_aff_from_multi_pw_aff(
  1037. __isl_take isl_multi_pw_aff *mpa);
  1038. __isl_export
  1039. __isl_give isl_multi_pw_aff *isl_pw_multi_aff_to_multi_pw_aff(
  1040. __isl_take isl_pw_multi_aff *pma);
  1041. __isl_constructor
  1042. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_from_pw_multi_aff(
  1043. __isl_take isl_pw_multi_aff *pma);
  1044. __isl_give isl_map *isl_multi_pw_aff_eq_map(__isl_take isl_multi_pw_aff *mpa1,
  1045. __isl_take isl_multi_pw_aff *mpa2);
  1046. __isl_give isl_map *isl_multi_pw_aff_lex_le_map(
  1047. __isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2);
  1048. __isl_give isl_map *isl_multi_pw_aff_lex_lt_map(
  1049. __isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2);
  1050. __isl_give isl_map *isl_multi_pw_aff_lex_ge_map(
  1051. __isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2);
  1052. __isl_give isl_map *isl_multi_pw_aff_lex_gt_map(
  1053. __isl_take isl_multi_pw_aff *mpa1, __isl_take isl_multi_pw_aff *mpa2);
  1054. __isl_export
  1055. __isl_give isl_set *isl_multi_pw_aff_bind(__isl_take isl_multi_pw_aff *mpa,
  1056. __isl_take isl_multi_id *tuple);
  1057. __isl_constructor
  1058. __isl_give isl_multi_pw_aff *isl_multi_pw_aff_read_from_str(isl_ctx *ctx,
  1059. const char *str);
  1060. __isl_give char *isl_multi_pw_aff_to_str(__isl_keep isl_multi_pw_aff *mpa);
  1061. __isl_give isl_printer *isl_printer_print_multi_pw_aff(
  1062. __isl_take isl_printer *p, __isl_keep isl_multi_pw_aff *mpa);
  1063. void isl_multi_pw_aff_dump(__isl_keep isl_multi_pw_aff *mpa);
  1064. __isl_give isl_union_pw_aff *isl_union_pw_aff_copy(
  1065. __isl_keep isl_union_pw_aff *upa);
  1066. __isl_null isl_union_pw_aff *isl_union_pw_aff_free(
  1067. __isl_take isl_union_pw_aff *upa);
  1068. isl_ctx *isl_union_pw_aff_get_ctx(__isl_keep isl_union_pw_aff *upa);
  1069. __isl_export
  1070. __isl_give isl_space *isl_union_pw_aff_get_space(
  1071. __isl_keep isl_union_pw_aff *upa);
  1072. __isl_give isl_pw_aff_list *isl_union_pw_aff_get_pw_aff_list(
  1073. __isl_keep isl_union_pw_aff *upa);
  1074. isl_size isl_union_pw_aff_dim(__isl_keep isl_union_pw_aff *upa,
  1075. enum isl_dim_type type);
  1076. __isl_give isl_union_pw_aff *isl_union_pw_aff_set_dim_name(
  1077. __isl_take isl_union_pw_aff *upa, enum isl_dim_type type,
  1078. unsigned pos, const char *s);
  1079. int isl_union_pw_aff_find_dim_by_name(__isl_keep isl_union_pw_aff *upa,
  1080. enum isl_dim_type type, const char *name);
  1081. __isl_give isl_union_pw_aff *isl_union_pw_aff_drop_dims(
  1082. __isl_take isl_union_pw_aff *upa,
  1083. enum isl_dim_type type, unsigned first, unsigned n);
  1084. __isl_give isl_union_pw_aff *isl_union_pw_aff_reset_user(
  1085. __isl_take isl_union_pw_aff *upa);
  1086. __isl_give isl_union_pw_aff *isl_union_pw_aff_empty_ctx(isl_ctx *ctx);
  1087. __isl_give isl_union_pw_aff *isl_union_pw_aff_empty_space(
  1088. __isl_take isl_space *space);
  1089. __isl_give isl_union_pw_aff *isl_union_pw_aff_empty(
  1090. __isl_take isl_space *space);
  1091. __isl_constructor
  1092. __isl_give isl_union_pw_aff *isl_union_pw_aff_from_aff(__isl_take isl_aff *aff);
  1093. __isl_export
  1094. __isl_give isl_union_pw_aff *isl_pw_aff_to_union_pw_aff(
  1095. __isl_take isl_pw_aff *pa);
  1096. __isl_constructor
  1097. __isl_give isl_union_pw_aff *isl_union_pw_aff_from_pw_aff(
  1098. __isl_take isl_pw_aff *pa);
  1099. __isl_give isl_union_pw_aff *isl_union_pw_aff_val_on_domain(
  1100. __isl_take isl_union_set *domain, __isl_take isl_val *v);
  1101. __isl_give isl_union_pw_aff *isl_union_pw_aff_aff_on_domain(
  1102. __isl_take isl_union_set *domain, __isl_take isl_aff *aff);
  1103. __isl_give isl_union_pw_aff *isl_union_pw_aff_pw_aff_on_domain(
  1104. __isl_take isl_union_set *domain, __isl_take isl_pw_aff *pa);
  1105. __isl_give isl_union_pw_aff *isl_union_pw_aff_add_pw_aff(
  1106. __isl_take isl_union_pw_aff *upa, __isl_take isl_pw_aff *pa);
  1107. __isl_constructor
  1108. __isl_give isl_union_pw_multi_aff *isl_union_pw_multi_aff_from_union_pw_aff(
  1109. __isl_take isl_union_pw_aff *upa);
  1110. isl_size isl_union_pw_aff_n_pw_aff(__isl_keep isl_union_pw_aff *upa);
  1111. isl_stat isl_union_pw_aff_foreach_pw_aff(__isl_keep isl_union_pw_aff *upa,
  1112. isl_stat (*fn)(__isl_take isl_pw_aff *pa, void *user), void *user);
  1113. isl_bool isl_union_pw_aff_every_pw_aff(__isl_keep isl_union_pw_aff *upa,
  1114. isl_bool (*test)(__isl_keep isl_pw_aff *pa, void *user), void *user);
  1115. __isl_give isl_pw_aff *isl_union_pw_aff_extract_pw_aff(
  1116. __isl_keep isl_union_pw_aff *upa, __isl_take isl_space *space);
  1117. isl_bool isl_union_pw_aff_involves_nan(__isl_keep isl_union_pw_aff *upa);
  1118. isl_bool isl_union_pw_aff_plain_is_equal(__isl_keep isl_union_pw_aff *upa1,
  1119. __isl_keep isl_union_pw_aff *upa2);
  1120. __isl_export
  1121. __isl_give isl_union_set *isl_union_pw_aff_domain(
  1122. __isl_take isl_union_pw_aff *upa);
  1123. __isl_give isl_union_pw_aff *isl_union_pw_aff_neg(
  1124. __isl_take isl_union_pw_aff *upa);
  1125. __isl_export
  1126. __isl_give isl_union_pw_aff *isl_union_pw_aff_add(
  1127. __isl_take isl_union_pw_aff *upa1, __isl_take isl_union_pw_aff *upa2);
  1128. __isl_export
  1129. __isl_give isl_union_pw_aff *isl_union_pw_aff_union_add(
  1130. __isl_take isl_union_pw_aff *upa1, __isl_take isl_union_pw_aff *upa2);
  1131. __isl_export
  1132. __isl_give isl_union_pw_aff *isl_union_pw_aff_sub(
  1133. __isl_take isl_union_pw_aff *upa1, __isl_take isl_union_pw_aff *upa2);
  1134. __isl_export
  1135. __isl_give isl_union_pw_aff *isl_union_pw_aff_coalesce(
  1136. __isl_take isl_union_pw_aff *upa);
  1137. __isl_export
  1138. __isl_give isl_union_pw_aff *isl_union_pw_aff_gist(
  1139. __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *context);
  1140. __isl_give isl_union_pw_aff *isl_union_pw_aff_gist_params(
  1141. __isl_take isl_union_pw_aff *upa, __isl_take isl_set *context);
  1142. __isl_overload
  1143. __isl_give isl_union_pw_aff *isl_union_pw_aff_pullback_union_pw_multi_aff(
  1144. __isl_take isl_union_pw_aff *upa,
  1145. __isl_take isl_union_pw_multi_aff *upma);
  1146. __isl_give isl_union_pw_aff *isl_union_pw_aff_floor(
  1147. __isl_take isl_union_pw_aff *upa);
  1148. __isl_give isl_union_pw_aff *isl_union_pw_aff_scale_val(
  1149. __isl_take isl_union_pw_aff *upa, __isl_take isl_val *v);
  1150. __isl_give isl_union_pw_aff *isl_union_pw_aff_scale_down_val(
  1151. __isl_take isl_union_pw_aff *upa, __isl_take isl_val *v);
  1152. __isl_give isl_union_pw_aff *isl_union_pw_aff_mod_val(
  1153. __isl_take isl_union_pw_aff *upa, __isl_take isl_val *f);
  1154. __isl_give isl_union_pw_aff *isl_union_pw_aff_align_params(
  1155. __isl_take isl_union_pw_aff *upa, __isl_take isl_space *model);
  1156. __isl_export
  1157. __isl_give isl_union_pw_aff *isl_union_pw_aff_intersect_params(
  1158. __isl_take isl_union_pw_aff *upa, __isl_take isl_set *set);
  1159. __isl_overload
  1160. __isl_give isl_union_pw_aff *isl_union_pw_aff_intersect_domain_space(
  1161. __isl_take isl_union_pw_aff *upa, __isl_take isl_space *space);
  1162. __isl_overload
  1163. __isl_give isl_union_pw_aff *isl_union_pw_aff_intersect_domain_union_set(
  1164. __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *uset);
  1165. __isl_give isl_union_pw_aff *isl_union_pw_aff_intersect_domain(
  1166. __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *uset);
  1167. __isl_export
  1168. __isl_give isl_union_pw_aff *isl_union_pw_aff_intersect_domain_wrapped_domain(
  1169. __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *uset);
  1170. __isl_export
  1171. __isl_give isl_union_pw_aff *isl_union_pw_aff_intersect_domain_wrapped_range(
  1172. __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *uset);
  1173. __isl_overload
  1174. __isl_give isl_union_pw_aff *isl_union_pw_aff_subtract_domain_union_set(
  1175. __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *uset);
  1176. __isl_overload
  1177. __isl_give isl_union_pw_aff *isl_union_pw_aff_subtract_domain_space(
  1178. __isl_take isl_union_pw_aff *upa, __isl_take isl_space *space);
  1179. __isl_give isl_union_pw_aff *isl_union_pw_aff_subtract_domain(
  1180. __isl_take isl_union_pw_aff *upa, __isl_take isl_union_set *uset);
  1181. __isl_give isl_union_pw_aff *isl_union_pw_aff_set_dim_name(
  1182. __isl_take isl_union_pw_aff *upa,
  1183. enum isl_dim_type type, unsigned pos, const char *s);
  1184. __isl_give isl_union_set *isl_union_pw_aff_zero_union_set(
  1185. __isl_take isl_union_pw_aff *upa);
  1186. __isl_give isl_union_map *isl_union_map_from_union_pw_aff(
  1187. __isl_take isl_union_pw_aff *upa);
  1188. __isl_overload
  1189. __isl_give isl_union_set *isl_union_pw_aff_bind_id(
  1190. __isl_take isl_union_pw_aff *upa, __isl_take isl_id *id);
  1191. __isl_constructor
  1192. __isl_give isl_union_pw_aff *isl_union_pw_aff_read_from_str(isl_ctx *ctx,
  1193. const char *str);
  1194. __isl_give char *isl_union_pw_aff_to_str(__isl_keep isl_union_pw_aff *upa);
  1195. __isl_give isl_printer *isl_printer_print_union_pw_aff(
  1196. __isl_take isl_printer *p, __isl_keep isl_union_pw_aff *upa);
  1197. void isl_union_pw_aff_dump(__isl_keep isl_union_pw_aff *upa);
  1198. ISL_DECLARE_MULTI(union_pw_aff)
  1199. ISL_DECLARE_MULTI_ARITH(union_pw_aff)
  1200. ISL_DECLARE_MULTI_ZERO(union_pw_aff)
  1201. ISL_DECLARE_MULTI_NAN(union_pw_aff)
  1202. ISL_DECLARE_MULTI_DROP_DIMS(union_pw_aff)
  1203. ISL_DECLARE_MULTI_DIM_ID(union_pw_aff)
  1204. ISL_DECLARE_MULTI_TUPLE_ID(union_pw_aff)
  1205. __isl_export
  1206. __isl_give isl_multi_union_pw_aff *isl_multi_aff_to_multi_union_pw_aff(
  1207. __isl_take isl_multi_aff *ma);
  1208. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_from_multi_aff(
  1209. __isl_take isl_multi_aff *ma);
  1210. __isl_constructor
  1211. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_from_union_pw_aff(
  1212. __isl_take isl_union_pw_aff *upa);
  1213. __isl_constructor
  1214. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_from_multi_pw_aff(
  1215. __isl_take isl_multi_pw_aff *mpa);
  1216. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_multi_val_on_domain(
  1217. __isl_take isl_union_set *domain, __isl_take isl_multi_val *mv);
  1218. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_multi_aff_on_domain(
  1219. __isl_take isl_union_set *domain, __isl_take isl_multi_aff *ma);
  1220. __isl_give isl_multi_union_pw_aff *
  1221. isl_multi_union_pw_aff_pw_multi_aff_on_domain(__isl_take isl_union_set *domain,
  1222. __isl_take isl_pw_multi_aff *pma);
  1223. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_floor(
  1224. __isl_take isl_multi_union_pw_aff *mupa);
  1225. __isl_export
  1226. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_intersect_domain(
  1227. __isl_take isl_multi_union_pw_aff *mupa,
  1228. __isl_take isl_union_set *uset);
  1229. __isl_export
  1230. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_intersect_params(
  1231. __isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_set *params);
  1232. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_intersect_range(
  1233. __isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_set *set);
  1234. __isl_export
  1235. __isl_give isl_union_set *isl_multi_union_pw_aff_domain(
  1236. __isl_take isl_multi_union_pw_aff *mupa);
  1237. __isl_export
  1238. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_coalesce(
  1239. __isl_take isl_multi_union_pw_aff *mupa);
  1240. __isl_export
  1241. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_gist(
  1242. __isl_take isl_multi_union_pw_aff *mupa,
  1243. __isl_take isl_union_set *context);
  1244. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_gist_params(
  1245. __isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_set *context);
  1246. __isl_give isl_union_pw_aff *isl_multi_union_pw_aff_apply_aff(
  1247. __isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_aff *aff);
  1248. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_apply_multi_aff(
  1249. __isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_multi_aff *ma);
  1250. __isl_give isl_union_pw_aff *isl_multi_union_pw_aff_apply_pw_aff(
  1251. __isl_take isl_multi_union_pw_aff *mupa, __isl_take isl_pw_aff *pa);
  1252. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_apply_pw_multi_aff(
  1253. __isl_take isl_multi_union_pw_aff *mupa,
  1254. __isl_take isl_pw_multi_aff *pma);
  1255. __isl_overload
  1256. __isl_give isl_multi_union_pw_aff *
  1257. isl_multi_union_pw_aff_pullback_union_pw_multi_aff(
  1258. __isl_take isl_multi_union_pw_aff *mupa,
  1259. __isl_take isl_union_pw_multi_aff *upma);
  1260. __isl_give isl_union_pw_multi_aff *
  1261. isl_union_pw_multi_aff_from_multi_union_pw_aff(
  1262. __isl_take isl_multi_union_pw_aff *mupa);
  1263. __isl_export
  1264. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_union_add(
  1265. __isl_take isl_multi_union_pw_aff *mupa1,
  1266. __isl_take isl_multi_union_pw_aff *mupa2);
  1267. __isl_export
  1268. __isl_give isl_multi_union_pw_aff *
  1269. isl_union_pw_multi_aff_as_multi_union_pw_aff(
  1270. __isl_take isl_union_pw_multi_aff *upma);
  1271. __isl_give isl_multi_union_pw_aff *
  1272. isl_multi_union_pw_aff_from_union_pw_multi_aff(
  1273. __isl_take isl_union_pw_multi_aff *upma);
  1274. __isl_export
  1275. __isl_give isl_multi_union_pw_aff *isl_union_map_as_multi_union_pw_aff(
  1276. __isl_take isl_union_map *umap);
  1277. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_from_union_map(
  1278. __isl_take isl_union_map *umap);
  1279. __isl_overload
  1280. __isl_give isl_union_map *isl_union_map_from_multi_union_pw_aff(
  1281. __isl_take isl_multi_union_pw_aff *mupa);
  1282. __isl_give isl_union_set *isl_multi_union_pw_aff_zero_union_set(
  1283. __isl_take isl_multi_union_pw_aff *mupa);
  1284. __isl_export
  1285. __isl_give isl_union_set *isl_multi_union_pw_aff_bind(
  1286. __isl_take isl_multi_union_pw_aff *mupa,
  1287. __isl_take isl_multi_id *tuple);
  1288. __isl_give isl_multi_pw_aff *isl_multi_union_pw_aff_extract_multi_pw_aff(
  1289. __isl_keep isl_multi_union_pw_aff *mupa, __isl_take isl_space *space);
  1290. __isl_constructor
  1291. __isl_give isl_multi_union_pw_aff *isl_multi_union_pw_aff_read_from_str(
  1292. isl_ctx *ctx, const char *str);
  1293. __isl_give char *isl_multi_union_pw_aff_to_str(
  1294. __isl_keep isl_multi_union_pw_aff *mupa);
  1295. __isl_give isl_printer *isl_printer_print_multi_union_pw_aff(
  1296. __isl_take isl_printer *p, __isl_keep isl_multi_union_pw_aff *mupa);
  1297. void isl_multi_union_pw_aff_dump(__isl_keep isl_multi_union_pw_aff *mupa);
  1298. ISL_DECLARE_EXPORTED_LIST_FN(aff)
  1299. ISL_DECLARE_EXPORTED_LIST_FN_READ(aff)
  1300. ISL_DECLARE_EXPORTED_LIST_FN(pw_aff)
  1301. ISL_DECLARE_EXPORTED_LIST_FN_READ(pw_aff)
  1302. ISL_DECLARE_EXPORTED_LIST_FN(pw_multi_aff)
  1303. ISL_DECLARE_EXPORTED_LIST_FN_READ(pw_multi_aff)
  1304. ISL_DECLARE_EXPORTED_LIST_FN(union_pw_aff)
  1305. ISL_DECLARE_EXPORTED_LIST_FN_READ(union_pw_aff)
  1306. ISL_DECLARE_LIST_FN(union_pw_multi_aff)
  1307. #if defined(__cplusplus)
  1308. }
  1309. #endif
  1310. #endif