1isl_dlname='libisl.so.22' 2import os 3from ctypes import * 4from ctypes.util import find_library 5 6isl_dyld_library_path = os.environ.get('ISL_DYLD_LIBRARY_PATH') 7if isl_dyld_library_path != None: 8 os.environ['DYLD_LIBRARY_PATH'] = isl_dyld_library_path 9try: 10 isl = cdll.LoadLibrary(isl_dlname) 11except: 12 isl = cdll.LoadLibrary(find_library("isl")) 13libc = cdll.LoadLibrary(find_library("c")) 14 15class Error(Exception): 16 pass 17 18class Context: 19 defaultInstance = None 20 21 def __init__(self): 22 ptr = isl.isl_ctx_alloc() 23 self.ptr = ptr 24 25 def __del__(self): 26 isl.isl_ctx_free(self) 27 28 def from_param(self): 29 return c_void_p(self.ptr) 30 31 @staticmethod 32 def getDefaultInstance(): 33 if Context.defaultInstance == None: 34 Context.defaultInstance = Context() 35 return Context.defaultInstance 36 37isl.isl_ctx_alloc.restype = c_void_p 38isl.isl_ctx_free.argtypes = [Context] 39 40class union_pw_multi_aff(object): 41 def __init__(self, *args, **keywords): 42 if "ptr" in keywords: 43 self.ctx = keywords["ctx"] 44 self.ptr = keywords["ptr"] 45 return 46 if len(args) == 1 and args[0].__class__ is multi_aff: 47 self.ctx = Context.getDefaultInstance() 48 self.ptr = isl.isl_union_pw_multi_aff_from_multi_aff(isl.isl_multi_aff_copy(args[0].ptr)) 49 return 50 if len(args) == 1 and args[0].__class__ is pw_multi_aff: 51 self.ctx = Context.getDefaultInstance() 52 self.ptr = isl.isl_union_pw_multi_aff_from_pw_multi_aff(isl.isl_pw_multi_aff_copy(args[0].ptr)) 53 return 54 if len(args) == 1 and args[0].__class__ is union_pw_aff: 55 self.ctx = Context.getDefaultInstance() 56 self.ptr = isl.isl_union_pw_multi_aff_from_union_pw_aff(isl.isl_union_pw_aff_copy(args[0].ptr)) 57 return 58 if len(args) == 1 and type(args[0]) == str: 59 self.ctx = Context.getDefaultInstance() 60 self.ptr = isl.isl_union_pw_multi_aff_read_from_str(self.ctx, args[0].encode('ascii')) 61 return 62 raise Error 63 def __del__(self): 64 if hasattr(self, 'ptr'): 65 isl.isl_union_pw_multi_aff_free(self.ptr) 66 def __str__(arg0): 67 try: 68 if not arg0.__class__ is union_pw_multi_aff: 69 arg0 = union_pw_multi_aff(arg0) 70 except: 71 raise 72 ptr = isl.isl_union_pw_multi_aff_to_str(arg0.ptr) 73 res = cast(ptr, c_char_p).value.decode('ascii') 74 libc.free(ptr) 75 return res 76 def __repr__(self): 77 s = str(self) 78 if '"' in s: 79 return 'isl.union_pw_multi_aff("""%s""")' % s 80 else: 81 return 'isl.union_pw_multi_aff("%s")' % s 82 def add(arg0, arg1): 83 try: 84 if not arg0.__class__ is union_pw_multi_aff: 85 arg0 = union_pw_multi_aff(arg0) 86 except: 87 raise 88 try: 89 if not arg1.__class__ is union_pw_multi_aff: 90 arg1 = union_pw_multi_aff(arg1) 91 except: 92 raise 93 ctx = arg0.ctx 94 res = isl.isl_union_pw_multi_aff_add(isl.isl_union_pw_multi_aff_copy(arg0.ptr), isl.isl_union_pw_multi_aff_copy(arg1.ptr)) 95 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 96 return obj 97 def apply(*args): 98 if len(args) == 2 and args[1].__class__ is union_pw_multi_aff: 99 ctx = args[0].ctx 100 res = isl.isl_union_pw_multi_aff_apply_union_pw_multi_aff(isl.isl_union_pw_multi_aff_copy(args[0].ptr), isl.isl_union_pw_multi_aff_copy(args[1].ptr)) 101 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 102 return obj 103 raise Error 104 def as_pw_multi_aff(arg0): 105 try: 106 if not arg0.__class__ is union_pw_multi_aff: 107 arg0 = union_pw_multi_aff(arg0) 108 except: 109 raise 110 ctx = arg0.ctx 111 res = isl.isl_union_pw_multi_aff_as_pw_multi_aff(isl.isl_union_pw_multi_aff_copy(arg0.ptr)) 112 obj = pw_multi_aff(ctx=ctx, ptr=res) 113 return obj 114 def coalesce(arg0): 115 try: 116 if not arg0.__class__ is union_pw_multi_aff: 117 arg0 = union_pw_multi_aff(arg0) 118 except: 119 raise 120 ctx = arg0.ctx 121 res = isl.isl_union_pw_multi_aff_coalesce(isl.isl_union_pw_multi_aff_copy(arg0.ptr)) 122 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 123 return obj 124 def domain(arg0): 125 try: 126 if not arg0.__class__ is union_pw_multi_aff: 127 arg0 = union_pw_multi_aff(arg0) 128 except: 129 raise 130 ctx = arg0.ctx 131 res = isl.isl_union_pw_multi_aff_domain(isl.isl_union_pw_multi_aff_copy(arg0.ptr)) 132 obj = union_set(ctx=ctx, ptr=res) 133 return obj 134 @staticmethod 135 def empty(*args): 136 if len(args) == 0: 137 ctx = Context.getDefaultInstance() 138 res = isl.isl_union_pw_multi_aff_empty_ctx(ctx) 139 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 140 return obj 141 raise Error 142 def extract_pw_multi_aff(arg0, arg1): 143 try: 144 if not arg0.__class__ is union_pw_multi_aff: 145 arg0 = union_pw_multi_aff(arg0) 146 except: 147 raise 148 try: 149 if not arg1.__class__ is space: 150 arg1 = space(arg1) 151 except: 152 raise 153 ctx = arg0.ctx 154 res = isl.isl_union_pw_multi_aff_extract_pw_multi_aff(arg0.ptr, isl.isl_space_copy(arg1.ptr)) 155 obj = pw_multi_aff(ctx=ctx, ptr=res) 156 return obj 157 def flat_range_product(arg0, arg1): 158 try: 159 if not arg0.__class__ is union_pw_multi_aff: 160 arg0 = union_pw_multi_aff(arg0) 161 except: 162 raise 163 try: 164 if not arg1.__class__ is union_pw_multi_aff: 165 arg1 = union_pw_multi_aff(arg1) 166 except: 167 raise 168 ctx = arg0.ctx 169 res = isl.isl_union_pw_multi_aff_flat_range_product(isl.isl_union_pw_multi_aff_copy(arg0.ptr), isl.isl_union_pw_multi_aff_copy(arg1.ptr)) 170 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 171 return obj 172 def space(arg0): 173 try: 174 if not arg0.__class__ is union_pw_multi_aff: 175 arg0 = union_pw_multi_aff(arg0) 176 except: 177 raise 178 ctx = arg0.ctx 179 res = isl.isl_union_pw_multi_aff_get_space(arg0.ptr) 180 obj = space(ctx=ctx, ptr=res) 181 return obj 182 def get_space(arg0): 183 return arg0.space() 184 def gist(arg0, arg1): 185 try: 186 if not arg0.__class__ is union_pw_multi_aff: 187 arg0 = union_pw_multi_aff(arg0) 188 except: 189 raise 190 try: 191 if not arg1.__class__ is union_set: 192 arg1 = union_set(arg1) 193 except: 194 raise 195 ctx = arg0.ctx 196 res = isl.isl_union_pw_multi_aff_gist(isl.isl_union_pw_multi_aff_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 197 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 198 return obj 199 def intersect_domain(*args): 200 if len(args) == 2 and args[1].__class__ is space: 201 ctx = args[0].ctx 202 res = isl.isl_union_pw_multi_aff_intersect_domain_space(isl.isl_union_pw_multi_aff_copy(args[0].ptr), isl.isl_space_copy(args[1].ptr)) 203 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 204 return obj 205 if len(args) == 2 and args[1].__class__ is union_set: 206 ctx = args[0].ctx 207 res = isl.isl_union_pw_multi_aff_intersect_domain_union_set(isl.isl_union_pw_multi_aff_copy(args[0].ptr), isl.isl_union_set_copy(args[1].ptr)) 208 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 209 return obj 210 raise Error 211 def intersect_domain_wrapped_domain(arg0, arg1): 212 try: 213 if not arg0.__class__ is union_pw_multi_aff: 214 arg0 = union_pw_multi_aff(arg0) 215 except: 216 raise 217 try: 218 if not arg1.__class__ is union_set: 219 arg1 = union_set(arg1) 220 except: 221 raise 222 ctx = arg0.ctx 223 res = isl.isl_union_pw_multi_aff_intersect_domain_wrapped_domain(isl.isl_union_pw_multi_aff_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 224 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 225 return obj 226 def intersect_domain_wrapped_range(arg0, arg1): 227 try: 228 if not arg0.__class__ is union_pw_multi_aff: 229 arg0 = union_pw_multi_aff(arg0) 230 except: 231 raise 232 try: 233 if not arg1.__class__ is union_set: 234 arg1 = union_set(arg1) 235 except: 236 raise 237 ctx = arg0.ctx 238 res = isl.isl_union_pw_multi_aff_intersect_domain_wrapped_range(isl.isl_union_pw_multi_aff_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 239 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 240 return obj 241 def intersect_params(arg0, arg1): 242 try: 243 if not arg0.__class__ is union_pw_multi_aff: 244 arg0 = union_pw_multi_aff(arg0) 245 except: 246 raise 247 try: 248 if not arg1.__class__ is set: 249 arg1 = set(arg1) 250 except: 251 raise 252 ctx = arg0.ctx 253 res = isl.isl_union_pw_multi_aff_intersect_params(isl.isl_union_pw_multi_aff_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 254 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 255 return obj 256 def involves_locals(arg0): 257 try: 258 if not arg0.__class__ is union_pw_multi_aff: 259 arg0 = union_pw_multi_aff(arg0) 260 except: 261 raise 262 ctx = arg0.ctx 263 res = isl.isl_union_pw_multi_aff_involves_locals(arg0.ptr) 264 if res < 0: 265 raise 266 return bool(res) 267 def isa_pw_multi_aff(arg0): 268 try: 269 if not arg0.__class__ is union_pw_multi_aff: 270 arg0 = union_pw_multi_aff(arg0) 271 except: 272 raise 273 ctx = arg0.ctx 274 res = isl.isl_union_pw_multi_aff_isa_pw_multi_aff(arg0.ptr) 275 if res < 0: 276 raise 277 return bool(res) 278 def plain_is_empty(arg0): 279 try: 280 if not arg0.__class__ is union_pw_multi_aff: 281 arg0 = union_pw_multi_aff(arg0) 282 except: 283 raise 284 ctx = arg0.ctx 285 res = isl.isl_union_pw_multi_aff_plain_is_empty(arg0.ptr) 286 if res < 0: 287 raise 288 return bool(res) 289 def pullback(*args): 290 if len(args) == 2 and args[1].__class__ is union_pw_multi_aff: 291 ctx = args[0].ctx 292 res = isl.isl_union_pw_multi_aff_pullback_union_pw_multi_aff(isl.isl_union_pw_multi_aff_copy(args[0].ptr), isl.isl_union_pw_multi_aff_copy(args[1].ptr)) 293 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 294 return obj 295 raise Error 296 def range_factor_domain(arg0): 297 try: 298 if not arg0.__class__ is union_pw_multi_aff: 299 arg0 = union_pw_multi_aff(arg0) 300 except: 301 raise 302 ctx = arg0.ctx 303 res = isl.isl_union_pw_multi_aff_range_factor_domain(isl.isl_union_pw_multi_aff_copy(arg0.ptr)) 304 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 305 return obj 306 def range_factor_range(arg0): 307 try: 308 if not arg0.__class__ is union_pw_multi_aff: 309 arg0 = union_pw_multi_aff(arg0) 310 except: 311 raise 312 ctx = arg0.ctx 313 res = isl.isl_union_pw_multi_aff_range_factor_range(isl.isl_union_pw_multi_aff_copy(arg0.ptr)) 314 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 315 return obj 316 def range_product(arg0, arg1): 317 try: 318 if not arg0.__class__ is union_pw_multi_aff: 319 arg0 = union_pw_multi_aff(arg0) 320 except: 321 raise 322 try: 323 if not arg1.__class__ is union_pw_multi_aff: 324 arg1 = union_pw_multi_aff(arg1) 325 except: 326 raise 327 ctx = arg0.ctx 328 res = isl.isl_union_pw_multi_aff_range_product(isl.isl_union_pw_multi_aff_copy(arg0.ptr), isl.isl_union_pw_multi_aff_copy(arg1.ptr)) 329 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 330 return obj 331 def sub(arg0, arg1): 332 try: 333 if not arg0.__class__ is union_pw_multi_aff: 334 arg0 = union_pw_multi_aff(arg0) 335 except: 336 raise 337 try: 338 if not arg1.__class__ is union_pw_multi_aff: 339 arg1 = union_pw_multi_aff(arg1) 340 except: 341 raise 342 ctx = arg0.ctx 343 res = isl.isl_union_pw_multi_aff_sub(isl.isl_union_pw_multi_aff_copy(arg0.ptr), isl.isl_union_pw_multi_aff_copy(arg1.ptr)) 344 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 345 return obj 346 def subtract_domain(*args): 347 if len(args) == 2 and args[1].__class__ is space: 348 ctx = args[0].ctx 349 res = isl.isl_union_pw_multi_aff_subtract_domain_space(isl.isl_union_pw_multi_aff_copy(args[0].ptr), isl.isl_space_copy(args[1].ptr)) 350 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 351 return obj 352 if len(args) == 2 and args[1].__class__ is union_set: 353 ctx = args[0].ctx 354 res = isl.isl_union_pw_multi_aff_subtract_domain_union_set(isl.isl_union_pw_multi_aff_copy(args[0].ptr), isl.isl_union_set_copy(args[1].ptr)) 355 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 356 return obj 357 raise Error 358 def union_add(arg0, arg1): 359 try: 360 if not arg0.__class__ is union_pw_multi_aff: 361 arg0 = union_pw_multi_aff(arg0) 362 except: 363 raise 364 try: 365 if not arg1.__class__ is union_pw_multi_aff: 366 arg1 = union_pw_multi_aff(arg1) 367 except: 368 raise 369 ctx = arg0.ctx 370 res = isl.isl_union_pw_multi_aff_union_add(isl.isl_union_pw_multi_aff_copy(arg0.ptr), isl.isl_union_pw_multi_aff_copy(arg1.ptr)) 371 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 372 return obj 373 374isl.isl_union_pw_multi_aff_from_multi_aff.restype = c_void_p 375isl.isl_union_pw_multi_aff_from_multi_aff.argtypes = [c_void_p] 376isl.isl_union_pw_multi_aff_from_pw_multi_aff.restype = c_void_p 377isl.isl_union_pw_multi_aff_from_pw_multi_aff.argtypes = [c_void_p] 378isl.isl_union_pw_multi_aff_from_union_pw_aff.restype = c_void_p 379isl.isl_union_pw_multi_aff_from_union_pw_aff.argtypes = [c_void_p] 380isl.isl_union_pw_multi_aff_read_from_str.restype = c_void_p 381isl.isl_union_pw_multi_aff_read_from_str.argtypes = [Context, c_char_p] 382isl.isl_union_pw_multi_aff_add.restype = c_void_p 383isl.isl_union_pw_multi_aff_add.argtypes = [c_void_p, c_void_p] 384isl.isl_union_pw_multi_aff_apply_union_pw_multi_aff.restype = c_void_p 385isl.isl_union_pw_multi_aff_apply_union_pw_multi_aff.argtypes = [c_void_p, c_void_p] 386isl.isl_union_pw_multi_aff_as_pw_multi_aff.restype = c_void_p 387isl.isl_union_pw_multi_aff_as_pw_multi_aff.argtypes = [c_void_p] 388isl.isl_union_pw_multi_aff_coalesce.restype = c_void_p 389isl.isl_union_pw_multi_aff_coalesce.argtypes = [c_void_p] 390isl.isl_union_pw_multi_aff_domain.restype = c_void_p 391isl.isl_union_pw_multi_aff_domain.argtypes = [c_void_p] 392isl.isl_union_pw_multi_aff_empty_ctx.restype = c_void_p 393isl.isl_union_pw_multi_aff_empty_ctx.argtypes = [Context] 394isl.isl_union_pw_multi_aff_extract_pw_multi_aff.restype = c_void_p 395isl.isl_union_pw_multi_aff_extract_pw_multi_aff.argtypes = [c_void_p, c_void_p] 396isl.isl_union_pw_multi_aff_flat_range_product.restype = c_void_p 397isl.isl_union_pw_multi_aff_flat_range_product.argtypes = [c_void_p, c_void_p] 398isl.isl_union_pw_multi_aff_get_space.restype = c_void_p 399isl.isl_union_pw_multi_aff_get_space.argtypes = [c_void_p] 400isl.isl_union_pw_multi_aff_gist.restype = c_void_p 401isl.isl_union_pw_multi_aff_gist.argtypes = [c_void_p, c_void_p] 402isl.isl_union_pw_multi_aff_intersect_domain_space.restype = c_void_p 403isl.isl_union_pw_multi_aff_intersect_domain_space.argtypes = [c_void_p, c_void_p] 404isl.isl_union_pw_multi_aff_intersect_domain_union_set.restype = c_void_p 405isl.isl_union_pw_multi_aff_intersect_domain_union_set.argtypes = [c_void_p, c_void_p] 406isl.isl_union_pw_multi_aff_intersect_domain_wrapped_domain.restype = c_void_p 407isl.isl_union_pw_multi_aff_intersect_domain_wrapped_domain.argtypes = [c_void_p, c_void_p] 408isl.isl_union_pw_multi_aff_intersect_domain_wrapped_range.restype = c_void_p 409isl.isl_union_pw_multi_aff_intersect_domain_wrapped_range.argtypes = [c_void_p, c_void_p] 410isl.isl_union_pw_multi_aff_intersect_params.restype = c_void_p 411isl.isl_union_pw_multi_aff_intersect_params.argtypes = [c_void_p, c_void_p] 412isl.isl_union_pw_multi_aff_involves_locals.argtypes = [c_void_p] 413isl.isl_union_pw_multi_aff_isa_pw_multi_aff.argtypes = [c_void_p] 414isl.isl_union_pw_multi_aff_plain_is_empty.argtypes = [c_void_p] 415isl.isl_union_pw_multi_aff_pullback_union_pw_multi_aff.restype = c_void_p 416isl.isl_union_pw_multi_aff_pullback_union_pw_multi_aff.argtypes = [c_void_p, c_void_p] 417isl.isl_union_pw_multi_aff_range_factor_domain.restype = c_void_p 418isl.isl_union_pw_multi_aff_range_factor_domain.argtypes = [c_void_p] 419isl.isl_union_pw_multi_aff_range_factor_range.restype = c_void_p 420isl.isl_union_pw_multi_aff_range_factor_range.argtypes = [c_void_p] 421isl.isl_union_pw_multi_aff_range_product.restype = c_void_p 422isl.isl_union_pw_multi_aff_range_product.argtypes = [c_void_p, c_void_p] 423isl.isl_union_pw_multi_aff_sub.restype = c_void_p 424isl.isl_union_pw_multi_aff_sub.argtypes = [c_void_p, c_void_p] 425isl.isl_union_pw_multi_aff_subtract_domain_space.restype = c_void_p 426isl.isl_union_pw_multi_aff_subtract_domain_space.argtypes = [c_void_p, c_void_p] 427isl.isl_union_pw_multi_aff_subtract_domain_union_set.restype = c_void_p 428isl.isl_union_pw_multi_aff_subtract_domain_union_set.argtypes = [c_void_p, c_void_p] 429isl.isl_union_pw_multi_aff_union_add.restype = c_void_p 430isl.isl_union_pw_multi_aff_union_add.argtypes = [c_void_p, c_void_p] 431isl.isl_union_pw_multi_aff_copy.restype = c_void_p 432isl.isl_union_pw_multi_aff_copy.argtypes = [c_void_p] 433isl.isl_union_pw_multi_aff_free.restype = c_void_p 434isl.isl_union_pw_multi_aff_free.argtypes = [c_void_p] 435isl.isl_union_pw_multi_aff_to_str.restype = POINTER(c_char) 436isl.isl_union_pw_multi_aff_to_str.argtypes = [c_void_p] 437 438class multi_union_pw_aff(object): 439 def __init__(self, *args, **keywords): 440 if "ptr" in keywords: 441 self.ctx = keywords["ctx"] 442 self.ptr = keywords["ptr"] 443 return 444 if len(args) == 1 and args[0].__class__ is multi_pw_aff: 445 self.ctx = Context.getDefaultInstance() 446 self.ptr = isl.isl_multi_union_pw_aff_from_multi_pw_aff(isl.isl_multi_pw_aff_copy(args[0].ptr)) 447 return 448 if len(args) == 1 and args[0].__class__ is union_pw_aff: 449 self.ctx = Context.getDefaultInstance() 450 self.ptr = isl.isl_multi_union_pw_aff_from_union_pw_aff(isl.isl_union_pw_aff_copy(args[0].ptr)) 451 return 452 if len(args) == 2 and args[0].__class__ is space and args[1].__class__ is union_pw_aff_list: 453 self.ctx = Context.getDefaultInstance() 454 self.ptr = isl.isl_multi_union_pw_aff_from_union_pw_aff_list(isl.isl_space_copy(args[0].ptr), isl.isl_union_pw_aff_list_copy(args[1].ptr)) 455 return 456 if len(args) == 1 and type(args[0]) == str: 457 self.ctx = Context.getDefaultInstance() 458 self.ptr = isl.isl_multi_union_pw_aff_read_from_str(self.ctx, args[0].encode('ascii')) 459 return 460 raise Error 461 def __del__(self): 462 if hasattr(self, 'ptr'): 463 isl.isl_multi_union_pw_aff_free(self.ptr) 464 def __str__(arg0): 465 try: 466 if not arg0.__class__ is multi_union_pw_aff: 467 arg0 = multi_union_pw_aff(arg0) 468 except: 469 raise 470 ptr = isl.isl_multi_union_pw_aff_to_str(arg0.ptr) 471 res = cast(ptr, c_char_p).value.decode('ascii') 472 libc.free(ptr) 473 return res 474 def __repr__(self): 475 s = str(self) 476 if '"' in s: 477 return 'isl.multi_union_pw_aff("""%s""")' % s 478 else: 479 return 'isl.multi_union_pw_aff("%s")' % s 480 def add(arg0, arg1): 481 try: 482 if not arg0.__class__ is multi_union_pw_aff: 483 arg0 = multi_union_pw_aff(arg0) 484 except: 485 raise 486 try: 487 if not arg1.__class__ is multi_union_pw_aff: 488 arg1 = multi_union_pw_aff(arg1) 489 except: 490 raise 491 ctx = arg0.ctx 492 res = isl.isl_multi_union_pw_aff_add(isl.isl_multi_union_pw_aff_copy(arg0.ptr), isl.isl_multi_union_pw_aff_copy(arg1.ptr)) 493 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 494 return obj 495 def bind(arg0, arg1): 496 try: 497 if not arg0.__class__ is multi_union_pw_aff: 498 arg0 = multi_union_pw_aff(arg0) 499 except: 500 raise 501 try: 502 if not arg1.__class__ is multi_id: 503 arg1 = multi_id(arg1) 504 except: 505 raise 506 ctx = arg0.ctx 507 res = isl.isl_multi_union_pw_aff_bind(isl.isl_multi_union_pw_aff_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 508 obj = union_set(ctx=ctx, ptr=res) 509 return obj 510 def coalesce(arg0): 511 try: 512 if not arg0.__class__ is multi_union_pw_aff: 513 arg0 = multi_union_pw_aff(arg0) 514 except: 515 raise 516 ctx = arg0.ctx 517 res = isl.isl_multi_union_pw_aff_coalesce(isl.isl_multi_union_pw_aff_copy(arg0.ptr)) 518 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 519 return obj 520 def domain(arg0): 521 try: 522 if not arg0.__class__ is multi_union_pw_aff: 523 arg0 = multi_union_pw_aff(arg0) 524 except: 525 raise 526 ctx = arg0.ctx 527 res = isl.isl_multi_union_pw_aff_domain(isl.isl_multi_union_pw_aff_copy(arg0.ptr)) 528 obj = union_set(ctx=ctx, ptr=res) 529 return obj 530 def flat_range_product(arg0, arg1): 531 try: 532 if not arg0.__class__ is multi_union_pw_aff: 533 arg0 = multi_union_pw_aff(arg0) 534 except: 535 raise 536 try: 537 if not arg1.__class__ is multi_union_pw_aff: 538 arg1 = multi_union_pw_aff(arg1) 539 except: 540 raise 541 ctx = arg0.ctx 542 res = isl.isl_multi_union_pw_aff_flat_range_product(isl.isl_multi_union_pw_aff_copy(arg0.ptr), isl.isl_multi_union_pw_aff_copy(arg1.ptr)) 543 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 544 return obj 545 def at(arg0, arg1): 546 try: 547 if not arg0.__class__ is multi_union_pw_aff: 548 arg0 = multi_union_pw_aff(arg0) 549 except: 550 raise 551 ctx = arg0.ctx 552 res = isl.isl_multi_union_pw_aff_get_at(arg0.ptr, arg1) 553 obj = union_pw_aff(ctx=ctx, ptr=res) 554 return obj 555 def get_at(arg0, arg1): 556 return arg0.at(arg1) 557 def list(arg0): 558 try: 559 if not arg0.__class__ is multi_union_pw_aff: 560 arg0 = multi_union_pw_aff(arg0) 561 except: 562 raise 563 ctx = arg0.ctx 564 res = isl.isl_multi_union_pw_aff_get_list(arg0.ptr) 565 obj = union_pw_aff_list(ctx=ctx, ptr=res) 566 return obj 567 def get_list(arg0): 568 return arg0.list() 569 def space(arg0): 570 try: 571 if not arg0.__class__ is multi_union_pw_aff: 572 arg0 = multi_union_pw_aff(arg0) 573 except: 574 raise 575 ctx = arg0.ctx 576 res = isl.isl_multi_union_pw_aff_get_space(arg0.ptr) 577 obj = space(ctx=ctx, ptr=res) 578 return obj 579 def get_space(arg0): 580 return arg0.space() 581 def gist(arg0, arg1): 582 try: 583 if not arg0.__class__ is multi_union_pw_aff: 584 arg0 = multi_union_pw_aff(arg0) 585 except: 586 raise 587 try: 588 if not arg1.__class__ is union_set: 589 arg1 = union_set(arg1) 590 except: 591 raise 592 ctx = arg0.ctx 593 res = isl.isl_multi_union_pw_aff_gist(isl.isl_multi_union_pw_aff_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 594 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 595 return obj 596 def intersect_domain(arg0, arg1): 597 try: 598 if not arg0.__class__ is multi_union_pw_aff: 599 arg0 = multi_union_pw_aff(arg0) 600 except: 601 raise 602 try: 603 if not arg1.__class__ is union_set: 604 arg1 = union_set(arg1) 605 except: 606 raise 607 ctx = arg0.ctx 608 res = isl.isl_multi_union_pw_aff_intersect_domain(isl.isl_multi_union_pw_aff_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 609 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 610 return obj 611 def intersect_params(arg0, arg1): 612 try: 613 if not arg0.__class__ is multi_union_pw_aff: 614 arg0 = multi_union_pw_aff(arg0) 615 except: 616 raise 617 try: 618 if not arg1.__class__ is set: 619 arg1 = set(arg1) 620 except: 621 raise 622 ctx = arg0.ctx 623 res = isl.isl_multi_union_pw_aff_intersect_params(isl.isl_multi_union_pw_aff_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 624 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 625 return obj 626 def neg(arg0): 627 try: 628 if not arg0.__class__ is multi_union_pw_aff: 629 arg0 = multi_union_pw_aff(arg0) 630 except: 631 raise 632 ctx = arg0.ctx 633 res = isl.isl_multi_union_pw_aff_neg(isl.isl_multi_union_pw_aff_copy(arg0.ptr)) 634 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 635 return obj 636 def plain_is_equal(arg0, arg1): 637 try: 638 if not arg0.__class__ is multi_union_pw_aff: 639 arg0 = multi_union_pw_aff(arg0) 640 except: 641 raise 642 try: 643 if not arg1.__class__ is multi_union_pw_aff: 644 arg1 = multi_union_pw_aff(arg1) 645 except: 646 raise 647 ctx = arg0.ctx 648 res = isl.isl_multi_union_pw_aff_plain_is_equal(arg0.ptr, arg1.ptr) 649 if res < 0: 650 raise 651 return bool(res) 652 def pullback(*args): 653 if len(args) == 2 and args[1].__class__ is union_pw_multi_aff: 654 ctx = args[0].ctx 655 res = isl.isl_multi_union_pw_aff_pullback_union_pw_multi_aff(isl.isl_multi_union_pw_aff_copy(args[0].ptr), isl.isl_union_pw_multi_aff_copy(args[1].ptr)) 656 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 657 return obj 658 raise Error 659 def range_product(arg0, arg1): 660 try: 661 if not arg0.__class__ is multi_union_pw_aff: 662 arg0 = multi_union_pw_aff(arg0) 663 except: 664 raise 665 try: 666 if not arg1.__class__ is multi_union_pw_aff: 667 arg1 = multi_union_pw_aff(arg1) 668 except: 669 raise 670 ctx = arg0.ctx 671 res = isl.isl_multi_union_pw_aff_range_product(isl.isl_multi_union_pw_aff_copy(arg0.ptr), isl.isl_multi_union_pw_aff_copy(arg1.ptr)) 672 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 673 return obj 674 def scale(*args): 675 if len(args) == 2 and args[1].__class__ is multi_val: 676 ctx = args[0].ctx 677 res = isl.isl_multi_union_pw_aff_scale_multi_val(isl.isl_multi_union_pw_aff_copy(args[0].ptr), isl.isl_multi_val_copy(args[1].ptr)) 678 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 679 return obj 680 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 681 args = list(args) 682 try: 683 if not args[1].__class__ is val: 684 args[1] = val(args[1]) 685 except: 686 raise 687 ctx = args[0].ctx 688 res = isl.isl_multi_union_pw_aff_scale_val(isl.isl_multi_union_pw_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 689 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 690 return obj 691 raise Error 692 def scale_down(*args): 693 if len(args) == 2 and args[1].__class__ is multi_val: 694 ctx = args[0].ctx 695 res = isl.isl_multi_union_pw_aff_scale_down_multi_val(isl.isl_multi_union_pw_aff_copy(args[0].ptr), isl.isl_multi_val_copy(args[1].ptr)) 696 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 697 return obj 698 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 699 args = list(args) 700 try: 701 if not args[1].__class__ is val: 702 args[1] = val(args[1]) 703 except: 704 raise 705 ctx = args[0].ctx 706 res = isl.isl_multi_union_pw_aff_scale_down_val(isl.isl_multi_union_pw_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 707 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 708 return obj 709 raise Error 710 def set_at(arg0, arg1, arg2): 711 try: 712 if not arg0.__class__ is multi_union_pw_aff: 713 arg0 = multi_union_pw_aff(arg0) 714 except: 715 raise 716 try: 717 if not arg2.__class__ is union_pw_aff: 718 arg2 = union_pw_aff(arg2) 719 except: 720 raise 721 ctx = arg0.ctx 722 res = isl.isl_multi_union_pw_aff_set_at(isl.isl_multi_union_pw_aff_copy(arg0.ptr), arg1, isl.isl_union_pw_aff_copy(arg2.ptr)) 723 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 724 return obj 725 def size(arg0): 726 try: 727 if not arg0.__class__ is multi_union_pw_aff: 728 arg0 = multi_union_pw_aff(arg0) 729 except: 730 raise 731 ctx = arg0.ctx 732 res = isl.isl_multi_union_pw_aff_size(arg0.ptr) 733 if res < 0: 734 raise 735 return int(res) 736 def sub(arg0, arg1): 737 try: 738 if not arg0.__class__ is multi_union_pw_aff: 739 arg0 = multi_union_pw_aff(arg0) 740 except: 741 raise 742 try: 743 if not arg1.__class__ is multi_union_pw_aff: 744 arg1 = multi_union_pw_aff(arg1) 745 except: 746 raise 747 ctx = arg0.ctx 748 res = isl.isl_multi_union_pw_aff_sub(isl.isl_multi_union_pw_aff_copy(arg0.ptr), isl.isl_multi_union_pw_aff_copy(arg1.ptr)) 749 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 750 return obj 751 def union_add(arg0, arg1): 752 try: 753 if not arg0.__class__ is multi_union_pw_aff: 754 arg0 = multi_union_pw_aff(arg0) 755 except: 756 raise 757 try: 758 if not arg1.__class__ is multi_union_pw_aff: 759 arg1 = multi_union_pw_aff(arg1) 760 except: 761 raise 762 ctx = arg0.ctx 763 res = isl.isl_multi_union_pw_aff_union_add(isl.isl_multi_union_pw_aff_copy(arg0.ptr), isl.isl_multi_union_pw_aff_copy(arg1.ptr)) 764 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 765 return obj 766 @staticmethod 767 def zero(arg0): 768 try: 769 if not arg0.__class__ is space: 770 arg0 = space(arg0) 771 except: 772 raise 773 ctx = arg0.ctx 774 res = isl.isl_multi_union_pw_aff_zero(isl.isl_space_copy(arg0.ptr)) 775 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 776 return obj 777 778isl.isl_multi_union_pw_aff_from_multi_pw_aff.restype = c_void_p 779isl.isl_multi_union_pw_aff_from_multi_pw_aff.argtypes = [c_void_p] 780isl.isl_multi_union_pw_aff_from_union_pw_aff.restype = c_void_p 781isl.isl_multi_union_pw_aff_from_union_pw_aff.argtypes = [c_void_p] 782isl.isl_multi_union_pw_aff_from_union_pw_aff_list.restype = c_void_p 783isl.isl_multi_union_pw_aff_from_union_pw_aff_list.argtypes = [c_void_p, c_void_p] 784isl.isl_multi_union_pw_aff_read_from_str.restype = c_void_p 785isl.isl_multi_union_pw_aff_read_from_str.argtypes = [Context, c_char_p] 786isl.isl_multi_union_pw_aff_add.restype = c_void_p 787isl.isl_multi_union_pw_aff_add.argtypes = [c_void_p, c_void_p] 788isl.isl_multi_union_pw_aff_bind.restype = c_void_p 789isl.isl_multi_union_pw_aff_bind.argtypes = [c_void_p, c_void_p] 790isl.isl_multi_union_pw_aff_coalesce.restype = c_void_p 791isl.isl_multi_union_pw_aff_coalesce.argtypes = [c_void_p] 792isl.isl_multi_union_pw_aff_domain.restype = c_void_p 793isl.isl_multi_union_pw_aff_domain.argtypes = [c_void_p] 794isl.isl_multi_union_pw_aff_flat_range_product.restype = c_void_p 795isl.isl_multi_union_pw_aff_flat_range_product.argtypes = [c_void_p, c_void_p] 796isl.isl_multi_union_pw_aff_get_at.restype = c_void_p 797isl.isl_multi_union_pw_aff_get_at.argtypes = [c_void_p, c_int] 798isl.isl_multi_union_pw_aff_get_list.restype = c_void_p 799isl.isl_multi_union_pw_aff_get_list.argtypes = [c_void_p] 800isl.isl_multi_union_pw_aff_get_space.restype = c_void_p 801isl.isl_multi_union_pw_aff_get_space.argtypes = [c_void_p] 802isl.isl_multi_union_pw_aff_gist.restype = c_void_p 803isl.isl_multi_union_pw_aff_gist.argtypes = [c_void_p, c_void_p] 804isl.isl_multi_union_pw_aff_intersect_domain.restype = c_void_p 805isl.isl_multi_union_pw_aff_intersect_domain.argtypes = [c_void_p, c_void_p] 806isl.isl_multi_union_pw_aff_intersect_params.restype = c_void_p 807isl.isl_multi_union_pw_aff_intersect_params.argtypes = [c_void_p, c_void_p] 808isl.isl_multi_union_pw_aff_neg.restype = c_void_p 809isl.isl_multi_union_pw_aff_neg.argtypes = [c_void_p] 810isl.isl_multi_union_pw_aff_plain_is_equal.argtypes = [c_void_p, c_void_p] 811isl.isl_multi_union_pw_aff_pullback_union_pw_multi_aff.restype = c_void_p 812isl.isl_multi_union_pw_aff_pullback_union_pw_multi_aff.argtypes = [c_void_p, c_void_p] 813isl.isl_multi_union_pw_aff_range_product.restype = c_void_p 814isl.isl_multi_union_pw_aff_range_product.argtypes = [c_void_p, c_void_p] 815isl.isl_multi_union_pw_aff_scale_multi_val.restype = c_void_p 816isl.isl_multi_union_pw_aff_scale_multi_val.argtypes = [c_void_p, c_void_p] 817isl.isl_multi_union_pw_aff_scale_val.restype = c_void_p 818isl.isl_multi_union_pw_aff_scale_val.argtypes = [c_void_p, c_void_p] 819isl.isl_multi_union_pw_aff_scale_down_multi_val.restype = c_void_p 820isl.isl_multi_union_pw_aff_scale_down_multi_val.argtypes = [c_void_p, c_void_p] 821isl.isl_multi_union_pw_aff_scale_down_val.restype = c_void_p 822isl.isl_multi_union_pw_aff_scale_down_val.argtypes = [c_void_p, c_void_p] 823isl.isl_multi_union_pw_aff_set_at.restype = c_void_p 824isl.isl_multi_union_pw_aff_set_at.argtypes = [c_void_p, c_int, c_void_p] 825isl.isl_multi_union_pw_aff_size.argtypes = [c_void_p] 826isl.isl_multi_union_pw_aff_sub.restype = c_void_p 827isl.isl_multi_union_pw_aff_sub.argtypes = [c_void_p, c_void_p] 828isl.isl_multi_union_pw_aff_union_add.restype = c_void_p 829isl.isl_multi_union_pw_aff_union_add.argtypes = [c_void_p, c_void_p] 830isl.isl_multi_union_pw_aff_zero.restype = c_void_p 831isl.isl_multi_union_pw_aff_zero.argtypes = [c_void_p] 832isl.isl_multi_union_pw_aff_copy.restype = c_void_p 833isl.isl_multi_union_pw_aff_copy.argtypes = [c_void_p] 834isl.isl_multi_union_pw_aff_free.restype = c_void_p 835isl.isl_multi_union_pw_aff_free.argtypes = [c_void_p] 836isl.isl_multi_union_pw_aff_to_str.restype = POINTER(c_char) 837isl.isl_multi_union_pw_aff_to_str.argtypes = [c_void_p] 838 839class union_pw_aff(union_pw_multi_aff, multi_union_pw_aff): 840 def __init__(self, *args, **keywords): 841 if "ptr" in keywords: 842 self.ctx = keywords["ctx"] 843 self.ptr = keywords["ptr"] 844 return 845 if len(args) == 1 and args[0].__class__ is aff: 846 self.ctx = Context.getDefaultInstance() 847 self.ptr = isl.isl_union_pw_aff_from_aff(isl.isl_aff_copy(args[0].ptr)) 848 return 849 if len(args) == 1 and args[0].__class__ is pw_aff: 850 self.ctx = Context.getDefaultInstance() 851 self.ptr = isl.isl_union_pw_aff_from_pw_aff(isl.isl_pw_aff_copy(args[0].ptr)) 852 return 853 if len(args) == 1 and type(args[0]) == str: 854 self.ctx = Context.getDefaultInstance() 855 self.ptr = isl.isl_union_pw_aff_read_from_str(self.ctx, args[0].encode('ascii')) 856 return 857 raise Error 858 def __del__(self): 859 if hasattr(self, 'ptr'): 860 isl.isl_union_pw_aff_free(self.ptr) 861 def __str__(arg0): 862 try: 863 if not arg0.__class__ is union_pw_aff: 864 arg0 = union_pw_aff(arg0) 865 except: 866 raise 867 ptr = isl.isl_union_pw_aff_to_str(arg0.ptr) 868 res = cast(ptr, c_char_p).value.decode('ascii') 869 libc.free(ptr) 870 return res 871 def __repr__(self): 872 s = str(self) 873 if '"' in s: 874 return 'isl.union_pw_aff("""%s""")' % s 875 else: 876 return 'isl.union_pw_aff("%s")' % s 877 def add(arg0, arg1): 878 try: 879 if not arg0.__class__ is union_pw_aff: 880 arg0 = union_pw_aff(arg0) 881 except: 882 raise 883 try: 884 if not arg1.__class__ is union_pw_aff: 885 arg1 = union_pw_aff(arg1) 886 except: 887 return union_pw_multi_aff(arg0).add(arg1) 888 ctx = arg0.ctx 889 res = isl.isl_union_pw_aff_add(isl.isl_union_pw_aff_copy(arg0.ptr), isl.isl_union_pw_aff_copy(arg1.ptr)) 890 obj = union_pw_aff(ctx=ctx, ptr=res) 891 return obj 892 def bind(*args): 893 if len(args) == 2 and (args[1].__class__ is id or type(args[1]) == str): 894 args = list(args) 895 try: 896 if not args[1].__class__ is id: 897 args[1] = id(args[1]) 898 except: 899 raise 900 ctx = args[0].ctx 901 res = isl.isl_union_pw_aff_bind_id(isl.isl_union_pw_aff_copy(args[0].ptr), isl.isl_id_copy(args[1].ptr)) 902 obj = union_set(ctx=ctx, ptr=res) 903 return obj 904 raise Error 905 def coalesce(arg0): 906 try: 907 if not arg0.__class__ is union_pw_aff: 908 arg0 = union_pw_aff(arg0) 909 except: 910 raise 911 ctx = arg0.ctx 912 res = isl.isl_union_pw_aff_coalesce(isl.isl_union_pw_aff_copy(arg0.ptr)) 913 obj = union_pw_aff(ctx=ctx, ptr=res) 914 return obj 915 def domain(arg0): 916 try: 917 if not arg0.__class__ is union_pw_aff: 918 arg0 = union_pw_aff(arg0) 919 except: 920 raise 921 ctx = arg0.ctx 922 res = isl.isl_union_pw_aff_domain(isl.isl_union_pw_aff_copy(arg0.ptr)) 923 obj = union_set(ctx=ctx, ptr=res) 924 return obj 925 def space(arg0): 926 try: 927 if not arg0.__class__ is union_pw_aff: 928 arg0 = union_pw_aff(arg0) 929 except: 930 raise 931 ctx = arg0.ctx 932 res = isl.isl_union_pw_aff_get_space(arg0.ptr) 933 obj = space(ctx=ctx, ptr=res) 934 return obj 935 def get_space(arg0): 936 return arg0.space() 937 def gist(arg0, arg1): 938 try: 939 if not arg0.__class__ is union_pw_aff: 940 arg0 = union_pw_aff(arg0) 941 except: 942 raise 943 try: 944 if not arg1.__class__ is union_set: 945 arg1 = union_set(arg1) 946 except: 947 return union_pw_multi_aff(arg0).gist(arg1) 948 ctx = arg0.ctx 949 res = isl.isl_union_pw_aff_gist(isl.isl_union_pw_aff_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 950 obj = union_pw_aff(ctx=ctx, ptr=res) 951 return obj 952 def intersect_domain(*args): 953 if len(args) == 2 and args[1].__class__ is space: 954 ctx = args[0].ctx 955 res = isl.isl_union_pw_aff_intersect_domain_space(isl.isl_union_pw_aff_copy(args[0].ptr), isl.isl_space_copy(args[1].ptr)) 956 obj = union_pw_aff(ctx=ctx, ptr=res) 957 return obj 958 if len(args) == 2 and args[1].__class__ is union_set: 959 ctx = args[0].ctx 960 res = isl.isl_union_pw_aff_intersect_domain_union_set(isl.isl_union_pw_aff_copy(args[0].ptr), isl.isl_union_set_copy(args[1].ptr)) 961 obj = union_pw_aff(ctx=ctx, ptr=res) 962 return obj 963 raise Error 964 def intersect_domain_wrapped_domain(arg0, arg1): 965 try: 966 if not arg0.__class__ is union_pw_aff: 967 arg0 = union_pw_aff(arg0) 968 except: 969 raise 970 try: 971 if not arg1.__class__ is union_set: 972 arg1 = union_set(arg1) 973 except: 974 return union_pw_multi_aff(arg0).intersect_domain_wrapped_domain(arg1) 975 ctx = arg0.ctx 976 res = isl.isl_union_pw_aff_intersect_domain_wrapped_domain(isl.isl_union_pw_aff_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 977 obj = union_pw_aff(ctx=ctx, ptr=res) 978 return obj 979 def intersect_domain_wrapped_range(arg0, arg1): 980 try: 981 if not arg0.__class__ is union_pw_aff: 982 arg0 = union_pw_aff(arg0) 983 except: 984 raise 985 try: 986 if not arg1.__class__ is union_set: 987 arg1 = union_set(arg1) 988 except: 989 return union_pw_multi_aff(arg0).intersect_domain_wrapped_range(arg1) 990 ctx = arg0.ctx 991 res = isl.isl_union_pw_aff_intersect_domain_wrapped_range(isl.isl_union_pw_aff_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 992 obj = union_pw_aff(ctx=ctx, ptr=res) 993 return obj 994 def intersect_params(arg0, arg1): 995 try: 996 if not arg0.__class__ is union_pw_aff: 997 arg0 = union_pw_aff(arg0) 998 except: 999 raise 1000 try: 1001 if not arg1.__class__ is set: 1002 arg1 = set(arg1) 1003 except: 1004 return union_pw_multi_aff(arg0).intersect_params(arg1) 1005 ctx = arg0.ctx 1006 res = isl.isl_union_pw_aff_intersect_params(isl.isl_union_pw_aff_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 1007 obj = union_pw_aff(ctx=ctx, ptr=res) 1008 return obj 1009 def pullback(*args): 1010 if len(args) == 2 and args[1].__class__ is union_pw_multi_aff: 1011 ctx = args[0].ctx 1012 res = isl.isl_union_pw_aff_pullback_union_pw_multi_aff(isl.isl_union_pw_aff_copy(args[0].ptr), isl.isl_union_pw_multi_aff_copy(args[1].ptr)) 1013 obj = union_pw_aff(ctx=ctx, ptr=res) 1014 return obj 1015 raise Error 1016 def sub(arg0, arg1): 1017 try: 1018 if not arg0.__class__ is union_pw_aff: 1019 arg0 = union_pw_aff(arg0) 1020 except: 1021 raise 1022 try: 1023 if not arg1.__class__ is union_pw_aff: 1024 arg1 = union_pw_aff(arg1) 1025 except: 1026 return union_pw_multi_aff(arg0).sub(arg1) 1027 ctx = arg0.ctx 1028 res = isl.isl_union_pw_aff_sub(isl.isl_union_pw_aff_copy(arg0.ptr), isl.isl_union_pw_aff_copy(arg1.ptr)) 1029 obj = union_pw_aff(ctx=ctx, ptr=res) 1030 return obj 1031 def subtract_domain(*args): 1032 if len(args) == 2 and args[1].__class__ is space: 1033 ctx = args[0].ctx 1034 res = isl.isl_union_pw_aff_subtract_domain_space(isl.isl_union_pw_aff_copy(args[0].ptr), isl.isl_space_copy(args[1].ptr)) 1035 obj = union_pw_aff(ctx=ctx, ptr=res) 1036 return obj 1037 if len(args) == 2 and args[1].__class__ is union_set: 1038 ctx = args[0].ctx 1039 res = isl.isl_union_pw_aff_subtract_domain_union_set(isl.isl_union_pw_aff_copy(args[0].ptr), isl.isl_union_set_copy(args[1].ptr)) 1040 obj = union_pw_aff(ctx=ctx, ptr=res) 1041 return obj 1042 raise Error 1043 def union_add(arg0, arg1): 1044 try: 1045 if not arg0.__class__ is union_pw_aff: 1046 arg0 = union_pw_aff(arg0) 1047 except: 1048 raise 1049 try: 1050 if not arg1.__class__ is union_pw_aff: 1051 arg1 = union_pw_aff(arg1) 1052 except: 1053 return union_pw_multi_aff(arg0).union_add(arg1) 1054 ctx = arg0.ctx 1055 res = isl.isl_union_pw_aff_union_add(isl.isl_union_pw_aff_copy(arg0.ptr), isl.isl_union_pw_aff_copy(arg1.ptr)) 1056 obj = union_pw_aff(ctx=ctx, ptr=res) 1057 return obj 1058 1059isl.isl_union_pw_aff_from_aff.restype = c_void_p 1060isl.isl_union_pw_aff_from_aff.argtypes = [c_void_p] 1061isl.isl_union_pw_aff_from_pw_aff.restype = c_void_p 1062isl.isl_union_pw_aff_from_pw_aff.argtypes = [c_void_p] 1063isl.isl_union_pw_aff_read_from_str.restype = c_void_p 1064isl.isl_union_pw_aff_read_from_str.argtypes = [Context, c_char_p] 1065isl.isl_union_pw_aff_add.restype = c_void_p 1066isl.isl_union_pw_aff_add.argtypes = [c_void_p, c_void_p] 1067isl.isl_union_pw_aff_bind_id.restype = c_void_p 1068isl.isl_union_pw_aff_bind_id.argtypes = [c_void_p, c_void_p] 1069isl.isl_union_pw_aff_coalesce.restype = c_void_p 1070isl.isl_union_pw_aff_coalesce.argtypes = [c_void_p] 1071isl.isl_union_pw_aff_domain.restype = c_void_p 1072isl.isl_union_pw_aff_domain.argtypes = [c_void_p] 1073isl.isl_union_pw_aff_get_space.restype = c_void_p 1074isl.isl_union_pw_aff_get_space.argtypes = [c_void_p] 1075isl.isl_union_pw_aff_gist.restype = c_void_p 1076isl.isl_union_pw_aff_gist.argtypes = [c_void_p, c_void_p] 1077isl.isl_union_pw_aff_intersect_domain_space.restype = c_void_p 1078isl.isl_union_pw_aff_intersect_domain_space.argtypes = [c_void_p, c_void_p] 1079isl.isl_union_pw_aff_intersect_domain_union_set.restype = c_void_p 1080isl.isl_union_pw_aff_intersect_domain_union_set.argtypes = [c_void_p, c_void_p] 1081isl.isl_union_pw_aff_intersect_domain_wrapped_domain.restype = c_void_p 1082isl.isl_union_pw_aff_intersect_domain_wrapped_domain.argtypes = [c_void_p, c_void_p] 1083isl.isl_union_pw_aff_intersect_domain_wrapped_range.restype = c_void_p 1084isl.isl_union_pw_aff_intersect_domain_wrapped_range.argtypes = [c_void_p, c_void_p] 1085isl.isl_union_pw_aff_intersect_params.restype = c_void_p 1086isl.isl_union_pw_aff_intersect_params.argtypes = [c_void_p, c_void_p] 1087isl.isl_union_pw_aff_pullback_union_pw_multi_aff.restype = c_void_p 1088isl.isl_union_pw_aff_pullback_union_pw_multi_aff.argtypes = [c_void_p, c_void_p] 1089isl.isl_union_pw_aff_sub.restype = c_void_p 1090isl.isl_union_pw_aff_sub.argtypes = [c_void_p, c_void_p] 1091isl.isl_union_pw_aff_subtract_domain_space.restype = c_void_p 1092isl.isl_union_pw_aff_subtract_domain_space.argtypes = [c_void_p, c_void_p] 1093isl.isl_union_pw_aff_subtract_domain_union_set.restype = c_void_p 1094isl.isl_union_pw_aff_subtract_domain_union_set.argtypes = [c_void_p, c_void_p] 1095isl.isl_union_pw_aff_union_add.restype = c_void_p 1096isl.isl_union_pw_aff_union_add.argtypes = [c_void_p, c_void_p] 1097isl.isl_union_pw_aff_copy.restype = c_void_p 1098isl.isl_union_pw_aff_copy.argtypes = [c_void_p] 1099isl.isl_union_pw_aff_free.restype = c_void_p 1100isl.isl_union_pw_aff_free.argtypes = [c_void_p] 1101isl.isl_union_pw_aff_to_str.restype = POINTER(c_char) 1102isl.isl_union_pw_aff_to_str.argtypes = [c_void_p] 1103 1104class multi_pw_aff(multi_union_pw_aff): 1105 def __init__(self, *args, **keywords): 1106 if "ptr" in keywords: 1107 self.ctx = keywords["ctx"] 1108 self.ptr = keywords["ptr"] 1109 return 1110 if len(args) == 1 and args[0].__class__ is aff: 1111 self.ctx = Context.getDefaultInstance() 1112 self.ptr = isl.isl_multi_pw_aff_from_aff(isl.isl_aff_copy(args[0].ptr)) 1113 return 1114 if len(args) == 1 and args[0].__class__ is multi_aff: 1115 self.ctx = Context.getDefaultInstance() 1116 self.ptr = isl.isl_multi_pw_aff_from_multi_aff(isl.isl_multi_aff_copy(args[0].ptr)) 1117 return 1118 if len(args) == 1 and args[0].__class__ is pw_aff: 1119 self.ctx = Context.getDefaultInstance() 1120 self.ptr = isl.isl_multi_pw_aff_from_pw_aff(isl.isl_pw_aff_copy(args[0].ptr)) 1121 return 1122 if len(args) == 2 and args[0].__class__ is space and args[1].__class__ is pw_aff_list: 1123 self.ctx = Context.getDefaultInstance() 1124 self.ptr = isl.isl_multi_pw_aff_from_pw_aff_list(isl.isl_space_copy(args[0].ptr), isl.isl_pw_aff_list_copy(args[1].ptr)) 1125 return 1126 if len(args) == 1 and args[0].__class__ is pw_multi_aff: 1127 self.ctx = Context.getDefaultInstance() 1128 self.ptr = isl.isl_multi_pw_aff_from_pw_multi_aff(isl.isl_pw_multi_aff_copy(args[0].ptr)) 1129 return 1130 if len(args) == 1 and type(args[0]) == str: 1131 self.ctx = Context.getDefaultInstance() 1132 self.ptr = isl.isl_multi_pw_aff_read_from_str(self.ctx, args[0].encode('ascii')) 1133 return 1134 raise Error 1135 def __del__(self): 1136 if hasattr(self, 'ptr'): 1137 isl.isl_multi_pw_aff_free(self.ptr) 1138 def __str__(arg0): 1139 try: 1140 if not arg0.__class__ is multi_pw_aff: 1141 arg0 = multi_pw_aff(arg0) 1142 except: 1143 raise 1144 ptr = isl.isl_multi_pw_aff_to_str(arg0.ptr) 1145 res = cast(ptr, c_char_p).value.decode('ascii') 1146 libc.free(ptr) 1147 return res 1148 def __repr__(self): 1149 s = str(self) 1150 if '"' in s: 1151 return 'isl.multi_pw_aff("""%s""")' % s 1152 else: 1153 return 'isl.multi_pw_aff("%s")' % s 1154 def add(arg0, arg1): 1155 try: 1156 if not arg0.__class__ is multi_pw_aff: 1157 arg0 = multi_pw_aff(arg0) 1158 except: 1159 raise 1160 try: 1161 if not arg1.__class__ is multi_pw_aff: 1162 arg1 = multi_pw_aff(arg1) 1163 except: 1164 return multi_union_pw_aff(arg0).add(arg1) 1165 ctx = arg0.ctx 1166 res = isl.isl_multi_pw_aff_add(isl.isl_multi_pw_aff_copy(arg0.ptr), isl.isl_multi_pw_aff_copy(arg1.ptr)) 1167 obj = multi_pw_aff(ctx=ctx, ptr=res) 1168 return obj 1169 def add_constant(*args): 1170 if len(args) == 2 and args[1].__class__ is multi_val: 1171 ctx = args[0].ctx 1172 res = isl.isl_multi_pw_aff_add_constant_multi_val(isl.isl_multi_pw_aff_copy(args[0].ptr), isl.isl_multi_val_copy(args[1].ptr)) 1173 obj = multi_pw_aff(ctx=ctx, ptr=res) 1174 return obj 1175 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 1176 args = list(args) 1177 try: 1178 if not args[1].__class__ is val: 1179 args[1] = val(args[1]) 1180 except: 1181 raise 1182 ctx = args[0].ctx 1183 res = isl.isl_multi_pw_aff_add_constant_val(isl.isl_multi_pw_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 1184 obj = multi_pw_aff(ctx=ctx, ptr=res) 1185 return obj 1186 raise Error 1187 def bind(arg0, arg1): 1188 try: 1189 if not arg0.__class__ is multi_pw_aff: 1190 arg0 = multi_pw_aff(arg0) 1191 except: 1192 raise 1193 try: 1194 if not arg1.__class__ is multi_id: 1195 arg1 = multi_id(arg1) 1196 except: 1197 return multi_union_pw_aff(arg0).bind(arg1) 1198 ctx = arg0.ctx 1199 res = isl.isl_multi_pw_aff_bind(isl.isl_multi_pw_aff_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 1200 obj = set(ctx=ctx, ptr=res) 1201 return obj 1202 def bind_domain(arg0, arg1): 1203 try: 1204 if not arg0.__class__ is multi_pw_aff: 1205 arg0 = multi_pw_aff(arg0) 1206 except: 1207 raise 1208 try: 1209 if not arg1.__class__ is multi_id: 1210 arg1 = multi_id(arg1) 1211 except: 1212 return multi_union_pw_aff(arg0).bind_domain(arg1) 1213 ctx = arg0.ctx 1214 res = isl.isl_multi_pw_aff_bind_domain(isl.isl_multi_pw_aff_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 1215 obj = multi_pw_aff(ctx=ctx, ptr=res) 1216 return obj 1217 def bind_domain_wrapped_domain(arg0, arg1): 1218 try: 1219 if not arg0.__class__ is multi_pw_aff: 1220 arg0 = multi_pw_aff(arg0) 1221 except: 1222 raise 1223 try: 1224 if not arg1.__class__ is multi_id: 1225 arg1 = multi_id(arg1) 1226 except: 1227 return multi_union_pw_aff(arg0).bind_domain_wrapped_domain(arg1) 1228 ctx = arg0.ctx 1229 res = isl.isl_multi_pw_aff_bind_domain_wrapped_domain(isl.isl_multi_pw_aff_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 1230 obj = multi_pw_aff(ctx=ctx, ptr=res) 1231 return obj 1232 def coalesce(arg0): 1233 try: 1234 if not arg0.__class__ is multi_pw_aff: 1235 arg0 = multi_pw_aff(arg0) 1236 except: 1237 raise 1238 ctx = arg0.ctx 1239 res = isl.isl_multi_pw_aff_coalesce(isl.isl_multi_pw_aff_copy(arg0.ptr)) 1240 obj = multi_pw_aff(ctx=ctx, ptr=res) 1241 return obj 1242 def domain(arg0): 1243 try: 1244 if not arg0.__class__ is multi_pw_aff: 1245 arg0 = multi_pw_aff(arg0) 1246 except: 1247 raise 1248 ctx = arg0.ctx 1249 res = isl.isl_multi_pw_aff_domain(isl.isl_multi_pw_aff_copy(arg0.ptr)) 1250 obj = set(ctx=ctx, ptr=res) 1251 return obj 1252 def flat_range_product(arg0, arg1): 1253 try: 1254 if not arg0.__class__ is multi_pw_aff: 1255 arg0 = multi_pw_aff(arg0) 1256 except: 1257 raise 1258 try: 1259 if not arg1.__class__ is multi_pw_aff: 1260 arg1 = multi_pw_aff(arg1) 1261 except: 1262 return multi_union_pw_aff(arg0).flat_range_product(arg1) 1263 ctx = arg0.ctx 1264 res = isl.isl_multi_pw_aff_flat_range_product(isl.isl_multi_pw_aff_copy(arg0.ptr), isl.isl_multi_pw_aff_copy(arg1.ptr)) 1265 obj = multi_pw_aff(ctx=ctx, ptr=res) 1266 return obj 1267 def at(arg0, arg1): 1268 try: 1269 if not arg0.__class__ is multi_pw_aff: 1270 arg0 = multi_pw_aff(arg0) 1271 except: 1272 raise 1273 ctx = arg0.ctx 1274 res = isl.isl_multi_pw_aff_get_at(arg0.ptr, arg1) 1275 obj = pw_aff(ctx=ctx, ptr=res) 1276 return obj 1277 def get_at(arg0, arg1): 1278 return arg0.at(arg1) 1279 def list(arg0): 1280 try: 1281 if not arg0.__class__ is multi_pw_aff: 1282 arg0 = multi_pw_aff(arg0) 1283 except: 1284 raise 1285 ctx = arg0.ctx 1286 res = isl.isl_multi_pw_aff_get_list(arg0.ptr) 1287 obj = pw_aff_list(ctx=ctx, ptr=res) 1288 return obj 1289 def get_list(arg0): 1290 return arg0.list() 1291 def space(arg0): 1292 try: 1293 if not arg0.__class__ is multi_pw_aff: 1294 arg0 = multi_pw_aff(arg0) 1295 except: 1296 raise 1297 ctx = arg0.ctx 1298 res = isl.isl_multi_pw_aff_get_space(arg0.ptr) 1299 obj = space(ctx=ctx, ptr=res) 1300 return obj 1301 def get_space(arg0): 1302 return arg0.space() 1303 def gist(arg0, arg1): 1304 try: 1305 if not arg0.__class__ is multi_pw_aff: 1306 arg0 = multi_pw_aff(arg0) 1307 except: 1308 raise 1309 try: 1310 if not arg1.__class__ is set: 1311 arg1 = set(arg1) 1312 except: 1313 return multi_union_pw_aff(arg0).gist(arg1) 1314 ctx = arg0.ctx 1315 res = isl.isl_multi_pw_aff_gist(isl.isl_multi_pw_aff_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 1316 obj = multi_pw_aff(ctx=ctx, ptr=res) 1317 return obj 1318 def identity(*args): 1319 if len(args) == 1: 1320 ctx = args[0].ctx 1321 res = isl.isl_multi_pw_aff_identity_multi_pw_aff(isl.isl_multi_pw_aff_copy(args[0].ptr)) 1322 obj = multi_pw_aff(ctx=ctx, ptr=res) 1323 return obj 1324 raise Error 1325 @staticmethod 1326 def identity_on_domain(*args): 1327 if len(args) == 1 and args[0].__class__ is space: 1328 ctx = args[0].ctx 1329 res = isl.isl_multi_pw_aff_identity_on_domain_space(isl.isl_space_copy(args[0].ptr)) 1330 obj = multi_pw_aff(ctx=ctx, ptr=res) 1331 return obj 1332 raise Error 1333 def insert_domain(arg0, arg1): 1334 try: 1335 if not arg0.__class__ is multi_pw_aff: 1336 arg0 = multi_pw_aff(arg0) 1337 except: 1338 raise 1339 try: 1340 if not arg1.__class__ is space: 1341 arg1 = space(arg1) 1342 except: 1343 return multi_union_pw_aff(arg0).insert_domain(arg1) 1344 ctx = arg0.ctx 1345 res = isl.isl_multi_pw_aff_insert_domain(isl.isl_multi_pw_aff_copy(arg0.ptr), isl.isl_space_copy(arg1.ptr)) 1346 obj = multi_pw_aff(ctx=ctx, ptr=res) 1347 return obj 1348 def intersect_domain(arg0, arg1): 1349 try: 1350 if not arg0.__class__ is multi_pw_aff: 1351 arg0 = multi_pw_aff(arg0) 1352 except: 1353 raise 1354 try: 1355 if not arg1.__class__ is set: 1356 arg1 = set(arg1) 1357 except: 1358 return multi_union_pw_aff(arg0).intersect_domain(arg1) 1359 ctx = arg0.ctx 1360 res = isl.isl_multi_pw_aff_intersect_domain(isl.isl_multi_pw_aff_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 1361 obj = multi_pw_aff(ctx=ctx, ptr=res) 1362 return obj 1363 def intersect_params(arg0, arg1): 1364 try: 1365 if not arg0.__class__ is multi_pw_aff: 1366 arg0 = multi_pw_aff(arg0) 1367 except: 1368 raise 1369 try: 1370 if not arg1.__class__ is set: 1371 arg1 = set(arg1) 1372 except: 1373 return multi_union_pw_aff(arg0).intersect_params(arg1) 1374 ctx = arg0.ctx 1375 res = isl.isl_multi_pw_aff_intersect_params(isl.isl_multi_pw_aff_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 1376 obj = multi_pw_aff(ctx=ctx, ptr=res) 1377 return obj 1378 def involves_param(*args): 1379 if len(args) == 2 and (args[1].__class__ is id or type(args[1]) == str): 1380 args = list(args) 1381 try: 1382 if not args[1].__class__ is id: 1383 args[1] = id(args[1]) 1384 except: 1385 raise 1386 ctx = args[0].ctx 1387 res = isl.isl_multi_pw_aff_involves_param_id(args[0].ptr, args[1].ptr) 1388 if res < 0: 1389 raise 1390 return bool(res) 1391 if len(args) == 2 and args[1].__class__ is id_list: 1392 ctx = args[0].ctx 1393 res = isl.isl_multi_pw_aff_involves_param_id_list(args[0].ptr, args[1].ptr) 1394 if res < 0: 1395 raise 1396 return bool(res) 1397 raise Error 1398 def max(arg0, arg1): 1399 try: 1400 if not arg0.__class__ is multi_pw_aff: 1401 arg0 = multi_pw_aff(arg0) 1402 except: 1403 raise 1404 try: 1405 if not arg1.__class__ is multi_pw_aff: 1406 arg1 = multi_pw_aff(arg1) 1407 except: 1408 return multi_union_pw_aff(arg0).max(arg1) 1409 ctx = arg0.ctx 1410 res = isl.isl_multi_pw_aff_max(isl.isl_multi_pw_aff_copy(arg0.ptr), isl.isl_multi_pw_aff_copy(arg1.ptr)) 1411 obj = multi_pw_aff(ctx=ctx, ptr=res) 1412 return obj 1413 def max_multi_val(arg0): 1414 try: 1415 if not arg0.__class__ is multi_pw_aff: 1416 arg0 = multi_pw_aff(arg0) 1417 except: 1418 raise 1419 ctx = arg0.ctx 1420 res = isl.isl_multi_pw_aff_max_multi_val(isl.isl_multi_pw_aff_copy(arg0.ptr)) 1421 obj = multi_val(ctx=ctx, ptr=res) 1422 return obj 1423 def min(arg0, arg1): 1424 try: 1425 if not arg0.__class__ is multi_pw_aff: 1426 arg0 = multi_pw_aff(arg0) 1427 except: 1428 raise 1429 try: 1430 if not arg1.__class__ is multi_pw_aff: 1431 arg1 = multi_pw_aff(arg1) 1432 except: 1433 return multi_union_pw_aff(arg0).min(arg1) 1434 ctx = arg0.ctx 1435 res = isl.isl_multi_pw_aff_min(isl.isl_multi_pw_aff_copy(arg0.ptr), isl.isl_multi_pw_aff_copy(arg1.ptr)) 1436 obj = multi_pw_aff(ctx=ctx, ptr=res) 1437 return obj 1438 def min_multi_val(arg0): 1439 try: 1440 if not arg0.__class__ is multi_pw_aff: 1441 arg0 = multi_pw_aff(arg0) 1442 except: 1443 raise 1444 ctx = arg0.ctx 1445 res = isl.isl_multi_pw_aff_min_multi_val(isl.isl_multi_pw_aff_copy(arg0.ptr)) 1446 obj = multi_val(ctx=ctx, ptr=res) 1447 return obj 1448 def neg(arg0): 1449 try: 1450 if not arg0.__class__ is multi_pw_aff: 1451 arg0 = multi_pw_aff(arg0) 1452 except: 1453 raise 1454 ctx = arg0.ctx 1455 res = isl.isl_multi_pw_aff_neg(isl.isl_multi_pw_aff_copy(arg0.ptr)) 1456 obj = multi_pw_aff(ctx=ctx, ptr=res) 1457 return obj 1458 def plain_is_equal(arg0, arg1): 1459 try: 1460 if not arg0.__class__ is multi_pw_aff: 1461 arg0 = multi_pw_aff(arg0) 1462 except: 1463 raise 1464 try: 1465 if not arg1.__class__ is multi_pw_aff: 1466 arg1 = multi_pw_aff(arg1) 1467 except: 1468 return multi_union_pw_aff(arg0).plain_is_equal(arg1) 1469 ctx = arg0.ctx 1470 res = isl.isl_multi_pw_aff_plain_is_equal(arg0.ptr, arg1.ptr) 1471 if res < 0: 1472 raise 1473 return bool(res) 1474 def product(arg0, arg1): 1475 try: 1476 if not arg0.__class__ is multi_pw_aff: 1477 arg0 = multi_pw_aff(arg0) 1478 except: 1479 raise 1480 try: 1481 if not arg1.__class__ is multi_pw_aff: 1482 arg1 = multi_pw_aff(arg1) 1483 except: 1484 return multi_union_pw_aff(arg0).product(arg1) 1485 ctx = arg0.ctx 1486 res = isl.isl_multi_pw_aff_product(isl.isl_multi_pw_aff_copy(arg0.ptr), isl.isl_multi_pw_aff_copy(arg1.ptr)) 1487 obj = multi_pw_aff(ctx=ctx, ptr=res) 1488 return obj 1489 def pullback(*args): 1490 if len(args) == 2 and args[1].__class__ is multi_aff: 1491 ctx = args[0].ctx 1492 res = isl.isl_multi_pw_aff_pullback_multi_aff(isl.isl_multi_pw_aff_copy(args[0].ptr), isl.isl_multi_aff_copy(args[1].ptr)) 1493 obj = multi_pw_aff(ctx=ctx, ptr=res) 1494 return obj 1495 if len(args) == 2 and args[1].__class__ is multi_pw_aff: 1496 ctx = args[0].ctx 1497 res = isl.isl_multi_pw_aff_pullback_multi_pw_aff(isl.isl_multi_pw_aff_copy(args[0].ptr), isl.isl_multi_pw_aff_copy(args[1].ptr)) 1498 obj = multi_pw_aff(ctx=ctx, ptr=res) 1499 return obj 1500 if len(args) == 2 and args[1].__class__ is pw_multi_aff: 1501 ctx = args[0].ctx 1502 res = isl.isl_multi_pw_aff_pullback_pw_multi_aff(isl.isl_multi_pw_aff_copy(args[0].ptr), isl.isl_pw_multi_aff_copy(args[1].ptr)) 1503 obj = multi_pw_aff(ctx=ctx, ptr=res) 1504 return obj 1505 raise Error 1506 def range_product(arg0, arg1): 1507 try: 1508 if not arg0.__class__ is multi_pw_aff: 1509 arg0 = multi_pw_aff(arg0) 1510 except: 1511 raise 1512 try: 1513 if not arg1.__class__ is multi_pw_aff: 1514 arg1 = multi_pw_aff(arg1) 1515 except: 1516 return multi_union_pw_aff(arg0).range_product(arg1) 1517 ctx = arg0.ctx 1518 res = isl.isl_multi_pw_aff_range_product(isl.isl_multi_pw_aff_copy(arg0.ptr), isl.isl_multi_pw_aff_copy(arg1.ptr)) 1519 obj = multi_pw_aff(ctx=ctx, ptr=res) 1520 return obj 1521 def scale(*args): 1522 if len(args) == 2 and args[1].__class__ is multi_val: 1523 ctx = args[0].ctx 1524 res = isl.isl_multi_pw_aff_scale_multi_val(isl.isl_multi_pw_aff_copy(args[0].ptr), isl.isl_multi_val_copy(args[1].ptr)) 1525 obj = multi_pw_aff(ctx=ctx, ptr=res) 1526 return obj 1527 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 1528 args = list(args) 1529 try: 1530 if not args[1].__class__ is val: 1531 args[1] = val(args[1]) 1532 except: 1533 raise 1534 ctx = args[0].ctx 1535 res = isl.isl_multi_pw_aff_scale_val(isl.isl_multi_pw_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 1536 obj = multi_pw_aff(ctx=ctx, ptr=res) 1537 return obj 1538 raise Error 1539 def scale_down(*args): 1540 if len(args) == 2 and args[1].__class__ is multi_val: 1541 ctx = args[0].ctx 1542 res = isl.isl_multi_pw_aff_scale_down_multi_val(isl.isl_multi_pw_aff_copy(args[0].ptr), isl.isl_multi_val_copy(args[1].ptr)) 1543 obj = multi_pw_aff(ctx=ctx, ptr=res) 1544 return obj 1545 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 1546 args = list(args) 1547 try: 1548 if not args[1].__class__ is val: 1549 args[1] = val(args[1]) 1550 except: 1551 raise 1552 ctx = args[0].ctx 1553 res = isl.isl_multi_pw_aff_scale_down_val(isl.isl_multi_pw_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 1554 obj = multi_pw_aff(ctx=ctx, ptr=res) 1555 return obj 1556 raise Error 1557 def set_at(arg0, arg1, arg2): 1558 try: 1559 if not arg0.__class__ is multi_pw_aff: 1560 arg0 = multi_pw_aff(arg0) 1561 except: 1562 raise 1563 try: 1564 if not arg2.__class__ is pw_aff: 1565 arg2 = pw_aff(arg2) 1566 except: 1567 return multi_union_pw_aff(arg0).set_at(arg1, arg2) 1568 ctx = arg0.ctx 1569 res = isl.isl_multi_pw_aff_set_at(isl.isl_multi_pw_aff_copy(arg0.ptr), arg1, isl.isl_pw_aff_copy(arg2.ptr)) 1570 obj = multi_pw_aff(ctx=ctx, ptr=res) 1571 return obj 1572 def size(arg0): 1573 try: 1574 if not arg0.__class__ is multi_pw_aff: 1575 arg0 = multi_pw_aff(arg0) 1576 except: 1577 raise 1578 ctx = arg0.ctx 1579 res = isl.isl_multi_pw_aff_size(arg0.ptr) 1580 if res < 0: 1581 raise 1582 return int(res) 1583 def sub(arg0, arg1): 1584 try: 1585 if not arg0.__class__ is multi_pw_aff: 1586 arg0 = multi_pw_aff(arg0) 1587 except: 1588 raise 1589 try: 1590 if not arg1.__class__ is multi_pw_aff: 1591 arg1 = multi_pw_aff(arg1) 1592 except: 1593 return multi_union_pw_aff(arg0).sub(arg1) 1594 ctx = arg0.ctx 1595 res = isl.isl_multi_pw_aff_sub(isl.isl_multi_pw_aff_copy(arg0.ptr), isl.isl_multi_pw_aff_copy(arg1.ptr)) 1596 obj = multi_pw_aff(ctx=ctx, ptr=res) 1597 return obj 1598 def unbind_params_insert_domain(arg0, arg1): 1599 try: 1600 if not arg0.__class__ is multi_pw_aff: 1601 arg0 = multi_pw_aff(arg0) 1602 except: 1603 raise 1604 try: 1605 if not arg1.__class__ is multi_id: 1606 arg1 = multi_id(arg1) 1607 except: 1608 return multi_union_pw_aff(arg0).unbind_params_insert_domain(arg1) 1609 ctx = arg0.ctx 1610 res = isl.isl_multi_pw_aff_unbind_params_insert_domain(isl.isl_multi_pw_aff_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 1611 obj = multi_pw_aff(ctx=ctx, ptr=res) 1612 return obj 1613 def union_add(arg0, arg1): 1614 try: 1615 if not arg0.__class__ is multi_pw_aff: 1616 arg0 = multi_pw_aff(arg0) 1617 except: 1618 raise 1619 try: 1620 if not arg1.__class__ is multi_pw_aff: 1621 arg1 = multi_pw_aff(arg1) 1622 except: 1623 return multi_union_pw_aff(arg0).union_add(arg1) 1624 ctx = arg0.ctx 1625 res = isl.isl_multi_pw_aff_union_add(isl.isl_multi_pw_aff_copy(arg0.ptr), isl.isl_multi_pw_aff_copy(arg1.ptr)) 1626 obj = multi_pw_aff(ctx=ctx, ptr=res) 1627 return obj 1628 @staticmethod 1629 def zero(arg0): 1630 try: 1631 if not arg0.__class__ is space: 1632 arg0 = space(arg0) 1633 except: 1634 raise 1635 ctx = arg0.ctx 1636 res = isl.isl_multi_pw_aff_zero(isl.isl_space_copy(arg0.ptr)) 1637 obj = multi_pw_aff(ctx=ctx, ptr=res) 1638 return obj 1639 1640isl.isl_multi_pw_aff_from_aff.restype = c_void_p 1641isl.isl_multi_pw_aff_from_aff.argtypes = [c_void_p] 1642isl.isl_multi_pw_aff_from_multi_aff.restype = c_void_p 1643isl.isl_multi_pw_aff_from_multi_aff.argtypes = [c_void_p] 1644isl.isl_multi_pw_aff_from_pw_aff.restype = c_void_p 1645isl.isl_multi_pw_aff_from_pw_aff.argtypes = [c_void_p] 1646isl.isl_multi_pw_aff_from_pw_aff_list.restype = c_void_p 1647isl.isl_multi_pw_aff_from_pw_aff_list.argtypes = [c_void_p, c_void_p] 1648isl.isl_multi_pw_aff_from_pw_multi_aff.restype = c_void_p 1649isl.isl_multi_pw_aff_from_pw_multi_aff.argtypes = [c_void_p] 1650isl.isl_multi_pw_aff_read_from_str.restype = c_void_p 1651isl.isl_multi_pw_aff_read_from_str.argtypes = [Context, c_char_p] 1652isl.isl_multi_pw_aff_add.restype = c_void_p 1653isl.isl_multi_pw_aff_add.argtypes = [c_void_p, c_void_p] 1654isl.isl_multi_pw_aff_add_constant_multi_val.restype = c_void_p 1655isl.isl_multi_pw_aff_add_constant_multi_val.argtypes = [c_void_p, c_void_p] 1656isl.isl_multi_pw_aff_add_constant_val.restype = c_void_p 1657isl.isl_multi_pw_aff_add_constant_val.argtypes = [c_void_p, c_void_p] 1658isl.isl_multi_pw_aff_bind.restype = c_void_p 1659isl.isl_multi_pw_aff_bind.argtypes = [c_void_p, c_void_p] 1660isl.isl_multi_pw_aff_bind_domain.restype = c_void_p 1661isl.isl_multi_pw_aff_bind_domain.argtypes = [c_void_p, c_void_p] 1662isl.isl_multi_pw_aff_bind_domain_wrapped_domain.restype = c_void_p 1663isl.isl_multi_pw_aff_bind_domain_wrapped_domain.argtypes = [c_void_p, c_void_p] 1664isl.isl_multi_pw_aff_coalesce.restype = c_void_p 1665isl.isl_multi_pw_aff_coalesce.argtypes = [c_void_p] 1666isl.isl_multi_pw_aff_domain.restype = c_void_p 1667isl.isl_multi_pw_aff_domain.argtypes = [c_void_p] 1668isl.isl_multi_pw_aff_flat_range_product.restype = c_void_p 1669isl.isl_multi_pw_aff_flat_range_product.argtypes = [c_void_p, c_void_p] 1670isl.isl_multi_pw_aff_get_at.restype = c_void_p 1671isl.isl_multi_pw_aff_get_at.argtypes = [c_void_p, c_int] 1672isl.isl_multi_pw_aff_get_list.restype = c_void_p 1673isl.isl_multi_pw_aff_get_list.argtypes = [c_void_p] 1674isl.isl_multi_pw_aff_get_space.restype = c_void_p 1675isl.isl_multi_pw_aff_get_space.argtypes = [c_void_p] 1676isl.isl_multi_pw_aff_gist.restype = c_void_p 1677isl.isl_multi_pw_aff_gist.argtypes = [c_void_p, c_void_p] 1678isl.isl_multi_pw_aff_identity_multi_pw_aff.restype = c_void_p 1679isl.isl_multi_pw_aff_identity_multi_pw_aff.argtypes = [c_void_p] 1680isl.isl_multi_pw_aff_identity_on_domain_space.restype = c_void_p 1681isl.isl_multi_pw_aff_identity_on_domain_space.argtypes = [c_void_p] 1682isl.isl_multi_pw_aff_insert_domain.restype = c_void_p 1683isl.isl_multi_pw_aff_insert_domain.argtypes = [c_void_p, c_void_p] 1684isl.isl_multi_pw_aff_intersect_domain.restype = c_void_p 1685isl.isl_multi_pw_aff_intersect_domain.argtypes = [c_void_p, c_void_p] 1686isl.isl_multi_pw_aff_intersect_params.restype = c_void_p 1687isl.isl_multi_pw_aff_intersect_params.argtypes = [c_void_p, c_void_p] 1688isl.isl_multi_pw_aff_involves_param_id.argtypes = [c_void_p, c_void_p] 1689isl.isl_multi_pw_aff_involves_param_id_list.argtypes = [c_void_p, c_void_p] 1690isl.isl_multi_pw_aff_max.restype = c_void_p 1691isl.isl_multi_pw_aff_max.argtypes = [c_void_p, c_void_p] 1692isl.isl_multi_pw_aff_max_multi_val.restype = c_void_p 1693isl.isl_multi_pw_aff_max_multi_val.argtypes = [c_void_p] 1694isl.isl_multi_pw_aff_min.restype = c_void_p 1695isl.isl_multi_pw_aff_min.argtypes = [c_void_p, c_void_p] 1696isl.isl_multi_pw_aff_min_multi_val.restype = c_void_p 1697isl.isl_multi_pw_aff_min_multi_val.argtypes = [c_void_p] 1698isl.isl_multi_pw_aff_neg.restype = c_void_p 1699isl.isl_multi_pw_aff_neg.argtypes = [c_void_p] 1700isl.isl_multi_pw_aff_plain_is_equal.argtypes = [c_void_p, c_void_p] 1701isl.isl_multi_pw_aff_product.restype = c_void_p 1702isl.isl_multi_pw_aff_product.argtypes = [c_void_p, c_void_p] 1703isl.isl_multi_pw_aff_pullback_multi_aff.restype = c_void_p 1704isl.isl_multi_pw_aff_pullback_multi_aff.argtypes = [c_void_p, c_void_p] 1705isl.isl_multi_pw_aff_pullback_multi_pw_aff.restype = c_void_p 1706isl.isl_multi_pw_aff_pullback_multi_pw_aff.argtypes = [c_void_p, c_void_p] 1707isl.isl_multi_pw_aff_pullback_pw_multi_aff.restype = c_void_p 1708isl.isl_multi_pw_aff_pullback_pw_multi_aff.argtypes = [c_void_p, c_void_p] 1709isl.isl_multi_pw_aff_range_product.restype = c_void_p 1710isl.isl_multi_pw_aff_range_product.argtypes = [c_void_p, c_void_p] 1711isl.isl_multi_pw_aff_scale_multi_val.restype = c_void_p 1712isl.isl_multi_pw_aff_scale_multi_val.argtypes = [c_void_p, c_void_p] 1713isl.isl_multi_pw_aff_scale_val.restype = c_void_p 1714isl.isl_multi_pw_aff_scale_val.argtypes = [c_void_p, c_void_p] 1715isl.isl_multi_pw_aff_scale_down_multi_val.restype = c_void_p 1716isl.isl_multi_pw_aff_scale_down_multi_val.argtypes = [c_void_p, c_void_p] 1717isl.isl_multi_pw_aff_scale_down_val.restype = c_void_p 1718isl.isl_multi_pw_aff_scale_down_val.argtypes = [c_void_p, c_void_p] 1719isl.isl_multi_pw_aff_set_at.restype = c_void_p 1720isl.isl_multi_pw_aff_set_at.argtypes = [c_void_p, c_int, c_void_p] 1721isl.isl_multi_pw_aff_size.argtypes = [c_void_p] 1722isl.isl_multi_pw_aff_sub.restype = c_void_p 1723isl.isl_multi_pw_aff_sub.argtypes = [c_void_p, c_void_p] 1724isl.isl_multi_pw_aff_unbind_params_insert_domain.restype = c_void_p 1725isl.isl_multi_pw_aff_unbind_params_insert_domain.argtypes = [c_void_p, c_void_p] 1726isl.isl_multi_pw_aff_union_add.restype = c_void_p 1727isl.isl_multi_pw_aff_union_add.argtypes = [c_void_p, c_void_p] 1728isl.isl_multi_pw_aff_zero.restype = c_void_p 1729isl.isl_multi_pw_aff_zero.argtypes = [c_void_p] 1730isl.isl_multi_pw_aff_copy.restype = c_void_p 1731isl.isl_multi_pw_aff_copy.argtypes = [c_void_p] 1732isl.isl_multi_pw_aff_free.restype = c_void_p 1733isl.isl_multi_pw_aff_free.argtypes = [c_void_p] 1734isl.isl_multi_pw_aff_to_str.restype = POINTER(c_char) 1735isl.isl_multi_pw_aff_to_str.argtypes = [c_void_p] 1736 1737class pw_multi_aff(union_pw_multi_aff, multi_pw_aff): 1738 def __init__(self, *args, **keywords): 1739 if "ptr" in keywords: 1740 self.ctx = keywords["ctx"] 1741 self.ptr = keywords["ptr"] 1742 return 1743 if len(args) == 1 and args[0].__class__ is multi_aff: 1744 self.ctx = Context.getDefaultInstance() 1745 self.ptr = isl.isl_pw_multi_aff_from_multi_aff(isl.isl_multi_aff_copy(args[0].ptr)) 1746 return 1747 if len(args) == 1 and args[0].__class__ is pw_aff: 1748 self.ctx = Context.getDefaultInstance() 1749 self.ptr = isl.isl_pw_multi_aff_from_pw_aff(isl.isl_pw_aff_copy(args[0].ptr)) 1750 return 1751 if len(args) == 1 and type(args[0]) == str: 1752 self.ctx = Context.getDefaultInstance() 1753 self.ptr = isl.isl_pw_multi_aff_read_from_str(self.ctx, args[0].encode('ascii')) 1754 return 1755 raise Error 1756 def __del__(self): 1757 if hasattr(self, 'ptr'): 1758 isl.isl_pw_multi_aff_free(self.ptr) 1759 def __str__(arg0): 1760 try: 1761 if not arg0.__class__ is pw_multi_aff: 1762 arg0 = pw_multi_aff(arg0) 1763 except: 1764 raise 1765 ptr = isl.isl_pw_multi_aff_to_str(arg0.ptr) 1766 res = cast(ptr, c_char_p).value.decode('ascii') 1767 libc.free(ptr) 1768 return res 1769 def __repr__(self): 1770 s = str(self) 1771 if '"' in s: 1772 return 'isl.pw_multi_aff("""%s""")' % s 1773 else: 1774 return 'isl.pw_multi_aff("%s")' % s 1775 def add(arg0, arg1): 1776 try: 1777 if not arg0.__class__ is pw_multi_aff: 1778 arg0 = pw_multi_aff(arg0) 1779 except: 1780 raise 1781 try: 1782 if not arg1.__class__ is pw_multi_aff: 1783 arg1 = pw_multi_aff(arg1) 1784 except: 1785 return union_pw_multi_aff(arg0).add(arg1) 1786 ctx = arg0.ctx 1787 res = isl.isl_pw_multi_aff_add(isl.isl_pw_multi_aff_copy(arg0.ptr), isl.isl_pw_multi_aff_copy(arg1.ptr)) 1788 obj = pw_multi_aff(ctx=ctx, ptr=res) 1789 return obj 1790 def add_constant(*args): 1791 if len(args) == 2 and args[1].__class__ is multi_val: 1792 ctx = args[0].ctx 1793 res = isl.isl_pw_multi_aff_add_constant_multi_val(isl.isl_pw_multi_aff_copy(args[0].ptr), isl.isl_multi_val_copy(args[1].ptr)) 1794 obj = pw_multi_aff(ctx=ctx, ptr=res) 1795 return obj 1796 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 1797 args = list(args) 1798 try: 1799 if not args[1].__class__ is val: 1800 args[1] = val(args[1]) 1801 except: 1802 raise 1803 ctx = args[0].ctx 1804 res = isl.isl_pw_multi_aff_add_constant_val(isl.isl_pw_multi_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 1805 obj = pw_multi_aff(ctx=ctx, ptr=res) 1806 return obj 1807 raise Error 1808 def as_multi_aff(arg0): 1809 try: 1810 if not arg0.__class__ is pw_multi_aff: 1811 arg0 = pw_multi_aff(arg0) 1812 except: 1813 raise 1814 ctx = arg0.ctx 1815 res = isl.isl_pw_multi_aff_as_multi_aff(isl.isl_pw_multi_aff_copy(arg0.ptr)) 1816 obj = multi_aff(ctx=ctx, ptr=res) 1817 return obj 1818 def bind_domain(arg0, arg1): 1819 try: 1820 if not arg0.__class__ is pw_multi_aff: 1821 arg0 = pw_multi_aff(arg0) 1822 except: 1823 raise 1824 try: 1825 if not arg1.__class__ is multi_id: 1826 arg1 = multi_id(arg1) 1827 except: 1828 return union_pw_multi_aff(arg0).bind_domain(arg1) 1829 ctx = arg0.ctx 1830 res = isl.isl_pw_multi_aff_bind_domain(isl.isl_pw_multi_aff_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 1831 obj = pw_multi_aff(ctx=ctx, ptr=res) 1832 return obj 1833 def bind_domain_wrapped_domain(arg0, arg1): 1834 try: 1835 if not arg0.__class__ is pw_multi_aff: 1836 arg0 = pw_multi_aff(arg0) 1837 except: 1838 raise 1839 try: 1840 if not arg1.__class__ is multi_id: 1841 arg1 = multi_id(arg1) 1842 except: 1843 return union_pw_multi_aff(arg0).bind_domain_wrapped_domain(arg1) 1844 ctx = arg0.ctx 1845 res = isl.isl_pw_multi_aff_bind_domain_wrapped_domain(isl.isl_pw_multi_aff_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 1846 obj = pw_multi_aff(ctx=ctx, ptr=res) 1847 return obj 1848 def coalesce(arg0): 1849 try: 1850 if not arg0.__class__ is pw_multi_aff: 1851 arg0 = pw_multi_aff(arg0) 1852 except: 1853 raise 1854 ctx = arg0.ctx 1855 res = isl.isl_pw_multi_aff_coalesce(isl.isl_pw_multi_aff_copy(arg0.ptr)) 1856 obj = pw_multi_aff(ctx=ctx, ptr=res) 1857 return obj 1858 def domain(arg0): 1859 try: 1860 if not arg0.__class__ is pw_multi_aff: 1861 arg0 = pw_multi_aff(arg0) 1862 except: 1863 raise 1864 ctx = arg0.ctx 1865 res = isl.isl_pw_multi_aff_domain(isl.isl_pw_multi_aff_copy(arg0.ptr)) 1866 obj = set(ctx=ctx, ptr=res) 1867 return obj 1868 @staticmethod 1869 def domain_map(arg0): 1870 try: 1871 if not arg0.__class__ is space: 1872 arg0 = space(arg0) 1873 except: 1874 raise 1875 ctx = arg0.ctx 1876 res = isl.isl_pw_multi_aff_domain_map(isl.isl_space_copy(arg0.ptr)) 1877 obj = pw_multi_aff(ctx=ctx, ptr=res) 1878 return obj 1879 def flat_range_product(arg0, arg1): 1880 try: 1881 if not arg0.__class__ is pw_multi_aff: 1882 arg0 = pw_multi_aff(arg0) 1883 except: 1884 raise 1885 try: 1886 if not arg1.__class__ is pw_multi_aff: 1887 arg1 = pw_multi_aff(arg1) 1888 except: 1889 return union_pw_multi_aff(arg0).flat_range_product(arg1) 1890 ctx = arg0.ctx 1891 res = isl.isl_pw_multi_aff_flat_range_product(isl.isl_pw_multi_aff_copy(arg0.ptr), isl.isl_pw_multi_aff_copy(arg1.ptr)) 1892 obj = pw_multi_aff(ctx=ctx, ptr=res) 1893 return obj 1894 def foreach_piece(arg0, arg1): 1895 try: 1896 if not arg0.__class__ is pw_multi_aff: 1897 arg0 = pw_multi_aff(arg0) 1898 except: 1899 raise 1900 exc_info = [None] 1901 fn = CFUNCTYPE(c_int, c_void_p, c_void_p, c_void_p) 1902 def cb_func(cb_arg0, cb_arg1, cb_arg2): 1903 cb_arg0 = set(ctx=arg0.ctx, ptr=(cb_arg0)) 1904 cb_arg1 = multi_aff(ctx=arg0.ctx, ptr=(cb_arg1)) 1905 try: 1906 arg1(cb_arg0, cb_arg1) 1907 except: 1908 import sys 1909 exc_info[0] = sys.exc_info() 1910 return -1 1911 return 0 1912 cb = fn(cb_func) 1913 ctx = arg0.ctx 1914 res = isl.isl_pw_multi_aff_foreach_piece(arg0.ptr, cb, None) 1915 if exc_info[0] != None: 1916 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 1917 if res < 0: 1918 raise 1919 def space(arg0): 1920 try: 1921 if not arg0.__class__ is pw_multi_aff: 1922 arg0 = pw_multi_aff(arg0) 1923 except: 1924 raise 1925 ctx = arg0.ctx 1926 res = isl.isl_pw_multi_aff_get_space(arg0.ptr) 1927 obj = space(ctx=ctx, ptr=res) 1928 return obj 1929 def get_space(arg0): 1930 return arg0.space() 1931 def gist(arg0, arg1): 1932 try: 1933 if not arg0.__class__ is pw_multi_aff: 1934 arg0 = pw_multi_aff(arg0) 1935 except: 1936 raise 1937 try: 1938 if not arg1.__class__ is set: 1939 arg1 = set(arg1) 1940 except: 1941 return union_pw_multi_aff(arg0).gist(arg1) 1942 ctx = arg0.ctx 1943 res = isl.isl_pw_multi_aff_gist(isl.isl_pw_multi_aff_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 1944 obj = pw_multi_aff(ctx=ctx, ptr=res) 1945 return obj 1946 def insert_domain(arg0, arg1): 1947 try: 1948 if not arg0.__class__ is pw_multi_aff: 1949 arg0 = pw_multi_aff(arg0) 1950 except: 1951 raise 1952 try: 1953 if not arg1.__class__ is space: 1954 arg1 = space(arg1) 1955 except: 1956 return union_pw_multi_aff(arg0).insert_domain(arg1) 1957 ctx = arg0.ctx 1958 res = isl.isl_pw_multi_aff_insert_domain(isl.isl_pw_multi_aff_copy(arg0.ptr), isl.isl_space_copy(arg1.ptr)) 1959 obj = pw_multi_aff(ctx=ctx, ptr=res) 1960 return obj 1961 def intersect_domain(arg0, arg1): 1962 try: 1963 if not arg0.__class__ is pw_multi_aff: 1964 arg0 = pw_multi_aff(arg0) 1965 except: 1966 raise 1967 try: 1968 if not arg1.__class__ is set: 1969 arg1 = set(arg1) 1970 except: 1971 return union_pw_multi_aff(arg0).intersect_domain(arg1) 1972 ctx = arg0.ctx 1973 res = isl.isl_pw_multi_aff_intersect_domain(isl.isl_pw_multi_aff_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 1974 obj = pw_multi_aff(ctx=ctx, ptr=res) 1975 return obj 1976 def intersect_params(arg0, arg1): 1977 try: 1978 if not arg0.__class__ is pw_multi_aff: 1979 arg0 = pw_multi_aff(arg0) 1980 except: 1981 raise 1982 try: 1983 if not arg1.__class__ is set: 1984 arg1 = set(arg1) 1985 except: 1986 return union_pw_multi_aff(arg0).intersect_params(arg1) 1987 ctx = arg0.ctx 1988 res = isl.isl_pw_multi_aff_intersect_params(isl.isl_pw_multi_aff_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 1989 obj = pw_multi_aff(ctx=ctx, ptr=res) 1990 return obj 1991 def involves_locals(arg0): 1992 try: 1993 if not arg0.__class__ is pw_multi_aff: 1994 arg0 = pw_multi_aff(arg0) 1995 except: 1996 raise 1997 ctx = arg0.ctx 1998 res = isl.isl_pw_multi_aff_involves_locals(arg0.ptr) 1999 if res < 0: 2000 raise 2001 return bool(res) 2002 def isa_multi_aff(arg0): 2003 try: 2004 if not arg0.__class__ is pw_multi_aff: 2005 arg0 = pw_multi_aff(arg0) 2006 except: 2007 raise 2008 ctx = arg0.ctx 2009 res = isl.isl_pw_multi_aff_isa_multi_aff(arg0.ptr) 2010 if res < 0: 2011 raise 2012 return bool(res) 2013 def max_multi_val(arg0): 2014 try: 2015 if not arg0.__class__ is pw_multi_aff: 2016 arg0 = pw_multi_aff(arg0) 2017 except: 2018 raise 2019 ctx = arg0.ctx 2020 res = isl.isl_pw_multi_aff_max_multi_val(isl.isl_pw_multi_aff_copy(arg0.ptr)) 2021 obj = multi_val(ctx=ctx, ptr=res) 2022 return obj 2023 def min_multi_val(arg0): 2024 try: 2025 if not arg0.__class__ is pw_multi_aff: 2026 arg0 = pw_multi_aff(arg0) 2027 except: 2028 raise 2029 ctx = arg0.ctx 2030 res = isl.isl_pw_multi_aff_min_multi_val(isl.isl_pw_multi_aff_copy(arg0.ptr)) 2031 obj = multi_val(ctx=ctx, ptr=res) 2032 return obj 2033 def n_piece(arg0): 2034 try: 2035 if not arg0.__class__ is pw_multi_aff: 2036 arg0 = pw_multi_aff(arg0) 2037 except: 2038 raise 2039 ctx = arg0.ctx 2040 res = isl.isl_pw_multi_aff_n_piece(arg0.ptr) 2041 if res < 0: 2042 raise 2043 return int(res) 2044 def product(arg0, arg1): 2045 try: 2046 if not arg0.__class__ is pw_multi_aff: 2047 arg0 = pw_multi_aff(arg0) 2048 except: 2049 raise 2050 try: 2051 if not arg1.__class__ is pw_multi_aff: 2052 arg1 = pw_multi_aff(arg1) 2053 except: 2054 return union_pw_multi_aff(arg0).product(arg1) 2055 ctx = arg0.ctx 2056 res = isl.isl_pw_multi_aff_product(isl.isl_pw_multi_aff_copy(arg0.ptr), isl.isl_pw_multi_aff_copy(arg1.ptr)) 2057 obj = pw_multi_aff(ctx=ctx, ptr=res) 2058 return obj 2059 def pullback(*args): 2060 if len(args) == 2 and args[1].__class__ is multi_aff: 2061 ctx = args[0].ctx 2062 res = isl.isl_pw_multi_aff_pullback_multi_aff(isl.isl_pw_multi_aff_copy(args[0].ptr), isl.isl_multi_aff_copy(args[1].ptr)) 2063 obj = pw_multi_aff(ctx=ctx, ptr=res) 2064 return obj 2065 if len(args) == 2 and args[1].__class__ is pw_multi_aff: 2066 ctx = args[0].ctx 2067 res = isl.isl_pw_multi_aff_pullback_pw_multi_aff(isl.isl_pw_multi_aff_copy(args[0].ptr), isl.isl_pw_multi_aff_copy(args[1].ptr)) 2068 obj = pw_multi_aff(ctx=ctx, ptr=res) 2069 return obj 2070 raise Error 2071 def range_factor_domain(arg0): 2072 try: 2073 if not arg0.__class__ is pw_multi_aff: 2074 arg0 = pw_multi_aff(arg0) 2075 except: 2076 raise 2077 ctx = arg0.ctx 2078 res = isl.isl_pw_multi_aff_range_factor_domain(isl.isl_pw_multi_aff_copy(arg0.ptr)) 2079 obj = pw_multi_aff(ctx=ctx, ptr=res) 2080 return obj 2081 def range_factor_range(arg0): 2082 try: 2083 if not arg0.__class__ is pw_multi_aff: 2084 arg0 = pw_multi_aff(arg0) 2085 except: 2086 raise 2087 ctx = arg0.ctx 2088 res = isl.isl_pw_multi_aff_range_factor_range(isl.isl_pw_multi_aff_copy(arg0.ptr)) 2089 obj = pw_multi_aff(ctx=ctx, ptr=res) 2090 return obj 2091 @staticmethod 2092 def range_map(arg0): 2093 try: 2094 if not arg0.__class__ is space: 2095 arg0 = space(arg0) 2096 except: 2097 raise 2098 ctx = arg0.ctx 2099 res = isl.isl_pw_multi_aff_range_map(isl.isl_space_copy(arg0.ptr)) 2100 obj = pw_multi_aff(ctx=ctx, ptr=res) 2101 return obj 2102 def range_product(arg0, arg1): 2103 try: 2104 if not arg0.__class__ is pw_multi_aff: 2105 arg0 = pw_multi_aff(arg0) 2106 except: 2107 raise 2108 try: 2109 if not arg1.__class__ is pw_multi_aff: 2110 arg1 = pw_multi_aff(arg1) 2111 except: 2112 return union_pw_multi_aff(arg0).range_product(arg1) 2113 ctx = arg0.ctx 2114 res = isl.isl_pw_multi_aff_range_product(isl.isl_pw_multi_aff_copy(arg0.ptr), isl.isl_pw_multi_aff_copy(arg1.ptr)) 2115 obj = pw_multi_aff(ctx=ctx, ptr=res) 2116 return obj 2117 def scale(*args): 2118 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 2119 args = list(args) 2120 try: 2121 if not args[1].__class__ is val: 2122 args[1] = val(args[1]) 2123 except: 2124 raise 2125 ctx = args[0].ctx 2126 res = isl.isl_pw_multi_aff_scale_val(isl.isl_pw_multi_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 2127 obj = pw_multi_aff(ctx=ctx, ptr=res) 2128 return obj 2129 raise Error 2130 def scale_down(*args): 2131 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 2132 args = list(args) 2133 try: 2134 if not args[1].__class__ is val: 2135 args[1] = val(args[1]) 2136 except: 2137 raise 2138 ctx = args[0].ctx 2139 res = isl.isl_pw_multi_aff_scale_down_val(isl.isl_pw_multi_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 2140 obj = pw_multi_aff(ctx=ctx, ptr=res) 2141 return obj 2142 raise Error 2143 def sub(arg0, arg1): 2144 try: 2145 if not arg0.__class__ is pw_multi_aff: 2146 arg0 = pw_multi_aff(arg0) 2147 except: 2148 raise 2149 try: 2150 if not arg1.__class__ is pw_multi_aff: 2151 arg1 = pw_multi_aff(arg1) 2152 except: 2153 return union_pw_multi_aff(arg0).sub(arg1) 2154 ctx = arg0.ctx 2155 res = isl.isl_pw_multi_aff_sub(isl.isl_pw_multi_aff_copy(arg0.ptr), isl.isl_pw_multi_aff_copy(arg1.ptr)) 2156 obj = pw_multi_aff(ctx=ctx, ptr=res) 2157 return obj 2158 def subtract_domain(arg0, arg1): 2159 try: 2160 if not arg0.__class__ is pw_multi_aff: 2161 arg0 = pw_multi_aff(arg0) 2162 except: 2163 raise 2164 try: 2165 if not arg1.__class__ is set: 2166 arg1 = set(arg1) 2167 except: 2168 return union_pw_multi_aff(arg0).subtract_domain(arg1) 2169 ctx = arg0.ctx 2170 res = isl.isl_pw_multi_aff_subtract_domain(isl.isl_pw_multi_aff_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 2171 obj = pw_multi_aff(ctx=ctx, ptr=res) 2172 return obj 2173 def union_add(arg0, arg1): 2174 try: 2175 if not arg0.__class__ is pw_multi_aff: 2176 arg0 = pw_multi_aff(arg0) 2177 except: 2178 raise 2179 try: 2180 if not arg1.__class__ is pw_multi_aff: 2181 arg1 = pw_multi_aff(arg1) 2182 except: 2183 return union_pw_multi_aff(arg0).union_add(arg1) 2184 ctx = arg0.ctx 2185 res = isl.isl_pw_multi_aff_union_add(isl.isl_pw_multi_aff_copy(arg0.ptr), isl.isl_pw_multi_aff_copy(arg1.ptr)) 2186 obj = pw_multi_aff(ctx=ctx, ptr=res) 2187 return obj 2188 @staticmethod 2189 def zero(arg0): 2190 try: 2191 if not arg0.__class__ is space: 2192 arg0 = space(arg0) 2193 except: 2194 raise 2195 ctx = arg0.ctx 2196 res = isl.isl_pw_multi_aff_zero(isl.isl_space_copy(arg0.ptr)) 2197 obj = pw_multi_aff(ctx=ctx, ptr=res) 2198 return obj 2199 2200isl.isl_pw_multi_aff_from_multi_aff.restype = c_void_p 2201isl.isl_pw_multi_aff_from_multi_aff.argtypes = [c_void_p] 2202isl.isl_pw_multi_aff_from_pw_aff.restype = c_void_p 2203isl.isl_pw_multi_aff_from_pw_aff.argtypes = [c_void_p] 2204isl.isl_pw_multi_aff_read_from_str.restype = c_void_p 2205isl.isl_pw_multi_aff_read_from_str.argtypes = [Context, c_char_p] 2206isl.isl_pw_multi_aff_add.restype = c_void_p 2207isl.isl_pw_multi_aff_add.argtypes = [c_void_p, c_void_p] 2208isl.isl_pw_multi_aff_add_constant_multi_val.restype = c_void_p 2209isl.isl_pw_multi_aff_add_constant_multi_val.argtypes = [c_void_p, c_void_p] 2210isl.isl_pw_multi_aff_add_constant_val.restype = c_void_p 2211isl.isl_pw_multi_aff_add_constant_val.argtypes = [c_void_p, c_void_p] 2212isl.isl_pw_multi_aff_as_multi_aff.restype = c_void_p 2213isl.isl_pw_multi_aff_as_multi_aff.argtypes = [c_void_p] 2214isl.isl_pw_multi_aff_bind_domain.restype = c_void_p 2215isl.isl_pw_multi_aff_bind_domain.argtypes = [c_void_p, c_void_p] 2216isl.isl_pw_multi_aff_bind_domain_wrapped_domain.restype = c_void_p 2217isl.isl_pw_multi_aff_bind_domain_wrapped_domain.argtypes = [c_void_p, c_void_p] 2218isl.isl_pw_multi_aff_coalesce.restype = c_void_p 2219isl.isl_pw_multi_aff_coalesce.argtypes = [c_void_p] 2220isl.isl_pw_multi_aff_domain.restype = c_void_p 2221isl.isl_pw_multi_aff_domain.argtypes = [c_void_p] 2222isl.isl_pw_multi_aff_domain_map.restype = c_void_p 2223isl.isl_pw_multi_aff_domain_map.argtypes = [c_void_p] 2224isl.isl_pw_multi_aff_flat_range_product.restype = c_void_p 2225isl.isl_pw_multi_aff_flat_range_product.argtypes = [c_void_p, c_void_p] 2226isl.isl_pw_multi_aff_foreach_piece.argtypes = [c_void_p, c_void_p, c_void_p] 2227isl.isl_pw_multi_aff_get_space.restype = c_void_p 2228isl.isl_pw_multi_aff_get_space.argtypes = [c_void_p] 2229isl.isl_pw_multi_aff_gist.restype = c_void_p 2230isl.isl_pw_multi_aff_gist.argtypes = [c_void_p, c_void_p] 2231isl.isl_pw_multi_aff_insert_domain.restype = c_void_p 2232isl.isl_pw_multi_aff_insert_domain.argtypes = [c_void_p, c_void_p] 2233isl.isl_pw_multi_aff_intersect_domain.restype = c_void_p 2234isl.isl_pw_multi_aff_intersect_domain.argtypes = [c_void_p, c_void_p] 2235isl.isl_pw_multi_aff_intersect_params.restype = c_void_p 2236isl.isl_pw_multi_aff_intersect_params.argtypes = [c_void_p, c_void_p] 2237isl.isl_pw_multi_aff_involves_locals.argtypes = [c_void_p] 2238isl.isl_pw_multi_aff_isa_multi_aff.argtypes = [c_void_p] 2239isl.isl_pw_multi_aff_max_multi_val.restype = c_void_p 2240isl.isl_pw_multi_aff_max_multi_val.argtypes = [c_void_p] 2241isl.isl_pw_multi_aff_min_multi_val.restype = c_void_p 2242isl.isl_pw_multi_aff_min_multi_val.argtypes = [c_void_p] 2243isl.isl_pw_multi_aff_n_piece.argtypes = [c_void_p] 2244isl.isl_pw_multi_aff_product.restype = c_void_p 2245isl.isl_pw_multi_aff_product.argtypes = [c_void_p, c_void_p] 2246isl.isl_pw_multi_aff_pullback_multi_aff.restype = c_void_p 2247isl.isl_pw_multi_aff_pullback_multi_aff.argtypes = [c_void_p, c_void_p] 2248isl.isl_pw_multi_aff_pullback_pw_multi_aff.restype = c_void_p 2249isl.isl_pw_multi_aff_pullback_pw_multi_aff.argtypes = [c_void_p, c_void_p] 2250isl.isl_pw_multi_aff_range_factor_domain.restype = c_void_p 2251isl.isl_pw_multi_aff_range_factor_domain.argtypes = [c_void_p] 2252isl.isl_pw_multi_aff_range_factor_range.restype = c_void_p 2253isl.isl_pw_multi_aff_range_factor_range.argtypes = [c_void_p] 2254isl.isl_pw_multi_aff_range_map.restype = c_void_p 2255isl.isl_pw_multi_aff_range_map.argtypes = [c_void_p] 2256isl.isl_pw_multi_aff_range_product.restype = c_void_p 2257isl.isl_pw_multi_aff_range_product.argtypes = [c_void_p, c_void_p] 2258isl.isl_pw_multi_aff_scale_val.restype = c_void_p 2259isl.isl_pw_multi_aff_scale_val.argtypes = [c_void_p, c_void_p] 2260isl.isl_pw_multi_aff_scale_down_val.restype = c_void_p 2261isl.isl_pw_multi_aff_scale_down_val.argtypes = [c_void_p, c_void_p] 2262isl.isl_pw_multi_aff_sub.restype = c_void_p 2263isl.isl_pw_multi_aff_sub.argtypes = [c_void_p, c_void_p] 2264isl.isl_pw_multi_aff_subtract_domain.restype = c_void_p 2265isl.isl_pw_multi_aff_subtract_domain.argtypes = [c_void_p, c_void_p] 2266isl.isl_pw_multi_aff_union_add.restype = c_void_p 2267isl.isl_pw_multi_aff_union_add.argtypes = [c_void_p, c_void_p] 2268isl.isl_pw_multi_aff_zero.restype = c_void_p 2269isl.isl_pw_multi_aff_zero.argtypes = [c_void_p] 2270isl.isl_pw_multi_aff_copy.restype = c_void_p 2271isl.isl_pw_multi_aff_copy.argtypes = [c_void_p] 2272isl.isl_pw_multi_aff_free.restype = c_void_p 2273isl.isl_pw_multi_aff_free.argtypes = [c_void_p] 2274isl.isl_pw_multi_aff_to_str.restype = POINTER(c_char) 2275isl.isl_pw_multi_aff_to_str.argtypes = [c_void_p] 2276 2277class pw_aff(union_pw_aff, pw_multi_aff, multi_pw_aff): 2278 def __init__(self, *args, **keywords): 2279 if "ptr" in keywords: 2280 self.ctx = keywords["ctx"] 2281 self.ptr = keywords["ptr"] 2282 return 2283 if len(args) == 1 and args[0].__class__ is aff: 2284 self.ctx = Context.getDefaultInstance() 2285 self.ptr = isl.isl_pw_aff_from_aff(isl.isl_aff_copy(args[0].ptr)) 2286 return 2287 if len(args) == 1 and type(args[0]) == str: 2288 self.ctx = Context.getDefaultInstance() 2289 self.ptr = isl.isl_pw_aff_read_from_str(self.ctx, args[0].encode('ascii')) 2290 return 2291 raise Error 2292 def __del__(self): 2293 if hasattr(self, 'ptr'): 2294 isl.isl_pw_aff_free(self.ptr) 2295 def __str__(arg0): 2296 try: 2297 if not arg0.__class__ is pw_aff: 2298 arg0 = pw_aff(arg0) 2299 except: 2300 raise 2301 ptr = isl.isl_pw_aff_to_str(arg0.ptr) 2302 res = cast(ptr, c_char_p).value.decode('ascii') 2303 libc.free(ptr) 2304 return res 2305 def __repr__(self): 2306 s = str(self) 2307 if '"' in s: 2308 return 'isl.pw_aff("""%s""")' % s 2309 else: 2310 return 'isl.pw_aff("%s")' % s 2311 def add(arg0, arg1): 2312 try: 2313 if not arg0.__class__ is pw_aff: 2314 arg0 = pw_aff(arg0) 2315 except: 2316 raise 2317 try: 2318 if not arg1.__class__ is pw_aff: 2319 arg1 = pw_aff(arg1) 2320 except: 2321 return union_pw_aff(arg0).add(arg1) 2322 ctx = arg0.ctx 2323 res = isl.isl_pw_aff_add(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_pw_aff_copy(arg1.ptr)) 2324 obj = pw_aff(ctx=ctx, ptr=res) 2325 return obj 2326 def add_constant(*args): 2327 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 2328 args = list(args) 2329 try: 2330 if not args[1].__class__ is val: 2331 args[1] = val(args[1]) 2332 except: 2333 raise 2334 ctx = args[0].ctx 2335 res = isl.isl_pw_aff_add_constant_val(isl.isl_pw_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 2336 obj = pw_aff(ctx=ctx, ptr=res) 2337 return obj 2338 raise Error 2339 def as_aff(arg0): 2340 try: 2341 if not arg0.__class__ is pw_aff: 2342 arg0 = pw_aff(arg0) 2343 except: 2344 raise 2345 ctx = arg0.ctx 2346 res = isl.isl_pw_aff_as_aff(isl.isl_pw_aff_copy(arg0.ptr)) 2347 obj = aff(ctx=ctx, ptr=res) 2348 return obj 2349 def bind(*args): 2350 if len(args) == 2 and (args[1].__class__ is id or type(args[1]) == str): 2351 args = list(args) 2352 try: 2353 if not args[1].__class__ is id: 2354 args[1] = id(args[1]) 2355 except: 2356 raise 2357 ctx = args[0].ctx 2358 res = isl.isl_pw_aff_bind_id(isl.isl_pw_aff_copy(args[0].ptr), isl.isl_id_copy(args[1].ptr)) 2359 obj = set(ctx=ctx, ptr=res) 2360 return obj 2361 raise Error 2362 def bind_domain(arg0, arg1): 2363 try: 2364 if not arg0.__class__ is pw_aff: 2365 arg0 = pw_aff(arg0) 2366 except: 2367 raise 2368 try: 2369 if not arg1.__class__ is multi_id: 2370 arg1 = multi_id(arg1) 2371 except: 2372 return union_pw_aff(arg0).bind_domain(arg1) 2373 ctx = arg0.ctx 2374 res = isl.isl_pw_aff_bind_domain(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 2375 obj = pw_aff(ctx=ctx, ptr=res) 2376 return obj 2377 def bind_domain_wrapped_domain(arg0, arg1): 2378 try: 2379 if not arg0.__class__ is pw_aff: 2380 arg0 = pw_aff(arg0) 2381 except: 2382 raise 2383 try: 2384 if not arg1.__class__ is multi_id: 2385 arg1 = multi_id(arg1) 2386 except: 2387 return union_pw_aff(arg0).bind_domain_wrapped_domain(arg1) 2388 ctx = arg0.ctx 2389 res = isl.isl_pw_aff_bind_domain_wrapped_domain(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 2390 obj = pw_aff(ctx=ctx, ptr=res) 2391 return obj 2392 def ceil(arg0): 2393 try: 2394 if not arg0.__class__ is pw_aff: 2395 arg0 = pw_aff(arg0) 2396 except: 2397 raise 2398 ctx = arg0.ctx 2399 res = isl.isl_pw_aff_ceil(isl.isl_pw_aff_copy(arg0.ptr)) 2400 obj = pw_aff(ctx=ctx, ptr=res) 2401 return obj 2402 def coalesce(arg0): 2403 try: 2404 if not arg0.__class__ is pw_aff: 2405 arg0 = pw_aff(arg0) 2406 except: 2407 raise 2408 ctx = arg0.ctx 2409 res = isl.isl_pw_aff_coalesce(isl.isl_pw_aff_copy(arg0.ptr)) 2410 obj = pw_aff(ctx=ctx, ptr=res) 2411 return obj 2412 def cond(arg0, arg1, arg2): 2413 try: 2414 if not arg0.__class__ is pw_aff: 2415 arg0 = pw_aff(arg0) 2416 except: 2417 raise 2418 try: 2419 if not arg1.__class__ is pw_aff: 2420 arg1 = pw_aff(arg1) 2421 except: 2422 return union_pw_aff(arg0).cond(arg1, arg2) 2423 try: 2424 if not arg2.__class__ is pw_aff: 2425 arg2 = pw_aff(arg2) 2426 except: 2427 return union_pw_aff(arg0).cond(arg1, arg2) 2428 ctx = arg0.ctx 2429 res = isl.isl_pw_aff_cond(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_pw_aff_copy(arg1.ptr), isl.isl_pw_aff_copy(arg2.ptr)) 2430 obj = pw_aff(ctx=ctx, ptr=res) 2431 return obj 2432 def div(arg0, arg1): 2433 try: 2434 if not arg0.__class__ is pw_aff: 2435 arg0 = pw_aff(arg0) 2436 except: 2437 raise 2438 try: 2439 if not arg1.__class__ is pw_aff: 2440 arg1 = pw_aff(arg1) 2441 except: 2442 return union_pw_aff(arg0).div(arg1) 2443 ctx = arg0.ctx 2444 res = isl.isl_pw_aff_div(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_pw_aff_copy(arg1.ptr)) 2445 obj = pw_aff(ctx=ctx, ptr=res) 2446 return obj 2447 def domain(arg0): 2448 try: 2449 if not arg0.__class__ is pw_aff: 2450 arg0 = pw_aff(arg0) 2451 except: 2452 raise 2453 ctx = arg0.ctx 2454 res = isl.isl_pw_aff_domain(isl.isl_pw_aff_copy(arg0.ptr)) 2455 obj = set(ctx=ctx, ptr=res) 2456 return obj 2457 def eq_set(arg0, arg1): 2458 try: 2459 if not arg0.__class__ is pw_aff: 2460 arg0 = pw_aff(arg0) 2461 except: 2462 raise 2463 try: 2464 if not arg1.__class__ is pw_aff: 2465 arg1 = pw_aff(arg1) 2466 except: 2467 return union_pw_aff(arg0).eq_set(arg1) 2468 ctx = arg0.ctx 2469 res = isl.isl_pw_aff_eq_set(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_pw_aff_copy(arg1.ptr)) 2470 obj = set(ctx=ctx, ptr=res) 2471 return obj 2472 def eval(arg0, arg1): 2473 try: 2474 if not arg0.__class__ is pw_aff: 2475 arg0 = pw_aff(arg0) 2476 except: 2477 raise 2478 try: 2479 if not arg1.__class__ is point: 2480 arg1 = point(arg1) 2481 except: 2482 return union_pw_aff(arg0).eval(arg1) 2483 ctx = arg0.ctx 2484 res = isl.isl_pw_aff_eval(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_point_copy(arg1.ptr)) 2485 obj = val(ctx=ctx, ptr=res) 2486 return obj 2487 def floor(arg0): 2488 try: 2489 if not arg0.__class__ is pw_aff: 2490 arg0 = pw_aff(arg0) 2491 except: 2492 raise 2493 ctx = arg0.ctx 2494 res = isl.isl_pw_aff_floor(isl.isl_pw_aff_copy(arg0.ptr)) 2495 obj = pw_aff(ctx=ctx, ptr=res) 2496 return obj 2497 def ge_set(arg0, arg1): 2498 try: 2499 if not arg0.__class__ is pw_aff: 2500 arg0 = pw_aff(arg0) 2501 except: 2502 raise 2503 try: 2504 if not arg1.__class__ is pw_aff: 2505 arg1 = pw_aff(arg1) 2506 except: 2507 return union_pw_aff(arg0).ge_set(arg1) 2508 ctx = arg0.ctx 2509 res = isl.isl_pw_aff_ge_set(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_pw_aff_copy(arg1.ptr)) 2510 obj = set(ctx=ctx, ptr=res) 2511 return obj 2512 def gist(arg0, arg1): 2513 try: 2514 if not arg0.__class__ is pw_aff: 2515 arg0 = pw_aff(arg0) 2516 except: 2517 raise 2518 try: 2519 if not arg1.__class__ is set: 2520 arg1 = set(arg1) 2521 except: 2522 return union_pw_aff(arg0).gist(arg1) 2523 ctx = arg0.ctx 2524 res = isl.isl_pw_aff_gist(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 2525 obj = pw_aff(ctx=ctx, ptr=res) 2526 return obj 2527 def gt_set(arg0, arg1): 2528 try: 2529 if not arg0.__class__ is pw_aff: 2530 arg0 = pw_aff(arg0) 2531 except: 2532 raise 2533 try: 2534 if not arg1.__class__ is pw_aff: 2535 arg1 = pw_aff(arg1) 2536 except: 2537 return union_pw_aff(arg0).gt_set(arg1) 2538 ctx = arg0.ctx 2539 res = isl.isl_pw_aff_gt_set(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_pw_aff_copy(arg1.ptr)) 2540 obj = set(ctx=ctx, ptr=res) 2541 return obj 2542 def insert_domain(arg0, arg1): 2543 try: 2544 if not arg0.__class__ is pw_aff: 2545 arg0 = pw_aff(arg0) 2546 except: 2547 raise 2548 try: 2549 if not arg1.__class__ is space: 2550 arg1 = space(arg1) 2551 except: 2552 return union_pw_aff(arg0).insert_domain(arg1) 2553 ctx = arg0.ctx 2554 res = isl.isl_pw_aff_insert_domain(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_space_copy(arg1.ptr)) 2555 obj = pw_aff(ctx=ctx, ptr=res) 2556 return obj 2557 def intersect_domain(arg0, arg1): 2558 try: 2559 if not arg0.__class__ is pw_aff: 2560 arg0 = pw_aff(arg0) 2561 except: 2562 raise 2563 try: 2564 if not arg1.__class__ is set: 2565 arg1 = set(arg1) 2566 except: 2567 return union_pw_aff(arg0).intersect_domain(arg1) 2568 ctx = arg0.ctx 2569 res = isl.isl_pw_aff_intersect_domain(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 2570 obj = pw_aff(ctx=ctx, ptr=res) 2571 return obj 2572 def intersect_params(arg0, arg1): 2573 try: 2574 if not arg0.__class__ is pw_aff: 2575 arg0 = pw_aff(arg0) 2576 except: 2577 raise 2578 try: 2579 if not arg1.__class__ is set: 2580 arg1 = set(arg1) 2581 except: 2582 return union_pw_aff(arg0).intersect_params(arg1) 2583 ctx = arg0.ctx 2584 res = isl.isl_pw_aff_intersect_params(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 2585 obj = pw_aff(ctx=ctx, ptr=res) 2586 return obj 2587 def isa_aff(arg0): 2588 try: 2589 if not arg0.__class__ is pw_aff: 2590 arg0 = pw_aff(arg0) 2591 except: 2592 raise 2593 ctx = arg0.ctx 2594 res = isl.isl_pw_aff_isa_aff(arg0.ptr) 2595 if res < 0: 2596 raise 2597 return bool(res) 2598 def le_set(arg0, arg1): 2599 try: 2600 if not arg0.__class__ is pw_aff: 2601 arg0 = pw_aff(arg0) 2602 except: 2603 raise 2604 try: 2605 if not arg1.__class__ is pw_aff: 2606 arg1 = pw_aff(arg1) 2607 except: 2608 return union_pw_aff(arg0).le_set(arg1) 2609 ctx = arg0.ctx 2610 res = isl.isl_pw_aff_le_set(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_pw_aff_copy(arg1.ptr)) 2611 obj = set(ctx=ctx, ptr=res) 2612 return obj 2613 def lt_set(arg0, arg1): 2614 try: 2615 if not arg0.__class__ is pw_aff: 2616 arg0 = pw_aff(arg0) 2617 except: 2618 raise 2619 try: 2620 if not arg1.__class__ is pw_aff: 2621 arg1 = pw_aff(arg1) 2622 except: 2623 return union_pw_aff(arg0).lt_set(arg1) 2624 ctx = arg0.ctx 2625 res = isl.isl_pw_aff_lt_set(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_pw_aff_copy(arg1.ptr)) 2626 obj = set(ctx=ctx, ptr=res) 2627 return obj 2628 def max(arg0, arg1): 2629 try: 2630 if not arg0.__class__ is pw_aff: 2631 arg0 = pw_aff(arg0) 2632 except: 2633 raise 2634 try: 2635 if not arg1.__class__ is pw_aff: 2636 arg1 = pw_aff(arg1) 2637 except: 2638 return union_pw_aff(arg0).max(arg1) 2639 ctx = arg0.ctx 2640 res = isl.isl_pw_aff_max(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_pw_aff_copy(arg1.ptr)) 2641 obj = pw_aff(ctx=ctx, ptr=res) 2642 return obj 2643 def min(arg0, arg1): 2644 try: 2645 if not arg0.__class__ is pw_aff: 2646 arg0 = pw_aff(arg0) 2647 except: 2648 raise 2649 try: 2650 if not arg1.__class__ is pw_aff: 2651 arg1 = pw_aff(arg1) 2652 except: 2653 return union_pw_aff(arg0).min(arg1) 2654 ctx = arg0.ctx 2655 res = isl.isl_pw_aff_min(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_pw_aff_copy(arg1.ptr)) 2656 obj = pw_aff(ctx=ctx, ptr=res) 2657 return obj 2658 def mod(*args): 2659 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 2660 args = list(args) 2661 try: 2662 if not args[1].__class__ is val: 2663 args[1] = val(args[1]) 2664 except: 2665 raise 2666 ctx = args[0].ctx 2667 res = isl.isl_pw_aff_mod_val(isl.isl_pw_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 2668 obj = pw_aff(ctx=ctx, ptr=res) 2669 return obj 2670 raise Error 2671 def mul(arg0, arg1): 2672 try: 2673 if not arg0.__class__ is pw_aff: 2674 arg0 = pw_aff(arg0) 2675 except: 2676 raise 2677 try: 2678 if not arg1.__class__ is pw_aff: 2679 arg1 = pw_aff(arg1) 2680 except: 2681 return union_pw_aff(arg0).mul(arg1) 2682 ctx = arg0.ctx 2683 res = isl.isl_pw_aff_mul(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_pw_aff_copy(arg1.ptr)) 2684 obj = pw_aff(ctx=ctx, ptr=res) 2685 return obj 2686 def ne_set(arg0, arg1): 2687 try: 2688 if not arg0.__class__ is pw_aff: 2689 arg0 = pw_aff(arg0) 2690 except: 2691 raise 2692 try: 2693 if not arg1.__class__ is pw_aff: 2694 arg1 = pw_aff(arg1) 2695 except: 2696 return union_pw_aff(arg0).ne_set(arg1) 2697 ctx = arg0.ctx 2698 res = isl.isl_pw_aff_ne_set(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_pw_aff_copy(arg1.ptr)) 2699 obj = set(ctx=ctx, ptr=res) 2700 return obj 2701 def neg(arg0): 2702 try: 2703 if not arg0.__class__ is pw_aff: 2704 arg0 = pw_aff(arg0) 2705 except: 2706 raise 2707 ctx = arg0.ctx 2708 res = isl.isl_pw_aff_neg(isl.isl_pw_aff_copy(arg0.ptr)) 2709 obj = pw_aff(ctx=ctx, ptr=res) 2710 return obj 2711 @staticmethod 2712 def param_on_domain(*args): 2713 if len(args) == 2 and args[0].__class__ is set and (args[1].__class__ is id or type(args[1]) == str): 2714 args = list(args) 2715 try: 2716 if not args[1].__class__ is id: 2717 args[1] = id(args[1]) 2718 except: 2719 raise 2720 ctx = args[0].ctx 2721 res = isl.isl_pw_aff_param_on_domain_id(isl.isl_set_copy(args[0].ptr), isl.isl_id_copy(args[1].ptr)) 2722 obj = pw_aff(ctx=ctx, ptr=res) 2723 return obj 2724 raise Error 2725 def pullback(*args): 2726 if len(args) == 2 and args[1].__class__ is multi_aff: 2727 ctx = args[0].ctx 2728 res = isl.isl_pw_aff_pullback_multi_aff(isl.isl_pw_aff_copy(args[0].ptr), isl.isl_multi_aff_copy(args[1].ptr)) 2729 obj = pw_aff(ctx=ctx, ptr=res) 2730 return obj 2731 if len(args) == 2 and args[1].__class__ is multi_pw_aff: 2732 ctx = args[0].ctx 2733 res = isl.isl_pw_aff_pullback_multi_pw_aff(isl.isl_pw_aff_copy(args[0].ptr), isl.isl_multi_pw_aff_copy(args[1].ptr)) 2734 obj = pw_aff(ctx=ctx, ptr=res) 2735 return obj 2736 if len(args) == 2 and args[1].__class__ is pw_multi_aff: 2737 ctx = args[0].ctx 2738 res = isl.isl_pw_aff_pullback_pw_multi_aff(isl.isl_pw_aff_copy(args[0].ptr), isl.isl_pw_multi_aff_copy(args[1].ptr)) 2739 obj = pw_aff(ctx=ctx, ptr=res) 2740 return obj 2741 raise Error 2742 def scale(*args): 2743 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 2744 args = list(args) 2745 try: 2746 if not args[1].__class__ is val: 2747 args[1] = val(args[1]) 2748 except: 2749 raise 2750 ctx = args[0].ctx 2751 res = isl.isl_pw_aff_scale_val(isl.isl_pw_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 2752 obj = pw_aff(ctx=ctx, ptr=res) 2753 return obj 2754 raise Error 2755 def scale_down(*args): 2756 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 2757 args = list(args) 2758 try: 2759 if not args[1].__class__ is val: 2760 args[1] = val(args[1]) 2761 except: 2762 raise 2763 ctx = args[0].ctx 2764 res = isl.isl_pw_aff_scale_down_val(isl.isl_pw_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 2765 obj = pw_aff(ctx=ctx, ptr=res) 2766 return obj 2767 raise Error 2768 def sub(arg0, arg1): 2769 try: 2770 if not arg0.__class__ is pw_aff: 2771 arg0 = pw_aff(arg0) 2772 except: 2773 raise 2774 try: 2775 if not arg1.__class__ is pw_aff: 2776 arg1 = pw_aff(arg1) 2777 except: 2778 return union_pw_aff(arg0).sub(arg1) 2779 ctx = arg0.ctx 2780 res = isl.isl_pw_aff_sub(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_pw_aff_copy(arg1.ptr)) 2781 obj = pw_aff(ctx=ctx, ptr=res) 2782 return obj 2783 def subtract_domain(arg0, arg1): 2784 try: 2785 if not arg0.__class__ is pw_aff: 2786 arg0 = pw_aff(arg0) 2787 except: 2788 raise 2789 try: 2790 if not arg1.__class__ is set: 2791 arg1 = set(arg1) 2792 except: 2793 return union_pw_aff(arg0).subtract_domain(arg1) 2794 ctx = arg0.ctx 2795 res = isl.isl_pw_aff_subtract_domain(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 2796 obj = pw_aff(ctx=ctx, ptr=res) 2797 return obj 2798 def tdiv_q(arg0, arg1): 2799 try: 2800 if not arg0.__class__ is pw_aff: 2801 arg0 = pw_aff(arg0) 2802 except: 2803 raise 2804 try: 2805 if not arg1.__class__ is pw_aff: 2806 arg1 = pw_aff(arg1) 2807 except: 2808 return union_pw_aff(arg0).tdiv_q(arg1) 2809 ctx = arg0.ctx 2810 res = isl.isl_pw_aff_tdiv_q(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_pw_aff_copy(arg1.ptr)) 2811 obj = pw_aff(ctx=ctx, ptr=res) 2812 return obj 2813 def tdiv_r(arg0, arg1): 2814 try: 2815 if not arg0.__class__ is pw_aff: 2816 arg0 = pw_aff(arg0) 2817 except: 2818 raise 2819 try: 2820 if not arg1.__class__ is pw_aff: 2821 arg1 = pw_aff(arg1) 2822 except: 2823 return union_pw_aff(arg0).tdiv_r(arg1) 2824 ctx = arg0.ctx 2825 res = isl.isl_pw_aff_tdiv_r(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_pw_aff_copy(arg1.ptr)) 2826 obj = pw_aff(ctx=ctx, ptr=res) 2827 return obj 2828 def union_add(arg0, arg1): 2829 try: 2830 if not arg0.__class__ is pw_aff: 2831 arg0 = pw_aff(arg0) 2832 except: 2833 raise 2834 try: 2835 if not arg1.__class__ is pw_aff: 2836 arg1 = pw_aff(arg1) 2837 except: 2838 return union_pw_aff(arg0).union_add(arg1) 2839 ctx = arg0.ctx 2840 res = isl.isl_pw_aff_union_add(isl.isl_pw_aff_copy(arg0.ptr), isl.isl_pw_aff_copy(arg1.ptr)) 2841 obj = pw_aff(ctx=ctx, ptr=res) 2842 return obj 2843 2844isl.isl_pw_aff_from_aff.restype = c_void_p 2845isl.isl_pw_aff_from_aff.argtypes = [c_void_p] 2846isl.isl_pw_aff_read_from_str.restype = c_void_p 2847isl.isl_pw_aff_read_from_str.argtypes = [Context, c_char_p] 2848isl.isl_pw_aff_add.restype = c_void_p 2849isl.isl_pw_aff_add.argtypes = [c_void_p, c_void_p] 2850isl.isl_pw_aff_add_constant_val.restype = c_void_p 2851isl.isl_pw_aff_add_constant_val.argtypes = [c_void_p, c_void_p] 2852isl.isl_pw_aff_as_aff.restype = c_void_p 2853isl.isl_pw_aff_as_aff.argtypes = [c_void_p] 2854isl.isl_pw_aff_bind_id.restype = c_void_p 2855isl.isl_pw_aff_bind_id.argtypes = [c_void_p, c_void_p] 2856isl.isl_pw_aff_bind_domain.restype = c_void_p 2857isl.isl_pw_aff_bind_domain.argtypes = [c_void_p, c_void_p] 2858isl.isl_pw_aff_bind_domain_wrapped_domain.restype = c_void_p 2859isl.isl_pw_aff_bind_domain_wrapped_domain.argtypes = [c_void_p, c_void_p] 2860isl.isl_pw_aff_ceil.restype = c_void_p 2861isl.isl_pw_aff_ceil.argtypes = [c_void_p] 2862isl.isl_pw_aff_coalesce.restype = c_void_p 2863isl.isl_pw_aff_coalesce.argtypes = [c_void_p] 2864isl.isl_pw_aff_cond.restype = c_void_p 2865isl.isl_pw_aff_cond.argtypes = [c_void_p, c_void_p, c_void_p] 2866isl.isl_pw_aff_div.restype = c_void_p 2867isl.isl_pw_aff_div.argtypes = [c_void_p, c_void_p] 2868isl.isl_pw_aff_domain.restype = c_void_p 2869isl.isl_pw_aff_domain.argtypes = [c_void_p] 2870isl.isl_pw_aff_eq_set.restype = c_void_p 2871isl.isl_pw_aff_eq_set.argtypes = [c_void_p, c_void_p] 2872isl.isl_pw_aff_eval.restype = c_void_p 2873isl.isl_pw_aff_eval.argtypes = [c_void_p, c_void_p] 2874isl.isl_pw_aff_floor.restype = c_void_p 2875isl.isl_pw_aff_floor.argtypes = [c_void_p] 2876isl.isl_pw_aff_ge_set.restype = c_void_p 2877isl.isl_pw_aff_ge_set.argtypes = [c_void_p, c_void_p] 2878isl.isl_pw_aff_gist.restype = c_void_p 2879isl.isl_pw_aff_gist.argtypes = [c_void_p, c_void_p] 2880isl.isl_pw_aff_gt_set.restype = c_void_p 2881isl.isl_pw_aff_gt_set.argtypes = [c_void_p, c_void_p] 2882isl.isl_pw_aff_insert_domain.restype = c_void_p 2883isl.isl_pw_aff_insert_domain.argtypes = [c_void_p, c_void_p] 2884isl.isl_pw_aff_intersect_domain.restype = c_void_p 2885isl.isl_pw_aff_intersect_domain.argtypes = [c_void_p, c_void_p] 2886isl.isl_pw_aff_intersect_params.restype = c_void_p 2887isl.isl_pw_aff_intersect_params.argtypes = [c_void_p, c_void_p] 2888isl.isl_pw_aff_isa_aff.argtypes = [c_void_p] 2889isl.isl_pw_aff_le_set.restype = c_void_p 2890isl.isl_pw_aff_le_set.argtypes = [c_void_p, c_void_p] 2891isl.isl_pw_aff_lt_set.restype = c_void_p 2892isl.isl_pw_aff_lt_set.argtypes = [c_void_p, c_void_p] 2893isl.isl_pw_aff_max.restype = c_void_p 2894isl.isl_pw_aff_max.argtypes = [c_void_p, c_void_p] 2895isl.isl_pw_aff_min.restype = c_void_p 2896isl.isl_pw_aff_min.argtypes = [c_void_p, c_void_p] 2897isl.isl_pw_aff_mod_val.restype = c_void_p 2898isl.isl_pw_aff_mod_val.argtypes = [c_void_p, c_void_p] 2899isl.isl_pw_aff_mul.restype = c_void_p 2900isl.isl_pw_aff_mul.argtypes = [c_void_p, c_void_p] 2901isl.isl_pw_aff_ne_set.restype = c_void_p 2902isl.isl_pw_aff_ne_set.argtypes = [c_void_p, c_void_p] 2903isl.isl_pw_aff_neg.restype = c_void_p 2904isl.isl_pw_aff_neg.argtypes = [c_void_p] 2905isl.isl_pw_aff_param_on_domain_id.restype = c_void_p 2906isl.isl_pw_aff_param_on_domain_id.argtypes = [c_void_p, c_void_p] 2907isl.isl_pw_aff_pullback_multi_aff.restype = c_void_p 2908isl.isl_pw_aff_pullback_multi_aff.argtypes = [c_void_p, c_void_p] 2909isl.isl_pw_aff_pullback_multi_pw_aff.restype = c_void_p 2910isl.isl_pw_aff_pullback_multi_pw_aff.argtypes = [c_void_p, c_void_p] 2911isl.isl_pw_aff_pullback_pw_multi_aff.restype = c_void_p 2912isl.isl_pw_aff_pullback_pw_multi_aff.argtypes = [c_void_p, c_void_p] 2913isl.isl_pw_aff_scale_val.restype = c_void_p 2914isl.isl_pw_aff_scale_val.argtypes = [c_void_p, c_void_p] 2915isl.isl_pw_aff_scale_down_val.restype = c_void_p 2916isl.isl_pw_aff_scale_down_val.argtypes = [c_void_p, c_void_p] 2917isl.isl_pw_aff_sub.restype = c_void_p 2918isl.isl_pw_aff_sub.argtypes = [c_void_p, c_void_p] 2919isl.isl_pw_aff_subtract_domain.restype = c_void_p 2920isl.isl_pw_aff_subtract_domain.argtypes = [c_void_p, c_void_p] 2921isl.isl_pw_aff_tdiv_q.restype = c_void_p 2922isl.isl_pw_aff_tdiv_q.argtypes = [c_void_p, c_void_p] 2923isl.isl_pw_aff_tdiv_r.restype = c_void_p 2924isl.isl_pw_aff_tdiv_r.argtypes = [c_void_p, c_void_p] 2925isl.isl_pw_aff_union_add.restype = c_void_p 2926isl.isl_pw_aff_union_add.argtypes = [c_void_p, c_void_p] 2927isl.isl_pw_aff_copy.restype = c_void_p 2928isl.isl_pw_aff_copy.argtypes = [c_void_p] 2929isl.isl_pw_aff_free.restype = c_void_p 2930isl.isl_pw_aff_free.argtypes = [c_void_p] 2931isl.isl_pw_aff_to_str.restype = POINTER(c_char) 2932isl.isl_pw_aff_to_str.argtypes = [c_void_p] 2933 2934class multi_aff(pw_multi_aff, multi_pw_aff): 2935 def __init__(self, *args, **keywords): 2936 if "ptr" in keywords: 2937 self.ctx = keywords["ctx"] 2938 self.ptr = keywords["ptr"] 2939 return 2940 if len(args) == 1 and args[0].__class__ is aff: 2941 self.ctx = Context.getDefaultInstance() 2942 self.ptr = isl.isl_multi_aff_from_aff(isl.isl_aff_copy(args[0].ptr)) 2943 return 2944 if len(args) == 2 and args[0].__class__ is space and args[1].__class__ is aff_list: 2945 self.ctx = Context.getDefaultInstance() 2946 self.ptr = isl.isl_multi_aff_from_aff_list(isl.isl_space_copy(args[0].ptr), isl.isl_aff_list_copy(args[1].ptr)) 2947 return 2948 if len(args) == 1 and type(args[0]) == str: 2949 self.ctx = Context.getDefaultInstance() 2950 self.ptr = isl.isl_multi_aff_read_from_str(self.ctx, args[0].encode('ascii')) 2951 return 2952 raise Error 2953 def __del__(self): 2954 if hasattr(self, 'ptr'): 2955 isl.isl_multi_aff_free(self.ptr) 2956 def __str__(arg0): 2957 try: 2958 if not arg0.__class__ is multi_aff: 2959 arg0 = multi_aff(arg0) 2960 except: 2961 raise 2962 ptr = isl.isl_multi_aff_to_str(arg0.ptr) 2963 res = cast(ptr, c_char_p).value.decode('ascii') 2964 libc.free(ptr) 2965 return res 2966 def __repr__(self): 2967 s = str(self) 2968 if '"' in s: 2969 return 'isl.multi_aff("""%s""")' % s 2970 else: 2971 return 'isl.multi_aff("%s")' % s 2972 def add(arg0, arg1): 2973 try: 2974 if not arg0.__class__ is multi_aff: 2975 arg0 = multi_aff(arg0) 2976 except: 2977 raise 2978 try: 2979 if not arg1.__class__ is multi_aff: 2980 arg1 = multi_aff(arg1) 2981 except: 2982 return pw_multi_aff(arg0).add(arg1) 2983 ctx = arg0.ctx 2984 res = isl.isl_multi_aff_add(isl.isl_multi_aff_copy(arg0.ptr), isl.isl_multi_aff_copy(arg1.ptr)) 2985 obj = multi_aff(ctx=ctx, ptr=res) 2986 return obj 2987 def add_constant(*args): 2988 if len(args) == 2 and args[1].__class__ is multi_val: 2989 ctx = args[0].ctx 2990 res = isl.isl_multi_aff_add_constant_multi_val(isl.isl_multi_aff_copy(args[0].ptr), isl.isl_multi_val_copy(args[1].ptr)) 2991 obj = multi_aff(ctx=ctx, ptr=res) 2992 return obj 2993 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 2994 args = list(args) 2995 try: 2996 if not args[1].__class__ is val: 2997 args[1] = val(args[1]) 2998 except: 2999 raise 3000 ctx = args[0].ctx 3001 res = isl.isl_multi_aff_add_constant_val(isl.isl_multi_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 3002 obj = multi_aff(ctx=ctx, ptr=res) 3003 return obj 3004 raise Error 3005 def bind(arg0, arg1): 3006 try: 3007 if not arg0.__class__ is multi_aff: 3008 arg0 = multi_aff(arg0) 3009 except: 3010 raise 3011 try: 3012 if not arg1.__class__ is multi_id: 3013 arg1 = multi_id(arg1) 3014 except: 3015 return pw_multi_aff(arg0).bind(arg1) 3016 ctx = arg0.ctx 3017 res = isl.isl_multi_aff_bind(isl.isl_multi_aff_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 3018 obj = basic_set(ctx=ctx, ptr=res) 3019 return obj 3020 def bind_domain(arg0, arg1): 3021 try: 3022 if not arg0.__class__ is multi_aff: 3023 arg0 = multi_aff(arg0) 3024 except: 3025 raise 3026 try: 3027 if not arg1.__class__ is multi_id: 3028 arg1 = multi_id(arg1) 3029 except: 3030 return pw_multi_aff(arg0).bind_domain(arg1) 3031 ctx = arg0.ctx 3032 res = isl.isl_multi_aff_bind_domain(isl.isl_multi_aff_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 3033 obj = multi_aff(ctx=ctx, ptr=res) 3034 return obj 3035 def bind_domain_wrapped_domain(arg0, arg1): 3036 try: 3037 if not arg0.__class__ is multi_aff: 3038 arg0 = multi_aff(arg0) 3039 except: 3040 raise 3041 try: 3042 if not arg1.__class__ is multi_id: 3043 arg1 = multi_id(arg1) 3044 except: 3045 return pw_multi_aff(arg0).bind_domain_wrapped_domain(arg1) 3046 ctx = arg0.ctx 3047 res = isl.isl_multi_aff_bind_domain_wrapped_domain(isl.isl_multi_aff_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 3048 obj = multi_aff(ctx=ctx, ptr=res) 3049 return obj 3050 @staticmethod 3051 def domain_map(arg0): 3052 try: 3053 if not arg0.__class__ is space: 3054 arg0 = space(arg0) 3055 except: 3056 raise 3057 ctx = arg0.ctx 3058 res = isl.isl_multi_aff_domain_map(isl.isl_space_copy(arg0.ptr)) 3059 obj = multi_aff(ctx=ctx, ptr=res) 3060 return obj 3061 def flat_range_product(arg0, arg1): 3062 try: 3063 if not arg0.__class__ is multi_aff: 3064 arg0 = multi_aff(arg0) 3065 except: 3066 raise 3067 try: 3068 if not arg1.__class__ is multi_aff: 3069 arg1 = multi_aff(arg1) 3070 except: 3071 return pw_multi_aff(arg0).flat_range_product(arg1) 3072 ctx = arg0.ctx 3073 res = isl.isl_multi_aff_flat_range_product(isl.isl_multi_aff_copy(arg0.ptr), isl.isl_multi_aff_copy(arg1.ptr)) 3074 obj = multi_aff(ctx=ctx, ptr=res) 3075 return obj 3076 def floor(arg0): 3077 try: 3078 if not arg0.__class__ is multi_aff: 3079 arg0 = multi_aff(arg0) 3080 except: 3081 raise 3082 ctx = arg0.ctx 3083 res = isl.isl_multi_aff_floor(isl.isl_multi_aff_copy(arg0.ptr)) 3084 obj = multi_aff(ctx=ctx, ptr=res) 3085 return obj 3086 def at(arg0, arg1): 3087 try: 3088 if not arg0.__class__ is multi_aff: 3089 arg0 = multi_aff(arg0) 3090 except: 3091 raise 3092 ctx = arg0.ctx 3093 res = isl.isl_multi_aff_get_at(arg0.ptr, arg1) 3094 obj = aff(ctx=ctx, ptr=res) 3095 return obj 3096 def get_at(arg0, arg1): 3097 return arg0.at(arg1) 3098 def constant_multi_val(arg0): 3099 try: 3100 if not arg0.__class__ is multi_aff: 3101 arg0 = multi_aff(arg0) 3102 except: 3103 raise 3104 ctx = arg0.ctx 3105 res = isl.isl_multi_aff_get_constant_multi_val(arg0.ptr) 3106 obj = multi_val(ctx=ctx, ptr=res) 3107 return obj 3108 def get_constant_multi_val(arg0): 3109 return arg0.constant_multi_val() 3110 def list(arg0): 3111 try: 3112 if not arg0.__class__ is multi_aff: 3113 arg0 = multi_aff(arg0) 3114 except: 3115 raise 3116 ctx = arg0.ctx 3117 res = isl.isl_multi_aff_get_list(arg0.ptr) 3118 obj = aff_list(ctx=ctx, ptr=res) 3119 return obj 3120 def get_list(arg0): 3121 return arg0.list() 3122 def space(arg0): 3123 try: 3124 if not arg0.__class__ is multi_aff: 3125 arg0 = multi_aff(arg0) 3126 except: 3127 raise 3128 ctx = arg0.ctx 3129 res = isl.isl_multi_aff_get_space(arg0.ptr) 3130 obj = space(ctx=ctx, ptr=res) 3131 return obj 3132 def get_space(arg0): 3133 return arg0.space() 3134 def gist(arg0, arg1): 3135 try: 3136 if not arg0.__class__ is multi_aff: 3137 arg0 = multi_aff(arg0) 3138 except: 3139 raise 3140 try: 3141 if not arg1.__class__ is set: 3142 arg1 = set(arg1) 3143 except: 3144 return pw_multi_aff(arg0).gist(arg1) 3145 ctx = arg0.ctx 3146 res = isl.isl_multi_aff_gist(isl.isl_multi_aff_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 3147 obj = multi_aff(ctx=ctx, ptr=res) 3148 return obj 3149 def identity(*args): 3150 if len(args) == 1: 3151 ctx = args[0].ctx 3152 res = isl.isl_multi_aff_identity_multi_aff(isl.isl_multi_aff_copy(args[0].ptr)) 3153 obj = multi_aff(ctx=ctx, ptr=res) 3154 return obj 3155 raise Error 3156 @staticmethod 3157 def identity_on_domain(*args): 3158 if len(args) == 1 and args[0].__class__ is space: 3159 ctx = args[0].ctx 3160 res = isl.isl_multi_aff_identity_on_domain_space(isl.isl_space_copy(args[0].ptr)) 3161 obj = multi_aff(ctx=ctx, ptr=res) 3162 return obj 3163 raise Error 3164 def insert_domain(arg0, arg1): 3165 try: 3166 if not arg0.__class__ is multi_aff: 3167 arg0 = multi_aff(arg0) 3168 except: 3169 raise 3170 try: 3171 if not arg1.__class__ is space: 3172 arg1 = space(arg1) 3173 except: 3174 return pw_multi_aff(arg0).insert_domain(arg1) 3175 ctx = arg0.ctx 3176 res = isl.isl_multi_aff_insert_domain(isl.isl_multi_aff_copy(arg0.ptr), isl.isl_space_copy(arg1.ptr)) 3177 obj = multi_aff(ctx=ctx, ptr=res) 3178 return obj 3179 def involves_locals(arg0): 3180 try: 3181 if not arg0.__class__ is multi_aff: 3182 arg0 = multi_aff(arg0) 3183 except: 3184 raise 3185 ctx = arg0.ctx 3186 res = isl.isl_multi_aff_involves_locals(arg0.ptr) 3187 if res < 0: 3188 raise 3189 return bool(res) 3190 def neg(arg0): 3191 try: 3192 if not arg0.__class__ is multi_aff: 3193 arg0 = multi_aff(arg0) 3194 except: 3195 raise 3196 ctx = arg0.ctx 3197 res = isl.isl_multi_aff_neg(isl.isl_multi_aff_copy(arg0.ptr)) 3198 obj = multi_aff(ctx=ctx, ptr=res) 3199 return obj 3200 def plain_is_equal(arg0, arg1): 3201 try: 3202 if not arg0.__class__ is multi_aff: 3203 arg0 = multi_aff(arg0) 3204 except: 3205 raise 3206 try: 3207 if not arg1.__class__ is multi_aff: 3208 arg1 = multi_aff(arg1) 3209 except: 3210 return pw_multi_aff(arg0).plain_is_equal(arg1) 3211 ctx = arg0.ctx 3212 res = isl.isl_multi_aff_plain_is_equal(arg0.ptr, arg1.ptr) 3213 if res < 0: 3214 raise 3215 return bool(res) 3216 def product(arg0, arg1): 3217 try: 3218 if not arg0.__class__ is multi_aff: 3219 arg0 = multi_aff(arg0) 3220 except: 3221 raise 3222 try: 3223 if not arg1.__class__ is multi_aff: 3224 arg1 = multi_aff(arg1) 3225 except: 3226 return pw_multi_aff(arg0).product(arg1) 3227 ctx = arg0.ctx 3228 res = isl.isl_multi_aff_product(isl.isl_multi_aff_copy(arg0.ptr), isl.isl_multi_aff_copy(arg1.ptr)) 3229 obj = multi_aff(ctx=ctx, ptr=res) 3230 return obj 3231 def pullback(*args): 3232 if len(args) == 2 and args[1].__class__ is multi_aff: 3233 ctx = args[0].ctx 3234 res = isl.isl_multi_aff_pullback_multi_aff(isl.isl_multi_aff_copy(args[0].ptr), isl.isl_multi_aff_copy(args[1].ptr)) 3235 obj = multi_aff(ctx=ctx, ptr=res) 3236 return obj 3237 raise Error 3238 @staticmethod 3239 def range_map(arg0): 3240 try: 3241 if not arg0.__class__ is space: 3242 arg0 = space(arg0) 3243 except: 3244 raise 3245 ctx = arg0.ctx 3246 res = isl.isl_multi_aff_range_map(isl.isl_space_copy(arg0.ptr)) 3247 obj = multi_aff(ctx=ctx, ptr=res) 3248 return obj 3249 def range_product(arg0, arg1): 3250 try: 3251 if not arg0.__class__ is multi_aff: 3252 arg0 = multi_aff(arg0) 3253 except: 3254 raise 3255 try: 3256 if not arg1.__class__ is multi_aff: 3257 arg1 = multi_aff(arg1) 3258 except: 3259 return pw_multi_aff(arg0).range_product(arg1) 3260 ctx = arg0.ctx 3261 res = isl.isl_multi_aff_range_product(isl.isl_multi_aff_copy(arg0.ptr), isl.isl_multi_aff_copy(arg1.ptr)) 3262 obj = multi_aff(ctx=ctx, ptr=res) 3263 return obj 3264 def scale(*args): 3265 if len(args) == 2 and args[1].__class__ is multi_val: 3266 ctx = args[0].ctx 3267 res = isl.isl_multi_aff_scale_multi_val(isl.isl_multi_aff_copy(args[0].ptr), isl.isl_multi_val_copy(args[1].ptr)) 3268 obj = multi_aff(ctx=ctx, ptr=res) 3269 return obj 3270 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 3271 args = list(args) 3272 try: 3273 if not args[1].__class__ is val: 3274 args[1] = val(args[1]) 3275 except: 3276 raise 3277 ctx = args[0].ctx 3278 res = isl.isl_multi_aff_scale_val(isl.isl_multi_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 3279 obj = multi_aff(ctx=ctx, ptr=res) 3280 return obj 3281 raise Error 3282 def scale_down(*args): 3283 if len(args) == 2 and args[1].__class__ is multi_val: 3284 ctx = args[0].ctx 3285 res = isl.isl_multi_aff_scale_down_multi_val(isl.isl_multi_aff_copy(args[0].ptr), isl.isl_multi_val_copy(args[1].ptr)) 3286 obj = multi_aff(ctx=ctx, ptr=res) 3287 return obj 3288 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 3289 args = list(args) 3290 try: 3291 if not args[1].__class__ is val: 3292 args[1] = val(args[1]) 3293 except: 3294 raise 3295 ctx = args[0].ctx 3296 res = isl.isl_multi_aff_scale_down_val(isl.isl_multi_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 3297 obj = multi_aff(ctx=ctx, ptr=res) 3298 return obj 3299 raise Error 3300 def set_at(arg0, arg1, arg2): 3301 try: 3302 if not arg0.__class__ is multi_aff: 3303 arg0 = multi_aff(arg0) 3304 except: 3305 raise 3306 try: 3307 if not arg2.__class__ is aff: 3308 arg2 = aff(arg2) 3309 except: 3310 return pw_multi_aff(arg0).set_at(arg1, arg2) 3311 ctx = arg0.ctx 3312 res = isl.isl_multi_aff_set_at(isl.isl_multi_aff_copy(arg0.ptr), arg1, isl.isl_aff_copy(arg2.ptr)) 3313 obj = multi_aff(ctx=ctx, ptr=res) 3314 return obj 3315 def size(arg0): 3316 try: 3317 if not arg0.__class__ is multi_aff: 3318 arg0 = multi_aff(arg0) 3319 except: 3320 raise 3321 ctx = arg0.ctx 3322 res = isl.isl_multi_aff_size(arg0.ptr) 3323 if res < 0: 3324 raise 3325 return int(res) 3326 def sub(arg0, arg1): 3327 try: 3328 if not arg0.__class__ is multi_aff: 3329 arg0 = multi_aff(arg0) 3330 except: 3331 raise 3332 try: 3333 if not arg1.__class__ is multi_aff: 3334 arg1 = multi_aff(arg1) 3335 except: 3336 return pw_multi_aff(arg0).sub(arg1) 3337 ctx = arg0.ctx 3338 res = isl.isl_multi_aff_sub(isl.isl_multi_aff_copy(arg0.ptr), isl.isl_multi_aff_copy(arg1.ptr)) 3339 obj = multi_aff(ctx=ctx, ptr=res) 3340 return obj 3341 def unbind_params_insert_domain(arg0, arg1): 3342 try: 3343 if not arg0.__class__ is multi_aff: 3344 arg0 = multi_aff(arg0) 3345 except: 3346 raise 3347 try: 3348 if not arg1.__class__ is multi_id: 3349 arg1 = multi_id(arg1) 3350 except: 3351 return pw_multi_aff(arg0).unbind_params_insert_domain(arg1) 3352 ctx = arg0.ctx 3353 res = isl.isl_multi_aff_unbind_params_insert_domain(isl.isl_multi_aff_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 3354 obj = multi_aff(ctx=ctx, ptr=res) 3355 return obj 3356 @staticmethod 3357 def zero(arg0): 3358 try: 3359 if not arg0.__class__ is space: 3360 arg0 = space(arg0) 3361 except: 3362 raise 3363 ctx = arg0.ctx 3364 res = isl.isl_multi_aff_zero(isl.isl_space_copy(arg0.ptr)) 3365 obj = multi_aff(ctx=ctx, ptr=res) 3366 return obj 3367 3368isl.isl_multi_aff_from_aff.restype = c_void_p 3369isl.isl_multi_aff_from_aff.argtypes = [c_void_p] 3370isl.isl_multi_aff_from_aff_list.restype = c_void_p 3371isl.isl_multi_aff_from_aff_list.argtypes = [c_void_p, c_void_p] 3372isl.isl_multi_aff_read_from_str.restype = c_void_p 3373isl.isl_multi_aff_read_from_str.argtypes = [Context, c_char_p] 3374isl.isl_multi_aff_add.restype = c_void_p 3375isl.isl_multi_aff_add.argtypes = [c_void_p, c_void_p] 3376isl.isl_multi_aff_add_constant_multi_val.restype = c_void_p 3377isl.isl_multi_aff_add_constant_multi_val.argtypes = [c_void_p, c_void_p] 3378isl.isl_multi_aff_add_constant_val.restype = c_void_p 3379isl.isl_multi_aff_add_constant_val.argtypes = [c_void_p, c_void_p] 3380isl.isl_multi_aff_bind.restype = c_void_p 3381isl.isl_multi_aff_bind.argtypes = [c_void_p, c_void_p] 3382isl.isl_multi_aff_bind_domain.restype = c_void_p 3383isl.isl_multi_aff_bind_domain.argtypes = [c_void_p, c_void_p] 3384isl.isl_multi_aff_bind_domain_wrapped_domain.restype = c_void_p 3385isl.isl_multi_aff_bind_domain_wrapped_domain.argtypes = [c_void_p, c_void_p] 3386isl.isl_multi_aff_domain_map.restype = c_void_p 3387isl.isl_multi_aff_domain_map.argtypes = [c_void_p] 3388isl.isl_multi_aff_flat_range_product.restype = c_void_p 3389isl.isl_multi_aff_flat_range_product.argtypes = [c_void_p, c_void_p] 3390isl.isl_multi_aff_floor.restype = c_void_p 3391isl.isl_multi_aff_floor.argtypes = [c_void_p] 3392isl.isl_multi_aff_get_at.restype = c_void_p 3393isl.isl_multi_aff_get_at.argtypes = [c_void_p, c_int] 3394isl.isl_multi_aff_get_constant_multi_val.restype = c_void_p 3395isl.isl_multi_aff_get_constant_multi_val.argtypes = [c_void_p] 3396isl.isl_multi_aff_get_list.restype = c_void_p 3397isl.isl_multi_aff_get_list.argtypes = [c_void_p] 3398isl.isl_multi_aff_get_space.restype = c_void_p 3399isl.isl_multi_aff_get_space.argtypes = [c_void_p] 3400isl.isl_multi_aff_gist.restype = c_void_p 3401isl.isl_multi_aff_gist.argtypes = [c_void_p, c_void_p] 3402isl.isl_multi_aff_identity_multi_aff.restype = c_void_p 3403isl.isl_multi_aff_identity_multi_aff.argtypes = [c_void_p] 3404isl.isl_multi_aff_identity_on_domain_space.restype = c_void_p 3405isl.isl_multi_aff_identity_on_domain_space.argtypes = [c_void_p] 3406isl.isl_multi_aff_insert_domain.restype = c_void_p 3407isl.isl_multi_aff_insert_domain.argtypes = [c_void_p, c_void_p] 3408isl.isl_multi_aff_involves_locals.argtypes = [c_void_p] 3409isl.isl_multi_aff_neg.restype = c_void_p 3410isl.isl_multi_aff_neg.argtypes = [c_void_p] 3411isl.isl_multi_aff_plain_is_equal.argtypes = [c_void_p, c_void_p] 3412isl.isl_multi_aff_product.restype = c_void_p 3413isl.isl_multi_aff_product.argtypes = [c_void_p, c_void_p] 3414isl.isl_multi_aff_pullback_multi_aff.restype = c_void_p 3415isl.isl_multi_aff_pullback_multi_aff.argtypes = [c_void_p, c_void_p] 3416isl.isl_multi_aff_range_map.restype = c_void_p 3417isl.isl_multi_aff_range_map.argtypes = [c_void_p] 3418isl.isl_multi_aff_range_product.restype = c_void_p 3419isl.isl_multi_aff_range_product.argtypes = [c_void_p, c_void_p] 3420isl.isl_multi_aff_scale_multi_val.restype = c_void_p 3421isl.isl_multi_aff_scale_multi_val.argtypes = [c_void_p, c_void_p] 3422isl.isl_multi_aff_scale_val.restype = c_void_p 3423isl.isl_multi_aff_scale_val.argtypes = [c_void_p, c_void_p] 3424isl.isl_multi_aff_scale_down_multi_val.restype = c_void_p 3425isl.isl_multi_aff_scale_down_multi_val.argtypes = [c_void_p, c_void_p] 3426isl.isl_multi_aff_scale_down_val.restype = c_void_p 3427isl.isl_multi_aff_scale_down_val.argtypes = [c_void_p, c_void_p] 3428isl.isl_multi_aff_set_at.restype = c_void_p 3429isl.isl_multi_aff_set_at.argtypes = [c_void_p, c_int, c_void_p] 3430isl.isl_multi_aff_size.argtypes = [c_void_p] 3431isl.isl_multi_aff_sub.restype = c_void_p 3432isl.isl_multi_aff_sub.argtypes = [c_void_p, c_void_p] 3433isl.isl_multi_aff_unbind_params_insert_domain.restype = c_void_p 3434isl.isl_multi_aff_unbind_params_insert_domain.argtypes = [c_void_p, c_void_p] 3435isl.isl_multi_aff_zero.restype = c_void_p 3436isl.isl_multi_aff_zero.argtypes = [c_void_p] 3437isl.isl_multi_aff_copy.restype = c_void_p 3438isl.isl_multi_aff_copy.argtypes = [c_void_p] 3439isl.isl_multi_aff_free.restype = c_void_p 3440isl.isl_multi_aff_free.argtypes = [c_void_p] 3441isl.isl_multi_aff_to_str.restype = POINTER(c_char) 3442isl.isl_multi_aff_to_str.argtypes = [c_void_p] 3443 3444class aff(pw_aff, multi_aff): 3445 def __init__(self, *args, **keywords): 3446 if "ptr" in keywords: 3447 self.ctx = keywords["ctx"] 3448 self.ptr = keywords["ptr"] 3449 return 3450 if len(args) == 1 and type(args[0]) == str: 3451 self.ctx = Context.getDefaultInstance() 3452 self.ptr = isl.isl_aff_read_from_str(self.ctx, args[0].encode('ascii')) 3453 return 3454 raise Error 3455 def __del__(self): 3456 if hasattr(self, 'ptr'): 3457 isl.isl_aff_free(self.ptr) 3458 def __str__(arg0): 3459 try: 3460 if not arg0.__class__ is aff: 3461 arg0 = aff(arg0) 3462 except: 3463 raise 3464 ptr = isl.isl_aff_to_str(arg0.ptr) 3465 res = cast(ptr, c_char_p).value.decode('ascii') 3466 libc.free(ptr) 3467 return res 3468 def __repr__(self): 3469 s = str(self) 3470 if '"' in s: 3471 return 'isl.aff("""%s""")' % s 3472 else: 3473 return 'isl.aff("%s")' % s 3474 def add(arg0, arg1): 3475 try: 3476 if not arg0.__class__ is aff: 3477 arg0 = aff(arg0) 3478 except: 3479 raise 3480 try: 3481 if not arg1.__class__ is aff: 3482 arg1 = aff(arg1) 3483 except: 3484 return pw_aff(arg0).add(arg1) 3485 ctx = arg0.ctx 3486 res = isl.isl_aff_add(isl.isl_aff_copy(arg0.ptr), isl.isl_aff_copy(arg1.ptr)) 3487 obj = aff(ctx=ctx, ptr=res) 3488 return obj 3489 def add_constant(*args): 3490 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 3491 args = list(args) 3492 try: 3493 if not args[1].__class__ is val: 3494 args[1] = val(args[1]) 3495 except: 3496 raise 3497 ctx = args[0].ctx 3498 res = isl.isl_aff_add_constant_val(isl.isl_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 3499 obj = aff(ctx=ctx, ptr=res) 3500 return obj 3501 raise Error 3502 def bind(*args): 3503 if len(args) == 2 and (args[1].__class__ is id or type(args[1]) == str): 3504 args = list(args) 3505 try: 3506 if not args[1].__class__ is id: 3507 args[1] = id(args[1]) 3508 except: 3509 raise 3510 ctx = args[0].ctx 3511 res = isl.isl_aff_bind_id(isl.isl_aff_copy(args[0].ptr), isl.isl_id_copy(args[1].ptr)) 3512 obj = basic_set(ctx=ctx, ptr=res) 3513 return obj 3514 raise Error 3515 def ceil(arg0): 3516 try: 3517 if not arg0.__class__ is aff: 3518 arg0 = aff(arg0) 3519 except: 3520 raise 3521 ctx = arg0.ctx 3522 res = isl.isl_aff_ceil(isl.isl_aff_copy(arg0.ptr)) 3523 obj = aff(ctx=ctx, ptr=res) 3524 return obj 3525 def div(arg0, arg1): 3526 try: 3527 if not arg0.__class__ is aff: 3528 arg0 = aff(arg0) 3529 except: 3530 raise 3531 try: 3532 if not arg1.__class__ is aff: 3533 arg1 = aff(arg1) 3534 except: 3535 return pw_aff(arg0).div(arg1) 3536 ctx = arg0.ctx 3537 res = isl.isl_aff_div(isl.isl_aff_copy(arg0.ptr), isl.isl_aff_copy(arg1.ptr)) 3538 obj = aff(ctx=ctx, ptr=res) 3539 return obj 3540 def eq_set(arg0, arg1): 3541 try: 3542 if not arg0.__class__ is aff: 3543 arg0 = aff(arg0) 3544 except: 3545 raise 3546 try: 3547 if not arg1.__class__ is aff: 3548 arg1 = aff(arg1) 3549 except: 3550 return pw_aff(arg0).eq_set(arg1) 3551 ctx = arg0.ctx 3552 res = isl.isl_aff_eq_set(isl.isl_aff_copy(arg0.ptr), isl.isl_aff_copy(arg1.ptr)) 3553 obj = set(ctx=ctx, ptr=res) 3554 return obj 3555 def eval(arg0, arg1): 3556 try: 3557 if not arg0.__class__ is aff: 3558 arg0 = aff(arg0) 3559 except: 3560 raise 3561 try: 3562 if not arg1.__class__ is point: 3563 arg1 = point(arg1) 3564 except: 3565 return pw_aff(arg0).eval(arg1) 3566 ctx = arg0.ctx 3567 res = isl.isl_aff_eval(isl.isl_aff_copy(arg0.ptr), isl.isl_point_copy(arg1.ptr)) 3568 obj = val(ctx=ctx, ptr=res) 3569 return obj 3570 def floor(arg0): 3571 try: 3572 if not arg0.__class__ is aff: 3573 arg0 = aff(arg0) 3574 except: 3575 raise 3576 ctx = arg0.ctx 3577 res = isl.isl_aff_floor(isl.isl_aff_copy(arg0.ptr)) 3578 obj = aff(ctx=ctx, ptr=res) 3579 return obj 3580 def ge_set(arg0, arg1): 3581 try: 3582 if not arg0.__class__ is aff: 3583 arg0 = aff(arg0) 3584 except: 3585 raise 3586 try: 3587 if not arg1.__class__ is aff: 3588 arg1 = aff(arg1) 3589 except: 3590 return pw_aff(arg0).ge_set(arg1) 3591 ctx = arg0.ctx 3592 res = isl.isl_aff_ge_set(isl.isl_aff_copy(arg0.ptr), isl.isl_aff_copy(arg1.ptr)) 3593 obj = set(ctx=ctx, ptr=res) 3594 return obj 3595 def gist(arg0, arg1): 3596 try: 3597 if not arg0.__class__ is aff: 3598 arg0 = aff(arg0) 3599 except: 3600 raise 3601 try: 3602 if not arg1.__class__ is set: 3603 arg1 = set(arg1) 3604 except: 3605 return pw_aff(arg0).gist(arg1) 3606 ctx = arg0.ctx 3607 res = isl.isl_aff_gist(isl.isl_aff_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 3608 obj = aff(ctx=ctx, ptr=res) 3609 return obj 3610 def gt_set(arg0, arg1): 3611 try: 3612 if not arg0.__class__ is aff: 3613 arg0 = aff(arg0) 3614 except: 3615 raise 3616 try: 3617 if not arg1.__class__ is aff: 3618 arg1 = aff(arg1) 3619 except: 3620 return pw_aff(arg0).gt_set(arg1) 3621 ctx = arg0.ctx 3622 res = isl.isl_aff_gt_set(isl.isl_aff_copy(arg0.ptr), isl.isl_aff_copy(arg1.ptr)) 3623 obj = set(ctx=ctx, ptr=res) 3624 return obj 3625 def le_set(arg0, arg1): 3626 try: 3627 if not arg0.__class__ is aff: 3628 arg0 = aff(arg0) 3629 except: 3630 raise 3631 try: 3632 if not arg1.__class__ is aff: 3633 arg1 = aff(arg1) 3634 except: 3635 return pw_aff(arg0).le_set(arg1) 3636 ctx = arg0.ctx 3637 res = isl.isl_aff_le_set(isl.isl_aff_copy(arg0.ptr), isl.isl_aff_copy(arg1.ptr)) 3638 obj = set(ctx=ctx, ptr=res) 3639 return obj 3640 def lt_set(arg0, arg1): 3641 try: 3642 if not arg0.__class__ is aff: 3643 arg0 = aff(arg0) 3644 except: 3645 raise 3646 try: 3647 if not arg1.__class__ is aff: 3648 arg1 = aff(arg1) 3649 except: 3650 return pw_aff(arg0).lt_set(arg1) 3651 ctx = arg0.ctx 3652 res = isl.isl_aff_lt_set(isl.isl_aff_copy(arg0.ptr), isl.isl_aff_copy(arg1.ptr)) 3653 obj = set(ctx=ctx, ptr=res) 3654 return obj 3655 def mod(*args): 3656 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 3657 args = list(args) 3658 try: 3659 if not args[1].__class__ is val: 3660 args[1] = val(args[1]) 3661 except: 3662 raise 3663 ctx = args[0].ctx 3664 res = isl.isl_aff_mod_val(isl.isl_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 3665 obj = aff(ctx=ctx, ptr=res) 3666 return obj 3667 raise Error 3668 def mul(arg0, arg1): 3669 try: 3670 if not arg0.__class__ is aff: 3671 arg0 = aff(arg0) 3672 except: 3673 raise 3674 try: 3675 if not arg1.__class__ is aff: 3676 arg1 = aff(arg1) 3677 except: 3678 return pw_aff(arg0).mul(arg1) 3679 ctx = arg0.ctx 3680 res = isl.isl_aff_mul(isl.isl_aff_copy(arg0.ptr), isl.isl_aff_copy(arg1.ptr)) 3681 obj = aff(ctx=ctx, ptr=res) 3682 return obj 3683 def ne_set(arg0, arg1): 3684 try: 3685 if not arg0.__class__ is aff: 3686 arg0 = aff(arg0) 3687 except: 3688 raise 3689 try: 3690 if not arg1.__class__ is aff: 3691 arg1 = aff(arg1) 3692 except: 3693 return pw_aff(arg0).ne_set(arg1) 3694 ctx = arg0.ctx 3695 res = isl.isl_aff_ne_set(isl.isl_aff_copy(arg0.ptr), isl.isl_aff_copy(arg1.ptr)) 3696 obj = set(ctx=ctx, ptr=res) 3697 return obj 3698 def neg(arg0): 3699 try: 3700 if not arg0.__class__ is aff: 3701 arg0 = aff(arg0) 3702 except: 3703 raise 3704 ctx = arg0.ctx 3705 res = isl.isl_aff_neg(isl.isl_aff_copy(arg0.ptr)) 3706 obj = aff(ctx=ctx, ptr=res) 3707 return obj 3708 def pullback(*args): 3709 if len(args) == 2 and args[1].__class__ is multi_aff: 3710 ctx = args[0].ctx 3711 res = isl.isl_aff_pullback_multi_aff(isl.isl_aff_copy(args[0].ptr), isl.isl_multi_aff_copy(args[1].ptr)) 3712 obj = aff(ctx=ctx, ptr=res) 3713 return obj 3714 raise Error 3715 def scale(*args): 3716 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 3717 args = list(args) 3718 try: 3719 if not args[1].__class__ is val: 3720 args[1] = val(args[1]) 3721 except: 3722 raise 3723 ctx = args[0].ctx 3724 res = isl.isl_aff_scale_val(isl.isl_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 3725 obj = aff(ctx=ctx, ptr=res) 3726 return obj 3727 raise Error 3728 def scale_down(*args): 3729 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 3730 args = list(args) 3731 try: 3732 if not args[1].__class__ is val: 3733 args[1] = val(args[1]) 3734 except: 3735 raise 3736 ctx = args[0].ctx 3737 res = isl.isl_aff_scale_down_val(isl.isl_aff_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 3738 obj = aff(ctx=ctx, ptr=res) 3739 return obj 3740 raise Error 3741 def sub(arg0, arg1): 3742 try: 3743 if not arg0.__class__ is aff: 3744 arg0 = aff(arg0) 3745 except: 3746 raise 3747 try: 3748 if not arg1.__class__ is aff: 3749 arg1 = aff(arg1) 3750 except: 3751 return pw_aff(arg0).sub(arg1) 3752 ctx = arg0.ctx 3753 res = isl.isl_aff_sub(isl.isl_aff_copy(arg0.ptr), isl.isl_aff_copy(arg1.ptr)) 3754 obj = aff(ctx=ctx, ptr=res) 3755 return obj 3756 def unbind_params_insert_domain(arg0, arg1): 3757 try: 3758 if not arg0.__class__ is aff: 3759 arg0 = aff(arg0) 3760 except: 3761 raise 3762 try: 3763 if not arg1.__class__ is multi_id: 3764 arg1 = multi_id(arg1) 3765 except: 3766 return pw_aff(arg0).unbind_params_insert_domain(arg1) 3767 ctx = arg0.ctx 3768 res = isl.isl_aff_unbind_params_insert_domain(isl.isl_aff_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 3769 obj = aff(ctx=ctx, ptr=res) 3770 return obj 3771 @staticmethod 3772 def zero_on_domain(*args): 3773 if len(args) == 1 and args[0].__class__ is space: 3774 ctx = args[0].ctx 3775 res = isl.isl_aff_zero_on_domain_space(isl.isl_space_copy(args[0].ptr)) 3776 obj = aff(ctx=ctx, ptr=res) 3777 return obj 3778 raise Error 3779 3780isl.isl_aff_read_from_str.restype = c_void_p 3781isl.isl_aff_read_from_str.argtypes = [Context, c_char_p] 3782isl.isl_aff_add.restype = c_void_p 3783isl.isl_aff_add.argtypes = [c_void_p, c_void_p] 3784isl.isl_aff_add_constant_val.restype = c_void_p 3785isl.isl_aff_add_constant_val.argtypes = [c_void_p, c_void_p] 3786isl.isl_aff_bind_id.restype = c_void_p 3787isl.isl_aff_bind_id.argtypes = [c_void_p, c_void_p] 3788isl.isl_aff_ceil.restype = c_void_p 3789isl.isl_aff_ceil.argtypes = [c_void_p] 3790isl.isl_aff_div.restype = c_void_p 3791isl.isl_aff_div.argtypes = [c_void_p, c_void_p] 3792isl.isl_aff_eq_set.restype = c_void_p 3793isl.isl_aff_eq_set.argtypes = [c_void_p, c_void_p] 3794isl.isl_aff_eval.restype = c_void_p 3795isl.isl_aff_eval.argtypes = [c_void_p, c_void_p] 3796isl.isl_aff_floor.restype = c_void_p 3797isl.isl_aff_floor.argtypes = [c_void_p] 3798isl.isl_aff_ge_set.restype = c_void_p 3799isl.isl_aff_ge_set.argtypes = [c_void_p, c_void_p] 3800isl.isl_aff_gist.restype = c_void_p 3801isl.isl_aff_gist.argtypes = [c_void_p, c_void_p] 3802isl.isl_aff_gt_set.restype = c_void_p 3803isl.isl_aff_gt_set.argtypes = [c_void_p, c_void_p] 3804isl.isl_aff_le_set.restype = c_void_p 3805isl.isl_aff_le_set.argtypes = [c_void_p, c_void_p] 3806isl.isl_aff_lt_set.restype = c_void_p 3807isl.isl_aff_lt_set.argtypes = [c_void_p, c_void_p] 3808isl.isl_aff_mod_val.restype = c_void_p 3809isl.isl_aff_mod_val.argtypes = [c_void_p, c_void_p] 3810isl.isl_aff_mul.restype = c_void_p 3811isl.isl_aff_mul.argtypes = [c_void_p, c_void_p] 3812isl.isl_aff_ne_set.restype = c_void_p 3813isl.isl_aff_ne_set.argtypes = [c_void_p, c_void_p] 3814isl.isl_aff_neg.restype = c_void_p 3815isl.isl_aff_neg.argtypes = [c_void_p] 3816isl.isl_aff_pullback_multi_aff.restype = c_void_p 3817isl.isl_aff_pullback_multi_aff.argtypes = [c_void_p, c_void_p] 3818isl.isl_aff_scale_val.restype = c_void_p 3819isl.isl_aff_scale_val.argtypes = [c_void_p, c_void_p] 3820isl.isl_aff_scale_down_val.restype = c_void_p 3821isl.isl_aff_scale_down_val.argtypes = [c_void_p, c_void_p] 3822isl.isl_aff_sub.restype = c_void_p 3823isl.isl_aff_sub.argtypes = [c_void_p, c_void_p] 3824isl.isl_aff_unbind_params_insert_domain.restype = c_void_p 3825isl.isl_aff_unbind_params_insert_domain.argtypes = [c_void_p, c_void_p] 3826isl.isl_aff_zero_on_domain_space.restype = c_void_p 3827isl.isl_aff_zero_on_domain_space.argtypes = [c_void_p] 3828isl.isl_aff_copy.restype = c_void_p 3829isl.isl_aff_copy.argtypes = [c_void_p] 3830isl.isl_aff_free.restype = c_void_p 3831isl.isl_aff_free.argtypes = [c_void_p] 3832isl.isl_aff_to_str.restype = POINTER(c_char) 3833isl.isl_aff_to_str.argtypes = [c_void_p] 3834 3835class aff_list(object): 3836 def __init__(self, *args, **keywords): 3837 if "ptr" in keywords: 3838 self.ctx = keywords["ctx"] 3839 self.ptr = keywords["ptr"] 3840 return 3841 if len(args) == 1 and type(args[0]) == int: 3842 self.ctx = Context.getDefaultInstance() 3843 self.ptr = isl.isl_aff_list_alloc(self.ctx, args[0]) 3844 return 3845 if len(args) == 1 and args[0].__class__ is aff: 3846 self.ctx = Context.getDefaultInstance() 3847 self.ptr = isl.isl_aff_list_from_aff(isl.isl_aff_copy(args[0].ptr)) 3848 return 3849 raise Error 3850 def __del__(self): 3851 if hasattr(self, 'ptr'): 3852 isl.isl_aff_list_free(self.ptr) 3853 def __str__(arg0): 3854 try: 3855 if not arg0.__class__ is aff_list: 3856 arg0 = aff_list(arg0) 3857 except: 3858 raise 3859 ptr = isl.isl_aff_list_to_str(arg0.ptr) 3860 res = cast(ptr, c_char_p).value.decode('ascii') 3861 libc.free(ptr) 3862 return res 3863 def __repr__(self): 3864 s = str(self) 3865 if '"' in s: 3866 return 'isl.aff_list("""%s""")' % s 3867 else: 3868 return 'isl.aff_list("%s")' % s 3869 def add(arg0, arg1): 3870 try: 3871 if not arg0.__class__ is aff_list: 3872 arg0 = aff_list(arg0) 3873 except: 3874 raise 3875 try: 3876 if not arg1.__class__ is aff: 3877 arg1 = aff(arg1) 3878 except: 3879 raise 3880 ctx = arg0.ctx 3881 res = isl.isl_aff_list_add(isl.isl_aff_list_copy(arg0.ptr), isl.isl_aff_copy(arg1.ptr)) 3882 obj = aff_list(ctx=ctx, ptr=res) 3883 return obj 3884 def clear(arg0): 3885 try: 3886 if not arg0.__class__ is aff_list: 3887 arg0 = aff_list(arg0) 3888 except: 3889 raise 3890 ctx = arg0.ctx 3891 res = isl.isl_aff_list_clear(isl.isl_aff_list_copy(arg0.ptr)) 3892 obj = aff_list(ctx=ctx, ptr=res) 3893 return obj 3894 def concat(arg0, arg1): 3895 try: 3896 if not arg0.__class__ is aff_list: 3897 arg0 = aff_list(arg0) 3898 except: 3899 raise 3900 try: 3901 if not arg1.__class__ is aff_list: 3902 arg1 = aff_list(arg1) 3903 except: 3904 raise 3905 ctx = arg0.ctx 3906 res = isl.isl_aff_list_concat(isl.isl_aff_list_copy(arg0.ptr), isl.isl_aff_list_copy(arg1.ptr)) 3907 obj = aff_list(ctx=ctx, ptr=res) 3908 return obj 3909 def drop(arg0, arg1, arg2): 3910 try: 3911 if not arg0.__class__ is aff_list: 3912 arg0 = aff_list(arg0) 3913 except: 3914 raise 3915 ctx = arg0.ctx 3916 res = isl.isl_aff_list_drop(isl.isl_aff_list_copy(arg0.ptr), arg1, arg2) 3917 obj = aff_list(ctx=ctx, ptr=res) 3918 return obj 3919 def foreach(arg0, arg1): 3920 try: 3921 if not arg0.__class__ is aff_list: 3922 arg0 = aff_list(arg0) 3923 except: 3924 raise 3925 exc_info = [None] 3926 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 3927 def cb_func(cb_arg0, cb_arg1): 3928 cb_arg0 = aff(ctx=arg0.ctx, ptr=(cb_arg0)) 3929 try: 3930 arg1(cb_arg0) 3931 except: 3932 import sys 3933 exc_info[0] = sys.exc_info() 3934 return -1 3935 return 0 3936 cb = fn(cb_func) 3937 ctx = arg0.ctx 3938 res = isl.isl_aff_list_foreach(arg0.ptr, cb, None) 3939 if exc_info[0] != None: 3940 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 3941 if res < 0: 3942 raise 3943 def at(arg0, arg1): 3944 try: 3945 if not arg0.__class__ is aff_list: 3946 arg0 = aff_list(arg0) 3947 except: 3948 raise 3949 ctx = arg0.ctx 3950 res = isl.isl_aff_list_get_at(arg0.ptr, arg1) 3951 obj = aff(ctx=ctx, ptr=res) 3952 return obj 3953 def get_at(arg0, arg1): 3954 return arg0.at(arg1) 3955 def insert(arg0, arg1, arg2): 3956 try: 3957 if not arg0.__class__ is aff_list: 3958 arg0 = aff_list(arg0) 3959 except: 3960 raise 3961 try: 3962 if not arg2.__class__ is aff: 3963 arg2 = aff(arg2) 3964 except: 3965 raise 3966 ctx = arg0.ctx 3967 res = isl.isl_aff_list_insert(isl.isl_aff_list_copy(arg0.ptr), arg1, isl.isl_aff_copy(arg2.ptr)) 3968 obj = aff_list(ctx=ctx, ptr=res) 3969 return obj 3970 def size(arg0): 3971 try: 3972 if not arg0.__class__ is aff_list: 3973 arg0 = aff_list(arg0) 3974 except: 3975 raise 3976 ctx = arg0.ctx 3977 res = isl.isl_aff_list_size(arg0.ptr) 3978 if res < 0: 3979 raise 3980 return int(res) 3981 3982isl.isl_aff_list_alloc.restype = c_void_p 3983isl.isl_aff_list_alloc.argtypes = [Context, c_int] 3984isl.isl_aff_list_from_aff.restype = c_void_p 3985isl.isl_aff_list_from_aff.argtypes = [c_void_p] 3986isl.isl_aff_list_add.restype = c_void_p 3987isl.isl_aff_list_add.argtypes = [c_void_p, c_void_p] 3988isl.isl_aff_list_clear.restype = c_void_p 3989isl.isl_aff_list_clear.argtypes = [c_void_p] 3990isl.isl_aff_list_concat.restype = c_void_p 3991isl.isl_aff_list_concat.argtypes = [c_void_p, c_void_p] 3992isl.isl_aff_list_drop.restype = c_void_p 3993isl.isl_aff_list_drop.argtypes = [c_void_p, c_int, c_int] 3994isl.isl_aff_list_foreach.argtypes = [c_void_p, c_void_p, c_void_p] 3995isl.isl_aff_list_get_at.restype = c_void_p 3996isl.isl_aff_list_get_at.argtypes = [c_void_p, c_int] 3997isl.isl_aff_list_insert.restype = c_void_p 3998isl.isl_aff_list_insert.argtypes = [c_void_p, c_int, c_void_p] 3999isl.isl_aff_list_size.argtypes = [c_void_p] 4000isl.isl_aff_list_copy.restype = c_void_p 4001isl.isl_aff_list_copy.argtypes = [c_void_p] 4002isl.isl_aff_list_free.restype = c_void_p 4003isl.isl_aff_list_free.argtypes = [c_void_p] 4004isl.isl_aff_list_to_str.restype = POINTER(c_char) 4005isl.isl_aff_list_to_str.argtypes = [c_void_p] 4006 4007class ast_build(object): 4008 def __init__(self, *args, **keywords): 4009 if "ptr" in keywords: 4010 self.ctx = keywords["ctx"] 4011 self.ptr = keywords["ptr"] 4012 return 4013 if len(args) == 0: 4014 self.ctx = Context.getDefaultInstance() 4015 self.ptr = isl.isl_ast_build_alloc(self.ctx) 4016 return 4017 raise Error 4018 def __del__(self): 4019 if hasattr(self, 'ptr'): 4020 isl.isl_ast_build_free(self.ptr) 4021 def copy_callbacks(self, obj): 4022 if hasattr(obj, 'at_each_domain'): 4023 self.at_each_domain = obj.at_each_domain 4024 def set_at_each_domain(arg0, arg1): 4025 try: 4026 if not arg0.__class__ is ast_build: 4027 arg0 = ast_build(arg0) 4028 except: 4029 raise 4030 exc_info = [None] 4031 fn = CFUNCTYPE(c_void_p, c_void_p, c_void_p, c_void_p) 4032 def cb_func(cb_arg0, cb_arg1, cb_arg2): 4033 cb_arg0 = ast_node(ctx=arg0.ctx, ptr=(cb_arg0)) 4034 cb_arg1 = ast_build(ctx=arg0.ctx, ptr=isl.isl_ast_build_copy(cb_arg1)) 4035 try: 4036 res = arg1(cb_arg0, cb_arg1) 4037 except: 4038 import sys 4039 exc_info[0] = sys.exc_info() 4040 return None 4041 return isl.isl_ast_node_copy(res.ptr) 4042 cb = fn(cb_func) 4043 ctx = arg0.ctx 4044 res = isl.isl_ast_build_set_at_each_domain(isl.isl_ast_build_copy(arg0.ptr), cb, None) 4045 if exc_info[0] != None: 4046 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 4047 if hasattr(arg0, 'at_each_domain') and arg0.at_each_domain['exc_info'] != None: 4048 exc_info = arg0.at_each_domain['exc_info'][0] 4049 arg0.at_each_domain['exc_info'][0] = None 4050 if exc_info != None: 4051 raise (exc_info[0], exc_info[1], exc_info[2]) 4052 obj = ast_build(ctx=ctx, ptr=res) 4053 obj.copy_callbacks(arg0) 4054 obj.at_each_domain = { 'func': cb, 'exc_info': exc_info } 4055 return obj 4056 def access_from(*args): 4057 if len(args) == 2 and args[1].__class__ is multi_pw_aff: 4058 ctx = args[0].ctx 4059 res = isl.isl_ast_build_access_from_multi_pw_aff(args[0].ptr, isl.isl_multi_pw_aff_copy(args[1].ptr)) 4060 if hasattr(args[0], 'at_each_domain') and args[0].at_each_domain['exc_info'] != None: 4061 exc_info = args[0].at_each_domain['exc_info'][0] 4062 args[0].at_each_domain['exc_info'][0] = None 4063 if exc_info != None: 4064 raise (exc_info[0], exc_info[1], exc_info[2]) 4065 obj = ast_expr(ctx=ctx, ptr=res) 4066 return obj 4067 if len(args) == 2 and args[1].__class__ is pw_multi_aff: 4068 ctx = args[0].ctx 4069 res = isl.isl_ast_build_access_from_pw_multi_aff(args[0].ptr, isl.isl_pw_multi_aff_copy(args[1].ptr)) 4070 if hasattr(args[0], 'at_each_domain') and args[0].at_each_domain['exc_info'] != None: 4071 exc_info = args[0].at_each_domain['exc_info'][0] 4072 args[0].at_each_domain['exc_info'][0] = None 4073 if exc_info != None: 4074 raise (exc_info[0], exc_info[1], exc_info[2]) 4075 obj = ast_expr(ctx=ctx, ptr=res) 4076 return obj 4077 raise Error 4078 def call_from(*args): 4079 if len(args) == 2 and args[1].__class__ is multi_pw_aff: 4080 ctx = args[0].ctx 4081 res = isl.isl_ast_build_call_from_multi_pw_aff(args[0].ptr, isl.isl_multi_pw_aff_copy(args[1].ptr)) 4082 if hasattr(args[0], 'at_each_domain') and args[0].at_each_domain['exc_info'] != None: 4083 exc_info = args[0].at_each_domain['exc_info'][0] 4084 args[0].at_each_domain['exc_info'][0] = None 4085 if exc_info != None: 4086 raise (exc_info[0], exc_info[1], exc_info[2]) 4087 obj = ast_expr(ctx=ctx, ptr=res) 4088 return obj 4089 if len(args) == 2 and args[1].__class__ is pw_multi_aff: 4090 ctx = args[0].ctx 4091 res = isl.isl_ast_build_call_from_pw_multi_aff(args[0].ptr, isl.isl_pw_multi_aff_copy(args[1].ptr)) 4092 if hasattr(args[0], 'at_each_domain') and args[0].at_each_domain['exc_info'] != None: 4093 exc_info = args[0].at_each_domain['exc_info'][0] 4094 args[0].at_each_domain['exc_info'][0] = None 4095 if exc_info != None: 4096 raise (exc_info[0], exc_info[1], exc_info[2]) 4097 obj = ast_expr(ctx=ctx, ptr=res) 4098 return obj 4099 raise Error 4100 def expr_from(*args): 4101 if len(args) == 2 and args[1].__class__ is pw_aff: 4102 ctx = args[0].ctx 4103 res = isl.isl_ast_build_expr_from_pw_aff(args[0].ptr, isl.isl_pw_aff_copy(args[1].ptr)) 4104 if hasattr(args[0], 'at_each_domain') and args[0].at_each_domain['exc_info'] != None: 4105 exc_info = args[0].at_each_domain['exc_info'][0] 4106 args[0].at_each_domain['exc_info'][0] = None 4107 if exc_info != None: 4108 raise (exc_info[0], exc_info[1], exc_info[2]) 4109 obj = ast_expr(ctx=ctx, ptr=res) 4110 return obj 4111 if len(args) == 2 and args[1].__class__ is set: 4112 ctx = args[0].ctx 4113 res = isl.isl_ast_build_expr_from_set(args[0].ptr, isl.isl_set_copy(args[1].ptr)) 4114 if hasattr(args[0], 'at_each_domain') and args[0].at_each_domain['exc_info'] != None: 4115 exc_info = args[0].at_each_domain['exc_info'][0] 4116 args[0].at_each_domain['exc_info'][0] = None 4117 if exc_info != None: 4118 raise (exc_info[0], exc_info[1], exc_info[2]) 4119 obj = ast_expr(ctx=ctx, ptr=res) 4120 return obj 4121 raise Error 4122 @staticmethod 4123 def from_context(arg0): 4124 try: 4125 if not arg0.__class__ is set: 4126 arg0 = set(arg0) 4127 except: 4128 raise 4129 ctx = arg0.ctx 4130 res = isl.isl_ast_build_from_context(isl.isl_set_copy(arg0.ptr)) 4131 obj = ast_build(ctx=ctx, ptr=res) 4132 return obj 4133 def schedule(arg0): 4134 try: 4135 if not arg0.__class__ is ast_build: 4136 arg0 = ast_build(arg0) 4137 except: 4138 raise 4139 ctx = arg0.ctx 4140 res = isl.isl_ast_build_get_schedule(arg0.ptr) 4141 if hasattr(arg0, 'at_each_domain') and arg0.at_each_domain['exc_info'] != None: 4142 exc_info = arg0.at_each_domain['exc_info'][0] 4143 arg0.at_each_domain['exc_info'][0] = None 4144 if exc_info != None: 4145 raise (exc_info[0], exc_info[1], exc_info[2]) 4146 obj = union_map(ctx=ctx, ptr=res) 4147 return obj 4148 def get_schedule(arg0): 4149 return arg0.schedule() 4150 def node_from(*args): 4151 if len(args) == 2 and args[1].__class__ is schedule: 4152 ctx = args[0].ctx 4153 res = isl.isl_ast_build_node_from_schedule(args[0].ptr, isl.isl_schedule_copy(args[1].ptr)) 4154 if hasattr(args[0], 'at_each_domain') and args[0].at_each_domain['exc_info'] != None: 4155 exc_info = args[0].at_each_domain['exc_info'][0] 4156 args[0].at_each_domain['exc_info'][0] = None 4157 if exc_info != None: 4158 raise (exc_info[0], exc_info[1], exc_info[2]) 4159 obj = ast_node(ctx=ctx, ptr=res) 4160 return obj 4161 raise Error 4162 def node_from_schedule_map(arg0, arg1): 4163 try: 4164 if not arg0.__class__ is ast_build: 4165 arg0 = ast_build(arg0) 4166 except: 4167 raise 4168 try: 4169 if not arg1.__class__ is union_map: 4170 arg1 = union_map(arg1) 4171 except: 4172 raise 4173 ctx = arg0.ctx 4174 res = isl.isl_ast_build_node_from_schedule_map(arg0.ptr, isl.isl_union_map_copy(arg1.ptr)) 4175 if hasattr(arg0, 'at_each_domain') and arg0.at_each_domain['exc_info'] != None: 4176 exc_info = arg0.at_each_domain['exc_info'][0] 4177 arg0.at_each_domain['exc_info'][0] = None 4178 if exc_info != None: 4179 raise (exc_info[0], exc_info[1], exc_info[2]) 4180 obj = ast_node(ctx=ctx, ptr=res) 4181 return obj 4182 4183isl.isl_ast_build_alloc.restype = c_void_p 4184isl.isl_ast_build_alloc.argtypes = [Context] 4185isl.isl_ast_build_set_at_each_domain.restype = c_void_p 4186isl.isl_ast_build_set_at_each_domain.argtypes = [c_void_p, c_void_p, c_void_p] 4187isl.isl_ast_build_access_from_multi_pw_aff.restype = c_void_p 4188isl.isl_ast_build_access_from_multi_pw_aff.argtypes = [c_void_p, c_void_p] 4189isl.isl_ast_build_access_from_pw_multi_aff.restype = c_void_p 4190isl.isl_ast_build_access_from_pw_multi_aff.argtypes = [c_void_p, c_void_p] 4191isl.isl_ast_build_call_from_multi_pw_aff.restype = c_void_p 4192isl.isl_ast_build_call_from_multi_pw_aff.argtypes = [c_void_p, c_void_p] 4193isl.isl_ast_build_call_from_pw_multi_aff.restype = c_void_p 4194isl.isl_ast_build_call_from_pw_multi_aff.argtypes = [c_void_p, c_void_p] 4195isl.isl_ast_build_expr_from_pw_aff.restype = c_void_p 4196isl.isl_ast_build_expr_from_pw_aff.argtypes = [c_void_p, c_void_p] 4197isl.isl_ast_build_expr_from_set.restype = c_void_p 4198isl.isl_ast_build_expr_from_set.argtypes = [c_void_p, c_void_p] 4199isl.isl_ast_build_from_context.restype = c_void_p 4200isl.isl_ast_build_from_context.argtypes = [c_void_p] 4201isl.isl_ast_build_get_schedule.restype = c_void_p 4202isl.isl_ast_build_get_schedule.argtypes = [c_void_p] 4203isl.isl_ast_build_node_from_schedule.restype = c_void_p 4204isl.isl_ast_build_node_from_schedule.argtypes = [c_void_p, c_void_p] 4205isl.isl_ast_build_node_from_schedule_map.restype = c_void_p 4206isl.isl_ast_build_node_from_schedule_map.argtypes = [c_void_p, c_void_p] 4207isl.isl_ast_build_copy.restype = c_void_p 4208isl.isl_ast_build_copy.argtypes = [c_void_p] 4209isl.isl_ast_build_free.restype = c_void_p 4210isl.isl_ast_build_free.argtypes = [c_void_p] 4211 4212class ast_expr(object): 4213 def __init__(self, *args, **keywords): 4214 if "ptr" in keywords: 4215 self.ctx = keywords["ctx"] 4216 self.ptr = keywords["ptr"] 4217 return 4218 if len(args) == 1 and isinstance(args[0], ast_expr_op): 4219 self.ctx = args[0].ctx 4220 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4221 return 4222 if len(args) == 1 and isinstance(args[0], ast_expr_id): 4223 self.ctx = args[0].ctx 4224 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4225 return 4226 if len(args) == 1 and isinstance(args[0], ast_expr_int): 4227 self.ctx = args[0].ctx 4228 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4229 return 4230 raise Error 4231 def __del__(self): 4232 if hasattr(self, 'ptr'): 4233 isl.isl_ast_expr_free(self.ptr) 4234 def __new__(cls, *args, **keywords): 4235 if "ptr" in keywords: 4236 type = isl.isl_ast_expr_get_type(keywords["ptr"]) 4237 if type == 0: 4238 return ast_expr_op(**keywords) 4239 if type == 1: 4240 return ast_expr_id(**keywords) 4241 if type == 2: 4242 return ast_expr_int(**keywords) 4243 raise 4244 return super(ast_expr, cls).__new__(cls) 4245 def __str__(arg0): 4246 try: 4247 if not arg0.__class__ is ast_expr: 4248 arg0 = ast_expr(arg0) 4249 except: 4250 raise 4251 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 4252 res = cast(ptr, c_char_p).value.decode('ascii') 4253 libc.free(ptr) 4254 return res 4255 def __repr__(self): 4256 s = str(self) 4257 if '"' in s: 4258 return 'isl.ast_expr("""%s""")' % s 4259 else: 4260 return 'isl.ast_expr("%s")' % s 4261 def to_C_str(arg0): 4262 try: 4263 if not arg0.__class__ is ast_expr: 4264 arg0 = ast_expr(arg0) 4265 except: 4266 raise 4267 ctx = arg0.ctx 4268 res = isl.isl_ast_expr_to_C_str(arg0.ptr) 4269 if res == 0: 4270 raise 4271 string = cast(res, c_char_p).value.decode('ascii') 4272 libc.free(res) 4273 return string 4274 4275isl.isl_ast_expr_to_C_str.restype = POINTER(c_char) 4276isl.isl_ast_expr_to_C_str.argtypes = [c_void_p] 4277isl.isl_ast_expr_copy.restype = c_void_p 4278isl.isl_ast_expr_copy.argtypes = [c_void_p] 4279isl.isl_ast_expr_free.restype = c_void_p 4280isl.isl_ast_expr_free.argtypes = [c_void_p] 4281isl.isl_ast_expr_to_str.restype = POINTER(c_char) 4282isl.isl_ast_expr_to_str.argtypes = [c_void_p] 4283isl.isl_ast_expr_get_type.argtypes = [c_void_p] 4284 4285class ast_expr_id(ast_expr): 4286 def __init__(self, *args, **keywords): 4287 if "ptr" in keywords: 4288 self.ctx = keywords["ctx"] 4289 self.ptr = keywords["ptr"] 4290 return 4291 raise Error 4292 def __del__(self): 4293 if hasattr(self, 'ptr'): 4294 isl.isl_ast_expr_free(self.ptr) 4295 def __new__(cls, *args, **keywords): 4296 return super(ast_expr_id, cls).__new__(cls) 4297 def __str__(arg0): 4298 try: 4299 if not arg0.__class__ is ast_expr_id: 4300 arg0 = ast_expr_id(arg0) 4301 except: 4302 raise 4303 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 4304 res = cast(ptr, c_char_p).value.decode('ascii') 4305 libc.free(ptr) 4306 return res 4307 def __repr__(self): 4308 s = str(self) 4309 if '"' in s: 4310 return 'isl.ast_expr_id("""%s""")' % s 4311 else: 4312 return 'isl.ast_expr_id("%s")' % s 4313 def id(arg0): 4314 try: 4315 if not arg0.__class__ is ast_expr: 4316 arg0 = ast_expr(arg0) 4317 except: 4318 raise 4319 ctx = arg0.ctx 4320 res = isl.isl_ast_expr_id_get_id(arg0.ptr) 4321 obj = id(ctx=ctx, ptr=res) 4322 return obj 4323 def get_id(arg0): 4324 return arg0.id() 4325 4326isl.isl_ast_expr_id_get_id.restype = c_void_p 4327isl.isl_ast_expr_id_get_id.argtypes = [c_void_p] 4328isl.isl_ast_expr_copy.restype = c_void_p 4329isl.isl_ast_expr_copy.argtypes = [c_void_p] 4330isl.isl_ast_expr_free.restype = c_void_p 4331isl.isl_ast_expr_free.argtypes = [c_void_p] 4332isl.isl_ast_expr_to_str.restype = POINTER(c_char) 4333isl.isl_ast_expr_to_str.argtypes = [c_void_p] 4334 4335class ast_expr_int(ast_expr): 4336 def __init__(self, *args, **keywords): 4337 if "ptr" in keywords: 4338 self.ctx = keywords["ctx"] 4339 self.ptr = keywords["ptr"] 4340 return 4341 raise Error 4342 def __del__(self): 4343 if hasattr(self, 'ptr'): 4344 isl.isl_ast_expr_free(self.ptr) 4345 def __new__(cls, *args, **keywords): 4346 return super(ast_expr_int, cls).__new__(cls) 4347 def __str__(arg0): 4348 try: 4349 if not arg0.__class__ is ast_expr_int: 4350 arg0 = ast_expr_int(arg0) 4351 except: 4352 raise 4353 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 4354 res = cast(ptr, c_char_p).value.decode('ascii') 4355 libc.free(ptr) 4356 return res 4357 def __repr__(self): 4358 s = str(self) 4359 if '"' in s: 4360 return 'isl.ast_expr_int("""%s""")' % s 4361 else: 4362 return 'isl.ast_expr_int("%s")' % s 4363 def val(arg0): 4364 try: 4365 if not arg0.__class__ is ast_expr: 4366 arg0 = ast_expr(arg0) 4367 except: 4368 raise 4369 ctx = arg0.ctx 4370 res = isl.isl_ast_expr_int_get_val(arg0.ptr) 4371 obj = val(ctx=ctx, ptr=res) 4372 return obj 4373 def get_val(arg0): 4374 return arg0.val() 4375 4376isl.isl_ast_expr_int_get_val.restype = c_void_p 4377isl.isl_ast_expr_int_get_val.argtypes = [c_void_p] 4378isl.isl_ast_expr_copy.restype = c_void_p 4379isl.isl_ast_expr_copy.argtypes = [c_void_p] 4380isl.isl_ast_expr_free.restype = c_void_p 4381isl.isl_ast_expr_free.argtypes = [c_void_p] 4382isl.isl_ast_expr_to_str.restype = POINTER(c_char) 4383isl.isl_ast_expr_to_str.argtypes = [c_void_p] 4384 4385class ast_expr_op(ast_expr): 4386 def __init__(self, *args, **keywords): 4387 if "ptr" in keywords: 4388 self.ctx = keywords["ctx"] 4389 self.ptr = keywords["ptr"] 4390 return 4391 if len(args) == 1 and isinstance(args[0], ast_expr_op_and): 4392 self.ctx = args[0].ctx 4393 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4394 return 4395 if len(args) == 1 and isinstance(args[0], ast_expr_op_and_then): 4396 self.ctx = args[0].ctx 4397 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4398 return 4399 if len(args) == 1 and isinstance(args[0], ast_expr_op_or): 4400 self.ctx = args[0].ctx 4401 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4402 return 4403 if len(args) == 1 and isinstance(args[0], ast_expr_op_or_else): 4404 self.ctx = args[0].ctx 4405 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4406 return 4407 if len(args) == 1 and isinstance(args[0], ast_expr_op_max): 4408 self.ctx = args[0].ctx 4409 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4410 return 4411 if len(args) == 1 and isinstance(args[0], ast_expr_op_min): 4412 self.ctx = args[0].ctx 4413 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4414 return 4415 if len(args) == 1 and isinstance(args[0], ast_expr_op_minus): 4416 self.ctx = args[0].ctx 4417 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4418 return 4419 if len(args) == 1 and isinstance(args[0], ast_expr_op_add): 4420 self.ctx = args[0].ctx 4421 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4422 return 4423 if len(args) == 1 and isinstance(args[0], ast_expr_op_sub): 4424 self.ctx = args[0].ctx 4425 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4426 return 4427 if len(args) == 1 and isinstance(args[0], ast_expr_op_mul): 4428 self.ctx = args[0].ctx 4429 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4430 return 4431 if len(args) == 1 and isinstance(args[0], ast_expr_op_div): 4432 self.ctx = args[0].ctx 4433 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4434 return 4435 if len(args) == 1 and isinstance(args[0], ast_expr_op_fdiv_q): 4436 self.ctx = args[0].ctx 4437 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4438 return 4439 if len(args) == 1 and isinstance(args[0], ast_expr_op_pdiv_q): 4440 self.ctx = args[0].ctx 4441 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4442 return 4443 if len(args) == 1 and isinstance(args[0], ast_expr_op_pdiv_r): 4444 self.ctx = args[0].ctx 4445 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4446 return 4447 if len(args) == 1 and isinstance(args[0], ast_expr_op_zdiv_r): 4448 self.ctx = args[0].ctx 4449 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4450 return 4451 if len(args) == 1 and isinstance(args[0], ast_expr_op_cond): 4452 self.ctx = args[0].ctx 4453 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4454 return 4455 if len(args) == 1 and isinstance(args[0], ast_expr_op_select): 4456 self.ctx = args[0].ctx 4457 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4458 return 4459 if len(args) == 1 and isinstance(args[0], ast_expr_op_eq): 4460 self.ctx = args[0].ctx 4461 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4462 return 4463 if len(args) == 1 and isinstance(args[0], ast_expr_op_le): 4464 self.ctx = args[0].ctx 4465 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4466 return 4467 if len(args) == 1 and isinstance(args[0], ast_expr_op_lt): 4468 self.ctx = args[0].ctx 4469 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4470 return 4471 if len(args) == 1 and isinstance(args[0], ast_expr_op_ge): 4472 self.ctx = args[0].ctx 4473 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4474 return 4475 if len(args) == 1 and isinstance(args[0], ast_expr_op_gt): 4476 self.ctx = args[0].ctx 4477 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4478 return 4479 if len(args) == 1 and isinstance(args[0], ast_expr_op_call): 4480 self.ctx = args[0].ctx 4481 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4482 return 4483 if len(args) == 1 and isinstance(args[0], ast_expr_op_access): 4484 self.ctx = args[0].ctx 4485 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4486 return 4487 if len(args) == 1 and isinstance(args[0], ast_expr_op_member): 4488 self.ctx = args[0].ctx 4489 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4490 return 4491 if len(args) == 1 and isinstance(args[0], ast_expr_op_address_of): 4492 self.ctx = args[0].ctx 4493 self.ptr = isl.isl_ast_expr_copy(args[0].ptr) 4494 return 4495 raise Error 4496 def __del__(self): 4497 if hasattr(self, 'ptr'): 4498 isl.isl_ast_expr_free(self.ptr) 4499 def __new__(cls, *args, **keywords): 4500 if "ptr" in keywords: 4501 type = isl.isl_ast_expr_op_get_type(keywords["ptr"]) 4502 if type == 0: 4503 return ast_expr_op_and(**keywords) 4504 if type == 1: 4505 return ast_expr_op_and_then(**keywords) 4506 if type == 2: 4507 return ast_expr_op_or(**keywords) 4508 if type == 3: 4509 return ast_expr_op_or_else(**keywords) 4510 if type == 4: 4511 return ast_expr_op_max(**keywords) 4512 if type == 5: 4513 return ast_expr_op_min(**keywords) 4514 if type == 6: 4515 return ast_expr_op_minus(**keywords) 4516 if type == 7: 4517 return ast_expr_op_add(**keywords) 4518 if type == 8: 4519 return ast_expr_op_sub(**keywords) 4520 if type == 9: 4521 return ast_expr_op_mul(**keywords) 4522 if type == 10: 4523 return ast_expr_op_div(**keywords) 4524 if type == 11: 4525 return ast_expr_op_fdiv_q(**keywords) 4526 if type == 12: 4527 return ast_expr_op_pdiv_q(**keywords) 4528 if type == 13: 4529 return ast_expr_op_pdiv_r(**keywords) 4530 if type == 14: 4531 return ast_expr_op_zdiv_r(**keywords) 4532 if type == 15: 4533 return ast_expr_op_cond(**keywords) 4534 if type == 16: 4535 return ast_expr_op_select(**keywords) 4536 if type == 17: 4537 return ast_expr_op_eq(**keywords) 4538 if type == 18: 4539 return ast_expr_op_le(**keywords) 4540 if type == 19: 4541 return ast_expr_op_lt(**keywords) 4542 if type == 20: 4543 return ast_expr_op_ge(**keywords) 4544 if type == 21: 4545 return ast_expr_op_gt(**keywords) 4546 if type == 22: 4547 return ast_expr_op_call(**keywords) 4548 if type == 23: 4549 return ast_expr_op_access(**keywords) 4550 if type == 24: 4551 return ast_expr_op_member(**keywords) 4552 if type == 25: 4553 return ast_expr_op_address_of(**keywords) 4554 raise 4555 return super(ast_expr_op, cls).__new__(cls) 4556 def __str__(arg0): 4557 try: 4558 if not arg0.__class__ is ast_expr_op: 4559 arg0 = ast_expr_op(arg0) 4560 except: 4561 raise 4562 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 4563 res = cast(ptr, c_char_p).value.decode('ascii') 4564 libc.free(ptr) 4565 return res 4566 def __repr__(self): 4567 s = str(self) 4568 if '"' in s: 4569 return 'isl.ast_expr_op("""%s""")' % s 4570 else: 4571 return 'isl.ast_expr_op("%s")' % s 4572 def arg(arg0, arg1): 4573 try: 4574 if not arg0.__class__ is ast_expr: 4575 arg0 = ast_expr(arg0) 4576 except: 4577 raise 4578 ctx = arg0.ctx 4579 res = isl.isl_ast_expr_op_get_arg(arg0.ptr, arg1) 4580 obj = ast_expr(ctx=ctx, ptr=res) 4581 return obj 4582 def get_arg(arg0, arg1): 4583 return arg0.arg(arg1) 4584 def n_arg(arg0): 4585 try: 4586 if not arg0.__class__ is ast_expr: 4587 arg0 = ast_expr(arg0) 4588 except: 4589 raise 4590 ctx = arg0.ctx 4591 res = isl.isl_ast_expr_op_get_n_arg(arg0.ptr) 4592 if res < 0: 4593 raise 4594 return int(res) 4595 def get_n_arg(arg0): 4596 return arg0.n_arg() 4597 4598isl.isl_ast_expr_op_get_arg.restype = c_void_p 4599isl.isl_ast_expr_op_get_arg.argtypes = [c_void_p, c_int] 4600isl.isl_ast_expr_op_get_n_arg.argtypes = [c_void_p] 4601isl.isl_ast_expr_copy.restype = c_void_p 4602isl.isl_ast_expr_copy.argtypes = [c_void_p] 4603isl.isl_ast_expr_free.restype = c_void_p 4604isl.isl_ast_expr_free.argtypes = [c_void_p] 4605isl.isl_ast_expr_to_str.restype = POINTER(c_char) 4606isl.isl_ast_expr_to_str.argtypes = [c_void_p] 4607isl.isl_ast_expr_op_get_type.argtypes = [c_void_p] 4608 4609class ast_expr_op_access(ast_expr_op): 4610 def __init__(self, *args, **keywords): 4611 if "ptr" in keywords: 4612 self.ctx = keywords["ctx"] 4613 self.ptr = keywords["ptr"] 4614 return 4615 raise Error 4616 def __del__(self): 4617 if hasattr(self, 'ptr'): 4618 isl.isl_ast_expr_free(self.ptr) 4619 def __new__(cls, *args, **keywords): 4620 return super(ast_expr_op_access, cls).__new__(cls) 4621 def __str__(arg0): 4622 try: 4623 if not arg0.__class__ is ast_expr_op_access: 4624 arg0 = ast_expr_op_access(arg0) 4625 except: 4626 raise 4627 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 4628 res = cast(ptr, c_char_p).value.decode('ascii') 4629 libc.free(ptr) 4630 return res 4631 def __repr__(self): 4632 s = str(self) 4633 if '"' in s: 4634 return 'isl.ast_expr_op_access("""%s""")' % s 4635 else: 4636 return 'isl.ast_expr_op_access("%s")' % s 4637 4638isl.isl_ast_expr_copy.restype = c_void_p 4639isl.isl_ast_expr_copy.argtypes = [c_void_p] 4640isl.isl_ast_expr_free.restype = c_void_p 4641isl.isl_ast_expr_free.argtypes = [c_void_p] 4642isl.isl_ast_expr_to_str.restype = POINTER(c_char) 4643isl.isl_ast_expr_to_str.argtypes = [c_void_p] 4644 4645class ast_expr_op_add(ast_expr_op): 4646 def __init__(self, *args, **keywords): 4647 if "ptr" in keywords: 4648 self.ctx = keywords["ctx"] 4649 self.ptr = keywords["ptr"] 4650 return 4651 raise Error 4652 def __del__(self): 4653 if hasattr(self, 'ptr'): 4654 isl.isl_ast_expr_free(self.ptr) 4655 def __new__(cls, *args, **keywords): 4656 return super(ast_expr_op_add, cls).__new__(cls) 4657 def __str__(arg0): 4658 try: 4659 if not arg0.__class__ is ast_expr_op_add: 4660 arg0 = ast_expr_op_add(arg0) 4661 except: 4662 raise 4663 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 4664 res = cast(ptr, c_char_p).value.decode('ascii') 4665 libc.free(ptr) 4666 return res 4667 def __repr__(self): 4668 s = str(self) 4669 if '"' in s: 4670 return 'isl.ast_expr_op_add("""%s""")' % s 4671 else: 4672 return 'isl.ast_expr_op_add("%s")' % s 4673 4674isl.isl_ast_expr_copy.restype = c_void_p 4675isl.isl_ast_expr_copy.argtypes = [c_void_p] 4676isl.isl_ast_expr_free.restype = c_void_p 4677isl.isl_ast_expr_free.argtypes = [c_void_p] 4678isl.isl_ast_expr_to_str.restype = POINTER(c_char) 4679isl.isl_ast_expr_to_str.argtypes = [c_void_p] 4680 4681class ast_expr_op_address_of(ast_expr_op): 4682 def __init__(self, *args, **keywords): 4683 if "ptr" in keywords: 4684 self.ctx = keywords["ctx"] 4685 self.ptr = keywords["ptr"] 4686 return 4687 raise Error 4688 def __del__(self): 4689 if hasattr(self, 'ptr'): 4690 isl.isl_ast_expr_free(self.ptr) 4691 def __new__(cls, *args, **keywords): 4692 return super(ast_expr_op_address_of, cls).__new__(cls) 4693 def __str__(arg0): 4694 try: 4695 if not arg0.__class__ is ast_expr_op_address_of: 4696 arg0 = ast_expr_op_address_of(arg0) 4697 except: 4698 raise 4699 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 4700 res = cast(ptr, c_char_p).value.decode('ascii') 4701 libc.free(ptr) 4702 return res 4703 def __repr__(self): 4704 s = str(self) 4705 if '"' in s: 4706 return 'isl.ast_expr_op_address_of("""%s""")' % s 4707 else: 4708 return 'isl.ast_expr_op_address_of("%s")' % s 4709 4710isl.isl_ast_expr_copy.restype = c_void_p 4711isl.isl_ast_expr_copy.argtypes = [c_void_p] 4712isl.isl_ast_expr_free.restype = c_void_p 4713isl.isl_ast_expr_free.argtypes = [c_void_p] 4714isl.isl_ast_expr_to_str.restype = POINTER(c_char) 4715isl.isl_ast_expr_to_str.argtypes = [c_void_p] 4716 4717class ast_expr_op_and(ast_expr_op): 4718 def __init__(self, *args, **keywords): 4719 if "ptr" in keywords: 4720 self.ctx = keywords["ctx"] 4721 self.ptr = keywords["ptr"] 4722 return 4723 raise Error 4724 def __del__(self): 4725 if hasattr(self, 'ptr'): 4726 isl.isl_ast_expr_free(self.ptr) 4727 def __new__(cls, *args, **keywords): 4728 return super(ast_expr_op_and, cls).__new__(cls) 4729 def __str__(arg0): 4730 try: 4731 if not arg0.__class__ is ast_expr_op_and: 4732 arg0 = ast_expr_op_and(arg0) 4733 except: 4734 raise 4735 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 4736 res = cast(ptr, c_char_p).value.decode('ascii') 4737 libc.free(ptr) 4738 return res 4739 def __repr__(self): 4740 s = str(self) 4741 if '"' in s: 4742 return 'isl.ast_expr_op_and("""%s""")' % s 4743 else: 4744 return 'isl.ast_expr_op_and("%s")' % s 4745 4746isl.isl_ast_expr_copy.restype = c_void_p 4747isl.isl_ast_expr_copy.argtypes = [c_void_p] 4748isl.isl_ast_expr_free.restype = c_void_p 4749isl.isl_ast_expr_free.argtypes = [c_void_p] 4750isl.isl_ast_expr_to_str.restype = POINTER(c_char) 4751isl.isl_ast_expr_to_str.argtypes = [c_void_p] 4752 4753class ast_expr_op_and_then(ast_expr_op): 4754 def __init__(self, *args, **keywords): 4755 if "ptr" in keywords: 4756 self.ctx = keywords["ctx"] 4757 self.ptr = keywords["ptr"] 4758 return 4759 raise Error 4760 def __del__(self): 4761 if hasattr(self, 'ptr'): 4762 isl.isl_ast_expr_free(self.ptr) 4763 def __new__(cls, *args, **keywords): 4764 return super(ast_expr_op_and_then, cls).__new__(cls) 4765 def __str__(arg0): 4766 try: 4767 if not arg0.__class__ is ast_expr_op_and_then: 4768 arg0 = ast_expr_op_and_then(arg0) 4769 except: 4770 raise 4771 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 4772 res = cast(ptr, c_char_p).value.decode('ascii') 4773 libc.free(ptr) 4774 return res 4775 def __repr__(self): 4776 s = str(self) 4777 if '"' in s: 4778 return 'isl.ast_expr_op_and_then("""%s""")' % s 4779 else: 4780 return 'isl.ast_expr_op_and_then("%s")' % s 4781 4782isl.isl_ast_expr_copy.restype = c_void_p 4783isl.isl_ast_expr_copy.argtypes = [c_void_p] 4784isl.isl_ast_expr_free.restype = c_void_p 4785isl.isl_ast_expr_free.argtypes = [c_void_p] 4786isl.isl_ast_expr_to_str.restype = POINTER(c_char) 4787isl.isl_ast_expr_to_str.argtypes = [c_void_p] 4788 4789class ast_expr_op_call(ast_expr_op): 4790 def __init__(self, *args, **keywords): 4791 if "ptr" in keywords: 4792 self.ctx = keywords["ctx"] 4793 self.ptr = keywords["ptr"] 4794 return 4795 raise Error 4796 def __del__(self): 4797 if hasattr(self, 'ptr'): 4798 isl.isl_ast_expr_free(self.ptr) 4799 def __new__(cls, *args, **keywords): 4800 return super(ast_expr_op_call, cls).__new__(cls) 4801 def __str__(arg0): 4802 try: 4803 if not arg0.__class__ is ast_expr_op_call: 4804 arg0 = ast_expr_op_call(arg0) 4805 except: 4806 raise 4807 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 4808 res = cast(ptr, c_char_p).value.decode('ascii') 4809 libc.free(ptr) 4810 return res 4811 def __repr__(self): 4812 s = str(self) 4813 if '"' in s: 4814 return 'isl.ast_expr_op_call("""%s""")' % s 4815 else: 4816 return 'isl.ast_expr_op_call("%s")' % s 4817 4818isl.isl_ast_expr_copy.restype = c_void_p 4819isl.isl_ast_expr_copy.argtypes = [c_void_p] 4820isl.isl_ast_expr_free.restype = c_void_p 4821isl.isl_ast_expr_free.argtypes = [c_void_p] 4822isl.isl_ast_expr_to_str.restype = POINTER(c_char) 4823isl.isl_ast_expr_to_str.argtypes = [c_void_p] 4824 4825class ast_expr_op_cond(ast_expr_op): 4826 def __init__(self, *args, **keywords): 4827 if "ptr" in keywords: 4828 self.ctx = keywords["ctx"] 4829 self.ptr = keywords["ptr"] 4830 return 4831 raise Error 4832 def __del__(self): 4833 if hasattr(self, 'ptr'): 4834 isl.isl_ast_expr_free(self.ptr) 4835 def __new__(cls, *args, **keywords): 4836 return super(ast_expr_op_cond, cls).__new__(cls) 4837 def __str__(arg0): 4838 try: 4839 if not arg0.__class__ is ast_expr_op_cond: 4840 arg0 = ast_expr_op_cond(arg0) 4841 except: 4842 raise 4843 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 4844 res = cast(ptr, c_char_p).value.decode('ascii') 4845 libc.free(ptr) 4846 return res 4847 def __repr__(self): 4848 s = str(self) 4849 if '"' in s: 4850 return 'isl.ast_expr_op_cond("""%s""")' % s 4851 else: 4852 return 'isl.ast_expr_op_cond("%s")' % s 4853 4854isl.isl_ast_expr_copy.restype = c_void_p 4855isl.isl_ast_expr_copy.argtypes = [c_void_p] 4856isl.isl_ast_expr_free.restype = c_void_p 4857isl.isl_ast_expr_free.argtypes = [c_void_p] 4858isl.isl_ast_expr_to_str.restype = POINTER(c_char) 4859isl.isl_ast_expr_to_str.argtypes = [c_void_p] 4860 4861class ast_expr_op_div(ast_expr_op): 4862 def __init__(self, *args, **keywords): 4863 if "ptr" in keywords: 4864 self.ctx = keywords["ctx"] 4865 self.ptr = keywords["ptr"] 4866 return 4867 raise Error 4868 def __del__(self): 4869 if hasattr(self, 'ptr'): 4870 isl.isl_ast_expr_free(self.ptr) 4871 def __new__(cls, *args, **keywords): 4872 return super(ast_expr_op_div, cls).__new__(cls) 4873 def __str__(arg0): 4874 try: 4875 if not arg0.__class__ is ast_expr_op_div: 4876 arg0 = ast_expr_op_div(arg0) 4877 except: 4878 raise 4879 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 4880 res = cast(ptr, c_char_p).value.decode('ascii') 4881 libc.free(ptr) 4882 return res 4883 def __repr__(self): 4884 s = str(self) 4885 if '"' in s: 4886 return 'isl.ast_expr_op_div("""%s""")' % s 4887 else: 4888 return 'isl.ast_expr_op_div("%s")' % s 4889 4890isl.isl_ast_expr_copy.restype = c_void_p 4891isl.isl_ast_expr_copy.argtypes = [c_void_p] 4892isl.isl_ast_expr_free.restype = c_void_p 4893isl.isl_ast_expr_free.argtypes = [c_void_p] 4894isl.isl_ast_expr_to_str.restype = POINTER(c_char) 4895isl.isl_ast_expr_to_str.argtypes = [c_void_p] 4896 4897class ast_expr_op_eq(ast_expr_op): 4898 def __init__(self, *args, **keywords): 4899 if "ptr" in keywords: 4900 self.ctx = keywords["ctx"] 4901 self.ptr = keywords["ptr"] 4902 return 4903 raise Error 4904 def __del__(self): 4905 if hasattr(self, 'ptr'): 4906 isl.isl_ast_expr_free(self.ptr) 4907 def __new__(cls, *args, **keywords): 4908 return super(ast_expr_op_eq, cls).__new__(cls) 4909 def __str__(arg0): 4910 try: 4911 if not arg0.__class__ is ast_expr_op_eq: 4912 arg0 = ast_expr_op_eq(arg0) 4913 except: 4914 raise 4915 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 4916 res = cast(ptr, c_char_p).value.decode('ascii') 4917 libc.free(ptr) 4918 return res 4919 def __repr__(self): 4920 s = str(self) 4921 if '"' in s: 4922 return 'isl.ast_expr_op_eq("""%s""")' % s 4923 else: 4924 return 'isl.ast_expr_op_eq("%s")' % s 4925 4926isl.isl_ast_expr_copy.restype = c_void_p 4927isl.isl_ast_expr_copy.argtypes = [c_void_p] 4928isl.isl_ast_expr_free.restype = c_void_p 4929isl.isl_ast_expr_free.argtypes = [c_void_p] 4930isl.isl_ast_expr_to_str.restype = POINTER(c_char) 4931isl.isl_ast_expr_to_str.argtypes = [c_void_p] 4932 4933class ast_expr_op_fdiv_q(ast_expr_op): 4934 def __init__(self, *args, **keywords): 4935 if "ptr" in keywords: 4936 self.ctx = keywords["ctx"] 4937 self.ptr = keywords["ptr"] 4938 return 4939 raise Error 4940 def __del__(self): 4941 if hasattr(self, 'ptr'): 4942 isl.isl_ast_expr_free(self.ptr) 4943 def __new__(cls, *args, **keywords): 4944 return super(ast_expr_op_fdiv_q, cls).__new__(cls) 4945 def __str__(arg0): 4946 try: 4947 if not arg0.__class__ is ast_expr_op_fdiv_q: 4948 arg0 = ast_expr_op_fdiv_q(arg0) 4949 except: 4950 raise 4951 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 4952 res = cast(ptr, c_char_p).value.decode('ascii') 4953 libc.free(ptr) 4954 return res 4955 def __repr__(self): 4956 s = str(self) 4957 if '"' in s: 4958 return 'isl.ast_expr_op_fdiv_q("""%s""")' % s 4959 else: 4960 return 'isl.ast_expr_op_fdiv_q("%s")' % s 4961 4962isl.isl_ast_expr_copy.restype = c_void_p 4963isl.isl_ast_expr_copy.argtypes = [c_void_p] 4964isl.isl_ast_expr_free.restype = c_void_p 4965isl.isl_ast_expr_free.argtypes = [c_void_p] 4966isl.isl_ast_expr_to_str.restype = POINTER(c_char) 4967isl.isl_ast_expr_to_str.argtypes = [c_void_p] 4968 4969class ast_expr_op_ge(ast_expr_op): 4970 def __init__(self, *args, **keywords): 4971 if "ptr" in keywords: 4972 self.ctx = keywords["ctx"] 4973 self.ptr = keywords["ptr"] 4974 return 4975 raise Error 4976 def __del__(self): 4977 if hasattr(self, 'ptr'): 4978 isl.isl_ast_expr_free(self.ptr) 4979 def __new__(cls, *args, **keywords): 4980 return super(ast_expr_op_ge, cls).__new__(cls) 4981 def __str__(arg0): 4982 try: 4983 if not arg0.__class__ is ast_expr_op_ge: 4984 arg0 = ast_expr_op_ge(arg0) 4985 except: 4986 raise 4987 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 4988 res = cast(ptr, c_char_p).value.decode('ascii') 4989 libc.free(ptr) 4990 return res 4991 def __repr__(self): 4992 s = str(self) 4993 if '"' in s: 4994 return 'isl.ast_expr_op_ge("""%s""")' % s 4995 else: 4996 return 'isl.ast_expr_op_ge("%s")' % s 4997 4998isl.isl_ast_expr_copy.restype = c_void_p 4999isl.isl_ast_expr_copy.argtypes = [c_void_p] 5000isl.isl_ast_expr_free.restype = c_void_p 5001isl.isl_ast_expr_free.argtypes = [c_void_p] 5002isl.isl_ast_expr_to_str.restype = POINTER(c_char) 5003isl.isl_ast_expr_to_str.argtypes = [c_void_p] 5004 5005class ast_expr_op_gt(ast_expr_op): 5006 def __init__(self, *args, **keywords): 5007 if "ptr" in keywords: 5008 self.ctx = keywords["ctx"] 5009 self.ptr = keywords["ptr"] 5010 return 5011 raise Error 5012 def __del__(self): 5013 if hasattr(self, 'ptr'): 5014 isl.isl_ast_expr_free(self.ptr) 5015 def __new__(cls, *args, **keywords): 5016 return super(ast_expr_op_gt, cls).__new__(cls) 5017 def __str__(arg0): 5018 try: 5019 if not arg0.__class__ is ast_expr_op_gt: 5020 arg0 = ast_expr_op_gt(arg0) 5021 except: 5022 raise 5023 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 5024 res = cast(ptr, c_char_p).value.decode('ascii') 5025 libc.free(ptr) 5026 return res 5027 def __repr__(self): 5028 s = str(self) 5029 if '"' in s: 5030 return 'isl.ast_expr_op_gt("""%s""")' % s 5031 else: 5032 return 'isl.ast_expr_op_gt("%s")' % s 5033 5034isl.isl_ast_expr_copy.restype = c_void_p 5035isl.isl_ast_expr_copy.argtypes = [c_void_p] 5036isl.isl_ast_expr_free.restype = c_void_p 5037isl.isl_ast_expr_free.argtypes = [c_void_p] 5038isl.isl_ast_expr_to_str.restype = POINTER(c_char) 5039isl.isl_ast_expr_to_str.argtypes = [c_void_p] 5040 5041class ast_expr_op_le(ast_expr_op): 5042 def __init__(self, *args, **keywords): 5043 if "ptr" in keywords: 5044 self.ctx = keywords["ctx"] 5045 self.ptr = keywords["ptr"] 5046 return 5047 raise Error 5048 def __del__(self): 5049 if hasattr(self, 'ptr'): 5050 isl.isl_ast_expr_free(self.ptr) 5051 def __new__(cls, *args, **keywords): 5052 return super(ast_expr_op_le, cls).__new__(cls) 5053 def __str__(arg0): 5054 try: 5055 if not arg0.__class__ is ast_expr_op_le: 5056 arg0 = ast_expr_op_le(arg0) 5057 except: 5058 raise 5059 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 5060 res = cast(ptr, c_char_p).value.decode('ascii') 5061 libc.free(ptr) 5062 return res 5063 def __repr__(self): 5064 s = str(self) 5065 if '"' in s: 5066 return 'isl.ast_expr_op_le("""%s""")' % s 5067 else: 5068 return 'isl.ast_expr_op_le("%s")' % s 5069 5070isl.isl_ast_expr_copy.restype = c_void_p 5071isl.isl_ast_expr_copy.argtypes = [c_void_p] 5072isl.isl_ast_expr_free.restype = c_void_p 5073isl.isl_ast_expr_free.argtypes = [c_void_p] 5074isl.isl_ast_expr_to_str.restype = POINTER(c_char) 5075isl.isl_ast_expr_to_str.argtypes = [c_void_p] 5076 5077class ast_expr_op_lt(ast_expr_op): 5078 def __init__(self, *args, **keywords): 5079 if "ptr" in keywords: 5080 self.ctx = keywords["ctx"] 5081 self.ptr = keywords["ptr"] 5082 return 5083 raise Error 5084 def __del__(self): 5085 if hasattr(self, 'ptr'): 5086 isl.isl_ast_expr_free(self.ptr) 5087 def __new__(cls, *args, **keywords): 5088 return super(ast_expr_op_lt, cls).__new__(cls) 5089 def __str__(arg0): 5090 try: 5091 if not arg0.__class__ is ast_expr_op_lt: 5092 arg0 = ast_expr_op_lt(arg0) 5093 except: 5094 raise 5095 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 5096 res = cast(ptr, c_char_p).value.decode('ascii') 5097 libc.free(ptr) 5098 return res 5099 def __repr__(self): 5100 s = str(self) 5101 if '"' in s: 5102 return 'isl.ast_expr_op_lt("""%s""")' % s 5103 else: 5104 return 'isl.ast_expr_op_lt("%s")' % s 5105 5106isl.isl_ast_expr_copy.restype = c_void_p 5107isl.isl_ast_expr_copy.argtypes = [c_void_p] 5108isl.isl_ast_expr_free.restype = c_void_p 5109isl.isl_ast_expr_free.argtypes = [c_void_p] 5110isl.isl_ast_expr_to_str.restype = POINTER(c_char) 5111isl.isl_ast_expr_to_str.argtypes = [c_void_p] 5112 5113class ast_expr_op_max(ast_expr_op): 5114 def __init__(self, *args, **keywords): 5115 if "ptr" in keywords: 5116 self.ctx = keywords["ctx"] 5117 self.ptr = keywords["ptr"] 5118 return 5119 raise Error 5120 def __del__(self): 5121 if hasattr(self, 'ptr'): 5122 isl.isl_ast_expr_free(self.ptr) 5123 def __new__(cls, *args, **keywords): 5124 return super(ast_expr_op_max, cls).__new__(cls) 5125 def __str__(arg0): 5126 try: 5127 if not arg0.__class__ is ast_expr_op_max: 5128 arg0 = ast_expr_op_max(arg0) 5129 except: 5130 raise 5131 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 5132 res = cast(ptr, c_char_p).value.decode('ascii') 5133 libc.free(ptr) 5134 return res 5135 def __repr__(self): 5136 s = str(self) 5137 if '"' in s: 5138 return 'isl.ast_expr_op_max("""%s""")' % s 5139 else: 5140 return 'isl.ast_expr_op_max("%s")' % s 5141 5142isl.isl_ast_expr_copy.restype = c_void_p 5143isl.isl_ast_expr_copy.argtypes = [c_void_p] 5144isl.isl_ast_expr_free.restype = c_void_p 5145isl.isl_ast_expr_free.argtypes = [c_void_p] 5146isl.isl_ast_expr_to_str.restype = POINTER(c_char) 5147isl.isl_ast_expr_to_str.argtypes = [c_void_p] 5148 5149class ast_expr_op_member(ast_expr_op): 5150 def __init__(self, *args, **keywords): 5151 if "ptr" in keywords: 5152 self.ctx = keywords["ctx"] 5153 self.ptr = keywords["ptr"] 5154 return 5155 raise Error 5156 def __del__(self): 5157 if hasattr(self, 'ptr'): 5158 isl.isl_ast_expr_free(self.ptr) 5159 def __new__(cls, *args, **keywords): 5160 return super(ast_expr_op_member, cls).__new__(cls) 5161 def __str__(arg0): 5162 try: 5163 if not arg0.__class__ is ast_expr_op_member: 5164 arg0 = ast_expr_op_member(arg0) 5165 except: 5166 raise 5167 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 5168 res = cast(ptr, c_char_p).value.decode('ascii') 5169 libc.free(ptr) 5170 return res 5171 def __repr__(self): 5172 s = str(self) 5173 if '"' in s: 5174 return 'isl.ast_expr_op_member("""%s""")' % s 5175 else: 5176 return 'isl.ast_expr_op_member("%s")' % s 5177 5178isl.isl_ast_expr_copy.restype = c_void_p 5179isl.isl_ast_expr_copy.argtypes = [c_void_p] 5180isl.isl_ast_expr_free.restype = c_void_p 5181isl.isl_ast_expr_free.argtypes = [c_void_p] 5182isl.isl_ast_expr_to_str.restype = POINTER(c_char) 5183isl.isl_ast_expr_to_str.argtypes = [c_void_p] 5184 5185class ast_expr_op_min(ast_expr_op): 5186 def __init__(self, *args, **keywords): 5187 if "ptr" in keywords: 5188 self.ctx = keywords["ctx"] 5189 self.ptr = keywords["ptr"] 5190 return 5191 raise Error 5192 def __del__(self): 5193 if hasattr(self, 'ptr'): 5194 isl.isl_ast_expr_free(self.ptr) 5195 def __new__(cls, *args, **keywords): 5196 return super(ast_expr_op_min, cls).__new__(cls) 5197 def __str__(arg0): 5198 try: 5199 if not arg0.__class__ is ast_expr_op_min: 5200 arg0 = ast_expr_op_min(arg0) 5201 except: 5202 raise 5203 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 5204 res = cast(ptr, c_char_p).value.decode('ascii') 5205 libc.free(ptr) 5206 return res 5207 def __repr__(self): 5208 s = str(self) 5209 if '"' in s: 5210 return 'isl.ast_expr_op_min("""%s""")' % s 5211 else: 5212 return 'isl.ast_expr_op_min("%s")' % s 5213 5214isl.isl_ast_expr_copy.restype = c_void_p 5215isl.isl_ast_expr_copy.argtypes = [c_void_p] 5216isl.isl_ast_expr_free.restype = c_void_p 5217isl.isl_ast_expr_free.argtypes = [c_void_p] 5218isl.isl_ast_expr_to_str.restype = POINTER(c_char) 5219isl.isl_ast_expr_to_str.argtypes = [c_void_p] 5220 5221class ast_expr_op_minus(ast_expr_op): 5222 def __init__(self, *args, **keywords): 5223 if "ptr" in keywords: 5224 self.ctx = keywords["ctx"] 5225 self.ptr = keywords["ptr"] 5226 return 5227 raise Error 5228 def __del__(self): 5229 if hasattr(self, 'ptr'): 5230 isl.isl_ast_expr_free(self.ptr) 5231 def __new__(cls, *args, **keywords): 5232 return super(ast_expr_op_minus, cls).__new__(cls) 5233 def __str__(arg0): 5234 try: 5235 if not arg0.__class__ is ast_expr_op_minus: 5236 arg0 = ast_expr_op_minus(arg0) 5237 except: 5238 raise 5239 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 5240 res = cast(ptr, c_char_p).value.decode('ascii') 5241 libc.free(ptr) 5242 return res 5243 def __repr__(self): 5244 s = str(self) 5245 if '"' in s: 5246 return 'isl.ast_expr_op_minus("""%s""")' % s 5247 else: 5248 return 'isl.ast_expr_op_minus("%s")' % s 5249 5250isl.isl_ast_expr_copy.restype = c_void_p 5251isl.isl_ast_expr_copy.argtypes = [c_void_p] 5252isl.isl_ast_expr_free.restype = c_void_p 5253isl.isl_ast_expr_free.argtypes = [c_void_p] 5254isl.isl_ast_expr_to_str.restype = POINTER(c_char) 5255isl.isl_ast_expr_to_str.argtypes = [c_void_p] 5256 5257class ast_expr_op_mul(ast_expr_op): 5258 def __init__(self, *args, **keywords): 5259 if "ptr" in keywords: 5260 self.ctx = keywords["ctx"] 5261 self.ptr = keywords["ptr"] 5262 return 5263 raise Error 5264 def __del__(self): 5265 if hasattr(self, 'ptr'): 5266 isl.isl_ast_expr_free(self.ptr) 5267 def __new__(cls, *args, **keywords): 5268 return super(ast_expr_op_mul, cls).__new__(cls) 5269 def __str__(arg0): 5270 try: 5271 if not arg0.__class__ is ast_expr_op_mul: 5272 arg0 = ast_expr_op_mul(arg0) 5273 except: 5274 raise 5275 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 5276 res = cast(ptr, c_char_p).value.decode('ascii') 5277 libc.free(ptr) 5278 return res 5279 def __repr__(self): 5280 s = str(self) 5281 if '"' in s: 5282 return 'isl.ast_expr_op_mul("""%s""")' % s 5283 else: 5284 return 'isl.ast_expr_op_mul("%s")' % s 5285 5286isl.isl_ast_expr_copy.restype = c_void_p 5287isl.isl_ast_expr_copy.argtypes = [c_void_p] 5288isl.isl_ast_expr_free.restype = c_void_p 5289isl.isl_ast_expr_free.argtypes = [c_void_p] 5290isl.isl_ast_expr_to_str.restype = POINTER(c_char) 5291isl.isl_ast_expr_to_str.argtypes = [c_void_p] 5292 5293class ast_expr_op_or(ast_expr_op): 5294 def __init__(self, *args, **keywords): 5295 if "ptr" in keywords: 5296 self.ctx = keywords["ctx"] 5297 self.ptr = keywords["ptr"] 5298 return 5299 raise Error 5300 def __del__(self): 5301 if hasattr(self, 'ptr'): 5302 isl.isl_ast_expr_free(self.ptr) 5303 def __new__(cls, *args, **keywords): 5304 return super(ast_expr_op_or, cls).__new__(cls) 5305 def __str__(arg0): 5306 try: 5307 if not arg0.__class__ is ast_expr_op_or: 5308 arg0 = ast_expr_op_or(arg0) 5309 except: 5310 raise 5311 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 5312 res = cast(ptr, c_char_p).value.decode('ascii') 5313 libc.free(ptr) 5314 return res 5315 def __repr__(self): 5316 s = str(self) 5317 if '"' in s: 5318 return 'isl.ast_expr_op_or("""%s""")' % s 5319 else: 5320 return 'isl.ast_expr_op_or("%s")' % s 5321 5322isl.isl_ast_expr_copy.restype = c_void_p 5323isl.isl_ast_expr_copy.argtypes = [c_void_p] 5324isl.isl_ast_expr_free.restype = c_void_p 5325isl.isl_ast_expr_free.argtypes = [c_void_p] 5326isl.isl_ast_expr_to_str.restype = POINTER(c_char) 5327isl.isl_ast_expr_to_str.argtypes = [c_void_p] 5328 5329class ast_expr_op_or_else(ast_expr_op): 5330 def __init__(self, *args, **keywords): 5331 if "ptr" in keywords: 5332 self.ctx = keywords["ctx"] 5333 self.ptr = keywords["ptr"] 5334 return 5335 raise Error 5336 def __del__(self): 5337 if hasattr(self, 'ptr'): 5338 isl.isl_ast_expr_free(self.ptr) 5339 def __new__(cls, *args, **keywords): 5340 return super(ast_expr_op_or_else, cls).__new__(cls) 5341 def __str__(arg0): 5342 try: 5343 if not arg0.__class__ is ast_expr_op_or_else: 5344 arg0 = ast_expr_op_or_else(arg0) 5345 except: 5346 raise 5347 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 5348 res = cast(ptr, c_char_p).value.decode('ascii') 5349 libc.free(ptr) 5350 return res 5351 def __repr__(self): 5352 s = str(self) 5353 if '"' in s: 5354 return 'isl.ast_expr_op_or_else("""%s""")' % s 5355 else: 5356 return 'isl.ast_expr_op_or_else("%s")' % s 5357 5358isl.isl_ast_expr_copy.restype = c_void_p 5359isl.isl_ast_expr_copy.argtypes = [c_void_p] 5360isl.isl_ast_expr_free.restype = c_void_p 5361isl.isl_ast_expr_free.argtypes = [c_void_p] 5362isl.isl_ast_expr_to_str.restype = POINTER(c_char) 5363isl.isl_ast_expr_to_str.argtypes = [c_void_p] 5364 5365class ast_expr_op_pdiv_q(ast_expr_op): 5366 def __init__(self, *args, **keywords): 5367 if "ptr" in keywords: 5368 self.ctx = keywords["ctx"] 5369 self.ptr = keywords["ptr"] 5370 return 5371 raise Error 5372 def __del__(self): 5373 if hasattr(self, 'ptr'): 5374 isl.isl_ast_expr_free(self.ptr) 5375 def __new__(cls, *args, **keywords): 5376 return super(ast_expr_op_pdiv_q, cls).__new__(cls) 5377 def __str__(arg0): 5378 try: 5379 if not arg0.__class__ is ast_expr_op_pdiv_q: 5380 arg0 = ast_expr_op_pdiv_q(arg0) 5381 except: 5382 raise 5383 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 5384 res = cast(ptr, c_char_p).value.decode('ascii') 5385 libc.free(ptr) 5386 return res 5387 def __repr__(self): 5388 s = str(self) 5389 if '"' in s: 5390 return 'isl.ast_expr_op_pdiv_q("""%s""")' % s 5391 else: 5392 return 'isl.ast_expr_op_pdiv_q("%s")' % s 5393 5394isl.isl_ast_expr_copy.restype = c_void_p 5395isl.isl_ast_expr_copy.argtypes = [c_void_p] 5396isl.isl_ast_expr_free.restype = c_void_p 5397isl.isl_ast_expr_free.argtypes = [c_void_p] 5398isl.isl_ast_expr_to_str.restype = POINTER(c_char) 5399isl.isl_ast_expr_to_str.argtypes = [c_void_p] 5400 5401class ast_expr_op_pdiv_r(ast_expr_op): 5402 def __init__(self, *args, **keywords): 5403 if "ptr" in keywords: 5404 self.ctx = keywords["ctx"] 5405 self.ptr = keywords["ptr"] 5406 return 5407 raise Error 5408 def __del__(self): 5409 if hasattr(self, 'ptr'): 5410 isl.isl_ast_expr_free(self.ptr) 5411 def __new__(cls, *args, **keywords): 5412 return super(ast_expr_op_pdiv_r, cls).__new__(cls) 5413 def __str__(arg0): 5414 try: 5415 if not arg0.__class__ is ast_expr_op_pdiv_r: 5416 arg0 = ast_expr_op_pdiv_r(arg0) 5417 except: 5418 raise 5419 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 5420 res = cast(ptr, c_char_p).value.decode('ascii') 5421 libc.free(ptr) 5422 return res 5423 def __repr__(self): 5424 s = str(self) 5425 if '"' in s: 5426 return 'isl.ast_expr_op_pdiv_r("""%s""")' % s 5427 else: 5428 return 'isl.ast_expr_op_pdiv_r("%s")' % s 5429 5430isl.isl_ast_expr_copy.restype = c_void_p 5431isl.isl_ast_expr_copy.argtypes = [c_void_p] 5432isl.isl_ast_expr_free.restype = c_void_p 5433isl.isl_ast_expr_free.argtypes = [c_void_p] 5434isl.isl_ast_expr_to_str.restype = POINTER(c_char) 5435isl.isl_ast_expr_to_str.argtypes = [c_void_p] 5436 5437class ast_expr_op_select(ast_expr_op): 5438 def __init__(self, *args, **keywords): 5439 if "ptr" in keywords: 5440 self.ctx = keywords["ctx"] 5441 self.ptr = keywords["ptr"] 5442 return 5443 raise Error 5444 def __del__(self): 5445 if hasattr(self, 'ptr'): 5446 isl.isl_ast_expr_free(self.ptr) 5447 def __new__(cls, *args, **keywords): 5448 return super(ast_expr_op_select, cls).__new__(cls) 5449 def __str__(arg0): 5450 try: 5451 if not arg0.__class__ is ast_expr_op_select: 5452 arg0 = ast_expr_op_select(arg0) 5453 except: 5454 raise 5455 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 5456 res = cast(ptr, c_char_p).value.decode('ascii') 5457 libc.free(ptr) 5458 return res 5459 def __repr__(self): 5460 s = str(self) 5461 if '"' in s: 5462 return 'isl.ast_expr_op_select("""%s""")' % s 5463 else: 5464 return 'isl.ast_expr_op_select("%s")' % s 5465 5466isl.isl_ast_expr_copy.restype = c_void_p 5467isl.isl_ast_expr_copy.argtypes = [c_void_p] 5468isl.isl_ast_expr_free.restype = c_void_p 5469isl.isl_ast_expr_free.argtypes = [c_void_p] 5470isl.isl_ast_expr_to_str.restype = POINTER(c_char) 5471isl.isl_ast_expr_to_str.argtypes = [c_void_p] 5472 5473class ast_expr_op_sub(ast_expr_op): 5474 def __init__(self, *args, **keywords): 5475 if "ptr" in keywords: 5476 self.ctx = keywords["ctx"] 5477 self.ptr = keywords["ptr"] 5478 return 5479 raise Error 5480 def __del__(self): 5481 if hasattr(self, 'ptr'): 5482 isl.isl_ast_expr_free(self.ptr) 5483 def __new__(cls, *args, **keywords): 5484 return super(ast_expr_op_sub, cls).__new__(cls) 5485 def __str__(arg0): 5486 try: 5487 if not arg0.__class__ is ast_expr_op_sub: 5488 arg0 = ast_expr_op_sub(arg0) 5489 except: 5490 raise 5491 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 5492 res = cast(ptr, c_char_p).value.decode('ascii') 5493 libc.free(ptr) 5494 return res 5495 def __repr__(self): 5496 s = str(self) 5497 if '"' in s: 5498 return 'isl.ast_expr_op_sub("""%s""")' % s 5499 else: 5500 return 'isl.ast_expr_op_sub("%s")' % s 5501 5502isl.isl_ast_expr_copy.restype = c_void_p 5503isl.isl_ast_expr_copy.argtypes = [c_void_p] 5504isl.isl_ast_expr_free.restype = c_void_p 5505isl.isl_ast_expr_free.argtypes = [c_void_p] 5506isl.isl_ast_expr_to_str.restype = POINTER(c_char) 5507isl.isl_ast_expr_to_str.argtypes = [c_void_p] 5508 5509class ast_expr_op_zdiv_r(ast_expr_op): 5510 def __init__(self, *args, **keywords): 5511 if "ptr" in keywords: 5512 self.ctx = keywords["ctx"] 5513 self.ptr = keywords["ptr"] 5514 return 5515 raise Error 5516 def __del__(self): 5517 if hasattr(self, 'ptr'): 5518 isl.isl_ast_expr_free(self.ptr) 5519 def __new__(cls, *args, **keywords): 5520 return super(ast_expr_op_zdiv_r, cls).__new__(cls) 5521 def __str__(arg0): 5522 try: 5523 if not arg0.__class__ is ast_expr_op_zdiv_r: 5524 arg0 = ast_expr_op_zdiv_r(arg0) 5525 except: 5526 raise 5527 ptr = isl.isl_ast_expr_to_str(arg0.ptr) 5528 res = cast(ptr, c_char_p).value.decode('ascii') 5529 libc.free(ptr) 5530 return res 5531 def __repr__(self): 5532 s = str(self) 5533 if '"' in s: 5534 return 'isl.ast_expr_op_zdiv_r("""%s""")' % s 5535 else: 5536 return 'isl.ast_expr_op_zdiv_r("%s")' % s 5537 5538isl.isl_ast_expr_copy.restype = c_void_p 5539isl.isl_ast_expr_copy.argtypes = [c_void_p] 5540isl.isl_ast_expr_free.restype = c_void_p 5541isl.isl_ast_expr_free.argtypes = [c_void_p] 5542isl.isl_ast_expr_to_str.restype = POINTER(c_char) 5543isl.isl_ast_expr_to_str.argtypes = [c_void_p] 5544 5545class ast_node(object): 5546 def __init__(self, *args, **keywords): 5547 if "ptr" in keywords: 5548 self.ctx = keywords["ctx"] 5549 self.ptr = keywords["ptr"] 5550 return 5551 if len(args) == 1 and isinstance(args[0], ast_node_for): 5552 self.ctx = args[0].ctx 5553 self.ptr = isl.isl_ast_node_copy(args[0].ptr) 5554 return 5555 if len(args) == 1 and isinstance(args[0], ast_node_if): 5556 self.ctx = args[0].ctx 5557 self.ptr = isl.isl_ast_node_copy(args[0].ptr) 5558 return 5559 if len(args) == 1 and isinstance(args[0], ast_node_block): 5560 self.ctx = args[0].ctx 5561 self.ptr = isl.isl_ast_node_copy(args[0].ptr) 5562 return 5563 if len(args) == 1 and isinstance(args[0], ast_node_mark): 5564 self.ctx = args[0].ctx 5565 self.ptr = isl.isl_ast_node_copy(args[0].ptr) 5566 return 5567 if len(args) == 1 and isinstance(args[0], ast_node_user): 5568 self.ctx = args[0].ctx 5569 self.ptr = isl.isl_ast_node_copy(args[0].ptr) 5570 return 5571 raise Error 5572 def __del__(self): 5573 if hasattr(self, 'ptr'): 5574 isl.isl_ast_node_free(self.ptr) 5575 def __new__(cls, *args, **keywords): 5576 if "ptr" in keywords: 5577 type = isl.isl_ast_node_get_type(keywords["ptr"]) 5578 if type == 1: 5579 return ast_node_for(**keywords) 5580 if type == 2: 5581 return ast_node_if(**keywords) 5582 if type == 3: 5583 return ast_node_block(**keywords) 5584 if type == 4: 5585 return ast_node_mark(**keywords) 5586 if type == 5: 5587 return ast_node_user(**keywords) 5588 raise 5589 return super(ast_node, cls).__new__(cls) 5590 def __str__(arg0): 5591 try: 5592 if not arg0.__class__ is ast_node: 5593 arg0 = ast_node(arg0) 5594 except: 5595 raise 5596 ptr = isl.isl_ast_node_to_str(arg0.ptr) 5597 res = cast(ptr, c_char_p).value.decode('ascii') 5598 libc.free(ptr) 5599 return res 5600 def __repr__(self): 5601 s = str(self) 5602 if '"' in s: 5603 return 'isl.ast_node("""%s""")' % s 5604 else: 5605 return 'isl.ast_node("%s")' % s 5606 def to_C_str(arg0): 5607 try: 5608 if not arg0.__class__ is ast_node: 5609 arg0 = ast_node(arg0) 5610 except: 5611 raise 5612 ctx = arg0.ctx 5613 res = isl.isl_ast_node_to_C_str(arg0.ptr) 5614 if res == 0: 5615 raise 5616 string = cast(res, c_char_p).value.decode('ascii') 5617 libc.free(res) 5618 return string 5619 5620isl.isl_ast_node_to_C_str.restype = POINTER(c_char) 5621isl.isl_ast_node_to_C_str.argtypes = [c_void_p] 5622isl.isl_ast_node_copy.restype = c_void_p 5623isl.isl_ast_node_copy.argtypes = [c_void_p] 5624isl.isl_ast_node_free.restype = c_void_p 5625isl.isl_ast_node_free.argtypes = [c_void_p] 5626isl.isl_ast_node_to_str.restype = POINTER(c_char) 5627isl.isl_ast_node_to_str.argtypes = [c_void_p] 5628isl.isl_ast_node_get_type.argtypes = [c_void_p] 5629 5630class ast_node_block(ast_node): 5631 def __init__(self, *args, **keywords): 5632 if "ptr" in keywords: 5633 self.ctx = keywords["ctx"] 5634 self.ptr = keywords["ptr"] 5635 return 5636 raise Error 5637 def __del__(self): 5638 if hasattr(self, 'ptr'): 5639 isl.isl_ast_node_free(self.ptr) 5640 def __new__(cls, *args, **keywords): 5641 return super(ast_node_block, cls).__new__(cls) 5642 def __str__(arg0): 5643 try: 5644 if not arg0.__class__ is ast_node_block: 5645 arg0 = ast_node_block(arg0) 5646 except: 5647 raise 5648 ptr = isl.isl_ast_node_to_str(arg0.ptr) 5649 res = cast(ptr, c_char_p).value.decode('ascii') 5650 libc.free(ptr) 5651 return res 5652 def __repr__(self): 5653 s = str(self) 5654 if '"' in s: 5655 return 'isl.ast_node_block("""%s""")' % s 5656 else: 5657 return 'isl.ast_node_block("%s")' % s 5658 def children(arg0): 5659 try: 5660 if not arg0.__class__ is ast_node: 5661 arg0 = ast_node(arg0) 5662 except: 5663 raise 5664 ctx = arg0.ctx 5665 res = isl.isl_ast_node_block_get_children(arg0.ptr) 5666 obj = ast_node_list(ctx=ctx, ptr=res) 5667 return obj 5668 def get_children(arg0): 5669 return arg0.children() 5670 5671isl.isl_ast_node_block_get_children.restype = c_void_p 5672isl.isl_ast_node_block_get_children.argtypes = [c_void_p] 5673isl.isl_ast_node_copy.restype = c_void_p 5674isl.isl_ast_node_copy.argtypes = [c_void_p] 5675isl.isl_ast_node_free.restype = c_void_p 5676isl.isl_ast_node_free.argtypes = [c_void_p] 5677isl.isl_ast_node_to_str.restype = POINTER(c_char) 5678isl.isl_ast_node_to_str.argtypes = [c_void_p] 5679 5680class ast_node_for(ast_node): 5681 def __init__(self, *args, **keywords): 5682 if "ptr" in keywords: 5683 self.ctx = keywords["ctx"] 5684 self.ptr = keywords["ptr"] 5685 return 5686 raise Error 5687 def __del__(self): 5688 if hasattr(self, 'ptr'): 5689 isl.isl_ast_node_free(self.ptr) 5690 def __new__(cls, *args, **keywords): 5691 return super(ast_node_for, cls).__new__(cls) 5692 def __str__(arg0): 5693 try: 5694 if not arg0.__class__ is ast_node_for: 5695 arg0 = ast_node_for(arg0) 5696 except: 5697 raise 5698 ptr = isl.isl_ast_node_to_str(arg0.ptr) 5699 res = cast(ptr, c_char_p).value.decode('ascii') 5700 libc.free(ptr) 5701 return res 5702 def __repr__(self): 5703 s = str(self) 5704 if '"' in s: 5705 return 'isl.ast_node_for("""%s""")' % s 5706 else: 5707 return 'isl.ast_node_for("%s")' % s 5708 def body(arg0): 5709 try: 5710 if not arg0.__class__ is ast_node: 5711 arg0 = ast_node(arg0) 5712 except: 5713 raise 5714 ctx = arg0.ctx 5715 res = isl.isl_ast_node_for_get_body(arg0.ptr) 5716 obj = ast_node(ctx=ctx, ptr=res) 5717 return obj 5718 def get_body(arg0): 5719 return arg0.body() 5720 def cond(arg0): 5721 try: 5722 if not arg0.__class__ is ast_node: 5723 arg0 = ast_node(arg0) 5724 except: 5725 raise 5726 ctx = arg0.ctx 5727 res = isl.isl_ast_node_for_get_cond(arg0.ptr) 5728 obj = ast_expr(ctx=ctx, ptr=res) 5729 return obj 5730 def get_cond(arg0): 5731 return arg0.cond() 5732 def inc(arg0): 5733 try: 5734 if not arg0.__class__ is ast_node: 5735 arg0 = ast_node(arg0) 5736 except: 5737 raise 5738 ctx = arg0.ctx 5739 res = isl.isl_ast_node_for_get_inc(arg0.ptr) 5740 obj = ast_expr(ctx=ctx, ptr=res) 5741 return obj 5742 def get_inc(arg0): 5743 return arg0.inc() 5744 def init(arg0): 5745 try: 5746 if not arg0.__class__ is ast_node: 5747 arg0 = ast_node(arg0) 5748 except: 5749 raise 5750 ctx = arg0.ctx 5751 res = isl.isl_ast_node_for_get_init(arg0.ptr) 5752 obj = ast_expr(ctx=ctx, ptr=res) 5753 return obj 5754 def get_init(arg0): 5755 return arg0.init() 5756 def iterator(arg0): 5757 try: 5758 if not arg0.__class__ is ast_node: 5759 arg0 = ast_node(arg0) 5760 except: 5761 raise 5762 ctx = arg0.ctx 5763 res = isl.isl_ast_node_for_get_iterator(arg0.ptr) 5764 obj = ast_expr(ctx=ctx, ptr=res) 5765 return obj 5766 def get_iterator(arg0): 5767 return arg0.iterator() 5768 def is_degenerate(arg0): 5769 try: 5770 if not arg0.__class__ is ast_node: 5771 arg0 = ast_node(arg0) 5772 except: 5773 raise 5774 ctx = arg0.ctx 5775 res = isl.isl_ast_node_for_is_degenerate(arg0.ptr) 5776 if res < 0: 5777 raise 5778 return bool(res) 5779 5780isl.isl_ast_node_for_get_body.restype = c_void_p 5781isl.isl_ast_node_for_get_body.argtypes = [c_void_p] 5782isl.isl_ast_node_for_get_cond.restype = c_void_p 5783isl.isl_ast_node_for_get_cond.argtypes = [c_void_p] 5784isl.isl_ast_node_for_get_inc.restype = c_void_p 5785isl.isl_ast_node_for_get_inc.argtypes = [c_void_p] 5786isl.isl_ast_node_for_get_init.restype = c_void_p 5787isl.isl_ast_node_for_get_init.argtypes = [c_void_p] 5788isl.isl_ast_node_for_get_iterator.restype = c_void_p 5789isl.isl_ast_node_for_get_iterator.argtypes = [c_void_p] 5790isl.isl_ast_node_for_is_degenerate.argtypes = [c_void_p] 5791isl.isl_ast_node_copy.restype = c_void_p 5792isl.isl_ast_node_copy.argtypes = [c_void_p] 5793isl.isl_ast_node_free.restype = c_void_p 5794isl.isl_ast_node_free.argtypes = [c_void_p] 5795isl.isl_ast_node_to_str.restype = POINTER(c_char) 5796isl.isl_ast_node_to_str.argtypes = [c_void_p] 5797 5798class ast_node_if(ast_node): 5799 def __init__(self, *args, **keywords): 5800 if "ptr" in keywords: 5801 self.ctx = keywords["ctx"] 5802 self.ptr = keywords["ptr"] 5803 return 5804 raise Error 5805 def __del__(self): 5806 if hasattr(self, 'ptr'): 5807 isl.isl_ast_node_free(self.ptr) 5808 def __new__(cls, *args, **keywords): 5809 return super(ast_node_if, cls).__new__(cls) 5810 def __str__(arg0): 5811 try: 5812 if not arg0.__class__ is ast_node_if: 5813 arg0 = ast_node_if(arg0) 5814 except: 5815 raise 5816 ptr = isl.isl_ast_node_to_str(arg0.ptr) 5817 res = cast(ptr, c_char_p).value.decode('ascii') 5818 libc.free(ptr) 5819 return res 5820 def __repr__(self): 5821 s = str(self) 5822 if '"' in s: 5823 return 'isl.ast_node_if("""%s""")' % s 5824 else: 5825 return 'isl.ast_node_if("%s")' % s 5826 def cond(arg0): 5827 try: 5828 if not arg0.__class__ is ast_node: 5829 arg0 = ast_node(arg0) 5830 except: 5831 raise 5832 ctx = arg0.ctx 5833 res = isl.isl_ast_node_if_get_cond(arg0.ptr) 5834 obj = ast_expr(ctx=ctx, ptr=res) 5835 return obj 5836 def get_cond(arg0): 5837 return arg0.cond() 5838 def else_node(arg0): 5839 try: 5840 if not arg0.__class__ is ast_node: 5841 arg0 = ast_node(arg0) 5842 except: 5843 raise 5844 ctx = arg0.ctx 5845 res = isl.isl_ast_node_if_get_else_node(arg0.ptr) 5846 obj = ast_node(ctx=ctx, ptr=res) 5847 return obj 5848 def get_else_node(arg0): 5849 return arg0.else_node() 5850 def then_node(arg0): 5851 try: 5852 if not arg0.__class__ is ast_node: 5853 arg0 = ast_node(arg0) 5854 except: 5855 raise 5856 ctx = arg0.ctx 5857 res = isl.isl_ast_node_if_get_then_node(arg0.ptr) 5858 obj = ast_node(ctx=ctx, ptr=res) 5859 return obj 5860 def get_then_node(arg0): 5861 return arg0.then_node() 5862 def has_else_node(arg0): 5863 try: 5864 if not arg0.__class__ is ast_node: 5865 arg0 = ast_node(arg0) 5866 except: 5867 raise 5868 ctx = arg0.ctx 5869 res = isl.isl_ast_node_if_has_else_node(arg0.ptr) 5870 if res < 0: 5871 raise 5872 return bool(res) 5873 5874isl.isl_ast_node_if_get_cond.restype = c_void_p 5875isl.isl_ast_node_if_get_cond.argtypes = [c_void_p] 5876isl.isl_ast_node_if_get_else_node.restype = c_void_p 5877isl.isl_ast_node_if_get_else_node.argtypes = [c_void_p] 5878isl.isl_ast_node_if_get_then_node.restype = c_void_p 5879isl.isl_ast_node_if_get_then_node.argtypes = [c_void_p] 5880isl.isl_ast_node_if_has_else_node.argtypes = [c_void_p] 5881isl.isl_ast_node_copy.restype = c_void_p 5882isl.isl_ast_node_copy.argtypes = [c_void_p] 5883isl.isl_ast_node_free.restype = c_void_p 5884isl.isl_ast_node_free.argtypes = [c_void_p] 5885isl.isl_ast_node_to_str.restype = POINTER(c_char) 5886isl.isl_ast_node_to_str.argtypes = [c_void_p] 5887 5888class ast_node_list(object): 5889 def __init__(self, *args, **keywords): 5890 if "ptr" in keywords: 5891 self.ctx = keywords["ctx"] 5892 self.ptr = keywords["ptr"] 5893 return 5894 if len(args) == 1 and type(args[0]) == int: 5895 self.ctx = Context.getDefaultInstance() 5896 self.ptr = isl.isl_ast_node_list_alloc(self.ctx, args[0]) 5897 return 5898 if len(args) == 1 and args[0].__class__ is ast_node: 5899 self.ctx = Context.getDefaultInstance() 5900 self.ptr = isl.isl_ast_node_list_from_ast_node(isl.isl_ast_node_copy(args[0].ptr)) 5901 return 5902 raise Error 5903 def __del__(self): 5904 if hasattr(self, 'ptr'): 5905 isl.isl_ast_node_list_free(self.ptr) 5906 def __str__(arg0): 5907 try: 5908 if not arg0.__class__ is ast_node_list: 5909 arg0 = ast_node_list(arg0) 5910 except: 5911 raise 5912 ptr = isl.isl_ast_node_list_to_str(arg0.ptr) 5913 res = cast(ptr, c_char_p).value.decode('ascii') 5914 libc.free(ptr) 5915 return res 5916 def __repr__(self): 5917 s = str(self) 5918 if '"' in s: 5919 return 'isl.ast_node_list("""%s""")' % s 5920 else: 5921 return 'isl.ast_node_list("%s")' % s 5922 def add(arg0, arg1): 5923 try: 5924 if not arg0.__class__ is ast_node_list: 5925 arg0 = ast_node_list(arg0) 5926 except: 5927 raise 5928 try: 5929 if not arg1.__class__ is ast_node: 5930 arg1 = ast_node(arg1) 5931 except: 5932 raise 5933 ctx = arg0.ctx 5934 res = isl.isl_ast_node_list_add(isl.isl_ast_node_list_copy(arg0.ptr), isl.isl_ast_node_copy(arg1.ptr)) 5935 obj = ast_node_list(ctx=ctx, ptr=res) 5936 return obj 5937 def clear(arg0): 5938 try: 5939 if not arg0.__class__ is ast_node_list: 5940 arg0 = ast_node_list(arg0) 5941 except: 5942 raise 5943 ctx = arg0.ctx 5944 res = isl.isl_ast_node_list_clear(isl.isl_ast_node_list_copy(arg0.ptr)) 5945 obj = ast_node_list(ctx=ctx, ptr=res) 5946 return obj 5947 def concat(arg0, arg1): 5948 try: 5949 if not arg0.__class__ is ast_node_list: 5950 arg0 = ast_node_list(arg0) 5951 except: 5952 raise 5953 try: 5954 if not arg1.__class__ is ast_node_list: 5955 arg1 = ast_node_list(arg1) 5956 except: 5957 raise 5958 ctx = arg0.ctx 5959 res = isl.isl_ast_node_list_concat(isl.isl_ast_node_list_copy(arg0.ptr), isl.isl_ast_node_list_copy(arg1.ptr)) 5960 obj = ast_node_list(ctx=ctx, ptr=res) 5961 return obj 5962 def drop(arg0, arg1, arg2): 5963 try: 5964 if not arg0.__class__ is ast_node_list: 5965 arg0 = ast_node_list(arg0) 5966 except: 5967 raise 5968 ctx = arg0.ctx 5969 res = isl.isl_ast_node_list_drop(isl.isl_ast_node_list_copy(arg0.ptr), arg1, arg2) 5970 obj = ast_node_list(ctx=ctx, ptr=res) 5971 return obj 5972 def foreach(arg0, arg1): 5973 try: 5974 if not arg0.__class__ is ast_node_list: 5975 arg0 = ast_node_list(arg0) 5976 except: 5977 raise 5978 exc_info = [None] 5979 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 5980 def cb_func(cb_arg0, cb_arg1): 5981 cb_arg0 = ast_node(ctx=arg0.ctx, ptr=(cb_arg0)) 5982 try: 5983 arg1(cb_arg0) 5984 except: 5985 import sys 5986 exc_info[0] = sys.exc_info() 5987 return -1 5988 return 0 5989 cb = fn(cb_func) 5990 ctx = arg0.ctx 5991 res = isl.isl_ast_node_list_foreach(arg0.ptr, cb, None) 5992 if exc_info[0] != None: 5993 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 5994 if res < 0: 5995 raise 5996 def at(arg0, arg1): 5997 try: 5998 if not arg0.__class__ is ast_node_list: 5999 arg0 = ast_node_list(arg0) 6000 except: 6001 raise 6002 ctx = arg0.ctx 6003 res = isl.isl_ast_node_list_get_at(arg0.ptr, arg1) 6004 obj = ast_node(ctx=ctx, ptr=res) 6005 return obj 6006 def get_at(arg0, arg1): 6007 return arg0.at(arg1) 6008 def insert(arg0, arg1, arg2): 6009 try: 6010 if not arg0.__class__ is ast_node_list: 6011 arg0 = ast_node_list(arg0) 6012 except: 6013 raise 6014 try: 6015 if not arg2.__class__ is ast_node: 6016 arg2 = ast_node(arg2) 6017 except: 6018 raise 6019 ctx = arg0.ctx 6020 res = isl.isl_ast_node_list_insert(isl.isl_ast_node_list_copy(arg0.ptr), arg1, isl.isl_ast_node_copy(arg2.ptr)) 6021 obj = ast_node_list(ctx=ctx, ptr=res) 6022 return obj 6023 def size(arg0): 6024 try: 6025 if not arg0.__class__ is ast_node_list: 6026 arg0 = ast_node_list(arg0) 6027 except: 6028 raise 6029 ctx = arg0.ctx 6030 res = isl.isl_ast_node_list_size(arg0.ptr) 6031 if res < 0: 6032 raise 6033 return int(res) 6034 6035isl.isl_ast_node_list_alloc.restype = c_void_p 6036isl.isl_ast_node_list_alloc.argtypes = [Context, c_int] 6037isl.isl_ast_node_list_from_ast_node.restype = c_void_p 6038isl.isl_ast_node_list_from_ast_node.argtypes = [c_void_p] 6039isl.isl_ast_node_list_add.restype = c_void_p 6040isl.isl_ast_node_list_add.argtypes = [c_void_p, c_void_p] 6041isl.isl_ast_node_list_clear.restype = c_void_p 6042isl.isl_ast_node_list_clear.argtypes = [c_void_p] 6043isl.isl_ast_node_list_concat.restype = c_void_p 6044isl.isl_ast_node_list_concat.argtypes = [c_void_p, c_void_p] 6045isl.isl_ast_node_list_drop.restype = c_void_p 6046isl.isl_ast_node_list_drop.argtypes = [c_void_p, c_int, c_int] 6047isl.isl_ast_node_list_foreach.argtypes = [c_void_p, c_void_p, c_void_p] 6048isl.isl_ast_node_list_get_at.restype = c_void_p 6049isl.isl_ast_node_list_get_at.argtypes = [c_void_p, c_int] 6050isl.isl_ast_node_list_insert.restype = c_void_p 6051isl.isl_ast_node_list_insert.argtypes = [c_void_p, c_int, c_void_p] 6052isl.isl_ast_node_list_size.argtypes = [c_void_p] 6053isl.isl_ast_node_list_copy.restype = c_void_p 6054isl.isl_ast_node_list_copy.argtypes = [c_void_p] 6055isl.isl_ast_node_list_free.restype = c_void_p 6056isl.isl_ast_node_list_free.argtypes = [c_void_p] 6057isl.isl_ast_node_list_to_str.restype = POINTER(c_char) 6058isl.isl_ast_node_list_to_str.argtypes = [c_void_p] 6059 6060class ast_node_mark(ast_node): 6061 def __init__(self, *args, **keywords): 6062 if "ptr" in keywords: 6063 self.ctx = keywords["ctx"] 6064 self.ptr = keywords["ptr"] 6065 return 6066 raise Error 6067 def __del__(self): 6068 if hasattr(self, 'ptr'): 6069 isl.isl_ast_node_free(self.ptr) 6070 def __new__(cls, *args, **keywords): 6071 return super(ast_node_mark, cls).__new__(cls) 6072 def __str__(arg0): 6073 try: 6074 if not arg0.__class__ is ast_node_mark: 6075 arg0 = ast_node_mark(arg0) 6076 except: 6077 raise 6078 ptr = isl.isl_ast_node_to_str(arg0.ptr) 6079 res = cast(ptr, c_char_p).value.decode('ascii') 6080 libc.free(ptr) 6081 return res 6082 def __repr__(self): 6083 s = str(self) 6084 if '"' in s: 6085 return 'isl.ast_node_mark("""%s""")' % s 6086 else: 6087 return 'isl.ast_node_mark("%s")' % s 6088 def id(arg0): 6089 try: 6090 if not arg0.__class__ is ast_node: 6091 arg0 = ast_node(arg0) 6092 except: 6093 raise 6094 ctx = arg0.ctx 6095 res = isl.isl_ast_node_mark_get_id(arg0.ptr) 6096 obj = id(ctx=ctx, ptr=res) 6097 return obj 6098 def get_id(arg0): 6099 return arg0.id() 6100 def node(arg0): 6101 try: 6102 if not arg0.__class__ is ast_node: 6103 arg0 = ast_node(arg0) 6104 except: 6105 raise 6106 ctx = arg0.ctx 6107 res = isl.isl_ast_node_mark_get_node(arg0.ptr) 6108 obj = ast_node(ctx=ctx, ptr=res) 6109 return obj 6110 def get_node(arg0): 6111 return arg0.node() 6112 6113isl.isl_ast_node_mark_get_id.restype = c_void_p 6114isl.isl_ast_node_mark_get_id.argtypes = [c_void_p] 6115isl.isl_ast_node_mark_get_node.restype = c_void_p 6116isl.isl_ast_node_mark_get_node.argtypes = [c_void_p] 6117isl.isl_ast_node_copy.restype = c_void_p 6118isl.isl_ast_node_copy.argtypes = [c_void_p] 6119isl.isl_ast_node_free.restype = c_void_p 6120isl.isl_ast_node_free.argtypes = [c_void_p] 6121isl.isl_ast_node_to_str.restype = POINTER(c_char) 6122isl.isl_ast_node_to_str.argtypes = [c_void_p] 6123 6124class ast_node_user(ast_node): 6125 def __init__(self, *args, **keywords): 6126 if "ptr" in keywords: 6127 self.ctx = keywords["ctx"] 6128 self.ptr = keywords["ptr"] 6129 return 6130 raise Error 6131 def __del__(self): 6132 if hasattr(self, 'ptr'): 6133 isl.isl_ast_node_free(self.ptr) 6134 def __new__(cls, *args, **keywords): 6135 return super(ast_node_user, cls).__new__(cls) 6136 def __str__(arg0): 6137 try: 6138 if not arg0.__class__ is ast_node_user: 6139 arg0 = ast_node_user(arg0) 6140 except: 6141 raise 6142 ptr = isl.isl_ast_node_to_str(arg0.ptr) 6143 res = cast(ptr, c_char_p).value.decode('ascii') 6144 libc.free(ptr) 6145 return res 6146 def __repr__(self): 6147 s = str(self) 6148 if '"' in s: 6149 return 'isl.ast_node_user("""%s""")' % s 6150 else: 6151 return 'isl.ast_node_user("%s")' % s 6152 def expr(arg0): 6153 try: 6154 if not arg0.__class__ is ast_node: 6155 arg0 = ast_node(arg0) 6156 except: 6157 raise 6158 ctx = arg0.ctx 6159 res = isl.isl_ast_node_user_get_expr(arg0.ptr) 6160 obj = ast_expr(ctx=ctx, ptr=res) 6161 return obj 6162 def get_expr(arg0): 6163 return arg0.expr() 6164 6165isl.isl_ast_node_user_get_expr.restype = c_void_p 6166isl.isl_ast_node_user_get_expr.argtypes = [c_void_p] 6167isl.isl_ast_node_copy.restype = c_void_p 6168isl.isl_ast_node_copy.argtypes = [c_void_p] 6169isl.isl_ast_node_free.restype = c_void_p 6170isl.isl_ast_node_free.argtypes = [c_void_p] 6171isl.isl_ast_node_to_str.restype = POINTER(c_char) 6172isl.isl_ast_node_to_str.argtypes = [c_void_p] 6173 6174class union_map(object): 6175 def __init__(self, *args, **keywords): 6176 if "ptr" in keywords: 6177 self.ctx = keywords["ctx"] 6178 self.ptr = keywords["ptr"] 6179 return 6180 if len(args) == 1 and args[0].__class__ is basic_map: 6181 self.ctx = Context.getDefaultInstance() 6182 self.ptr = isl.isl_union_map_from_basic_map(isl.isl_basic_map_copy(args[0].ptr)) 6183 return 6184 if len(args) == 1 and args[0].__class__ is map: 6185 self.ctx = Context.getDefaultInstance() 6186 self.ptr = isl.isl_union_map_from_map(isl.isl_map_copy(args[0].ptr)) 6187 return 6188 if len(args) == 1 and type(args[0]) == str: 6189 self.ctx = Context.getDefaultInstance() 6190 self.ptr = isl.isl_union_map_read_from_str(self.ctx, args[0].encode('ascii')) 6191 return 6192 raise Error 6193 def __del__(self): 6194 if hasattr(self, 'ptr'): 6195 isl.isl_union_map_free(self.ptr) 6196 def __str__(arg0): 6197 try: 6198 if not arg0.__class__ is union_map: 6199 arg0 = union_map(arg0) 6200 except: 6201 raise 6202 ptr = isl.isl_union_map_to_str(arg0.ptr) 6203 res = cast(ptr, c_char_p).value.decode('ascii') 6204 libc.free(ptr) 6205 return res 6206 def __repr__(self): 6207 s = str(self) 6208 if '"' in s: 6209 return 'isl.union_map("""%s""")' % s 6210 else: 6211 return 'isl.union_map("%s")' % s 6212 def affine_hull(arg0): 6213 try: 6214 if not arg0.__class__ is union_map: 6215 arg0 = union_map(arg0) 6216 except: 6217 raise 6218 ctx = arg0.ctx 6219 res = isl.isl_union_map_affine_hull(isl.isl_union_map_copy(arg0.ptr)) 6220 obj = union_map(ctx=ctx, ptr=res) 6221 return obj 6222 def apply_domain(arg0, arg1): 6223 try: 6224 if not arg0.__class__ is union_map: 6225 arg0 = union_map(arg0) 6226 except: 6227 raise 6228 try: 6229 if not arg1.__class__ is union_map: 6230 arg1 = union_map(arg1) 6231 except: 6232 raise 6233 ctx = arg0.ctx 6234 res = isl.isl_union_map_apply_domain(isl.isl_union_map_copy(arg0.ptr), isl.isl_union_map_copy(arg1.ptr)) 6235 obj = union_map(ctx=ctx, ptr=res) 6236 return obj 6237 def apply_range(arg0, arg1): 6238 try: 6239 if not arg0.__class__ is union_map: 6240 arg0 = union_map(arg0) 6241 except: 6242 raise 6243 try: 6244 if not arg1.__class__ is union_map: 6245 arg1 = union_map(arg1) 6246 except: 6247 raise 6248 ctx = arg0.ctx 6249 res = isl.isl_union_map_apply_range(isl.isl_union_map_copy(arg0.ptr), isl.isl_union_map_copy(arg1.ptr)) 6250 obj = union_map(ctx=ctx, ptr=res) 6251 return obj 6252 def bind_range(arg0, arg1): 6253 try: 6254 if not arg0.__class__ is union_map: 6255 arg0 = union_map(arg0) 6256 except: 6257 raise 6258 try: 6259 if not arg1.__class__ is multi_id: 6260 arg1 = multi_id(arg1) 6261 except: 6262 raise 6263 ctx = arg0.ctx 6264 res = isl.isl_union_map_bind_range(isl.isl_union_map_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 6265 obj = union_set(ctx=ctx, ptr=res) 6266 return obj 6267 def coalesce(arg0): 6268 try: 6269 if not arg0.__class__ is union_map: 6270 arg0 = union_map(arg0) 6271 except: 6272 raise 6273 ctx = arg0.ctx 6274 res = isl.isl_union_map_coalesce(isl.isl_union_map_copy(arg0.ptr)) 6275 obj = union_map(ctx=ctx, ptr=res) 6276 return obj 6277 def compute_divs(arg0): 6278 try: 6279 if not arg0.__class__ is union_map: 6280 arg0 = union_map(arg0) 6281 except: 6282 raise 6283 ctx = arg0.ctx 6284 res = isl.isl_union_map_compute_divs(isl.isl_union_map_copy(arg0.ptr)) 6285 obj = union_map(ctx=ctx, ptr=res) 6286 return obj 6287 def curry(arg0): 6288 try: 6289 if not arg0.__class__ is union_map: 6290 arg0 = union_map(arg0) 6291 except: 6292 raise 6293 ctx = arg0.ctx 6294 res = isl.isl_union_map_curry(isl.isl_union_map_copy(arg0.ptr)) 6295 obj = union_map(ctx=ctx, ptr=res) 6296 return obj 6297 def deltas(arg0): 6298 try: 6299 if not arg0.__class__ is union_map: 6300 arg0 = union_map(arg0) 6301 except: 6302 raise 6303 ctx = arg0.ctx 6304 res = isl.isl_union_map_deltas(isl.isl_union_map_copy(arg0.ptr)) 6305 obj = union_set(ctx=ctx, ptr=res) 6306 return obj 6307 def detect_equalities(arg0): 6308 try: 6309 if not arg0.__class__ is union_map: 6310 arg0 = union_map(arg0) 6311 except: 6312 raise 6313 ctx = arg0.ctx 6314 res = isl.isl_union_map_detect_equalities(isl.isl_union_map_copy(arg0.ptr)) 6315 obj = union_map(ctx=ctx, ptr=res) 6316 return obj 6317 def domain(arg0): 6318 try: 6319 if not arg0.__class__ is union_map: 6320 arg0 = union_map(arg0) 6321 except: 6322 raise 6323 ctx = arg0.ctx 6324 res = isl.isl_union_map_domain(isl.isl_union_map_copy(arg0.ptr)) 6325 obj = union_set(ctx=ctx, ptr=res) 6326 return obj 6327 def domain_factor_domain(arg0): 6328 try: 6329 if not arg0.__class__ is union_map: 6330 arg0 = union_map(arg0) 6331 except: 6332 raise 6333 ctx = arg0.ctx 6334 res = isl.isl_union_map_domain_factor_domain(isl.isl_union_map_copy(arg0.ptr)) 6335 obj = union_map(ctx=ctx, ptr=res) 6336 return obj 6337 def domain_factor_range(arg0): 6338 try: 6339 if not arg0.__class__ is union_map: 6340 arg0 = union_map(arg0) 6341 except: 6342 raise 6343 ctx = arg0.ctx 6344 res = isl.isl_union_map_domain_factor_range(isl.isl_union_map_copy(arg0.ptr)) 6345 obj = union_map(ctx=ctx, ptr=res) 6346 return obj 6347 def domain_map(arg0): 6348 try: 6349 if not arg0.__class__ is union_map: 6350 arg0 = union_map(arg0) 6351 except: 6352 raise 6353 ctx = arg0.ctx 6354 res = isl.isl_union_map_domain_map(isl.isl_union_map_copy(arg0.ptr)) 6355 obj = union_map(ctx=ctx, ptr=res) 6356 return obj 6357 def domain_map_union_pw_multi_aff(arg0): 6358 try: 6359 if not arg0.__class__ is union_map: 6360 arg0 = union_map(arg0) 6361 except: 6362 raise 6363 ctx = arg0.ctx 6364 res = isl.isl_union_map_domain_map_union_pw_multi_aff(isl.isl_union_map_copy(arg0.ptr)) 6365 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 6366 return obj 6367 def domain_product(arg0, arg1): 6368 try: 6369 if not arg0.__class__ is union_map: 6370 arg0 = union_map(arg0) 6371 except: 6372 raise 6373 try: 6374 if not arg1.__class__ is union_map: 6375 arg1 = union_map(arg1) 6376 except: 6377 raise 6378 ctx = arg0.ctx 6379 res = isl.isl_union_map_domain_product(isl.isl_union_map_copy(arg0.ptr), isl.isl_union_map_copy(arg1.ptr)) 6380 obj = union_map(ctx=ctx, ptr=res) 6381 return obj 6382 @staticmethod 6383 def empty(*args): 6384 if len(args) == 0: 6385 ctx = Context.getDefaultInstance() 6386 res = isl.isl_union_map_empty_ctx(ctx) 6387 obj = union_map(ctx=ctx, ptr=res) 6388 return obj 6389 raise Error 6390 def eq_at(*args): 6391 if len(args) == 2 and args[1].__class__ is multi_union_pw_aff: 6392 ctx = args[0].ctx 6393 res = isl.isl_union_map_eq_at_multi_union_pw_aff(isl.isl_union_map_copy(args[0].ptr), isl.isl_multi_union_pw_aff_copy(args[1].ptr)) 6394 obj = union_map(ctx=ctx, ptr=res) 6395 return obj 6396 raise Error 6397 def every_map(arg0, arg1): 6398 try: 6399 if not arg0.__class__ is union_map: 6400 arg0 = union_map(arg0) 6401 except: 6402 raise 6403 exc_info = [None] 6404 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 6405 def cb_func(cb_arg0, cb_arg1): 6406 cb_arg0 = map(ctx=arg0.ctx, ptr=isl.isl_map_copy(cb_arg0)) 6407 try: 6408 res = arg1(cb_arg0) 6409 except: 6410 import sys 6411 exc_info[0] = sys.exc_info() 6412 return -1 6413 return 1 if res else 0 6414 cb = fn(cb_func) 6415 ctx = arg0.ctx 6416 res = isl.isl_union_map_every_map(arg0.ptr, cb, None) 6417 if exc_info[0] != None: 6418 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 6419 if res < 0: 6420 raise 6421 return bool(res) 6422 def extract_map(arg0, arg1): 6423 try: 6424 if not arg0.__class__ is union_map: 6425 arg0 = union_map(arg0) 6426 except: 6427 raise 6428 try: 6429 if not arg1.__class__ is space: 6430 arg1 = space(arg1) 6431 except: 6432 raise 6433 ctx = arg0.ctx 6434 res = isl.isl_union_map_extract_map(arg0.ptr, isl.isl_space_copy(arg1.ptr)) 6435 obj = map(ctx=ctx, ptr=res) 6436 return obj 6437 def factor_domain(arg0): 6438 try: 6439 if not arg0.__class__ is union_map: 6440 arg0 = union_map(arg0) 6441 except: 6442 raise 6443 ctx = arg0.ctx 6444 res = isl.isl_union_map_factor_domain(isl.isl_union_map_copy(arg0.ptr)) 6445 obj = union_map(ctx=ctx, ptr=res) 6446 return obj 6447 def factor_range(arg0): 6448 try: 6449 if not arg0.__class__ is union_map: 6450 arg0 = union_map(arg0) 6451 except: 6452 raise 6453 ctx = arg0.ctx 6454 res = isl.isl_union_map_factor_range(isl.isl_union_map_copy(arg0.ptr)) 6455 obj = union_map(ctx=ctx, ptr=res) 6456 return obj 6457 def fixed_power(*args): 6458 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 6459 args = list(args) 6460 try: 6461 if not args[1].__class__ is val: 6462 args[1] = val(args[1]) 6463 except: 6464 raise 6465 ctx = args[0].ctx 6466 res = isl.isl_union_map_fixed_power_val(isl.isl_union_map_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 6467 obj = union_map(ctx=ctx, ptr=res) 6468 return obj 6469 raise Error 6470 def foreach_map(arg0, arg1): 6471 try: 6472 if not arg0.__class__ is union_map: 6473 arg0 = union_map(arg0) 6474 except: 6475 raise 6476 exc_info = [None] 6477 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 6478 def cb_func(cb_arg0, cb_arg1): 6479 cb_arg0 = map(ctx=arg0.ctx, ptr=(cb_arg0)) 6480 try: 6481 arg1(cb_arg0) 6482 except: 6483 import sys 6484 exc_info[0] = sys.exc_info() 6485 return -1 6486 return 0 6487 cb = fn(cb_func) 6488 ctx = arg0.ctx 6489 res = isl.isl_union_map_foreach_map(arg0.ptr, cb, None) 6490 if exc_info[0] != None: 6491 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 6492 if res < 0: 6493 raise 6494 @staticmethod 6495 def convert_from(*args): 6496 if len(args) == 1 and args[0].__class__ is multi_union_pw_aff: 6497 ctx = args[0].ctx 6498 res = isl.isl_union_map_from_multi_union_pw_aff(isl.isl_multi_union_pw_aff_copy(args[0].ptr)) 6499 obj = union_map(ctx=ctx, ptr=res) 6500 return obj 6501 if len(args) == 1 and args[0].__class__ is union_pw_multi_aff: 6502 ctx = args[0].ctx 6503 res = isl.isl_union_map_from_union_pw_multi_aff(isl.isl_union_pw_multi_aff_copy(args[0].ptr)) 6504 obj = union_map(ctx=ctx, ptr=res) 6505 return obj 6506 raise Error 6507 @staticmethod 6508 def from_domain(arg0): 6509 try: 6510 if not arg0.__class__ is union_set: 6511 arg0 = union_set(arg0) 6512 except: 6513 raise 6514 ctx = arg0.ctx 6515 res = isl.isl_union_map_from_domain(isl.isl_union_set_copy(arg0.ptr)) 6516 obj = union_map(ctx=ctx, ptr=res) 6517 return obj 6518 @staticmethod 6519 def from_domain_and_range(arg0, arg1): 6520 try: 6521 if not arg0.__class__ is union_set: 6522 arg0 = union_set(arg0) 6523 except: 6524 raise 6525 try: 6526 if not arg1.__class__ is union_set: 6527 arg1 = union_set(arg1) 6528 except: 6529 raise 6530 ctx = arg0.ctx 6531 res = isl.isl_union_map_from_domain_and_range(isl.isl_union_set_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 6532 obj = union_map(ctx=ctx, ptr=res) 6533 return obj 6534 @staticmethod 6535 def from_range(arg0): 6536 try: 6537 if not arg0.__class__ is union_set: 6538 arg0 = union_set(arg0) 6539 except: 6540 raise 6541 ctx = arg0.ctx 6542 res = isl.isl_union_map_from_range(isl.isl_union_set_copy(arg0.ptr)) 6543 obj = union_map(ctx=ctx, ptr=res) 6544 return obj 6545 def space(arg0): 6546 try: 6547 if not arg0.__class__ is union_map: 6548 arg0 = union_map(arg0) 6549 except: 6550 raise 6551 ctx = arg0.ctx 6552 res = isl.isl_union_map_get_space(arg0.ptr) 6553 obj = space(ctx=ctx, ptr=res) 6554 return obj 6555 def get_space(arg0): 6556 return arg0.space() 6557 def gist(arg0, arg1): 6558 try: 6559 if not arg0.__class__ is union_map: 6560 arg0 = union_map(arg0) 6561 except: 6562 raise 6563 try: 6564 if not arg1.__class__ is union_map: 6565 arg1 = union_map(arg1) 6566 except: 6567 raise 6568 ctx = arg0.ctx 6569 res = isl.isl_union_map_gist(isl.isl_union_map_copy(arg0.ptr), isl.isl_union_map_copy(arg1.ptr)) 6570 obj = union_map(ctx=ctx, ptr=res) 6571 return obj 6572 def gist_domain(arg0, arg1): 6573 try: 6574 if not arg0.__class__ is union_map: 6575 arg0 = union_map(arg0) 6576 except: 6577 raise 6578 try: 6579 if not arg1.__class__ is union_set: 6580 arg1 = union_set(arg1) 6581 except: 6582 raise 6583 ctx = arg0.ctx 6584 res = isl.isl_union_map_gist_domain(isl.isl_union_map_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 6585 obj = union_map(ctx=ctx, ptr=res) 6586 return obj 6587 def gist_params(arg0, arg1): 6588 try: 6589 if not arg0.__class__ is union_map: 6590 arg0 = union_map(arg0) 6591 except: 6592 raise 6593 try: 6594 if not arg1.__class__ is set: 6595 arg1 = set(arg1) 6596 except: 6597 raise 6598 ctx = arg0.ctx 6599 res = isl.isl_union_map_gist_params(isl.isl_union_map_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 6600 obj = union_map(ctx=ctx, ptr=res) 6601 return obj 6602 def gist_range(arg0, arg1): 6603 try: 6604 if not arg0.__class__ is union_map: 6605 arg0 = union_map(arg0) 6606 except: 6607 raise 6608 try: 6609 if not arg1.__class__ is union_set: 6610 arg1 = union_set(arg1) 6611 except: 6612 raise 6613 ctx = arg0.ctx 6614 res = isl.isl_union_map_gist_range(isl.isl_union_map_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 6615 obj = union_map(ctx=ctx, ptr=res) 6616 return obj 6617 def intersect(arg0, arg1): 6618 try: 6619 if not arg0.__class__ is union_map: 6620 arg0 = union_map(arg0) 6621 except: 6622 raise 6623 try: 6624 if not arg1.__class__ is union_map: 6625 arg1 = union_map(arg1) 6626 except: 6627 raise 6628 ctx = arg0.ctx 6629 res = isl.isl_union_map_intersect(isl.isl_union_map_copy(arg0.ptr), isl.isl_union_map_copy(arg1.ptr)) 6630 obj = union_map(ctx=ctx, ptr=res) 6631 return obj 6632 def intersect_domain(*args): 6633 if len(args) == 2 and args[1].__class__ is space: 6634 ctx = args[0].ctx 6635 res = isl.isl_union_map_intersect_domain_space(isl.isl_union_map_copy(args[0].ptr), isl.isl_space_copy(args[1].ptr)) 6636 obj = union_map(ctx=ctx, ptr=res) 6637 return obj 6638 if len(args) == 2 and args[1].__class__ is union_set: 6639 ctx = args[0].ctx 6640 res = isl.isl_union_map_intersect_domain_union_set(isl.isl_union_map_copy(args[0].ptr), isl.isl_union_set_copy(args[1].ptr)) 6641 obj = union_map(ctx=ctx, ptr=res) 6642 return obj 6643 raise Error 6644 def intersect_params(arg0, arg1): 6645 try: 6646 if not arg0.__class__ is union_map: 6647 arg0 = union_map(arg0) 6648 except: 6649 raise 6650 try: 6651 if not arg1.__class__ is set: 6652 arg1 = set(arg1) 6653 except: 6654 raise 6655 ctx = arg0.ctx 6656 res = isl.isl_union_map_intersect_params(isl.isl_union_map_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 6657 obj = union_map(ctx=ctx, ptr=res) 6658 return obj 6659 def intersect_range(*args): 6660 if len(args) == 2 and args[1].__class__ is space: 6661 ctx = args[0].ctx 6662 res = isl.isl_union_map_intersect_range_space(isl.isl_union_map_copy(args[0].ptr), isl.isl_space_copy(args[1].ptr)) 6663 obj = union_map(ctx=ctx, ptr=res) 6664 return obj 6665 if len(args) == 2 and args[1].__class__ is union_set: 6666 ctx = args[0].ctx 6667 res = isl.isl_union_map_intersect_range_union_set(isl.isl_union_map_copy(args[0].ptr), isl.isl_union_set_copy(args[1].ptr)) 6668 obj = union_map(ctx=ctx, ptr=res) 6669 return obj 6670 raise Error 6671 def is_bijective(arg0): 6672 try: 6673 if not arg0.__class__ is union_map: 6674 arg0 = union_map(arg0) 6675 except: 6676 raise 6677 ctx = arg0.ctx 6678 res = isl.isl_union_map_is_bijective(arg0.ptr) 6679 if res < 0: 6680 raise 6681 return bool(res) 6682 def is_disjoint(arg0, arg1): 6683 try: 6684 if not arg0.__class__ is union_map: 6685 arg0 = union_map(arg0) 6686 except: 6687 raise 6688 try: 6689 if not arg1.__class__ is union_map: 6690 arg1 = union_map(arg1) 6691 except: 6692 raise 6693 ctx = arg0.ctx 6694 res = isl.isl_union_map_is_disjoint(arg0.ptr, arg1.ptr) 6695 if res < 0: 6696 raise 6697 return bool(res) 6698 def is_empty(arg0): 6699 try: 6700 if not arg0.__class__ is union_map: 6701 arg0 = union_map(arg0) 6702 except: 6703 raise 6704 ctx = arg0.ctx 6705 res = isl.isl_union_map_is_empty(arg0.ptr) 6706 if res < 0: 6707 raise 6708 return bool(res) 6709 def is_equal(arg0, arg1): 6710 try: 6711 if not arg0.__class__ is union_map: 6712 arg0 = union_map(arg0) 6713 except: 6714 raise 6715 try: 6716 if not arg1.__class__ is union_map: 6717 arg1 = union_map(arg1) 6718 except: 6719 raise 6720 ctx = arg0.ctx 6721 res = isl.isl_union_map_is_equal(arg0.ptr, arg1.ptr) 6722 if res < 0: 6723 raise 6724 return bool(res) 6725 def is_injective(arg0): 6726 try: 6727 if not arg0.__class__ is union_map: 6728 arg0 = union_map(arg0) 6729 except: 6730 raise 6731 ctx = arg0.ctx 6732 res = isl.isl_union_map_is_injective(arg0.ptr) 6733 if res < 0: 6734 raise 6735 return bool(res) 6736 def is_single_valued(arg0): 6737 try: 6738 if not arg0.__class__ is union_map: 6739 arg0 = union_map(arg0) 6740 except: 6741 raise 6742 ctx = arg0.ctx 6743 res = isl.isl_union_map_is_single_valued(arg0.ptr) 6744 if res < 0: 6745 raise 6746 return bool(res) 6747 def is_strict_subset(arg0, arg1): 6748 try: 6749 if not arg0.__class__ is union_map: 6750 arg0 = union_map(arg0) 6751 except: 6752 raise 6753 try: 6754 if not arg1.__class__ is union_map: 6755 arg1 = union_map(arg1) 6756 except: 6757 raise 6758 ctx = arg0.ctx 6759 res = isl.isl_union_map_is_strict_subset(arg0.ptr, arg1.ptr) 6760 if res < 0: 6761 raise 6762 return bool(res) 6763 def is_subset(arg0, arg1): 6764 try: 6765 if not arg0.__class__ is union_map: 6766 arg0 = union_map(arg0) 6767 except: 6768 raise 6769 try: 6770 if not arg1.__class__ is union_map: 6771 arg1 = union_map(arg1) 6772 except: 6773 raise 6774 ctx = arg0.ctx 6775 res = isl.isl_union_map_is_subset(arg0.ptr, arg1.ptr) 6776 if res < 0: 6777 raise 6778 return bool(res) 6779 def isa_map(arg0): 6780 try: 6781 if not arg0.__class__ is union_map: 6782 arg0 = union_map(arg0) 6783 except: 6784 raise 6785 ctx = arg0.ctx 6786 res = isl.isl_union_map_isa_map(arg0.ptr) 6787 if res < 0: 6788 raise 6789 return bool(res) 6790 def lexmax(arg0): 6791 try: 6792 if not arg0.__class__ is union_map: 6793 arg0 = union_map(arg0) 6794 except: 6795 raise 6796 ctx = arg0.ctx 6797 res = isl.isl_union_map_lexmax(isl.isl_union_map_copy(arg0.ptr)) 6798 obj = union_map(ctx=ctx, ptr=res) 6799 return obj 6800 def lexmin(arg0): 6801 try: 6802 if not arg0.__class__ is union_map: 6803 arg0 = union_map(arg0) 6804 except: 6805 raise 6806 ctx = arg0.ctx 6807 res = isl.isl_union_map_lexmin(isl.isl_union_map_copy(arg0.ptr)) 6808 obj = union_map(ctx=ctx, ptr=res) 6809 return obj 6810 def polyhedral_hull(arg0): 6811 try: 6812 if not arg0.__class__ is union_map: 6813 arg0 = union_map(arg0) 6814 except: 6815 raise 6816 ctx = arg0.ctx 6817 res = isl.isl_union_map_polyhedral_hull(isl.isl_union_map_copy(arg0.ptr)) 6818 obj = union_map(ctx=ctx, ptr=res) 6819 return obj 6820 def preimage_domain(*args): 6821 if len(args) == 2 and args[1].__class__ is multi_aff: 6822 ctx = args[0].ctx 6823 res = isl.isl_union_map_preimage_domain_multi_aff(isl.isl_union_map_copy(args[0].ptr), isl.isl_multi_aff_copy(args[1].ptr)) 6824 obj = union_map(ctx=ctx, ptr=res) 6825 return obj 6826 if len(args) == 2 and args[1].__class__ is multi_pw_aff: 6827 ctx = args[0].ctx 6828 res = isl.isl_union_map_preimage_domain_multi_pw_aff(isl.isl_union_map_copy(args[0].ptr), isl.isl_multi_pw_aff_copy(args[1].ptr)) 6829 obj = union_map(ctx=ctx, ptr=res) 6830 return obj 6831 if len(args) == 2 and args[1].__class__ is pw_multi_aff: 6832 ctx = args[0].ctx 6833 res = isl.isl_union_map_preimage_domain_pw_multi_aff(isl.isl_union_map_copy(args[0].ptr), isl.isl_pw_multi_aff_copy(args[1].ptr)) 6834 obj = union_map(ctx=ctx, ptr=res) 6835 return obj 6836 if len(args) == 2 and args[1].__class__ is union_pw_multi_aff: 6837 ctx = args[0].ctx 6838 res = isl.isl_union_map_preimage_domain_union_pw_multi_aff(isl.isl_union_map_copy(args[0].ptr), isl.isl_union_pw_multi_aff_copy(args[1].ptr)) 6839 obj = union_map(ctx=ctx, ptr=res) 6840 return obj 6841 raise Error 6842 def preimage_range(*args): 6843 if len(args) == 2 and args[1].__class__ is multi_aff: 6844 ctx = args[0].ctx 6845 res = isl.isl_union_map_preimage_range_multi_aff(isl.isl_union_map_copy(args[0].ptr), isl.isl_multi_aff_copy(args[1].ptr)) 6846 obj = union_map(ctx=ctx, ptr=res) 6847 return obj 6848 if len(args) == 2 and args[1].__class__ is pw_multi_aff: 6849 ctx = args[0].ctx 6850 res = isl.isl_union_map_preimage_range_pw_multi_aff(isl.isl_union_map_copy(args[0].ptr), isl.isl_pw_multi_aff_copy(args[1].ptr)) 6851 obj = union_map(ctx=ctx, ptr=res) 6852 return obj 6853 if len(args) == 2 and args[1].__class__ is union_pw_multi_aff: 6854 ctx = args[0].ctx 6855 res = isl.isl_union_map_preimage_range_union_pw_multi_aff(isl.isl_union_map_copy(args[0].ptr), isl.isl_union_pw_multi_aff_copy(args[1].ptr)) 6856 obj = union_map(ctx=ctx, ptr=res) 6857 return obj 6858 raise Error 6859 def product(arg0, arg1): 6860 try: 6861 if not arg0.__class__ is union_map: 6862 arg0 = union_map(arg0) 6863 except: 6864 raise 6865 try: 6866 if not arg1.__class__ is union_map: 6867 arg1 = union_map(arg1) 6868 except: 6869 raise 6870 ctx = arg0.ctx 6871 res = isl.isl_union_map_product(isl.isl_union_map_copy(arg0.ptr), isl.isl_union_map_copy(arg1.ptr)) 6872 obj = union_map(ctx=ctx, ptr=res) 6873 return obj 6874 def project_out_all_params(arg0): 6875 try: 6876 if not arg0.__class__ is union_map: 6877 arg0 = union_map(arg0) 6878 except: 6879 raise 6880 ctx = arg0.ctx 6881 res = isl.isl_union_map_project_out_all_params(isl.isl_union_map_copy(arg0.ptr)) 6882 obj = union_map(ctx=ctx, ptr=res) 6883 return obj 6884 def range(arg0): 6885 try: 6886 if not arg0.__class__ is union_map: 6887 arg0 = union_map(arg0) 6888 except: 6889 raise 6890 ctx = arg0.ctx 6891 res = isl.isl_union_map_range(isl.isl_union_map_copy(arg0.ptr)) 6892 obj = union_set(ctx=ctx, ptr=res) 6893 return obj 6894 def range_factor_domain(arg0): 6895 try: 6896 if not arg0.__class__ is union_map: 6897 arg0 = union_map(arg0) 6898 except: 6899 raise 6900 ctx = arg0.ctx 6901 res = isl.isl_union_map_range_factor_domain(isl.isl_union_map_copy(arg0.ptr)) 6902 obj = union_map(ctx=ctx, ptr=res) 6903 return obj 6904 def range_factor_range(arg0): 6905 try: 6906 if not arg0.__class__ is union_map: 6907 arg0 = union_map(arg0) 6908 except: 6909 raise 6910 ctx = arg0.ctx 6911 res = isl.isl_union_map_range_factor_range(isl.isl_union_map_copy(arg0.ptr)) 6912 obj = union_map(ctx=ctx, ptr=res) 6913 return obj 6914 def range_map(arg0): 6915 try: 6916 if not arg0.__class__ is union_map: 6917 arg0 = union_map(arg0) 6918 except: 6919 raise 6920 ctx = arg0.ctx 6921 res = isl.isl_union_map_range_map(isl.isl_union_map_copy(arg0.ptr)) 6922 obj = union_map(ctx=ctx, ptr=res) 6923 return obj 6924 def range_product(arg0, arg1): 6925 try: 6926 if not arg0.__class__ is union_map: 6927 arg0 = union_map(arg0) 6928 except: 6929 raise 6930 try: 6931 if not arg1.__class__ is union_map: 6932 arg1 = union_map(arg1) 6933 except: 6934 raise 6935 ctx = arg0.ctx 6936 res = isl.isl_union_map_range_product(isl.isl_union_map_copy(arg0.ptr), isl.isl_union_map_copy(arg1.ptr)) 6937 obj = union_map(ctx=ctx, ptr=res) 6938 return obj 6939 def range_reverse(arg0): 6940 try: 6941 if not arg0.__class__ is union_map: 6942 arg0 = union_map(arg0) 6943 except: 6944 raise 6945 ctx = arg0.ctx 6946 res = isl.isl_union_map_range_reverse(isl.isl_union_map_copy(arg0.ptr)) 6947 obj = union_map(ctx=ctx, ptr=res) 6948 return obj 6949 def reverse(arg0): 6950 try: 6951 if not arg0.__class__ is union_map: 6952 arg0 = union_map(arg0) 6953 except: 6954 raise 6955 ctx = arg0.ctx 6956 res = isl.isl_union_map_reverse(isl.isl_union_map_copy(arg0.ptr)) 6957 obj = union_map(ctx=ctx, ptr=res) 6958 return obj 6959 def subtract(arg0, arg1): 6960 try: 6961 if not arg0.__class__ is union_map: 6962 arg0 = union_map(arg0) 6963 except: 6964 raise 6965 try: 6966 if not arg1.__class__ is union_map: 6967 arg1 = union_map(arg1) 6968 except: 6969 raise 6970 ctx = arg0.ctx 6971 res = isl.isl_union_map_subtract(isl.isl_union_map_copy(arg0.ptr), isl.isl_union_map_copy(arg1.ptr)) 6972 obj = union_map(ctx=ctx, ptr=res) 6973 return obj 6974 def subtract_domain(arg0, arg1): 6975 try: 6976 if not arg0.__class__ is union_map: 6977 arg0 = union_map(arg0) 6978 except: 6979 raise 6980 try: 6981 if not arg1.__class__ is union_set: 6982 arg1 = union_set(arg1) 6983 except: 6984 raise 6985 ctx = arg0.ctx 6986 res = isl.isl_union_map_subtract_domain(isl.isl_union_map_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 6987 obj = union_map(ctx=ctx, ptr=res) 6988 return obj 6989 def subtract_range(arg0, arg1): 6990 try: 6991 if not arg0.__class__ is union_map: 6992 arg0 = union_map(arg0) 6993 except: 6994 raise 6995 try: 6996 if not arg1.__class__ is union_set: 6997 arg1 = union_set(arg1) 6998 except: 6999 raise 7000 ctx = arg0.ctx 7001 res = isl.isl_union_map_subtract_range(isl.isl_union_map_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 7002 obj = union_map(ctx=ctx, ptr=res) 7003 return obj 7004 def uncurry(arg0): 7005 try: 7006 if not arg0.__class__ is union_map: 7007 arg0 = union_map(arg0) 7008 except: 7009 raise 7010 ctx = arg0.ctx 7011 res = isl.isl_union_map_uncurry(isl.isl_union_map_copy(arg0.ptr)) 7012 obj = union_map(ctx=ctx, ptr=res) 7013 return obj 7014 def union(arg0, arg1): 7015 try: 7016 if not arg0.__class__ is union_map: 7017 arg0 = union_map(arg0) 7018 except: 7019 raise 7020 try: 7021 if not arg1.__class__ is union_map: 7022 arg1 = union_map(arg1) 7023 except: 7024 raise 7025 ctx = arg0.ctx 7026 res = isl.isl_union_map_union(isl.isl_union_map_copy(arg0.ptr), isl.isl_union_map_copy(arg1.ptr)) 7027 obj = union_map(ctx=ctx, ptr=res) 7028 return obj 7029 def universe(arg0): 7030 try: 7031 if not arg0.__class__ is union_map: 7032 arg0 = union_map(arg0) 7033 except: 7034 raise 7035 ctx = arg0.ctx 7036 res = isl.isl_union_map_universe(isl.isl_union_map_copy(arg0.ptr)) 7037 obj = union_map(ctx=ctx, ptr=res) 7038 return obj 7039 def wrap(arg0): 7040 try: 7041 if not arg0.__class__ is union_map: 7042 arg0 = union_map(arg0) 7043 except: 7044 raise 7045 ctx = arg0.ctx 7046 res = isl.isl_union_map_wrap(isl.isl_union_map_copy(arg0.ptr)) 7047 obj = union_set(ctx=ctx, ptr=res) 7048 return obj 7049 def zip(arg0): 7050 try: 7051 if not arg0.__class__ is union_map: 7052 arg0 = union_map(arg0) 7053 except: 7054 raise 7055 ctx = arg0.ctx 7056 res = isl.isl_union_map_zip(isl.isl_union_map_copy(arg0.ptr)) 7057 obj = union_map(ctx=ctx, ptr=res) 7058 return obj 7059 7060isl.isl_union_map_from_basic_map.restype = c_void_p 7061isl.isl_union_map_from_basic_map.argtypes = [c_void_p] 7062isl.isl_union_map_from_map.restype = c_void_p 7063isl.isl_union_map_from_map.argtypes = [c_void_p] 7064isl.isl_union_map_read_from_str.restype = c_void_p 7065isl.isl_union_map_read_from_str.argtypes = [Context, c_char_p] 7066isl.isl_union_map_affine_hull.restype = c_void_p 7067isl.isl_union_map_affine_hull.argtypes = [c_void_p] 7068isl.isl_union_map_apply_domain.restype = c_void_p 7069isl.isl_union_map_apply_domain.argtypes = [c_void_p, c_void_p] 7070isl.isl_union_map_apply_range.restype = c_void_p 7071isl.isl_union_map_apply_range.argtypes = [c_void_p, c_void_p] 7072isl.isl_union_map_bind_range.restype = c_void_p 7073isl.isl_union_map_bind_range.argtypes = [c_void_p, c_void_p] 7074isl.isl_union_map_coalesce.restype = c_void_p 7075isl.isl_union_map_coalesce.argtypes = [c_void_p] 7076isl.isl_union_map_compute_divs.restype = c_void_p 7077isl.isl_union_map_compute_divs.argtypes = [c_void_p] 7078isl.isl_union_map_curry.restype = c_void_p 7079isl.isl_union_map_curry.argtypes = [c_void_p] 7080isl.isl_union_map_deltas.restype = c_void_p 7081isl.isl_union_map_deltas.argtypes = [c_void_p] 7082isl.isl_union_map_detect_equalities.restype = c_void_p 7083isl.isl_union_map_detect_equalities.argtypes = [c_void_p] 7084isl.isl_union_map_domain.restype = c_void_p 7085isl.isl_union_map_domain.argtypes = [c_void_p] 7086isl.isl_union_map_domain_factor_domain.restype = c_void_p 7087isl.isl_union_map_domain_factor_domain.argtypes = [c_void_p] 7088isl.isl_union_map_domain_factor_range.restype = c_void_p 7089isl.isl_union_map_domain_factor_range.argtypes = [c_void_p] 7090isl.isl_union_map_domain_map.restype = c_void_p 7091isl.isl_union_map_domain_map.argtypes = [c_void_p] 7092isl.isl_union_map_domain_map_union_pw_multi_aff.restype = c_void_p 7093isl.isl_union_map_domain_map_union_pw_multi_aff.argtypes = [c_void_p] 7094isl.isl_union_map_domain_product.restype = c_void_p 7095isl.isl_union_map_domain_product.argtypes = [c_void_p, c_void_p] 7096isl.isl_union_map_empty_ctx.restype = c_void_p 7097isl.isl_union_map_empty_ctx.argtypes = [Context] 7098isl.isl_union_map_eq_at_multi_union_pw_aff.restype = c_void_p 7099isl.isl_union_map_eq_at_multi_union_pw_aff.argtypes = [c_void_p, c_void_p] 7100isl.isl_union_map_every_map.argtypes = [c_void_p, c_void_p, c_void_p] 7101isl.isl_union_map_extract_map.restype = c_void_p 7102isl.isl_union_map_extract_map.argtypes = [c_void_p, c_void_p] 7103isl.isl_union_map_factor_domain.restype = c_void_p 7104isl.isl_union_map_factor_domain.argtypes = [c_void_p] 7105isl.isl_union_map_factor_range.restype = c_void_p 7106isl.isl_union_map_factor_range.argtypes = [c_void_p] 7107isl.isl_union_map_fixed_power_val.restype = c_void_p 7108isl.isl_union_map_fixed_power_val.argtypes = [c_void_p, c_void_p] 7109isl.isl_union_map_foreach_map.argtypes = [c_void_p, c_void_p, c_void_p] 7110isl.isl_union_map_from_multi_union_pw_aff.restype = c_void_p 7111isl.isl_union_map_from_multi_union_pw_aff.argtypes = [c_void_p] 7112isl.isl_union_map_from_union_pw_multi_aff.restype = c_void_p 7113isl.isl_union_map_from_union_pw_multi_aff.argtypes = [c_void_p] 7114isl.isl_union_map_from_domain.restype = c_void_p 7115isl.isl_union_map_from_domain.argtypes = [c_void_p] 7116isl.isl_union_map_from_domain_and_range.restype = c_void_p 7117isl.isl_union_map_from_domain_and_range.argtypes = [c_void_p, c_void_p] 7118isl.isl_union_map_from_range.restype = c_void_p 7119isl.isl_union_map_from_range.argtypes = [c_void_p] 7120isl.isl_union_map_get_space.restype = c_void_p 7121isl.isl_union_map_get_space.argtypes = [c_void_p] 7122isl.isl_union_map_gist.restype = c_void_p 7123isl.isl_union_map_gist.argtypes = [c_void_p, c_void_p] 7124isl.isl_union_map_gist_domain.restype = c_void_p 7125isl.isl_union_map_gist_domain.argtypes = [c_void_p, c_void_p] 7126isl.isl_union_map_gist_params.restype = c_void_p 7127isl.isl_union_map_gist_params.argtypes = [c_void_p, c_void_p] 7128isl.isl_union_map_gist_range.restype = c_void_p 7129isl.isl_union_map_gist_range.argtypes = [c_void_p, c_void_p] 7130isl.isl_union_map_intersect.restype = c_void_p 7131isl.isl_union_map_intersect.argtypes = [c_void_p, c_void_p] 7132isl.isl_union_map_intersect_domain_space.restype = c_void_p 7133isl.isl_union_map_intersect_domain_space.argtypes = [c_void_p, c_void_p] 7134isl.isl_union_map_intersect_domain_union_set.restype = c_void_p 7135isl.isl_union_map_intersect_domain_union_set.argtypes = [c_void_p, c_void_p] 7136isl.isl_union_map_intersect_params.restype = c_void_p 7137isl.isl_union_map_intersect_params.argtypes = [c_void_p, c_void_p] 7138isl.isl_union_map_intersect_range_space.restype = c_void_p 7139isl.isl_union_map_intersect_range_space.argtypes = [c_void_p, c_void_p] 7140isl.isl_union_map_intersect_range_union_set.restype = c_void_p 7141isl.isl_union_map_intersect_range_union_set.argtypes = [c_void_p, c_void_p] 7142isl.isl_union_map_is_bijective.argtypes = [c_void_p] 7143isl.isl_union_map_is_disjoint.argtypes = [c_void_p, c_void_p] 7144isl.isl_union_map_is_empty.argtypes = [c_void_p] 7145isl.isl_union_map_is_equal.argtypes = [c_void_p, c_void_p] 7146isl.isl_union_map_is_injective.argtypes = [c_void_p] 7147isl.isl_union_map_is_single_valued.argtypes = [c_void_p] 7148isl.isl_union_map_is_strict_subset.argtypes = [c_void_p, c_void_p] 7149isl.isl_union_map_is_subset.argtypes = [c_void_p, c_void_p] 7150isl.isl_union_map_isa_map.argtypes = [c_void_p] 7151isl.isl_union_map_lexmax.restype = c_void_p 7152isl.isl_union_map_lexmax.argtypes = [c_void_p] 7153isl.isl_union_map_lexmin.restype = c_void_p 7154isl.isl_union_map_lexmin.argtypes = [c_void_p] 7155isl.isl_union_map_polyhedral_hull.restype = c_void_p 7156isl.isl_union_map_polyhedral_hull.argtypes = [c_void_p] 7157isl.isl_union_map_preimage_domain_multi_aff.restype = c_void_p 7158isl.isl_union_map_preimage_domain_multi_aff.argtypes = [c_void_p, c_void_p] 7159isl.isl_union_map_preimage_domain_multi_pw_aff.restype = c_void_p 7160isl.isl_union_map_preimage_domain_multi_pw_aff.argtypes = [c_void_p, c_void_p] 7161isl.isl_union_map_preimage_domain_pw_multi_aff.restype = c_void_p 7162isl.isl_union_map_preimage_domain_pw_multi_aff.argtypes = [c_void_p, c_void_p] 7163isl.isl_union_map_preimage_domain_union_pw_multi_aff.restype = c_void_p 7164isl.isl_union_map_preimage_domain_union_pw_multi_aff.argtypes = [c_void_p, c_void_p] 7165isl.isl_union_map_preimage_range_multi_aff.restype = c_void_p 7166isl.isl_union_map_preimage_range_multi_aff.argtypes = [c_void_p, c_void_p] 7167isl.isl_union_map_preimage_range_pw_multi_aff.restype = c_void_p 7168isl.isl_union_map_preimage_range_pw_multi_aff.argtypes = [c_void_p, c_void_p] 7169isl.isl_union_map_preimage_range_union_pw_multi_aff.restype = c_void_p 7170isl.isl_union_map_preimage_range_union_pw_multi_aff.argtypes = [c_void_p, c_void_p] 7171isl.isl_union_map_product.restype = c_void_p 7172isl.isl_union_map_product.argtypes = [c_void_p, c_void_p] 7173isl.isl_union_map_project_out_all_params.restype = c_void_p 7174isl.isl_union_map_project_out_all_params.argtypes = [c_void_p] 7175isl.isl_union_map_range.restype = c_void_p 7176isl.isl_union_map_range.argtypes = [c_void_p] 7177isl.isl_union_map_range_factor_domain.restype = c_void_p 7178isl.isl_union_map_range_factor_domain.argtypes = [c_void_p] 7179isl.isl_union_map_range_factor_range.restype = c_void_p 7180isl.isl_union_map_range_factor_range.argtypes = [c_void_p] 7181isl.isl_union_map_range_map.restype = c_void_p 7182isl.isl_union_map_range_map.argtypes = [c_void_p] 7183isl.isl_union_map_range_product.restype = c_void_p 7184isl.isl_union_map_range_product.argtypes = [c_void_p, c_void_p] 7185isl.isl_union_map_range_reverse.restype = c_void_p 7186isl.isl_union_map_range_reverse.argtypes = [c_void_p] 7187isl.isl_union_map_reverse.restype = c_void_p 7188isl.isl_union_map_reverse.argtypes = [c_void_p] 7189isl.isl_union_map_subtract.restype = c_void_p 7190isl.isl_union_map_subtract.argtypes = [c_void_p, c_void_p] 7191isl.isl_union_map_subtract_domain.restype = c_void_p 7192isl.isl_union_map_subtract_domain.argtypes = [c_void_p, c_void_p] 7193isl.isl_union_map_subtract_range.restype = c_void_p 7194isl.isl_union_map_subtract_range.argtypes = [c_void_p, c_void_p] 7195isl.isl_union_map_uncurry.restype = c_void_p 7196isl.isl_union_map_uncurry.argtypes = [c_void_p] 7197isl.isl_union_map_union.restype = c_void_p 7198isl.isl_union_map_union.argtypes = [c_void_p, c_void_p] 7199isl.isl_union_map_universe.restype = c_void_p 7200isl.isl_union_map_universe.argtypes = [c_void_p] 7201isl.isl_union_map_wrap.restype = c_void_p 7202isl.isl_union_map_wrap.argtypes = [c_void_p] 7203isl.isl_union_map_zip.restype = c_void_p 7204isl.isl_union_map_zip.argtypes = [c_void_p] 7205isl.isl_union_map_copy.restype = c_void_p 7206isl.isl_union_map_copy.argtypes = [c_void_p] 7207isl.isl_union_map_free.restype = c_void_p 7208isl.isl_union_map_free.argtypes = [c_void_p] 7209isl.isl_union_map_to_str.restype = POINTER(c_char) 7210isl.isl_union_map_to_str.argtypes = [c_void_p] 7211 7212class map(union_map): 7213 def __init__(self, *args, **keywords): 7214 if "ptr" in keywords: 7215 self.ctx = keywords["ctx"] 7216 self.ptr = keywords["ptr"] 7217 return 7218 if len(args) == 1 and args[0].__class__ is basic_map: 7219 self.ctx = Context.getDefaultInstance() 7220 self.ptr = isl.isl_map_from_basic_map(isl.isl_basic_map_copy(args[0].ptr)) 7221 return 7222 if len(args) == 1 and type(args[0]) == str: 7223 self.ctx = Context.getDefaultInstance() 7224 self.ptr = isl.isl_map_read_from_str(self.ctx, args[0].encode('ascii')) 7225 return 7226 raise Error 7227 def __del__(self): 7228 if hasattr(self, 'ptr'): 7229 isl.isl_map_free(self.ptr) 7230 def __str__(arg0): 7231 try: 7232 if not arg0.__class__ is map: 7233 arg0 = map(arg0) 7234 except: 7235 raise 7236 ptr = isl.isl_map_to_str(arg0.ptr) 7237 res = cast(ptr, c_char_p).value.decode('ascii') 7238 libc.free(ptr) 7239 return res 7240 def __repr__(self): 7241 s = str(self) 7242 if '"' in s: 7243 return 'isl.map("""%s""")' % s 7244 else: 7245 return 'isl.map("%s")' % s 7246 def affine_hull(arg0): 7247 try: 7248 if not arg0.__class__ is map: 7249 arg0 = map(arg0) 7250 except: 7251 raise 7252 ctx = arg0.ctx 7253 res = isl.isl_map_affine_hull(isl.isl_map_copy(arg0.ptr)) 7254 obj = basic_map(ctx=ctx, ptr=res) 7255 return obj 7256 def apply_domain(arg0, arg1): 7257 try: 7258 if not arg0.__class__ is map: 7259 arg0 = map(arg0) 7260 except: 7261 raise 7262 try: 7263 if not arg1.__class__ is map: 7264 arg1 = map(arg1) 7265 except: 7266 return union_map(arg0).apply_domain(arg1) 7267 ctx = arg0.ctx 7268 res = isl.isl_map_apply_domain(isl.isl_map_copy(arg0.ptr), isl.isl_map_copy(arg1.ptr)) 7269 obj = map(ctx=ctx, ptr=res) 7270 return obj 7271 def apply_range(arg0, arg1): 7272 try: 7273 if not arg0.__class__ is map: 7274 arg0 = map(arg0) 7275 except: 7276 raise 7277 try: 7278 if not arg1.__class__ is map: 7279 arg1 = map(arg1) 7280 except: 7281 return union_map(arg0).apply_range(arg1) 7282 ctx = arg0.ctx 7283 res = isl.isl_map_apply_range(isl.isl_map_copy(arg0.ptr), isl.isl_map_copy(arg1.ptr)) 7284 obj = map(ctx=ctx, ptr=res) 7285 return obj 7286 def bind_domain(arg0, arg1): 7287 try: 7288 if not arg0.__class__ is map: 7289 arg0 = map(arg0) 7290 except: 7291 raise 7292 try: 7293 if not arg1.__class__ is multi_id: 7294 arg1 = multi_id(arg1) 7295 except: 7296 return union_map(arg0).bind_domain(arg1) 7297 ctx = arg0.ctx 7298 res = isl.isl_map_bind_domain(isl.isl_map_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 7299 obj = set(ctx=ctx, ptr=res) 7300 return obj 7301 def bind_range(arg0, arg1): 7302 try: 7303 if not arg0.__class__ is map: 7304 arg0 = map(arg0) 7305 except: 7306 raise 7307 try: 7308 if not arg1.__class__ is multi_id: 7309 arg1 = multi_id(arg1) 7310 except: 7311 return union_map(arg0).bind_range(arg1) 7312 ctx = arg0.ctx 7313 res = isl.isl_map_bind_range(isl.isl_map_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 7314 obj = set(ctx=ctx, ptr=res) 7315 return obj 7316 def coalesce(arg0): 7317 try: 7318 if not arg0.__class__ is map: 7319 arg0 = map(arg0) 7320 except: 7321 raise 7322 ctx = arg0.ctx 7323 res = isl.isl_map_coalesce(isl.isl_map_copy(arg0.ptr)) 7324 obj = map(ctx=ctx, ptr=res) 7325 return obj 7326 def complement(arg0): 7327 try: 7328 if not arg0.__class__ is map: 7329 arg0 = map(arg0) 7330 except: 7331 raise 7332 ctx = arg0.ctx 7333 res = isl.isl_map_complement(isl.isl_map_copy(arg0.ptr)) 7334 obj = map(ctx=ctx, ptr=res) 7335 return obj 7336 def curry(arg0): 7337 try: 7338 if not arg0.__class__ is map: 7339 arg0 = map(arg0) 7340 except: 7341 raise 7342 ctx = arg0.ctx 7343 res = isl.isl_map_curry(isl.isl_map_copy(arg0.ptr)) 7344 obj = map(ctx=ctx, ptr=res) 7345 return obj 7346 def deltas(arg0): 7347 try: 7348 if not arg0.__class__ is map: 7349 arg0 = map(arg0) 7350 except: 7351 raise 7352 ctx = arg0.ctx 7353 res = isl.isl_map_deltas(isl.isl_map_copy(arg0.ptr)) 7354 obj = set(ctx=ctx, ptr=res) 7355 return obj 7356 def detect_equalities(arg0): 7357 try: 7358 if not arg0.__class__ is map: 7359 arg0 = map(arg0) 7360 except: 7361 raise 7362 ctx = arg0.ctx 7363 res = isl.isl_map_detect_equalities(isl.isl_map_copy(arg0.ptr)) 7364 obj = map(ctx=ctx, ptr=res) 7365 return obj 7366 def domain(arg0): 7367 try: 7368 if not arg0.__class__ is map: 7369 arg0 = map(arg0) 7370 except: 7371 raise 7372 ctx = arg0.ctx 7373 res = isl.isl_map_domain(isl.isl_map_copy(arg0.ptr)) 7374 obj = set(ctx=ctx, ptr=res) 7375 return obj 7376 def domain_factor_domain(arg0): 7377 try: 7378 if not arg0.__class__ is map: 7379 arg0 = map(arg0) 7380 except: 7381 raise 7382 ctx = arg0.ctx 7383 res = isl.isl_map_domain_factor_domain(isl.isl_map_copy(arg0.ptr)) 7384 obj = map(ctx=ctx, ptr=res) 7385 return obj 7386 def domain_factor_range(arg0): 7387 try: 7388 if not arg0.__class__ is map: 7389 arg0 = map(arg0) 7390 except: 7391 raise 7392 ctx = arg0.ctx 7393 res = isl.isl_map_domain_factor_range(isl.isl_map_copy(arg0.ptr)) 7394 obj = map(ctx=ctx, ptr=res) 7395 return obj 7396 def domain_product(arg0, arg1): 7397 try: 7398 if not arg0.__class__ is map: 7399 arg0 = map(arg0) 7400 except: 7401 raise 7402 try: 7403 if not arg1.__class__ is map: 7404 arg1 = map(arg1) 7405 except: 7406 return union_map(arg0).domain_product(arg1) 7407 ctx = arg0.ctx 7408 res = isl.isl_map_domain_product(isl.isl_map_copy(arg0.ptr), isl.isl_map_copy(arg1.ptr)) 7409 obj = map(ctx=ctx, ptr=res) 7410 return obj 7411 @staticmethod 7412 def empty(arg0): 7413 try: 7414 if not arg0.__class__ is space: 7415 arg0 = space(arg0) 7416 except: 7417 raise 7418 ctx = arg0.ctx 7419 res = isl.isl_map_empty(isl.isl_space_copy(arg0.ptr)) 7420 obj = map(ctx=ctx, ptr=res) 7421 return obj 7422 def eq_at(*args): 7423 if len(args) == 2 and args[1].__class__ is multi_pw_aff: 7424 ctx = args[0].ctx 7425 res = isl.isl_map_eq_at_multi_pw_aff(isl.isl_map_copy(args[0].ptr), isl.isl_multi_pw_aff_copy(args[1].ptr)) 7426 obj = map(ctx=ctx, ptr=res) 7427 return obj 7428 raise Error 7429 def factor_domain(arg0): 7430 try: 7431 if not arg0.__class__ is map: 7432 arg0 = map(arg0) 7433 except: 7434 raise 7435 ctx = arg0.ctx 7436 res = isl.isl_map_factor_domain(isl.isl_map_copy(arg0.ptr)) 7437 obj = map(ctx=ctx, ptr=res) 7438 return obj 7439 def factor_range(arg0): 7440 try: 7441 if not arg0.__class__ is map: 7442 arg0 = map(arg0) 7443 except: 7444 raise 7445 ctx = arg0.ctx 7446 res = isl.isl_map_factor_range(isl.isl_map_copy(arg0.ptr)) 7447 obj = map(ctx=ctx, ptr=res) 7448 return obj 7449 def flatten(arg0): 7450 try: 7451 if not arg0.__class__ is map: 7452 arg0 = map(arg0) 7453 except: 7454 raise 7455 ctx = arg0.ctx 7456 res = isl.isl_map_flatten(isl.isl_map_copy(arg0.ptr)) 7457 obj = map(ctx=ctx, ptr=res) 7458 return obj 7459 def flatten_domain(arg0): 7460 try: 7461 if not arg0.__class__ is map: 7462 arg0 = map(arg0) 7463 except: 7464 raise 7465 ctx = arg0.ctx 7466 res = isl.isl_map_flatten_domain(isl.isl_map_copy(arg0.ptr)) 7467 obj = map(ctx=ctx, ptr=res) 7468 return obj 7469 def flatten_range(arg0): 7470 try: 7471 if not arg0.__class__ is map: 7472 arg0 = map(arg0) 7473 except: 7474 raise 7475 ctx = arg0.ctx 7476 res = isl.isl_map_flatten_range(isl.isl_map_copy(arg0.ptr)) 7477 obj = map(ctx=ctx, ptr=res) 7478 return obj 7479 def foreach_basic_map(arg0, arg1): 7480 try: 7481 if not arg0.__class__ is map: 7482 arg0 = map(arg0) 7483 except: 7484 raise 7485 exc_info = [None] 7486 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 7487 def cb_func(cb_arg0, cb_arg1): 7488 cb_arg0 = basic_map(ctx=arg0.ctx, ptr=(cb_arg0)) 7489 try: 7490 arg1(cb_arg0) 7491 except: 7492 import sys 7493 exc_info[0] = sys.exc_info() 7494 return -1 7495 return 0 7496 cb = fn(cb_func) 7497 ctx = arg0.ctx 7498 res = isl.isl_map_foreach_basic_map(arg0.ptr, cb, None) 7499 if exc_info[0] != None: 7500 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 7501 if res < 0: 7502 raise 7503 def range_simple_fixed_box_hull(arg0): 7504 try: 7505 if not arg0.__class__ is map: 7506 arg0 = map(arg0) 7507 except: 7508 raise 7509 ctx = arg0.ctx 7510 res = isl.isl_map_get_range_simple_fixed_box_hull(arg0.ptr) 7511 obj = fixed_box(ctx=ctx, ptr=res) 7512 return obj 7513 def get_range_simple_fixed_box_hull(arg0): 7514 return arg0.range_simple_fixed_box_hull() 7515 def space(arg0): 7516 try: 7517 if not arg0.__class__ is map: 7518 arg0 = map(arg0) 7519 except: 7520 raise 7521 ctx = arg0.ctx 7522 res = isl.isl_map_get_space(arg0.ptr) 7523 obj = space(ctx=ctx, ptr=res) 7524 return obj 7525 def get_space(arg0): 7526 return arg0.space() 7527 def gist(arg0, arg1): 7528 try: 7529 if not arg0.__class__ is map: 7530 arg0 = map(arg0) 7531 except: 7532 raise 7533 try: 7534 if not arg1.__class__ is map: 7535 arg1 = map(arg1) 7536 except: 7537 return union_map(arg0).gist(arg1) 7538 ctx = arg0.ctx 7539 res = isl.isl_map_gist(isl.isl_map_copy(arg0.ptr), isl.isl_map_copy(arg1.ptr)) 7540 obj = map(ctx=ctx, ptr=res) 7541 return obj 7542 def gist_domain(arg0, arg1): 7543 try: 7544 if not arg0.__class__ is map: 7545 arg0 = map(arg0) 7546 except: 7547 raise 7548 try: 7549 if not arg1.__class__ is set: 7550 arg1 = set(arg1) 7551 except: 7552 return union_map(arg0).gist_domain(arg1) 7553 ctx = arg0.ctx 7554 res = isl.isl_map_gist_domain(isl.isl_map_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 7555 obj = map(ctx=ctx, ptr=res) 7556 return obj 7557 def intersect(arg0, arg1): 7558 try: 7559 if not arg0.__class__ is map: 7560 arg0 = map(arg0) 7561 except: 7562 raise 7563 try: 7564 if not arg1.__class__ is map: 7565 arg1 = map(arg1) 7566 except: 7567 return union_map(arg0).intersect(arg1) 7568 ctx = arg0.ctx 7569 res = isl.isl_map_intersect(isl.isl_map_copy(arg0.ptr), isl.isl_map_copy(arg1.ptr)) 7570 obj = map(ctx=ctx, ptr=res) 7571 return obj 7572 def intersect_domain(arg0, arg1): 7573 try: 7574 if not arg0.__class__ is map: 7575 arg0 = map(arg0) 7576 except: 7577 raise 7578 try: 7579 if not arg1.__class__ is set: 7580 arg1 = set(arg1) 7581 except: 7582 return union_map(arg0).intersect_domain(arg1) 7583 ctx = arg0.ctx 7584 res = isl.isl_map_intersect_domain(isl.isl_map_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 7585 obj = map(ctx=ctx, ptr=res) 7586 return obj 7587 def intersect_params(arg0, arg1): 7588 try: 7589 if not arg0.__class__ is map: 7590 arg0 = map(arg0) 7591 except: 7592 raise 7593 try: 7594 if not arg1.__class__ is set: 7595 arg1 = set(arg1) 7596 except: 7597 return union_map(arg0).intersect_params(arg1) 7598 ctx = arg0.ctx 7599 res = isl.isl_map_intersect_params(isl.isl_map_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 7600 obj = map(ctx=ctx, ptr=res) 7601 return obj 7602 def intersect_range(arg0, arg1): 7603 try: 7604 if not arg0.__class__ is map: 7605 arg0 = map(arg0) 7606 except: 7607 raise 7608 try: 7609 if not arg1.__class__ is set: 7610 arg1 = set(arg1) 7611 except: 7612 return union_map(arg0).intersect_range(arg1) 7613 ctx = arg0.ctx 7614 res = isl.isl_map_intersect_range(isl.isl_map_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 7615 obj = map(ctx=ctx, ptr=res) 7616 return obj 7617 def is_bijective(arg0): 7618 try: 7619 if not arg0.__class__ is map: 7620 arg0 = map(arg0) 7621 except: 7622 raise 7623 ctx = arg0.ctx 7624 res = isl.isl_map_is_bijective(arg0.ptr) 7625 if res < 0: 7626 raise 7627 return bool(res) 7628 def is_disjoint(arg0, arg1): 7629 try: 7630 if not arg0.__class__ is map: 7631 arg0 = map(arg0) 7632 except: 7633 raise 7634 try: 7635 if not arg1.__class__ is map: 7636 arg1 = map(arg1) 7637 except: 7638 return union_map(arg0).is_disjoint(arg1) 7639 ctx = arg0.ctx 7640 res = isl.isl_map_is_disjoint(arg0.ptr, arg1.ptr) 7641 if res < 0: 7642 raise 7643 return bool(res) 7644 def is_empty(arg0): 7645 try: 7646 if not arg0.__class__ is map: 7647 arg0 = map(arg0) 7648 except: 7649 raise 7650 ctx = arg0.ctx 7651 res = isl.isl_map_is_empty(arg0.ptr) 7652 if res < 0: 7653 raise 7654 return bool(res) 7655 def is_equal(arg0, arg1): 7656 try: 7657 if not arg0.__class__ is map: 7658 arg0 = map(arg0) 7659 except: 7660 raise 7661 try: 7662 if not arg1.__class__ is map: 7663 arg1 = map(arg1) 7664 except: 7665 return union_map(arg0).is_equal(arg1) 7666 ctx = arg0.ctx 7667 res = isl.isl_map_is_equal(arg0.ptr, arg1.ptr) 7668 if res < 0: 7669 raise 7670 return bool(res) 7671 def is_injective(arg0): 7672 try: 7673 if not arg0.__class__ is map: 7674 arg0 = map(arg0) 7675 except: 7676 raise 7677 ctx = arg0.ctx 7678 res = isl.isl_map_is_injective(arg0.ptr) 7679 if res < 0: 7680 raise 7681 return bool(res) 7682 def is_single_valued(arg0): 7683 try: 7684 if not arg0.__class__ is map: 7685 arg0 = map(arg0) 7686 except: 7687 raise 7688 ctx = arg0.ctx 7689 res = isl.isl_map_is_single_valued(arg0.ptr) 7690 if res < 0: 7691 raise 7692 return bool(res) 7693 def is_strict_subset(arg0, arg1): 7694 try: 7695 if not arg0.__class__ is map: 7696 arg0 = map(arg0) 7697 except: 7698 raise 7699 try: 7700 if not arg1.__class__ is map: 7701 arg1 = map(arg1) 7702 except: 7703 return union_map(arg0).is_strict_subset(arg1) 7704 ctx = arg0.ctx 7705 res = isl.isl_map_is_strict_subset(arg0.ptr, arg1.ptr) 7706 if res < 0: 7707 raise 7708 return bool(res) 7709 def is_subset(arg0, arg1): 7710 try: 7711 if not arg0.__class__ is map: 7712 arg0 = map(arg0) 7713 except: 7714 raise 7715 try: 7716 if not arg1.__class__ is map: 7717 arg1 = map(arg1) 7718 except: 7719 return union_map(arg0).is_subset(arg1) 7720 ctx = arg0.ctx 7721 res = isl.isl_map_is_subset(arg0.ptr, arg1.ptr) 7722 if res < 0: 7723 raise 7724 return bool(res) 7725 def lex_ge_at(*args): 7726 if len(args) == 2 and args[1].__class__ is multi_pw_aff: 7727 ctx = args[0].ctx 7728 res = isl.isl_map_lex_ge_at_multi_pw_aff(isl.isl_map_copy(args[0].ptr), isl.isl_multi_pw_aff_copy(args[1].ptr)) 7729 obj = map(ctx=ctx, ptr=res) 7730 return obj 7731 raise Error 7732 def lex_gt_at(*args): 7733 if len(args) == 2 and args[1].__class__ is multi_pw_aff: 7734 ctx = args[0].ctx 7735 res = isl.isl_map_lex_gt_at_multi_pw_aff(isl.isl_map_copy(args[0].ptr), isl.isl_multi_pw_aff_copy(args[1].ptr)) 7736 obj = map(ctx=ctx, ptr=res) 7737 return obj 7738 raise Error 7739 def lex_le_at(*args): 7740 if len(args) == 2 and args[1].__class__ is multi_pw_aff: 7741 ctx = args[0].ctx 7742 res = isl.isl_map_lex_le_at_multi_pw_aff(isl.isl_map_copy(args[0].ptr), isl.isl_multi_pw_aff_copy(args[1].ptr)) 7743 obj = map(ctx=ctx, ptr=res) 7744 return obj 7745 raise Error 7746 def lex_lt_at(*args): 7747 if len(args) == 2 and args[1].__class__ is multi_pw_aff: 7748 ctx = args[0].ctx 7749 res = isl.isl_map_lex_lt_at_multi_pw_aff(isl.isl_map_copy(args[0].ptr), isl.isl_multi_pw_aff_copy(args[1].ptr)) 7750 obj = map(ctx=ctx, ptr=res) 7751 return obj 7752 raise Error 7753 def lexmax(arg0): 7754 try: 7755 if not arg0.__class__ is map: 7756 arg0 = map(arg0) 7757 except: 7758 raise 7759 ctx = arg0.ctx 7760 res = isl.isl_map_lexmax(isl.isl_map_copy(arg0.ptr)) 7761 obj = map(ctx=ctx, ptr=res) 7762 return obj 7763 def lexmax_pw_multi_aff(arg0): 7764 try: 7765 if not arg0.__class__ is map: 7766 arg0 = map(arg0) 7767 except: 7768 raise 7769 ctx = arg0.ctx 7770 res = isl.isl_map_lexmax_pw_multi_aff(isl.isl_map_copy(arg0.ptr)) 7771 obj = pw_multi_aff(ctx=ctx, ptr=res) 7772 return obj 7773 def lexmin(arg0): 7774 try: 7775 if not arg0.__class__ is map: 7776 arg0 = map(arg0) 7777 except: 7778 raise 7779 ctx = arg0.ctx 7780 res = isl.isl_map_lexmin(isl.isl_map_copy(arg0.ptr)) 7781 obj = map(ctx=ctx, ptr=res) 7782 return obj 7783 def lexmin_pw_multi_aff(arg0): 7784 try: 7785 if not arg0.__class__ is map: 7786 arg0 = map(arg0) 7787 except: 7788 raise 7789 ctx = arg0.ctx 7790 res = isl.isl_map_lexmin_pw_multi_aff(isl.isl_map_copy(arg0.ptr)) 7791 obj = pw_multi_aff(ctx=ctx, ptr=res) 7792 return obj 7793 def lower_bound(*args): 7794 if len(args) == 2 and args[1].__class__ is multi_pw_aff: 7795 ctx = args[0].ctx 7796 res = isl.isl_map_lower_bound_multi_pw_aff(isl.isl_map_copy(args[0].ptr), isl.isl_multi_pw_aff_copy(args[1].ptr)) 7797 obj = map(ctx=ctx, ptr=res) 7798 return obj 7799 if len(args) == 2 and args[1].__class__ is multi_val: 7800 ctx = args[0].ctx 7801 res = isl.isl_map_lower_bound_multi_val(isl.isl_map_copy(args[0].ptr), isl.isl_multi_val_copy(args[1].ptr)) 7802 obj = map(ctx=ctx, ptr=res) 7803 return obj 7804 raise Error 7805 def max_multi_pw_aff(arg0): 7806 try: 7807 if not arg0.__class__ is map: 7808 arg0 = map(arg0) 7809 except: 7810 raise 7811 ctx = arg0.ctx 7812 res = isl.isl_map_max_multi_pw_aff(isl.isl_map_copy(arg0.ptr)) 7813 obj = multi_pw_aff(ctx=ctx, ptr=res) 7814 return obj 7815 def min_multi_pw_aff(arg0): 7816 try: 7817 if not arg0.__class__ is map: 7818 arg0 = map(arg0) 7819 except: 7820 raise 7821 ctx = arg0.ctx 7822 res = isl.isl_map_min_multi_pw_aff(isl.isl_map_copy(arg0.ptr)) 7823 obj = multi_pw_aff(ctx=ctx, ptr=res) 7824 return obj 7825 def polyhedral_hull(arg0): 7826 try: 7827 if not arg0.__class__ is map: 7828 arg0 = map(arg0) 7829 except: 7830 raise 7831 ctx = arg0.ctx 7832 res = isl.isl_map_polyhedral_hull(isl.isl_map_copy(arg0.ptr)) 7833 obj = basic_map(ctx=ctx, ptr=res) 7834 return obj 7835 def preimage_domain(*args): 7836 if len(args) == 2 and args[1].__class__ is multi_aff: 7837 ctx = args[0].ctx 7838 res = isl.isl_map_preimage_domain_multi_aff(isl.isl_map_copy(args[0].ptr), isl.isl_multi_aff_copy(args[1].ptr)) 7839 obj = map(ctx=ctx, ptr=res) 7840 return obj 7841 if len(args) == 2 and args[1].__class__ is multi_pw_aff: 7842 ctx = args[0].ctx 7843 res = isl.isl_map_preimage_domain_multi_pw_aff(isl.isl_map_copy(args[0].ptr), isl.isl_multi_pw_aff_copy(args[1].ptr)) 7844 obj = map(ctx=ctx, ptr=res) 7845 return obj 7846 if len(args) == 2 and args[1].__class__ is pw_multi_aff: 7847 ctx = args[0].ctx 7848 res = isl.isl_map_preimage_domain_pw_multi_aff(isl.isl_map_copy(args[0].ptr), isl.isl_pw_multi_aff_copy(args[1].ptr)) 7849 obj = map(ctx=ctx, ptr=res) 7850 return obj 7851 raise Error 7852 def preimage_range(*args): 7853 if len(args) == 2 and args[1].__class__ is multi_aff: 7854 ctx = args[0].ctx 7855 res = isl.isl_map_preimage_range_multi_aff(isl.isl_map_copy(args[0].ptr), isl.isl_multi_aff_copy(args[1].ptr)) 7856 obj = map(ctx=ctx, ptr=res) 7857 return obj 7858 if len(args) == 2 and args[1].__class__ is pw_multi_aff: 7859 ctx = args[0].ctx 7860 res = isl.isl_map_preimage_range_pw_multi_aff(isl.isl_map_copy(args[0].ptr), isl.isl_pw_multi_aff_copy(args[1].ptr)) 7861 obj = map(ctx=ctx, ptr=res) 7862 return obj 7863 raise Error 7864 def project_out_all_params(arg0): 7865 try: 7866 if not arg0.__class__ is map: 7867 arg0 = map(arg0) 7868 except: 7869 raise 7870 ctx = arg0.ctx 7871 res = isl.isl_map_project_out_all_params(isl.isl_map_copy(arg0.ptr)) 7872 obj = map(ctx=ctx, ptr=res) 7873 return obj 7874 def range(arg0): 7875 try: 7876 if not arg0.__class__ is map: 7877 arg0 = map(arg0) 7878 except: 7879 raise 7880 ctx = arg0.ctx 7881 res = isl.isl_map_range(isl.isl_map_copy(arg0.ptr)) 7882 obj = set(ctx=ctx, ptr=res) 7883 return obj 7884 def range_factor_domain(arg0): 7885 try: 7886 if not arg0.__class__ is map: 7887 arg0 = map(arg0) 7888 except: 7889 raise 7890 ctx = arg0.ctx 7891 res = isl.isl_map_range_factor_domain(isl.isl_map_copy(arg0.ptr)) 7892 obj = map(ctx=ctx, ptr=res) 7893 return obj 7894 def range_factor_range(arg0): 7895 try: 7896 if not arg0.__class__ is map: 7897 arg0 = map(arg0) 7898 except: 7899 raise 7900 ctx = arg0.ctx 7901 res = isl.isl_map_range_factor_range(isl.isl_map_copy(arg0.ptr)) 7902 obj = map(ctx=ctx, ptr=res) 7903 return obj 7904 def range_product(arg0, arg1): 7905 try: 7906 if not arg0.__class__ is map: 7907 arg0 = map(arg0) 7908 except: 7909 raise 7910 try: 7911 if not arg1.__class__ is map: 7912 arg1 = map(arg1) 7913 except: 7914 return union_map(arg0).range_product(arg1) 7915 ctx = arg0.ctx 7916 res = isl.isl_map_range_product(isl.isl_map_copy(arg0.ptr), isl.isl_map_copy(arg1.ptr)) 7917 obj = map(ctx=ctx, ptr=res) 7918 return obj 7919 def range_reverse(arg0): 7920 try: 7921 if not arg0.__class__ is map: 7922 arg0 = map(arg0) 7923 except: 7924 raise 7925 ctx = arg0.ctx 7926 res = isl.isl_map_range_reverse(isl.isl_map_copy(arg0.ptr)) 7927 obj = map(ctx=ctx, ptr=res) 7928 return obj 7929 def reverse(arg0): 7930 try: 7931 if not arg0.__class__ is map: 7932 arg0 = map(arg0) 7933 except: 7934 raise 7935 ctx = arg0.ctx 7936 res = isl.isl_map_reverse(isl.isl_map_copy(arg0.ptr)) 7937 obj = map(ctx=ctx, ptr=res) 7938 return obj 7939 def sample(arg0): 7940 try: 7941 if not arg0.__class__ is map: 7942 arg0 = map(arg0) 7943 except: 7944 raise 7945 ctx = arg0.ctx 7946 res = isl.isl_map_sample(isl.isl_map_copy(arg0.ptr)) 7947 obj = basic_map(ctx=ctx, ptr=res) 7948 return obj 7949 def subtract(arg0, arg1): 7950 try: 7951 if not arg0.__class__ is map: 7952 arg0 = map(arg0) 7953 except: 7954 raise 7955 try: 7956 if not arg1.__class__ is map: 7957 arg1 = map(arg1) 7958 except: 7959 return union_map(arg0).subtract(arg1) 7960 ctx = arg0.ctx 7961 res = isl.isl_map_subtract(isl.isl_map_copy(arg0.ptr), isl.isl_map_copy(arg1.ptr)) 7962 obj = map(ctx=ctx, ptr=res) 7963 return obj 7964 def uncurry(arg0): 7965 try: 7966 if not arg0.__class__ is map: 7967 arg0 = map(arg0) 7968 except: 7969 raise 7970 ctx = arg0.ctx 7971 res = isl.isl_map_uncurry(isl.isl_map_copy(arg0.ptr)) 7972 obj = map(ctx=ctx, ptr=res) 7973 return obj 7974 def union(arg0, arg1): 7975 try: 7976 if not arg0.__class__ is map: 7977 arg0 = map(arg0) 7978 except: 7979 raise 7980 try: 7981 if not arg1.__class__ is map: 7982 arg1 = map(arg1) 7983 except: 7984 return union_map(arg0).union(arg1) 7985 ctx = arg0.ctx 7986 res = isl.isl_map_union(isl.isl_map_copy(arg0.ptr), isl.isl_map_copy(arg1.ptr)) 7987 obj = map(ctx=ctx, ptr=res) 7988 return obj 7989 @staticmethod 7990 def universe(arg0): 7991 try: 7992 if not arg0.__class__ is space: 7993 arg0 = space(arg0) 7994 except: 7995 raise 7996 ctx = arg0.ctx 7997 res = isl.isl_map_universe(isl.isl_space_copy(arg0.ptr)) 7998 obj = map(ctx=ctx, ptr=res) 7999 return obj 8000 def unshifted_simple_hull(arg0): 8001 try: 8002 if not arg0.__class__ is map: 8003 arg0 = map(arg0) 8004 except: 8005 raise 8006 ctx = arg0.ctx 8007 res = isl.isl_map_unshifted_simple_hull(isl.isl_map_copy(arg0.ptr)) 8008 obj = basic_map(ctx=ctx, ptr=res) 8009 return obj 8010 def upper_bound(*args): 8011 if len(args) == 2 and args[1].__class__ is multi_pw_aff: 8012 ctx = args[0].ctx 8013 res = isl.isl_map_upper_bound_multi_pw_aff(isl.isl_map_copy(args[0].ptr), isl.isl_multi_pw_aff_copy(args[1].ptr)) 8014 obj = map(ctx=ctx, ptr=res) 8015 return obj 8016 if len(args) == 2 and args[1].__class__ is multi_val: 8017 ctx = args[0].ctx 8018 res = isl.isl_map_upper_bound_multi_val(isl.isl_map_copy(args[0].ptr), isl.isl_multi_val_copy(args[1].ptr)) 8019 obj = map(ctx=ctx, ptr=res) 8020 return obj 8021 raise Error 8022 def wrap(arg0): 8023 try: 8024 if not arg0.__class__ is map: 8025 arg0 = map(arg0) 8026 except: 8027 raise 8028 ctx = arg0.ctx 8029 res = isl.isl_map_wrap(isl.isl_map_copy(arg0.ptr)) 8030 obj = set(ctx=ctx, ptr=res) 8031 return obj 8032 8033isl.isl_map_from_basic_map.restype = c_void_p 8034isl.isl_map_from_basic_map.argtypes = [c_void_p] 8035isl.isl_map_read_from_str.restype = c_void_p 8036isl.isl_map_read_from_str.argtypes = [Context, c_char_p] 8037isl.isl_map_affine_hull.restype = c_void_p 8038isl.isl_map_affine_hull.argtypes = [c_void_p] 8039isl.isl_map_apply_domain.restype = c_void_p 8040isl.isl_map_apply_domain.argtypes = [c_void_p, c_void_p] 8041isl.isl_map_apply_range.restype = c_void_p 8042isl.isl_map_apply_range.argtypes = [c_void_p, c_void_p] 8043isl.isl_map_bind_domain.restype = c_void_p 8044isl.isl_map_bind_domain.argtypes = [c_void_p, c_void_p] 8045isl.isl_map_bind_range.restype = c_void_p 8046isl.isl_map_bind_range.argtypes = [c_void_p, c_void_p] 8047isl.isl_map_coalesce.restype = c_void_p 8048isl.isl_map_coalesce.argtypes = [c_void_p] 8049isl.isl_map_complement.restype = c_void_p 8050isl.isl_map_complement.argtypes = [c_void_p] 8051isl.isl_map_curry.restype = c_void_p 8052isl.isl_map_curry.argtypes = [c_void_p] 8053isl.isl_map_deltas.restype = c_void_p 8054isl.isl_map_deltas.argtypes = [c_void_p] 8055isl.isl_map_detect_equalities.restype = c_void_p 8056isl.isl_map_detect_equalities.argtypes = [c_void_p] 8057isl.isl_map_domain.restype = c_void_p 8058isl.isl_map_domain.argtypes = [c_void_p] 8059isl.isl_map_domain_factor_domain.restype = c_void_p 8060isl.isl_map_domain_factor_domain.argtypes = [c_void_p] 8061isl.isl_map_domain_factor_range.restype = c_void_p 8062isl.isl_map_domain_factor_range.argtypes = [c_void_p] 8063isl.isl_map_domain_product.restype = c_void_p 8064isl.isl_map_domain_product.argtypes = [c_void_p, c_void_p] 8065isl.isl_map_empty.restype = c_void_p 8066isl.isl_map_empty.argtypes = [c_void_p] 8067isl.isl_map_eq_at_multi_pw_aff.restype = c_void_p 8068isl.isl_map_eq_at_multi_pw_aff.argtypes = [c_void_p, c_void_p] 8069isl.isl_map_factor_domain.restype = c_void_p 8070isl.isl_map_factor_domain.argtypes = [c_void_p] 8071isl.isl_map_factor_range.restype = c_void_p 8072isl.isl_map_factor_range.argtypes = [c_void_p] 8073isl.isl_map_flatten.restype = c_void_p 8074isl.isl_map_flatten.argtypes = [c_void_p] 8075isl.isl_map_flatten_domain.restype = c_void_p 8076isl.isl_map_flatten_domain.argtypes = [c_void_p] 8077isl.isl_map_flatten_range.restype = c_void_p 8078isl.isl_map_flatten_range.argtypes = [c_void_p] 8079isl.isl_map_foreach_basic_map.argtypes = [c_void_p, c_void_p, c_void_p] 8080isl.isl_map_get_range_simple_fixed_box_hull.restype = c_void_p 8081isl.isl_map_get_range_simple_fixed_box_hull.argtypes = [c_void_p] 8082isl.isl_map_get_space.restype = c_void_p 8083isl.isl_map_get_space.argtypes = [c_void_p] 8084isl.isl_map_gist.restype = c_void_p 8085isl.isl_map_gist.argtypes = [c_void_p, c_void_p] 8086isl.isl_map_gist_domain.restype = c_void_p 8087isl.isl_map_gist_domain.argtypes = [c_void_p, c_void_p] 8088isl.isl_map_intersect.restype = c_void_p 8089isl.isl_map_intersect.argtypes = [c_void_p, c_void_p] 8090isl.isl_map_intersect_domain.restype = c_void_p 8091isl.isl_map_intersect_domain.argtypes = [c_void_p, c_void_p] 8092isl.isl_map_intersect_params.restype = c_void_p 8093isl.isl_map_intersect_params.argtypes = [c_void_p, c_void_p] 8094isl.isl_map_intersect_range.restype = c_void_p 8095isl.isl_map_intersect_range.argtypes = [c_void_p, c_void_p] 8096isl.isl_map_is_bijective.argtypes = [c_void_p] 8097isl.isl_map_is_disjoint.argtypes = [c_void_p, c_void_p] 8098isl.isl_map_is_empty.argtypes = [c_void_p] 8099isl.isl_map_is_equal.argtypes = [c_void_p, c_void_p] 8100isl.isl_map_is_injective.argtypes = [c_void_p] 8101isl.isl_map_is_single_valued.argtypes = [c_void_p] 8102isl.isl_map_is_strict_subset.argtypes = [c_void_p, c_void_p] 8103isl.isl_map_is_subset.argtypes = [c_void_p, c_void_p] 8104isl.isl_map_lex_ge_at_multi_pw_aff.restype = c_void_p 8105isl.isl_map_lex_ge_at_multi_pw_aff.argtypes = [c_void_p, c_void_p] 8106isl.isl_map_lex_gt_at_multi_pw_aff.restype = c_void_p 8107isl.isl_map_lex_gt_at_multi_pw_aff.argtypes = [c_void_p, c_void_p] 8108isl.isl_map_lex_le_at_multi_pw_aff.restype = c_void_p 8109isl.isl_map_lex_le_at_multi_pw_aff.argtypes = [c_void_p, c_void_p] 8110isl.isl_map_lex_lt_at_multi_pw_aff.restype = c_void_p 8111isl.isl_map_lex_lt_at_multi_pw_aff.argtypes = [c_void_p, c_void_p] 8112isl.isl_map_lexmax.restype = c_void_p 8113isl.isl_map_lexmax.argtypes = [c_void_p] 8114isl.isl_map_lexmax_pw_multi_aff.restype = c_void_p 8115isl.isl_map_lexmax_pw_multi_aff.argtypes = [c_void_p] 8116isl.isl_map_lexmin.restype = c_void_p 8117isl.isl_map_lexmin.argtypes = [c_void_p] 8118isl.isl_map_lexmin_pw_multi_aff.restype = c_void_p 8119isl.isl_map_lexmin_pw_multi_aff.argtypes = [c_void_p] 8120isl.isl_map_lower_bound_multi_pw_aff.restype = c_void_p 8121isl.isl_map_lower_bound_multi_pw_aff.argtypes = [c_void_p, c_void_p] 8122isl.isl_map_lower_bound_multi_val.restype = c_void_p 8123isl.isl_map_lower_bound_multi_val.argtypes = [c_void_p, c_void_p] 8124isl.isl_map_max_multi_pw_aff.restype = c_void_p 8125isl.isl_map_max_multi_pw_aff.argtypes = [c_void_p] 8126isl.isl_map_min_multi_pw_aff.restype = c_void_p 8127isl.isl_map_min_multi_pw_aff.argtypes = [c_void_p] 8128isl.isl_map_polyhedral_hull.restype = c_void_p 8129isl.isl_map_polyhedral_hull.argtypes = [c_void_p] 8130isl.isl_map_preimage_domain_multi_aff.restype = c_void_p 8131isl.isl_map_preimage_domain_multi_aff.argtypes = [c_void_p, c_void_p] 8132isl.isl_map_preimage_domain_multi_pw_aff.restype = c_void_p 8133isl.isl_map_preimage_domain_multi_pw_aff.argtypes = [c_void_p, c_void_p] 8134isl.isl_map_preimage_domain_pw_multi_aff.restype = c_void_p 8135isl.isl_map_preimage_domain_pw_multi_aff.argtypes = [c_void_p, c_void_p] 8136isl.isl_map_preimage_range_multi_aff.restype = c_void_p 8137isl.isl_map_preimage_range_multi_aff.argtypes = [c_void_p, c_void_p] 8138isl.isl_map_preimage_range_pw_multi_aff.restype = c_void_p 8139isl.isl_map_preimage_range_pw_multi_aff.argtypes = [c_void_p, c_void_p] 8140isl.isl_map_project_out_all_params.restype = c_void_p 8141isl.isl_map_project_out_all_params.argtypes = [c_void_p] 8142isl.isl_map_range.restype = c_void_p 8143isl.isl_map_range.argtypes = [c_void_p] 8144isl.isl_map_range_factor_domain.restype = c_void_p 8145isl.isl_map_range_factor_domain.argtypes = [c_void_p] 8146isl.isl_map_range_factor_range.restype = c_void_p 8147isl.isl_map_range_factor_range.argtypes = [c_void_p] 8148isl.isl_map_range_product.restype = c_void_p 8149isl.isl_map_range_product.argtypes = [c_void_p, c_void_p] 8150isl.isl_map_range_reverse.restype = c_void_p 8151isl.isl_map_range_reverse.argtypes = [c_void_p] 8152isl.isl_map_reverse.restype = c_void_p 8153isl.isl_map_reverse.argtypes = [c_void_p] 8154isl.isl_map_sample.restype = c_void_p 8155isl.isl_map_sample.argtypes = [c_void_p] 8156isl.isl_map_subtract.restype = c_void_p 8157isl.isl_map_subtract.argtypes = [c_void_p, c_void_p] 8158isl.isl_map_uncurry.restype = c_void_p 8159isl.isl_map_uncurry.argtypes = [c_void_p] 8160isl.isl_map_union.restype = c_void_p 8161isl.isl_map_union.argtypes = [c_void_p, c_void_p] 8162isl.isl_map_universe.restype = c_void_p 8163isl.isl_map_universe.argtypes = [c_void_p] 8164isl.isl_map_unshifted_simple_hull.restype = c_void_p 8165isl.isl_map_unshifted_simple_hull.argtypes = [c_void_p] 8166isl.isl_map_upper_bound_multi_pw_aff.restype = c_void_p 8167isl.isl_map_upper_bound_multi_pw_aff.argtypes = [c_void_p, c_void_p] 8168isl.isl_map_upper_bound_multi_val.restype = c_void_p 8169isl.isl_map_upper_bound_multi_val.argtypes = [c_void_p, c_void_p] 8170isl.isl_map_wrap.restype = c_void_p 8171isl.isl_map_wrap.argtypes = [c_void_p] 8172isl.isl_map_copy.restype = c_void_p 8173isl.isl_map_copy.argtypes = [c_void_p] 8174isl.isl_map_free.restype = c_void_p 8175isl.isl_map_free.argtypes = [c_void_p] 8176isl.isl_map_to_str.restype = POINTER(c_char) 8177isl.isl_map_to_str.argtypes = [c_void_p] 8178 8179class basic_map(map): 8180 def __init__(self, *args, **keywords): 8181 if "ptr" in keywords: 8182 self.ctx = keywords["ctx"] 8183 self.ptr = keywords["ptr"] 8184 return 8185 if len(args) == 1 and type(args[0]) == str: 8186 self.ctx = Context.getDefaultInstance() 8187 self.ptr = isl.isl_basic_map_read_from_str(self.ctx, args[0].encode('ascii')) 8188 return 8189 raise Error 8190 def __del__(self): 8191 if hasattr(self, 'ptr'): 8192 isl.isl_basic_map_free(self.ptr) 8193 def __str__(arg0): 8194 try: 8195 if not arg0.__class__ is basic_map: 8196 arg0 = basic_map(arg0) 8197 except: 8198 raise 8199 ptr = isl.isl_basic_map_to_str(arg0.ptr) 8200 res = cast(ptr, c_char_p).value.decode('ascii') 8201 libc.free(ptr) 8202 return res 8203 def __repr__(self): 8204 s = str(self) 8205 if '"' in s: 8206 return 'isl.basic_map("""%s""")' % s 8207 else: 8208 return 'isl.basic_map("%s")' % s 8209 def affine_hull(arg0): 8210 try: 8211 if not arg0.__class__ is basic_map: 8212 arg0 = basic_map(arg0) 8213 except: 8214 raise 8215 ctx = arg0.ctx 8216 res = isl.isl_basic_map_affine_hull(isl.isl_basic_map_copy(arg0.ptr)) 8217 obj = basic_map(ctx=ctx, ptr=res) 8218 return obj 8219 def apply_domain(arg0, arg1): 8220 try: 8221 if not arg0.__class__ is basic_map: 8222 arg0 = basic_map(arg0) 8223 except: 8224 raise 8225 try: 8226 if not arg1.__class__ is basic_map: 8227 arg1 = basic_map(arg1) 8228 except: 8229 return map(arg0).apply_domain(arg1) 8230 ctx = arg0.ctx 8231 res = isl.isl_basic_map_apply_domain(isl.isl_basic_map_copy(arg0.ptr), isl.isl_basic_map_copy(arg1.ptr)) 8232 obj = basic_map(ctx=ctx, ptr=res) 8233 return obj 8234 def apply_range(arg0, arg1): 8235 try: 8236 if not arg0.__class__ is basic_map: 8237 arg0 = basic_map(arg0) 8238 except: 8239 raise 8240 try: 8241 if not arg1.__class__ is basic_map: 8242 arg1 = basic_map(arg1) 8243 except: 8244 return map(arg0).apply_range(arg1) 8245 ctx = arg0.ctx 8246 res = isl.isl_basic_map_apply_range(isl.isl_basic_map_copy(arg0.ptr), isl.isl_basic_map_copy(arg1.ptr)) 8247 obj = basic_map(ctx=ctx, ptr=res) 8248 return obj 8249 def deltas(arg0): 8250 try: 8251 if not arg0.__class__ is basic_map: 8252 arg0 = basic_map(arg0) 8253 except: 8254 raise 8255 ctx = arg0.ctx 8256 res = isl.isl_basic_map_deltas(isl.isl_basic_map_copy(arg0.ptr)) 8257 obj = basic_set(ctx=ctx, ptr=res) 8258 return obj 8259 def detect_equalities(arg0): 8260 try: 8261 if not arg0.__class__ is basic_map: 8262 arg0 = basic_map(arg0) 8263 except: 8264 raise 8265 ctx = arg0.ctx 8266 res = isl.isl_basic_map_detect_equalities(isl.isl_basic_map_copy(arg0.ptr)) 8267 obj = basic_map(ctx=ctx, ptr=res) 8268 return obj 8269 def flatten(arg0): 8270 try: 8271 if not arg0.__class__ is basic_map: 8272 arg0 = basic_map(arg0) 8273 except: 8274 raise 8275 ctx = arg0.ctx 8276 res = isl.isl_basic_map_flatten(isl.isl_basic_map_copy(arg0.ptr)) 8277 obj = basic_map(ctx=ctx, ptr=res) 8278 return obj 8279 def flatten_domain(arg0): 8280 try: 8281 if not arg0.__class__ is basic_map: 8282 arg0 = basic_map(arg0) 8283 except: 8284 raise 8285 ctx = arg0.ctx 8286 res = isl.isl_basic_map_flatten_domain(isl.isl_basic_map_copy(arg0.ptr)) 8287 obj = basic_map(ctx=ctx, ptr=res) 8288 return obj 8289 def flatten_range(arg0): 8290 try: 8291 if not arg0.__class__ is basic_map: 8292 arg0 = basic_map(arg0) 8293 except: 8294 raise 8295 ctx = arg0.ctx 8296 res = isl.isl_basic_map_flatten_range(isl.isl_basic_map_copy(arg0.ptr)) 8297 obj = basic_map(ctx=ctx, ptr=res) 8298 return obj 8299 def gist(arg0, arg1): 8300 try: 8301 if not arg0.__class__ is basic_map: 8302 arg0 = basic_map(arg0) 8303 except: 8304 raise 8305 try: 8306 if not arg1.__class__ is basic_map: 8307 arg1 = basic_map(arg1) 8308 except: 8309 return map(arg0).gist(arg1) 8310 ctx = arg0.ctx 8311 res = isl.isl_basic_map_gist(isl.isl_basic_map_copy(arg0.ptr), isl.isl_basic_map_copy(arg1.ptr)) 8312 obj = basic_map(ctx=ctx, ptr=res) 8313 return obj 8314 def intersect(arg0, arg1): 8315 try: 8316 if not arg0.__class__ is basic_map: 8317 arg0 = basic_map(arg0) 8318 except: 8319 raise 8320 try: 8321 if not arg1.__class__ is basic_map: 8322 arg1 = basic_map(arg1) 8323 except: 8324 return map(arg0).intersect(arg1) 8325 ctx = arg0.ctx 8326 res = isl.isl_basic_map_intersect(isl.isl_basic_map_copy(arg0.ptr), isl.isl_basic_map_copy(arg1.ptr)) 8327 obj = basic_map(ctx=ctx, ptr=res) 8328 return obj 8329 def intersect_domain(arg0, arg1): 8330 try: 8331 if not arg0.__class__ is basic_map: 8332 arg0 = basic_map(arg0) 8333 except: 8334 raise 8335 try: 8336 if not arg1.__class__ is basic_set: 8337 arg1 = basic_set(arg1) 8338 except: 8339 return map(arg0).intersect_domain(arg1) 8340 ctx = arg0.ctx 8341 res = isl.isl_basic_map_intersect_domain(isl.isl_basic_map_copy(arg0.ptr), isl.isl_basic_set_copy(arg1.ptr)) 8342 obj = basic_map(ctx=ctx, ptr=res) 8343 return obj 8344 def intersect_range(arg0, arg1): 8345 try: 8346 if not arg0.__class__ is basic_map: 8347 arg0 = basic_map(arg0) 8348 except: 8349 raise 8350 try: 8351 if not arg1.__class__ is basic_set: 8352 arg1 = basic_set(arg1) 8353 except: 8354 return map(arg0).intersect_range(arg1) 8355 ctx = arg0.ctx 8356 res = isl.isl_basic_map_intersect_range(isl.isl_basic_map_copy(arg0.ptr), isl.isl_basic_set_copy(arg1.ptr)) 8357 obj = basic_map(ctx=ctx, ptr=res) 8358 return obj 8359 def is_empty(arg0): 8360 try: 8361 if not arg0.__class__ is basic_map: 8362 arg0 = basic_map(arg0) 8363 except: 8364 raise 8365 ctx = arg0.ctx 8366 res = isl.isl_basic_map_is_empty(arg0.ptr) 8367 if res < 0: 8368 raise 8369 return bool(res) 8370 def is_equal(arg0, arg1): 8371 try: 8372 if not arg0.__class__ is basic_map: 8373 arg0 = basic_map(arg0) 8374 except: 8375 raise 8376 try: 8377 if not arg1.__class__ is basic_map: 8378 arg1 = basic_map(arg1) 8379 except: 8380 return map(arg0).is_equal(arg1) 8381 ctx = arg0.ctx 8382 res = isl.isl_basic_map_is_equal(arg0.ptr, arg1.ptr) 8383 if res < 0: 8384 raise 8385 return bool(res) 8386 def is_subset(arg0, arg1): 8387 try: 8388 if not arg0.__class__ is basic_map: 8389 arg0 = basic_map(arg0) 8390 except: 8391 raise 8392 try: 8393 if not arg1.__class__ is basic_map: 8394 arg1 = basic_map(arg1) 8395 except: 8396 return map(arg0).is_subset(arg1) 8397 ctx = arg0.ctx 8398 res = isl.isl_basic_map_is_subset(arg0.ptr, arg1.ptr) 8399 if res < 0: 8400 raise 8401 return bool(res) 8402 def lexmax(arg0): 8403 try: 8404 if not arg0.__class__ is basic_map: 8405 arg0 = basic_map(arg0) 8406 except: 8407 raise 8408 ctx = arg0.ctx 8409 res = isl.isl_basic_map_lexmax(isl.isl_basic_map_copy(arg0.ptr)) 8410 obj = map(ctx=ctx, ptr=res) 8411 return obj 8412 def lexmin(arg0): 8413 try: 8414 if not arg0.__class__ is basic_map: 8415 arg0 = basic_map(arg0) 8416 except: 8417 raise 8418 ctx = arg0.ctx 8419 res = isl.isl_basic_map_lexmin(isl.isl_basic_map_copy(arg0.ptr)) 8420 obj = map(ctx=ctx, ptr=res) 8421 return obj 8422 def reverse(arg0): 8423 try: 8424 if not arg0.__class__ is basic_map: 8425 arg0 = basic_map(arg0) 8426 except: 8427 raise 8428 ctx = arg0.ctx 8429 res = isl.isl_basic_map_reverse(isl.isl_basic_map_copy(arg0.ptr)) 8430 obj = basic_map(ctx=ctx, ptr=res) 8431 return obj 8432 def sample(arg0): 8433 try: 8434 if not arg0.__class__ is basic_map: 8435 arg0 = basic_map(arg0) 8436 except: 8437 raise 8438 ctx = arg0.ctx 8439 res = isl.isl_basic_map_sample(isl.isl_basic_map_copy(arg0.ptr)) 8440 obj = basic_map(ctx=ctx, ptr=res) 8441 return obj 8442 def union(arg0, arg1): 8443 try: 8444 if not arg0.__class__ is basic_map: 8445 arg0 = basic_map(arg0) 8446 except: 8447 raise 8448 try: 8449 if not arg1.__class__ is basic_map: 8450 arg1 = basic_map(arg1) 8451 except: 8452 return map(arg0).union(arg1) 8453 ctx = arg0.ctx 8454 res = isl.isl_basic_map_union(isl.isl_basic_map_copy(arg0.ptr), isl.isl_basic_map_copy(arg1.ptr)) 8455 obj = map(ctx=ctx, ptr=res) 8456 return obj 8457 8458isl.isl_basic_map_read_from_str.restype = c_void_p 8459isl.isl_basic_map_read_from_str.argtypes = [Context, c_char_p] 8460isl.isl_basic_map_affine_hull.restype = c_void_p 8461isl.isl_basic_map_affine_hull.argtypes = [c_void_p] 8462isl.isl_basic_map_apply_domain.restype = c_void_p 8463isl.isl_basic_map_apply_domain.argtypes = [c_void_p, c_void_p] 8464isl.isl_basic_map_apply_range.restype = c_void_p 8465isl.isl_basic_map_apply_range.argtypes = [c_void_p, c_void_p] 8466isl.isl_basic_map_deltas.restype = c_void_p 8467isl.isl_basic_map_deltas.argtypes = [c_void_p] 8468isl.isl_basic_map_detect_equalities.restype = c_void_p 8469isl.isl_basic_map_detect_equalities.argtypes = [c_void_p] 8470isl.isl_basic_map_flatten.restype = c_void_p 8471isl.isl_basic_map_flatten.argtypes = [c_void_p] 8472isl.isl_basic_map_flatten_domain.restype = c_void_p 8473isl.isl_basic_map_flatten_domain.argtypes = [c_void_p] 8474isl.isl_basic_map_flatten_range.restype = c_void_p 8475isl.isl_basic_map_flatten_range.argtypes = [c_void_p] 8476isl.isl_basic_map_gist.restype = c_void_p 8477isl.isl_basic_map_gist.argtypes = [c_void_p, c_void_p] 8478isl.isl_basic_map_intersect.restype = c_void_p 8479isl.isl_basic_map_intersect.argtypes = [c_void_p, c_void_p] 8480isl.isl_basic_map_intersect_domain.restype = c_void_p 8481isl.isl_basic_map_intersect_domain.argtypes = [c_void_p, c_void_p] 8482isl.isl_basic_map_intersect_range.restype = c_void_p 8483isl.isl_basic_map_intersect_range.argtypes = [c_void_p, c_void_p] 8484isl.isl_basic_map_is_empty.argtypes = [c_void_p] 8485isl.isl_basic_map_is_equal.argtypes = [c_void_p, c_void_p] 8486isl.isl_basic_map_is_subset.argtypes = [c_void_p, c_void_p] 8487isl.isl_basic_map_lexmax.restype = c_void_p 8488isl.isl_basic_map_lexmax.argtypes = [c_void_p] 8489isl.isl_basic_map_lexmin.restype = c_void_p 8490isl.isl_basic_map_lexmin.argtypes = [c_void_p] 8491isl.isl_basic_map_reverse.restype = c_void_p 8492isl.isl_basic_map_reverse.argtypes = [c_void_p] 8493isl.isl_basic_map_sample.restype = c_void_p 8494isl.isl_basic_map_sample.argtypes = [c_void_p] 8495isl.isl_basic_map_union.restype = c_void_p 8496isl.isl_basic_map_union.argtypes = [c_void_p, c_void_p] 8497isl.isl_basic_map_copy.restype = c_void_p 8498isl.isl_basic_map_copy.argtypes = [c_void_p] 8499isl.isl_basic_map_free.restype = c_void_p 8500isl.isl_basic_map_free.argtypes = [c_void_p] 8501isl.isl_basic_map_to_str.restype = POINTER(c_char) 8502isl.isl_basic_map_to_str.argtypes = [c_void_p] 8503 8504class union_set(object): 8505 def __init__(self, *args, **keywords): 8506 if "ptr" in keywords: 8507 self.ctx = keywords["ctx"] 8508 self.ptr = keywords["ptr"] 8509 return 8510 if len(args) == 1 and args[0].__class__ is basic_set: 8511 self.ctx = Context.getDefaultInstance() 8512 self.ptr = isl.isl_union_set_from_basic_set(isl.isl_basic_set_copy(args[0].ptr)) 8513 return 8514 if len(args) == 1 and args[0].__class__ is point: 8515 self.ctx = Context.getDefaultInstance() 8516 self.ptr = isl.isl_union_set_from_point(isl.isl_point_copy(args[0].ptr)) 8517 return 8518 if len(args) == 1 and args[0].__class__ is set: 8519 self.ctx = Context.getDefaultInstance() 8520 self.ptr = isl.isl_union_set_from_set(isl.isl_set_copy(args[0].ptr)) 8521 return 8522 if len(args) == 1 and type(args[0]) == str: 8523 self.ctx = Context.getDefaultInstance() 8524 self.ptr = isl.isl_union_set_read_from_str(self.ctx, args[0].encode('ascii')) 8525 return 8526 raise Error 8527 def __del__(self): 8528 if hasattr(self, 'ptr'): 8529 isl.isl_union_set_free(self.ptr) 8530 def __str__(arg0): 8531 try: 8532 if not arg0.__class__ is union_set: 8533 arg0 = union_set(arg0) 8534 except: 8535 raise 8536 ptr = isl.isl_union_set_to_str(arg0.ptr) 8537 res = cast(ptr, c_char_p).value.decode('ascii') 8538 libc.free(ptr) 8539 return res 8540 def __repr__(self): 8541 s = str(self) 8542 if '"' in s: 8543 return 'isl.union_set("""%s""")' % s 8544 else: 8545 return 'isl.union_set("%s")' % s 8546 def affine_hull(arg0): 8547 try: 8548 if not arg0.__class__ is union_set: 8549 arg0 = union_set(arg0) 8550 except: 8551 raise 8552 ctx = arg0.ctx 8553 res = isl.isl_union_set_affine_hull(isl.isl_union_set_copy(arg0.ptr)) 8554 obj = union_set(ctx=ctx, ptr=res) 8555 return obj 8556 def apply(arg0, arg1): 8557 try: 8558 if not arg0.__class__ is union_set: 8559 arg0 = union_set(arg0) 8560 except: 8561 raise 8562 try: 8563 if not arg1.__class__ is union_map: 8564 arg1 = union_map(arg1) 8565 except: 8566 raise 8567 ctx = arg0.ctx 8568 res = isl.isl_union_set_apply(isl.isl_union_set_copy(arg0.ptr), isl.isl_union_map_copy(arg1.ptr)) 8569 obj = union_set(ctx=ctx, ptr=res) 8570 return obj 8571 def coalesce(arg0): 8572 try: 8573 if not arg0.__class__ is union_set: 8574 arg0 = union_set(arg0) 8575 except: 8576 raise 8577 ctx = arg0.ctx 8578 res = isl.isl_union_set_coalesce(isl.isl_union_set_copy(arg0.ptr)) 8579 obj = union_set(ctx=ctx, ptr=res) 8580 return obj 8581 def compute_divs(arg0): 8582 try: 8583 if not arg0.__class__ is union_set: 8584 arg0 = union_set(arg0) 8585 except: 8586 raise 8587 ctx = arg0.ctx 8588 res = isl.isl_union_set_compute_divs(isl.isl_union_set_copy(arg0.ptr)) 8589 obj = union_set(ctx=ctx, ptr=res) 8590 return obj 8591 def detect_equalities(arg0): 8592 try: 8593 if not arg0.__class__ is union_set: 8594 arg0 = union_set(arg0) 8595 except: 8596 raise 8597 ctx = arg0.ctx 8598 res = isl.isl_union_set_detect_equalities(isl.isl_union_set_copy(arg0.ptr)) 8599 obj = union_set(ctx=ctx, ptr=res) 8600 return obj 8601 @staticmethod 8602 def empty(*args): 8603 if len(args) == 0: 8604 ctx = Context.getDefaultInstance() 8605 res = isl.isl_union_set_empty_ctx(ctx) 8606 obj = union_set(ctx=ctx, ptr=res) 8607 return obj 8608 raise Error 8609 def every_set(arg0, arg1): 8610 try: 8611 if not arg0.__class__ is union_set: 8612 arg0 = union_set(arg0) 8613 except: 8614 raise 8615 exc_info = [None] 8616 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 8617 def cb_func(cb_arg0, cb_arg1): 8618 cb_arg0 = set(ctx=arg0.ctx, ptr=isl.isl_set_copy(cb_arg0)) 8619 try: 8620 res = arg1(cb_arg0) 8621 except: 8622 import sys 8623 exc_info[0] = sys.exc_info() 8624 return -1 8625 return 1 if res else 0 8626 cb = fn(cb_func) 8627 ctx = arg0.ctx 8628 res = isl.isl_union_set_every_set(arg0.ptr, cb, None) 8629 if exc_info[0] != None: 8630 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 8631 if res < 0: 8632 raise 8633 return bool(res) 8634 def extract_set(arg0, arg1): 8635 try: 8636 if not arg0.__class__ is union_set: 8637 arg0 = union_set(arg0) 8638 except: 8639 raise 8640 try: 8641 if not arg1.__class__ is space: 8642 arg1 = space(arg1) 8643 except: 8644 raise 8645 ctx = arg0.ctx 8646 res = isl.isl_union_set_extract_set(arg0.ptr, isl.isl_space_copy(arg1.ptr)) 8647 obj = set(ctx=ctx, ptr=res) 8648 return obj 8649 def foreach_point(arg0, arg1): 8650 try: 8651 if not arg0.__class__ is union_set: 8652 arg0 = union_set(arg0) 8653 except: 8654 raise 8655 exc_info = [None] 8656 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 8657 def cb_func(cb_arg0, cb_arg1): 8658 cb_arg0 = point(ctx=arg0.ctx, ptr=(cb_arg0)) 8659 try: 8660 arg1(cb_arg0) 8661 except: 8662 import sys 8663 exc_info[0] = sys.exc_info() 8664 return -1 8665 return 0 8666 cb = fn(cb_func) 8667 ctx = arg0.ctx 8668 res = isl.isl_union_set_foreach_point(arg0.ptr, cb, None) 8669 if exc_info[0] != None: 8670 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 8671 if res < 0: 8672 raise 8673 def foreach_set(arg0, arg1): 8674 try: 8675 if not arg0.__class__ is union_set: 8676 arg0 = union_set(arg0) 8677 except: 8678 raise 8679 exc_info = [None] 8680 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 8681 def cb_func(cb_arg0, cb_arg1): 8682 cb_arg0 = set(ctx=arg0.ctx, ptr=(cb_arg0)) 8683 try: 8684 arg1(cb_arg0) 8685 except: 8686 import sys 8687 exc_info[0] = sys.exc_info() 8688 return -1 8689 return 0 8690 cb = fn(cb_func) 8691 ctx = arg0.ctx 8692 res = isl.isl_union_set_foreach_set(arg0.ptr, cb, None) 8693 if exc_info[0] != None: 8694 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 8695 if res < 0: 8696 raise 8697 def space(arg0): 8698 try: 8699 if not arg0.__class__ is union_set: 8700 arg0 = union_set(arg0) 8701 except: 8702 raise 8703 ctx = arg0.ctx 8704 res = isl.isl_union_set_get_space(arg0.ptr) 8705 obj = space(ctx=ctx, ptr=res) 8706 return obj 8707 def get_space(arg0): 8708 return arg0.space() 8709 def gist(arg0, arg1): 8710 try: 8711 if not arg0.__class__ is union_set: 8712 arg0 = union_set(arg0) 8713 except: 8714 raise 8715 try: 8716 if not arg1.__class__ is union_set: 8717 arg1 = union_set(arg1) 8718 except: 8719 raise 8720 ctx = arg0.ctx 8721 res = isl.isl_union_set_gist(isl.isl_union_set_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 8722 obj = union_set(ctx=ctx, ptr=res) 8723 return obj 8724 def gist_params(arg0, arg1): 8725 try: 8726 if not arg0.__class__ is union_set: 8727 arg0 = union_set(arg0) 8728 except: 8729 raise 8730 try: 8731 if not arg1.__class__ is set: 8732 arg1 = set(arg1) 8733 except: 8734 raise 8735 ctx = arg0.ctx 8736 res = isl.isl_union_set_gist_params(isl.isl_union_set_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 8737 obj = union_set(ctx=ctx, ptr=res) 8738 return obj 8739 def identity(arg0): 8740 try: 8741 if not arg0.__class__ is union_set: 8742 arg0 = union_set(arg0) 8743 except: 8744 raise 8745 ctx = arg0.ctx 8746 res = isl.isl_union_set_identity(isl.isl_union_set_copy(arg0.ptr)) 8747 obj = union_map(ctx=ctx, ptr=res) 8748 return obj 8749 def intersect(arg0, arg1): 8750 try: 8751 if not arg0.__class__ is union_set: 8752 arg0 = union_set(arg0) 8753 except: 8754 raise 8755 try: 8756 if not arg1.__class__ is union_set: 8757 arg1 = union_set(arg1) 8758 except: 8759 raise 8760 ctx = arg0.ctx 8761 res = isl.isl_union_set_intersect(isl.isl_union_set_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 8762 obj = union_set(ctx=ctx, ptr=res) 8763 return obj 8764 def intersect_params(arg0, arg1): 8765 try: 8766 if not arg0.__class__ is union_set: 8767 arg0 = union_set(arg0) 8768 except: 8769 raise 8770 try: 8771 if not arg1.__class__ is set: 8772 arg1 = set(arg1) 8773 except: 8774 raise 8775 ctx = arg0.ctx 8776 res = isl.isl_union_set_intersect_params(isl.isl_union_set_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 8777 obj = union_set(ctx=ctx, ptr=res) 8778 return obj 8779 def is_disjoint(arg0, arg1): 8780 try: 8781 if not arg0.__class__ is union_set: 8782 arg0 = union_set(arg0) 8783 except: 8784 raise 8785 try: 8786 if not arg1.__class__ is union_set: 8787 arg1 = union_set(arg1) 8788 except: 8789 raise 8790 ctx = arg0.ctx 8791 res = isl.isl_union_set_is_disjoint(arg0.ptr, arg1.ptr) 8792 if res < 0: 8793 raise 8794 return bool(res) 8795 def is_empty(arg0): 8796 try: 8797 if not arg0.__class__ is union_set: 8798 arg0 = union_set(arg0) 8799 except: 8800 raise 8801 ctx = arg0.ctx 8802 res = isl.isl_union_set_is_empty(arg0.ptr) 8803 if res < 0: 8804 raise 8805 return bool(res) 8806 def is_equal(arg0, arg1): 8807 try: 8808 if not arg0.__class__ is union_set: 8809 arg0 = union_set(arg0) 8810 except: 8811 raise 8812 try: 8813 if not arg1.__class__ is union_set: 8814 arg1 = union_set(arg1) 8815 except: 8816 raise 8817 ctx = arg0.ctx 8818 res = isl.isl_union_set_is_equal(arg0.ptr, arg1.ptr) 8819 if res < 0: 8820 raise 8821 return bool(res) 8822 def is_strict_subset(arg0, arg1): 8823 try: 8824 if not arg0.__class__ is union_set: 8825 arg0 = union_set(arg0) 8826 except: 8827 raise 8828 try: 8829 if not arg1.__class__ is union_set: 8830 arg1 = union_set(arg1) 8831 except: 8832 raise 8833 ctx = arg0.ctx 8834 res = isl.isl_union_set_is_strict_subset(arg0.ptr, arg1.ptr) 8835 if res < 0: 8836 raise 8837 return bool(res) 8838 def is_subset(arg0, arg1): 8839 try: 8840 if not arg0.__class__ is union_set: 8841 arg0 = union_set(arg0) 8842 except: 8843 raise 8844 try: 8845 if not arg1.__class__ is union_set: 8846 arg1 = union_set(arg1) 8847 except: 8848 raise 8849 ctx = arg0.ctx 8850 res = isl.isl_union_set_is_subset(arg0.ptr, arg1.ptr) 8851 if res < 0: 8852 raise 8853 return bool(res) 8854 def isa_set(arg0): 8855 try: 8856 if not arg0.__class__ is union_set: 8857 arg0 = union_set(arg0) 8858 except: 8859 raise 8860 ctx = arg0.ctx 8861 res = isl.isl_union_set_isa_set(arg0.ptr) 8862 if res < 0: 8863 raise 8864 return bool(res) 8865 def lexmax(arg0): 8866 try: 8867 if not arg0.__class__ is union_set: 8868 arg0 = union_set(arg0) 8869 except: 8870 raise 8871 ctx = arg0.ctx 8872 res = isl.isl_union_set_lexmax(isl.isl_union_set_copy(arg0.ptr)) 8873 obj = union_set(ctx=ctx, ptr=res) 8874 return obj 8875 def lexmin(arg0): 8876 try: 8877 if not arg0.__class__ is union_set: 8878 arg0 = union_set(arg0) 8879 except: 8880 raise 8881 ctx = arg0.ctx 8882 res = isl.isl_union_set_lexmin(isl.isl_union_set_copy(arg0.ptr)) 8883 obj = union_set(ctx=ctx, ptr=res) 8884 return obj 8885 def polyhedral_hull(arg0): 8886 try: 8887 if not arg0.__class__ is union_set: 8888 arg0 = union_set(arg0) 8889 except: 8890 raise 8891 ctx = arg0.ctx 8892 res = isl.isl_union_set_polyhedral_hull(isl.isl_union_set_copy(arg0.ptr)) 8893 obj = union_set(ctx=ctx, ptr=res) 8894 return obj 8895 def preimage(*args): 8896 if len(args) == 2 and args[1].__class__ is multi_aff: 8897 ctx = args[0].ctx 8898 res = isl.isl_union_set_preimage_multi_aff(isl.isl_union_set_copy(args[0].ptr), isl.isl_multi_aff_copy(args[1].ptr)) 8899 obj = union_set(ctx=ctx, ptr=res) 8900 return obj 8901 if len(args) == 2 and args[1].__class__ is pw_multi_aff: 8902 ctx = args[0].ctx 8903 res = isl.isl_union_set_preimage_pw_multi_aff(isl.isl_union_set_copy(args[0].ptr), isl.isl_pw_multi_aff_copy(args[1].ptr)) 8904 obj = union_set(ctx=ctx, ptr=res) 8905 return obj 8906 if len(args) == 2 and args[1].__class__ is union_pw_multi_aff: 8907 ctx = args[0].ctx 8908 res = isl.isl_union_set_preimage_union_pw_multi_aff(isl.isl_union_set_copy(args[0].ptr), isl.isl_union_pw_multi_aff_copy(args[1].ptr)) 8909 obj = union_set(ctx=ctx, ptr=res) 8910 return obj 8911 raise Error 8912 def sample_point(arg0): 8913 try: 8914 if not arg0.__class__ is union_set: 8915 arg0 = union_set(arg0) 8916 except: 8917 raise 8918 ctx = arg0.ctx 8919 res = isl.isl_union_set_sample_point(isl.isl_union_set_copy(arg0.ptr)) 8920 obj = point(ctx=ctx, ptr=res) 8921 return obj 8922 def subtract(arg0, arg1): 8923 try: 8924 if not arg0.__class__ is union_set: 8925 arg0 = union_set(arg0) 8926 except: 8927 raise 8928 try: 8929 if not arg1.__class__ is union_set: 8930 arg1 = union_set(arg1) 8931 except: 8932 raise 8933 ctx = arg0.ctx 8934 res = isl.isl_union_set_subtract(isl.isl_union_set_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 8935 obj = union_set(ctx=ctx, ptr=res) 8936 return obj 8937 def union(arg0, arg1): 8938 try: 8939 if not arg0.__class__ is union_set: 8940 arg0 = union_set(arg0) 8941 except: 8942 raise 8943 try: 8944 if not arg1.__class__ is union_set: 8945 arg1 = union_set(arg1) 8946 except: 8947 raise 8948 ctx = arg0.ctx 8949 res = isl.isl_union_set_union(isl.isl_union_set_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 8950 obj = union_set(ctx=ctx, ptr=res) 8951 return obj 8952 def universe(arg0): 8953 try: 8954 if not arg0.__class__ is union_set: 8955 arg0 = union_set(arg0) 8956 except: 8957 raise 8958 ctx = arg0.ctx 8959 res = isl.isl_union_set_universe(isl.isl_union_set_copy(arg0.ptr)) 8960 obj = union_set(ctx=ctx, ptr=res) 8961 return obj 8962 def unwrap(arg0): 8963 try: 8964 if not arg0.__class__ is union_set: 8965 arg0 = union_set(arg0) 8966 except: 8967 raise 8968 ctx = arg0.ctx 8969 res = isl.isl_union_set_unwrap(isl.isl_union_set_copy(arg0.ptr)) 8970 obj = union_map(ctx=ctx, ptr=res) 8971 return obj 8972 8973isl.isl_union_set_from_basic_set.restype = c_void_p 8974isl.isl_union_set_from_basic_set.argtypes = [c_void_p] 8975isl.isl_union_set_from_point.restype = c_void_p 8976isl.isl_union_set_from_point.argtypes = [c_void_p] 8977isl.isl_union_set_from_set.restype = c_void_p 8978isl.isl_union_set_from_set.argtypes = [c_void_p] 8979isl.isl_union_set_read_from_str.restype = c_void_p 8980isl.isl_union_set_read_from_str.argtypes = [Context, c_char_p] 8981isl.isl_union_set_affine_hull.restype = c_void_p 8982isl.isl_union_set_affine_hull.argtypes = [c_void_p] 8983isl.isl_union_set_apply.restype = c_void_p 8984isl.isl_union_set_apply.argtypes = [c_void_p, c_void_p] 8985isl.isl_union_set_coalesce.restype = c_void_p 8986isl.isl_union_set_coalesce.argtypes = [c_void_p] 8987isl.isl_union_set_compute_divs.restype = c_void_p 8988isl.isl_union_set_compute_divs.argtypes = [c_void_p] 8989isl.isl_union_set_detect_equalities.restype = c_void_p 8990isl.isl_union_set_detect_equalities.argtypes = [c_void_p] 8991isl.isl_union_set_empty_ctx.restype = c_void_p 8992isl.isl_union_set_empty_ctx.argtypes = [Context] 8993isl.isl_union_set_every_set.argtypes = [c_void_p, c_void_p, c_void_p] 8994isl.isl_union_set_extract_set.restype = c_void_p 8995isl.isl_union_set_extract_set.argtypes = [c_void_p, c_void_p] 8996isl.isl_union_set_foreach_point.argtypes = [c_void_p, c_void_p, c_void_p] 8997isl.isl_union_set_foreach_set.argtypes = [c_void_p, c_void_p, c_void_p] 8998isl.isl_union_set_get_space.restype = c_void_p 8999isl.isl_union_set_get_space.argtypes = [c_void_p] 9000isl.isl_union_set_gist.restype = c_void_p 9001isl.isl_union_set_gist.argtypes = [c_void_p, c_void_p] 9002isl.isl_union_set_gist_params.restype = c_void_p 9003isl.isl_union_set_gist_params.argtypes = [c_void_p, c_void_p] 9004isl.isl_union_set_identity.restype = c_void_p 9005isl.isl_union_set_identity.argtypes = [c_void_p] 9006isl.isl_union_set_intersect.restype = c_void_p 9007isl.isl_union_set_intersect.argtypes = [c_void_p, c_void_p] 9008isl.isl_union_set_intersect_params.restype = c_void_p 9009isl.isl_union_set_intersect_params.argtypes = [c_void_p, c_void_p] 9010isl.isl_union_set_is_disjoint.argtypes = [c_void_p, c_void_p] 9011isl.isl_union_set_is_empty.argtypes = [c_void_p] 9012isl.isl_union_set_is_equal.argtypes = [c_void_p, c_void_p] 9013isl.isl_union_set_is_strict_subset.argtypes = [c_void_p, c_void_p] 9014isl.isl_union_set_is_subset.argtypes = [c_void_p, c_void_p] 9015isl.isl_union_set_isa_set.argtypes = [c_void_p] 9016isl.isl_union_set_lexmax.restype = c_void_p 9017isl.isl_union_set_lexmax.argtypes = [c_void_p] 9018isl.isl_union_set_lexmin.restype = c_void_p 9019isl.isl_union_set_lexmin.argtypes = [c_void_p] 9020isl.isl_union_set_polyhedral_hull.restype = c_void_p 9021isl.isl_union_set_polyhedral_hull.argtypes = [c_void_p] 9022isl.isl_union_set_preimage_multi_aff.restype = c_void_p 9023isl.isl_union_set_preimage_multi_aff.argtypes = [c_void_p, c_void_p] 9024isl.isl_union_set_preimage_pw_multi_aff.restype = c_void_p 9025isl.isl_union_set_preimage_pw_multi_aff.argtypes = [c_void_p, c_void_p] 9026isl.isl_union_set_preimage_union_pw_multi_aff.restype = c_void_p 9027isl.isl_union_set_preimage_union_pw_multi_aff.argtypes = [c_void_p, c_void_p] 9028isl.isl_union_set_sample_point.restype = c_void_p 9029isl.isl_union_set_sample_point.argtypes = [c_void_p] 9030isl.isl_union_set_subtract.restype = c_void_p 9031isl.isl_union_set_subtract.argtypes = [c_void_p, c_void_p] 9032isl.isl_union_set_union.restype = c_void_p 9033isl.isl_union_set_union.argtypes = [c_void_p, c_void_p] 9034isl.isl_union_set_universe.restype = c_void_p 9035isl.isl_union_set_universe.argtypes = [c_void_p] 9036isl.isl_union_set_unwrap.restype = c_void_p 9037isl.isl_union_set_unwrap.argtypes = [c_void_p] 9038isl.isl_union_set_copy.restype = c_void_p 9039isl.isl_union_set_copy.argtypes = [c_void_p] 9040isl.isl_union_set_free.restype = c_void_p 9041isl.isl_union_set_free.argtypes = [c_void_p] 9042isl.isl_union_set_to_str.restype = POINTER(c_char) 9043isl.isl_union_set_to_str.argtypes = [c_void_p] 9044 9045class set(union_set): 9046 def __init__(self, *args, **keywords): 9047 if "ptr" in keywords: 9048 self.ctx = keywords["ctx"] 9049 self.ptr = keywords["ptr"] 9050 return 9051 if len(args) == 1 and args[0].__class__ is basic_set: 9052 self.ctx = Context.getDefaultInstance() 9053 self.ptr = isl.isl_set_from_basic_set(isl.isl_basic_set_copy(args[0].ptr)) 9054 return 9055 if len(args) == 1 and args[0].__class__ is point: 9056 self.ctx = Context.getDefaultInstance() 9057 self.ptr = isl.isl_set_from_point(isl.isl_point_copy(args[0].ptr)) 9058 return 9059 if len(args) == 1 and type(args[0]) == str: 9060 self.ctx = Context.getDefaultInstance() 9061 self.ptr = isl.isl_set_read_from_str(self.ctx, args[0].encode('ascii')) 9062 return 9063 raise Error 9064 def __del__(self): 9065 if hasattr(self, 'ptr'): 9066 isl.isl_set_free(self.ptr) 9067 def __str__(arg0): 9068 try: 9069 if not arg0.__class__ is set: 9070 arg0 = set(arg0) 9071 except: 9072 raise 9073 ptr = isl.isl_set_to_str(arg0.ptr) 9074 res = cast(ptr, c_char_p).value.decode('ascii') 9075 libc.free(ptr) 9076 return res 9077 def __repr__(self): 9078 s = str(self) 9079 if '"' in s: 9080 return 'isl.set("""%s""")' % s 9081 else: 9082 return 'isl.set("%s")' % s 9083 def affine_hull(arg0): 9084 try: 9085 if not arg0.__class__ is set: 9086 arg0 = set(arg0) 9087 except: 9088 raise 9089 ctx = arg0.ctx 9090 res = isl.isl_set_affine_hull(isl.isl_set_copy(arg0.ptr)) 9091 obj = basic_set(ctx=ctx, ptr=res) 9092 return obj 9093 def apply(arg0, arg1): 9094 try: 9095 if not arg0.__class__ is set: 9096 arg0 = set(arg0) 9097 except: 9098 raise 9099 try: 9100 if not arg1.__class__ is map: 9101 arg1 = map(arg1) 9102 except: 9103 return union_set(arg0).apply(arg1) 9104 ctx = arg0.ctx 9105 res = isl.isl_set_apply(isl.isl_set_copy(arg0.ptr), isl.isl_map_copy(arg1.ptr)) 9106 obj = set(ctx=ctx, ptr=res) 9107 return obj 9108 def bind(arg0, arg1): 9109 try: 9110 if not arg0.__class__ is set: 9111 arg0 = set(arg0) 9112 except: 9113 raise 9114 try: 9115 if not arg1.__class__ is multi_id: 9116 arg1 = multi_id(arg1) 9117 except: 9118 return union_set(arg0).bind(arg1) 9119 ctx = arg0.ctx 9120 res = isl.isl_set_bind(isl.isl_set_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 9121 obj = set(ctx=ctx, ptr=res) 9122 return obj 9123 def coalesce(arg0): 9124 try: 9125 if not arg0.__class__ is set: 9126 arg0 = set(arg0) 9127 except: 9128 raise 9129 ctx = arg0.ctx 9130 res = isl.isl_set_coalesce(isl.isl_set_copy(arg0.ptr)) 9131 obj = set(ctx=ctx, ptr=res) 9132 return obj 9133 def complement(arg0): 9134 try: 9135 if not arg0.__class__ is set: 9136 arg0 = set(arg0) 9137 except: 9138 raise 9139 ctx = arg0.ctx 9140 res = isl.isl_set_complement(isl.isl_set_copy(arg0.ptr)) 9141 obj = set(ctx=ctx, ptr=res) 9142 return obj 9143 def detect_equalities(arg0): 9144 try: 9145 if not arg0.__class__ is set: 9146 arg0 = set(arg0) 9147 except: 9148 raise 9149 ctx = arg0.ctx 9150 res = isl.isl_set_detect_equalities(isl.isl_set_copy(arg0.ptr)) 9151 obj = set(ctx=ctx, ptr=res) 9152 return obj 9153 def dim_max_val(arg0, arg1): 9154 try: 9155 if not arg0.__class__ is set: 9156 arg0 = set(arg0) 9157 except: 9158 raise 9159 ctx = arg0.ctx 9160 res = isl.isl_set_dim_max_val(isl.isl_set_copy(arg0.ptr), arg1) 9161 obj = val(ctx=ctx, ptr=res) 9162 return obj 9163 def dim_min_val(arg0, arg1): 9164 try: 9165 if not arg0.__class__ is set: 9166 arg0 = set(arg0) 9167 except: 9168 raise 9169 ctx = arg0.ctx 9170 res = isl.isl_set_dim_min_val(isl.isl_set_copy(arg0.ptr), arg1) 9171 obj = val(ctx=ctx, ptr=res) 9172 return obj 9173 @staticmethod 9174 def empty(arg0): 9175 try: 9176 if not arg0.__class__ is space: 9177 arg0 = space(arg0) 9178 except: 9179 raise 9180 ctx = arg0.ctx 9181 res = isl.isl_set_empty(isl.isl_space_copy(arg0.ptr)) 9182 obj = set(ctx=ctx, ptr=res) 9183 return obj 9184 def flatten(arg0): 9185 try: 9186 if not arg0.__class__ is set: 9187 arg0 = set(arg0) 9188 except: 9189 raise 9190 ctx = arg0.ctx 9191 res = isl.isl_set_flatten(isl.isl_set_copy(arg0.ptr)) 9192 obj = set(ctx=ctx, ptr=res) 9193 return obj 9194 def foreach_basic_set(arg0, arg1): 9195 try: 9196 if not arg0.__class__ is set: 9197 arg0 = set(arg0) 9198 except: 9199 raise 9200 exc_info = [None] 9201 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 9202 def cb_func(cb_arg0, cb_arg1): 9203 cb_arg0 = basic_set(ctx=arg0.ctx, ptr=(cb_arg0)) 9204 try: 9205 arg1(cb_arg0) 9206 except: 9207 import sys 9208 exc_info[0] = sys.exc_info() 9209 return -1 9210 return 0 9211 cb = fn(cb_func) 9212 ctx = arg0.ctx 9213 res = isl.isl_set_foreach_basic_set(arg0.ptr, cb, None) 9214 if exc_info[0] != None: 9215 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 9216 if res < 0: 9217 raise 9218 def foreach_point(arg0, arg1): 9219 try: 9220 if not arg0.__class__ is set: 9221 arg0 = set(arg0) 9222 except: 9223 raise 9224 exc_info = [None] 9225 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 9226 def cb_func(cb_arg0, cb_arg1): 9227 cb_arg0 = point(ctx=arg0.ctx, ptr=(cb_arg0)) 9228 try: 9229 arg1(cb_arg0) 9230 except: 9231 import sys 9232 exc_info[0] = sys.exc_info() 9233 return -1 9234 return 0 9235 cb = fn(cb_func) 9236 ctx = arg0.ctx 9237 res = isl.isl_set_foreach_point(arg0.ptr, cb, None) 9238 if exc_info[0] != None: 9239 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 9240 if res < 0: 9241 raise 9242 def plain_multi_val_if_fixed(arg0): 9243 try: 9244 if not arg0.__class__ is set: 9245 arg0 = set(arg0) 9246 except: 9247 raise 9248 ctx = arg0.ctx 9249 res = isl.isl_set_get_plain_multi_val_if_fixed(arg0.ptr) 9250 obj = multi_val(ctx=ctx, ptr=res) 9251 return obj 9252 def get_plain_multi_val_if_fixed(arg0): 9253 return arg0.plain_multi_val_if_fixed() 9254 def simple_fixed_box_hull(arg0): 9255 try: 9256 if not arg0.__class__ is set: 9257 arg0 = set(arg0) 9258 except: 9259 raise 9260 ctx = arg0.ctx 9261 res = isl.isl_set_get_simple_fixed_box_hull(arg0.ptr) 9262 obj = fixed_box(ctx=ctx, ptr=res) 9263 return obj 9264 def get_simple_fixed_box_hull(arg0): 9265 return arg0.simple_fixed_box_hull() 9266 def space(arg0): 9267 try: 9268 if not arg0.__class__ is set: 9269 arg0 = set(arg0) 9270 except: 9271 raise 9272 ctx = arg0.ctx 9273 res = isl.isl_set_get_space(arg0.ptr) 9274 obj = space(ctx=ctx, ptr=res) 9275 return obj 9276 def get_space(arg0): 9277 return arg0.space() 9278 def stride(arg0, arg1): 9279 try: 9280 if not arg0.__class__ is set: 9281 arg0 = set(arg0) 9282 except: 9283 raise 9284 ctx = arg0.ctx 9285 res = isl.isl_set_get_stride(arg0.ptr, arg1) 9286 obj = val(ctx=ctx, ptr=res) 9287 return obj 9288 def get_stride(arg0, arg1): 9289 return arg0.stride(arg1) 9290 def gist(arg0, arg1): 9291 try: 9292 if not arg0.__class__ is set: 9293 arg0 = set(arg0) 9294 except: 9295 raise 9296 try: 9297 if not arg1.__class__ is set: 9298 arg1 = set(arg1) 9299 except: 9300 return union_set(arg0).gist(arg1) 9301 ctx = arg0.ctx 9302 res = isl.isl_set_gist(isl.isl_set_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 9303 obj = set(ctx=ctx, ptr=res) 9304 return obj 9305 def identity(arg0): 9306 try: 9307 if not arg0.__class__ is set: 9308 arg0 = set(arg0) 9309 except: 9310 raise 9311 ctx = arg0.ctx 9312 res = isl.isl_set_identity(isl.isl_set_copy(arg0.ptr)) 9313 obj = map(ctx=ctx, ptr=res) 9314 return obj 9315 def indicator_function(arg0): 9316 try: 9317 if not arg0.__class__ is set: 9318 arg0 = set(arg0) 9319 except: 9320 raise 9321 ctx = arg0.ctx 9322 res = isl.isl_set_indicator_function(isl.isl_set_copy(arg0.ptr)) 9323 obj = pw_aff(ctx=ctx, ptr=res) 9324 return obj 9325 def insert_domain(arg0, arg1): 9326 try: 9327 if not arg0.__class__ is set: 9328 arg0 = set(arg0) 9329 except: 9330 raise 9331 try: 9332 if not arg1.__class__ is space: 9333 arg1 = space(arg1) 9334 except: 9335 return union_set(arg0).insert_domain(arg1) 9336 ctx = arg0.ctx 9337 res = isl.isl_set_insert_domain(isl.isl_set_copy(arg0.ptr), isl.isl_space_copy(arg1.ptr)) 9338 obj = map(ctx=ctx, ptr=res) 9339 return obj 9340 def intersect(arg0, arg1): 9341 try: 9342 if not arg0.__class__ is set: 9343 arg0 = set(arg0) 9344 except: 9345 raise 9346 try: 9347 if not arg1.__class__ is set: 9348 arg1 = set(arg1) 9349 except: 9350 return union_set(arg0).intersect(arg1) 9351 ctx = arg0.ctx 9352 res = isl.isl_set_intersect(isl.isl_set_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 9353 obj = set(ctx=ctx, ptr=res) 9354 return obj 9355 def intersect_params(arg0, arg1): 9356 try: 9357 if not arg0.__class__ is set: 9358 arg0 = set(arg0) 9359 except: 9360 raise 9361 try: 9362 if not arg1.__class__ is set: 9363 arg1 = set(arg1) 9364 except: 9365 return union_set(arg0).intersect_params(arg1) 9366 ctx = arg0.ctx 9367 res = isl.isl_set_intersect_params(isl.isl_set_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 9368 obj = set(ctx=ctx, ptr=res) 9369 return obj 9370 def involves_locals(arg0): 9371 try: 9372 if not arg0.__class__ is set: 9373 arg0 = set(arg0) 9374 except: 9375 raise 9376 ctx = arg0.ctx 9377 res = isl.isl_set_involves_locals(arg0.ptr) 9378 if res < 0: 9379 raise 9380 return bool(res) 9381 def is_disjoint(arg0, arg1): 9382 try: 9383 if not arg0.__class__ is set: 9384 arg0 = set(arg0) 9385 except: 9386 raise 9387 try: 9388 if not arg1.__class__ is set: 9389 arg1 = set(arg1) 9390 except: 9391 return union_set(arg0).is_disjoint(arg1) 9392 ctx = arg0.ctx 9393 res = isl.isl_set_is_disjoint(arg0.ptr, arg1.ptr) 9394 if res < 0: 9395 raise 9396 return bool(res) 9397 def is_empty(arg0): 9398 try: 9399 if not arg0.__class__ is set: 9400 arg0 = set(arg0) 9401 except: 9402 raise 9403 ctx = arg0.ctx 9404 res = isl.isl_set_is_empty(arg0.ptr) 9405 if res < 0: 9406 raise 9407 return bool(res) 9408 def is_equal(arg0, arg1): 9409 try: 9410 if not arg0.__class__ is set: 9411 arg0 = set(arg0) 9412 except: 9413 raise 9414 try: 9415 if not arg1.__class__ is set: 9416 arg1 = set(arg1) 9417 except: 9418 return union_set(arg0).is_equal(arg1) 9419 ctx = arg0.ctx 9420 res = isl.isl_set_is_equal(arg0.ptr, arg1.ptr) 9421 if res < 0: 9422 raise 9423 return bool(res) 9424 def is_singleton(arg0): 9425 try: 9426 if not arg0.__class__ is set: 9427 arg0 = set(arg0) 9428 except: 9429 raise 9430 ctx = arg0.ctx 9431 res = isl.isl_set_is_singleton(arg0.ptr) 9432 if res < 0: 9433 raise 9434 return bool(res) 9435 def is_strict_subset(arg0, arg1): 9436 try: 9437 if not arg0.__class__ is set: 9438 arg0 = set(arg0) 9439 except: 9440 raise 9441 try: 9442 if not arg1.__class__ is set: 9443 arg1 = set(arg1) 9444 except: 9445 return union_set(arg0).is_strict_subset(arg1) 9446 ctx = arg0.ctx 9447 res = isl.isl_set_is_strict_subset(arg0.ptr, arg1.ptr) 9448 if res < 0: 9449 raise 9450 return bool(res) 9451 def is_subset(arg0, arg1): 9452 try: 9453 if not arg0.__class__ is set: 9454 arg0 = set(arg0) 9455 except: 9456 raise 9457 try: 9458 if not arg1.__class__ is set: 9459 arg1 = set(arg1) 9460 except: 9461 return union_set(arg0).is_subset(arg1) 9462 ctx = arg0.ctx 9463 res = isl.isl_set_is_subset(arg0.ptr, arg1.ptr) 9464 if res < 0: 9465 raise 9466 return bool(res) 9467 def is_wrapping(arg0): 9468 try: 9469 if not arg0.__class__ is set: 9470 arg0 = set(arg0) 9471 except: 9472 raise 9473 ctx = arg0.ctx 9474 res = isl.isl_set_is_wrapping(arg0.ptr) 9475 if res < 0: 9476 raise 9477 return bool(res) 9478 def lexmax(arg0): 9479 try: 9480 if not arg0.__class__ is set: 9481 arg0 = set(arg0) 9482 except: 9483 raise 9484 ctx = arg0.ctx 9485 res = isl.isl_set_lexmax(isl.isl_set_copy(arg0.ptr)) 9486 obj = set(ctx=ctx, ptr=res) 9487 return obj 9488 def lexmax_pw_multi_aff(arg0): 9489 try: 9490 if not arg0.__class__ is set: 9491 arg0 = set(arg0) 9492 except: 9493 raise 9494 ctx = arg0.ctx 9495 res = isl.isl_set_lexmax_pw_multi_aff(isl.isl_set_copy(arg0.ptr)) 9496 obj = pw_multi_aff(ctx=ctx, ptr=res) 9497 return obj 9498 def lexmin(arg0): 9499 try: 9500 if not arg0.__class__ is set: 9501 arg0 = set(arg0) 9502 except: 9503 raise 9504 ctx = arg0.ctx 9505 res = isl.isl_set_lexmin(isl.isl_set_copy(arg0.ptr)) 9506 obj = set(ctx=ctx, ptr=res) 9507 return obj 9508 def lexmin_pw_multi_aff(arg0): 9509 try: 9510 if not arg0.__class__ is set: 9511 arg0 = set(arg0) 9512 except: 9513 raise 9514 ctx = arg0.ctx 9515 res = isl.isl_set_lexmin_pw_multi_aff(isl.isl_set_copy(arg0.ptr)) 9516 obj = pw_multi_aff(ctx=ctx, ptr=res) 9517 return obj 9518 def lower_bound(*args): 9519 if len(args) == 2 and args[1].__class__ is multi_pw_aff: 9520 ctx = args[0].ctx 9521 res = isl.isl_set_lower_bound_multi_pw_aff(isl.isl_set_copy(args[0].ptr), isl.isl_multi_pw_aff_copy(args[1].ptr)) 9522 obj = set(ctx=ctx, ptr=res) 9523 return obj 9524 if len(args) == 2 and args[1].__class__ is multi_val: 9525 ctx = args[0].ctx 9526 res = isl.isl_set_lower_bound_multi_val(isl.isl_set_copy(args[0].ptr), isl.isl_multi_val_copy(args[1].ptr)) 9527 obj = set(ctx=ctx, ptr=res) 9528 return obj 9529 raise Error 9530 def max_multi_pw_aff(arg0): 9531 try: 9532 if not arg0.__class__ is set: 9533 arg0 = set(arg0) 9534 except: 9535 raise 9536 ctx = arg0.ctx 9537 res = isl.isl_set_max_multi_pw_aff(isl.isl_set_copy(arg0.ptr)) 9538 obj = multi_pw_aff(ctx=ctx, ptr=res) 9539 return obj 9540 def max_val(arg0, arg1): 9541 try: 9542 if not arg0.__class__ is set: 9543 arg0 = set(arg0) 9544 except: 9545 raise 9546 try: 9547 if not arg1.__class__ is aff: 9548 arg1 = aff(arg1) 9549 except: 9550 return union_set(arg0).max_val(arg1) 9551 ctx = arg0.ctx 9552 res = isl.isl_set_max_val(arg0.ptr, arg1.ptr) 9553 obj = val(ctx=ctx, ptr=res) 9554 return obj 9555 def min_multi_pw_aff(arg0): 9556 try: 9557 if not arg0.__class__ is set: 9558 arg0 = set(arg0) 9559 except: 9560 raise 9561 ctx = arg0.ctx 9562 res = isl.isl_set_min_multi_pw_aff(isl.isl_set_copy(arg0.ptr)) 9563 obj = multi_pw_aff(ctx=ctx, ptr=res) 9564 return obj 9565 def min_val(arg0, arg1): 9566 try: 9567 if not arg0.__class__ is set: 9568 arg0 = set(arg0) 9569 except: 9570 raise 9571 try: 9572 if not arg1.__class__ is aff: 9573 arg1 = aff(arg1) 9574 except: 9575 return union_set(arg0).min_val(arg1) 9576 ctx = arg0.ctx 9577 res = isl.isl_set_min_val(arg0.ptr, arg1.ptr) 9578 obj = val(ctx=ctx, ptr=res) 9579 return obj 9580 def params(arg0): 9581 try: 9582 if not arg0.__class__ is set: 9583 arg0 = set(arg0) 9584 except: 9585 raise 9586 ctx = arg0.ctx 9587 res = isl.isl_set_params(isl.isl_set_copy(arg0.ptr)) 9588 obj = set(ctx=ctx, ptr=res) 9589 return obj 9590 def polyhedral_hull(arg0): 9591 try: 9592 if not arg0.__class__ is set: 9593 arg0 = set(arg0) 9594 except: 9595 raise 9596 ctx = arg0.ctx 9597 res = isl.isl_set_polyhedral_hull(isl.isl_set_copy(arg0.ptr)) 9598 obj = basic_set(ctx=ctx, ptr=res) 9599 return obj 9600 def preimage(*args): 9601 if len(args) == 2 and args[1].__class__ is multi_aff: 9602 ctx = args[0].ctx 9603 res = isl.isl_set_preimage_multi_aff(isl.isl_set_copy(args[0].ptr), isl.isl_multi_aff_copy(args[1].ptr)) 9604 obj = set(ctx=ctx, ptr=res) 9605 return obj 9606 if len(args) == 2 and args[1].__class__ is multi_pw_aff: 9607 ctx = args[0].ctx 9608 res = isl.isl_set_preimage_multi_pw_aff(isl.isl_set_copy(args[0].ptr), isl.isl_multi_pw_aff_copy(args[1].ptr)) 9609 obj = set(ctx=ctx, ptr=res) 9610 return obj 9611 if len(args) == 2 and args[1].__class__ is pw_multi_aff: 9612 ctx = args[0].ctx 9613 res = isl.isl_set_preimage_pw_multi_aff(isl.isl_set_copy(args[0].ptr), isl.isl_pw_multi_aff_copy(args[1].ptr)) 9614 obj = set(ctx=ctx, ptr=res) 9615 return obj 9616 raise Error 9617 def product(arg0, arg1): 9618 try: 9619 if not arg0.__class__ is set: 9620 arg0 = set(arg0) 9621 except: 9622 raise 9623 try: 9624 if not arg1.__class__ is set: 9625 arg1 = set(arg1) 9626 except: 9627 return union_set(arg0).product(arg1) 9628 ctx = arg0.ctx 9629 res = isl.isl_set_product(isl.isl_set_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 9630 obj = set(ctx=ctx, ptr=res) 9631 return obj 9632 def project_out_all_params(arg0): 9633 try: 9634 if not arg0.__class__ is set: 9635 arg0 = set(arg0) 9636 except: 9637 raise 9638 ctx = arg0.ctx 9639 res = isl.isl_set_project_out_all_params(isl.isl_set_copy(arg0.ptr)) 9640 obj = set(ctx=ctx, ptr=res) 9641 return obj 9642 def project_out_param(*args): 9643 if len(args) == 2 and (args[1].__class__ is id or type(args[1]) == str): 9644 args = list(args) 9645 try: 9646 if not args[1].__class__ is id: 9647 args[1] = id(args[1]) 9648 except: 9649 raise 9650 ctx = args[0].ctx 9651 res = isl.isl_set_project_out_param_id(isl.isl_set_copy(args[0].ptr), isl.isl_id_copy(args[1].ptr)) 9652 obj = set(ctx=ctx, ptr=res) 9653 return obj 9654 if len(args) == 2 and args[1].__class__ is id_list: 9655 ctx = args[0].ctx 9656 res = isl.isl_set_project_out_param_id_list(isl.isl_set_copy(args[0].ptr), isl.isl_id_list_copy(args[1].ptr)) 9657 obj = set(ctx=ctx, ptr=res) 9658 return obj 9659 raise Error 9660 def sample(arg0): 9661 try: 9662 if not arg0.__class__ is set: 9663 arg0 = set(arg0) 9664 except: 9665 raise 9666 ctx = arg0.ctx 9667 res = isl.isl_set_sample(isl.isl_set_copy(arg0.ptr)) 9668 obj = basic_set(ctx=ctx, ptr=res) 9669 return obj 9670 def sample_point(arg0): 9671 try: 9672 if not arg0.__class__ is set: 9673 arg0 = set(arg0) 9674 except: 9675 raise 9676 ctx = arg0.ctx 9677 res = isl.isl_set_sample_point(isl.isl_set_copy(arg0.ptr)) 9678 obj = point(ctx=ctx, ptr=res) 9679 return obj 9680 def subtract(arg0, arg1): 9681 try: 9682 if not arg0.__class__ is set: 9683 arg0 = set(arg0) 9684 except: 9685 raise 9686 try: 9687 if not arg1.__class__ is set: 9688 arg1 = set(arg1) 9689 except: 9690 return union_set(arg0).subtract(arg1) 9691 ctx = arg0.ctx 9692 res = isl.isl_set_subtract(isl.isl_set_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 9693 obj = set(ctx=ctx, ptr=res) 9694 return obj 9695 def unbind_params(arg0, arg1): 9696 try: 9697 if not arg0.__class__ is set: 9698 arg0 = set(arg0) 9699 except: 9700 raise 9701 try: 9702 if not arg1.__class__ is multi_id: 9703 arg1 = multi_id(arg1) 9704 except: 9705 return union_set(arg0).unbind_params(arg1) 9706 ctx = arg0.ctx 9707 res = isl.isl_set_unbind_params(isl.isl_set_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 9708 obj = set(ctx=ctx, ptr=res) 9709 return obj 9710 def unbind_params_insert_domain(arg0, arg1): 9711 try: 9712 if not arg0.__class__ is set: 9713 arg0 = set(arg0) 9714 except: 9715 raise 9716 try: 9717 if not arg1.__class__ is multi_id: 9718 arg1 = multi_id(arg1) 9719 except: 9720 return union_set(arg0).unbind_params_insert_domain(arg1) 9721 ctx = arg0.ctx 9722 res = isl.isl_set_unbind_params_insert_domain(isl.isl_set_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 9723 obj = map(ctx=ctx, ptr=res) 9724 return obj 9725 def union(arg0, arg1): 9726 try: 9727 if not arg0.__class__ is set: 9728 arg0 = set(arg0) 9729 except: 9730 raise 9731 try: 9732 if not arg1.__class__ is set: 9733 arg1 = set(arg1) 9734 except: 9735 return union_set(arg0).union(arg1) 9736 ctx = arg0.ctx 9737 res = isl.isl_set_union(isl.isl_set_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 9738 obj = set(ctx=ctx, ptr=res) 9739 return obj 9740 @staticmethod 9741 def universe(arg0): 9742 try: 9743 if not arg0.__class__ is space: 9744 arg0 = space(arg0) 9745 except: 9746 raise 9747 ctx = arg0.ctx 9748 res = isl.isl_set_universe(isl.isl_space_copy(arg0.ptr)) 9749 obj = set(ctx=ctx, ptr=res) 9750 return obj 9751 def unshifted_simple_hull(arg0): 9752 try: 9753 if not arg0.__class__ is set: 9754 arg0 = set(arg0) 9755 except: 9756 raise 9757 ctx = arg0.ctx 9758 res = isl.isl_set_unshifted_simple_hull(isl.isl_set_copy(arg0.ptr)) 9759 obj = basic_set(ctx=ctx, ptr=res) 9760 return obj 9761 def unwrap(arg0): 9762 try: 9763 if not arg0.__class__ is set: 9764 arg0 = set(arg0) 9765 except: 9766 raise 9767 ctx = arg0.ctx 9768 res = isl.isl_set_unwrap(isl.isl_set_copy(arg0.ptr)) 9769 obj = map(ctx=ctx, ptr=res) 9770 return obj 9771 def upper_bound(*args): 9772 if len(args) == 2 and args[1].__class__ is multi_pw_aff: 9773 ctx = args[0].ctx 9774 res = isl.isl_set_upper_bound_multi_pw_aff(isl.isl_set_copy(args[0].ptr), isl.isl_multi_pw_aff_copy(args[1].ptr)) 9775 obj = set(ctx=ctx, ptr=res) 9776 return obj 9777 if len(args) == 2 and args[1].__class__ is multi_val: 9778 ctx = args[0].ctx 9779 res = isl.isl_set_upper_bound_multi_val(isl.isl_set_copy(args[0].ptr), isl.isl_multi_val_copy(args[1].ptr)) 9780 obj = set(ctx=ctx, ptr=res) 9781 return obj 9782 raise Error 9783 9784isl.isl_set_from_basic_set.restype = c_void_p 9785isl.isl_set_from_basic_set.argtypes = [c_void_p] 9786isl.isl_set_from_point.restype = c_void_p 9787isl.isl_set_from_point.argtypes = [c_void_p] 9788isl.isl_set_read_from_str.restype = c_void_p 9789isl.isl_set_read_from_str.argtypes = [Context, c_char_p] 9790isl.isl_set_affine_hull.restype = c_void_p 9791isl.isl_set_affine_hull.argtypes = [c_void_p] 9792isl.isl_set_apply.restype = c_void_p 9793isl.isl_set_apply.argtypes = [c_void_p, c_void_p] 9794isl.isl_set_bind.restype = c_void_p 9795isl.isl_set_bind.argtypes = [c_void_p, c_void_p] 9796isl.isl_set_coalesce.restype = c_void_p 9797isl.isl_set_coalesce.argtypes = [c_void_p] 9798isl.isl_set_complement.restype = c_void_p 9799isl.isl_set_complement.argtypes = [c_void_p] 9800isl.isl_set_detect_equalities.restype = c_void_p 9801isl.isl_set_detect_equalities.argtypes = [c_void_p] 9802isl.isl_set_dim_max_val.restype = c_void_p 9803isl.isl_set_dim_max_val.argtypes = [c_void_p, c_int] 9804isl.isl_set_dim_min_val.restype = c_void_p 9805isl.isl_set_dim_min_val.argtypes = [c_void_p, c_int] 9806isl.isl_set_empty.restype = c_void_p 9807isl.isl_set_empty.argtypes = [c_void_p] 9808isl.isl_set_flatten.restype = c_void_p 9809isl.isl_set_flatten.argtypes = [c_void_p] 9810isl.isl_set_foreach_basic_set.argtypes = [c_void_p, c_void_p, c_void_p] 9811isl.isl_set_foreach_point.argtypes = [c_void_p, c_void_p, c_void_p] 9812isl.isl_set_get_plain_multi_val_if_fixed.restype = c_void_p 9813isl.isl_set_get_plain_multi_val_if_fixed.argtypes = [c_void_p] 9814isl.isl_set_get_simple_fixed_box_hull.restype = c_void_p 9815isl.isl_set_get_simple_fixed_box_hull.argtypes = [c_void_p] 9816isl.isl_set_get_space.restype = c_void_p 9817isl.isl_set_get_space.argtypes = [c_void_p] 9818isl.isl_set_get_stride.restype = c_void_p 9819isl.isl_set_get_stride.argtypes = [c_void_p, c_int] 9820isl.isl_set_gist.restype = c_void_p 9821isl.isl_set_gist.argtypes = [c_void_p, c_void_p] 9822isl.isl_set_identity.restype = c_void_p 9823isl.isl_set_identity.argtypes = [c_void_p] 9824isl.isl_set_indicator_function.restype = c_void_p 9825isl.isl_set_indicator_function.argtypes = [c_void_p] 9826isl.isl_set_insert_domain.restype = c_void_p 9827isl.isl_set_insert_domain.argtypes = [c_void_p, c_void_p] 9828isl.isl_set_intersect.restype = c_void_p 9829isl.isl_set_intersect.argtypes = [c_void_p, c_void_p] 9830isl.isl_set_intersect_params.restype = c_void_p 9831isl.isl_set_intersect_params.argtypes = [c_void_p, c_void_p] 9832isl.isl_set_involves_locals.argtypes = [c_void_p] 9833isl.isl_set_is_disjoint.argtypes = [c_void_p, c_void_p] 9834isl.isl_set_is_empty.argtypes = [c_void_p] 9835isl.isl_set_is_equal.argtypes = [c_void_p, c_void_p] 9836isl.isl_set_is_singleton.argtypes = [c_void_p] 9837isl.isl_set_is_strict_subset.argtypes = [c_void_p, c_void_p] 9838isl.isl_set_is_subset.argtypes = [c_void_p, c_void_p] 9839isl.isl_set_is_wrapping.argtypes = [c_void_p] 9840isl.isl_set_lexmax.restype = c_void_p 9841isl.isl_set_lexmax.argtypes = [c_void_p] 9842isl.isl_set_lexmax_pw_multi_aff.restype = c_void_p 9843isl.isl_set_lexmax_pw_multi_aff.argtypes = [c_void_p] 9844isl.isl_set_lexmin.restype = c_void_p 9845isl.isl_set_lexmin.argtypes = [c_void_p] 9846isl.isl_set_lexmin_pw_multi_aff.restype = c_void_p 9847isl.isl_set_lexmin_pw_multi_aff.argtypes = [c_void_p] 9848isl.isl_set_lower_bound_multi_pw_aff.restype = c_void_p 9849isl.isl_set_lower_bound_multi_pw_aff.argtypes = [c_void_p, c_void_p] 9850isl.isl_set_lower_bound_multi_val.restype = c_void_p 9851isl.isl_set_lower_bound_multi_val.argtypes = [c_void_p, c_void_p] 9852isl.isl_set_max_multi_pw_aff.restype = c_void_p 9853isl.isl_set_max_multi_pw_aff.argtypes = [c_void_p] 9854isl.isl_set_max_val.restype = c_void_p 9855isl.isl_set_max_val.argtypes = [c_void_p, c_void_p] 9856isl.isl_set_min_multi_pw_aff.restype = c_void_p 9857isl.isl_set_min_multi_pw_aff.argtypes = [c_void_p] 9858isl.isl_set_min_val.restype = c_void_p 9859isl.isl_set_min_val.argtypes = [c_void_p, c_void_p] 9860isl.isl_set_params.restype = c_void_p 9861isl.isl_set_params.argtypes = [c_void_p] 9862isl.isl_set_polyhedral_hull.restype = c_void_p 9863isl.isl_set_polyhedral_hull.argtypes = [c_void_p] 9864isl.isl_set_preimage_multi_aff.restype = c_void_p 9865isl.isl_set_preimage_multi_aff.argtypes = [c_void_p, c_void_p] 9866isl.isl_set_preimage_multi_pw_aff.restype = c_void_p 9867isl.isl_set_preimage_multi_pw_aff.argtypes = [c_void_p, c_void_p] 9868isl.isl_set_preimage_pw_multi_aff.restype = c_void_p 9869isl.isl_set_preimage_pw_multi_aff.argtypes = [c_void_p, c_void_p] 9870isl.isl_set_product.restype = c_void_p 9871isl.isl_set_product.argtypes = [c_void_p, c_void_p] 9872isl.isl_set_project_out_all_params.restype = c_void_p 9873isl.isl_set_project_out_all_params.argtypes = [c_void_p] 9874isl.isl_set_project_out_param_id.restype = c_void_p 9875isl.isl_set_project_out_param_id.argtypes = [c_void_p, c_void_p] 9876isl.isl_set_project_out_param_id_list.restype = c_void_p 9877isl.isl_set_project_out_param_id_list.argtypes = [c_void_p, c_void_p] 9878isl.isl_set_sample.restype = c_void_p 9879isl.isl_set_sample.argtypes = [c_void_p] 9880isl.isl_set_sample_point.restype = c_void_p 9881isl.isl_set_sample_point.argtypes = [c_void_p] 9882isl.isl_set_subtract.restype = c_void_p 9883isl.isl_set_subtract.argtypes = [c_void_p, c_void_p] 9884isl.isl_set_unbind_params.restype = c_void_p 9885isl.isl_set_unbind_params.argtypes = [c_void_p, c_void_p] 9886isl.isl_set_unbind_params_insert_domain.restype = c_void_p 9887isl.isl_set_unbind_params_insert_domain.argtypes = [c_void_p, c_void_p] 9888isl.isl_set_union.restype = c_void_p 9889isl.isl_set_union.argtypes = [c_void_p, c_void_p] 9890isl.isl_set_universe.restype = c_void_p 9891isl.isl_set_universe.argtypes = [c_void_p] 9892isl.isl_set_unshifted_simple_hull.restype = c_void_p 9893isl.isl_set_unshifted_simple_hull.argtypes = [c_void_p] 9894isl.isl_set_unwrap.restype = c_void_p 9895isl.isl_set_unwrap.argtypes = [c_void_p] 9896isl.isl_set_upper_bound_multi_pw_aff.restype = c_void_p 9897isl.isl_set_upper_bound_multi_pw_aff.argtypes = [c_void_p, c_void_p] 9898isl.isl_set_upper_bound_multi_val.restype = c_void_p 9899isl.isl_set_upper_bound_multi_val.argtypes = [c_void_p, c_void_p] 9900isl.isl_set_copy.restype = c_void_p 9901isl.isl_set_copy.argtypes = [c_void_p] 9902isl.isl_set_free.restype = c_void_p 9903isl.isl_set_free.argtypes = [c_void_p] 9904isl.isl_set_to_str.restype = POINTER(c_char) 9905isl.isl_set_to_str.argtypes = [c_void_p] 9906 9907class basic_set(set): 9908 def __init__(self, *args, **keywords): 9909 if "ptr" in keywords: 9910 self.ctx = keywords["ctx"] 9911 self.ptr = keywords["ptr"] 9912 return 9913 if len(args) == 1 and args[0].__class__ is point: 9914 self.ctx = Context.getDefaultInstance() 9915 self.ptr = isl.isl_basic_set_from_point(isl.isl_point_copy(args[0].ptr)) 9916 return 9917 if len(args) == 1 and type(args[0]) == str: 9918 self.ctx = Context.getDefaultInstance() 9919 self.ptr = isl.isl_basic_set_read_from_str(self.ctx, args[0].encode('ascii')) 9920 return 9921 raise Error 9922 def __del__(self): 9923 if hasattr(self, 'ptr'): 9924 isl.isl_basic_set_free(self.ptr) 9925 def __str__(arg0): 9926 try: 9927 if not arg0.__class__ is basic_set: 9928 arg0 = basic_set(arg0) 9929 except: 9930 raise 9931 ptr = isl.isl_basic_set_to_str(arg0.ptr) 9932 res = cast(ptr, c_char_p).value.decode('ascii') 9933 libc.free(ptr) 9934 return res 9935 def __repr__(self): 9936 s = str(self) 9937 if '"' in s: 9938 return 'isl.basic_set("""%s""")' % s 9939 else: 9940 return 'isl.basic_set("%s")' % s 9941 def affine_hull(arg0): 9942 try: 9943 if not arg0.__class__ is basic_set: 9944 arg0 = basic_set(arg0) 9945 except: 9946 raise 9947 ctx = arg0.ctx 9948 res = isl.isl_basic_set_affine_hull(isl.isl_basic_set_copy(arg0.ptr)) 9949 obj = basic_set(ctx=ctx, ptr=res) 9950 return obj 9951 def apply(arg0, arg1): 9952 try: 9953 if not arg0.__class__ is basic_set: 9954 arg0 = basic_set(arg0) 9955 except: 9956 raise 9957 try: 9958 if not arg1.__class__ is basic_map: 9959 arg1 = basic_map(arg1) 9960 except: 9961 return set(arg0).apply(arg1) 9962 ctx = arg0.ctx 9963 res = isl.isl_basic_set_apply(isl.isl_basic_set_copy(arg0.ptr), isl.isl_basic_map_copy(arg1.ptr)) 9964 obj = basic_set(ctx=ctx, ptr=res) 9965 return obj 9966 def detect_equalities(arg0): 9967 try: 9968 if not arg0.__class__ is basic_set: 9969 arg0 = basic_set(arg0) 9970 except: 9971 raise 9972 ctx = arg0.ctx 9973 res = isl.isl_basic_set_detect_equalities(isl.isl_basic_set_copy(arg0.ptr)) 9974 obj = basic_set(ctx=ctx, ptr=res) 9975 return obj 9976 def dim_max_val(arg0, arg1): 9977 try: 9978 if not arg0.__class__ is basic_set: 9979 arg0 = basic_set(arg0) 9980 except: 9981 raise 9982 ctx = arg0.ctx 9983 res = isl.isl_basic_set_dim_max_val(isl.isl_basic_set_copy(arg0.ptr), arg1) 9984 obj = val(ctx=ctx, ptr=res) 9985 return obj 9986 def flatten(arg0): 9987 try: 9988 if not arg0.__class__ is basic_set: 9989 arg0 = basic_set(arg0) 9990 except: 9991 raise 9992 ctx = arg0.ctx 9993 res = isl.isl_basic_set_flatten(isl.isl_basic_set_copy(arg0.ptr)) 9994 obj = basic_set(ctx=ctx, ptr=res) 9995 return obj 9996 def gist(arg0, arg1): 9997 try: 9998 if not arg0.__class__ is basic_set: 9999 arg0 = basic_set(arg0) 10000 except: 10001 raise 10002 try: 10003 if not arg1.__class__ is basic_set: 10004 arg1 = basic_set(arg1) 10005 except: 10006 return set(arg0).gist(arg1) 10007 ctx = arg0.ctx 10008 res = isl.isl_basic_set_gist(isl.isl_basic_set_copy(arg0.ptr), isl.isl_basic_set_copy(arg1.ptr)) 10009 obj = basic_set(ctx=ctx, ptr=res) 10010 return obj 10011 def intersect(arg0, arg1): 10012 try: 10013 if not arg0.__class__ is basic_set: 10014 arg0 = basic_set(arg0) 10015 except: 10016 raise 10017 try: 10018 if not arg1.__class__ is basic_set: 10019 arg1 = basic_set(arg1) 10020 except: 10021 return set(arg0).intersect(arg1) 10022 ctx = arg0.ctx 10023 res = isl.isl_basic_set_intersect(isl.isl_basic_set_copy(arg0.ptr), isl.isl_basic_set_copy(arg1.ptr)) 10024 obj = basic_set(ctx=ctx, ptr=res) 10025 return obj 10026 def intersect_params(arg0, arg1): 10027 try: 10028 if not arg0.__class__ is basic_set: 10029 arg0 = basic_set(arg0) 10030 except: 10031 raise 10032 try: 10033 if not arg1.__class__ is basic_set: 10034 arg1 = basic_set(arg1) 10035 except: 10036 return set(arg0).intersect_params(arg1) 10037 ctx = arg0.ctx 10038 res = isl.isl_basic_set_intersect_params(isl.isl_basic_set_copy(arg0.ptr), isl.isl_basic_set_copy(arg1.ptr)) 10039 obj = basic_set(ctx=ctx, ptr=res) 10040 return obj 10041 def is_empty(arg0): 10042 try: 10043 if not arg0.__class__ is basic_set: 10044 arg0 = basic_set(arg0) 10045 except: 10046 raise 10047 ctx = arg0.ctx 10048 res = isl.isl_basic_set_is_empty(arg0.ptr) 10049 if res < 0: 10050 raise 10051 return bool(res) 10052 def is_equal(arg0, arg1): 10053 try: 10054 if not arg0.__class__ is basic_set: 10055 arg0 = basic_set(arg0) 10056 except: 10057 raise 10058 try: 10059 if not arg1.__class__ is basic_set: 10060 arg1 = basic_set(arg1) 10061 except: 10062 return set(arg0).is_equal(arg1) 10063 ctx = arg0.ctx 10064 res = isl.isl_basic_set_is_equal(arg0.ptr, arg1.ptr) 10065 if res < 0: 10066 raise 10067 return bool(res) 10068 def is_subset(arg0, arg1): 10069 try: 10070 if not arg0.__class__ is basic_set: 10071 arg0 = basic_set(arg0) 10072 except: 10073 raise 10074 try: 10075 if not arg1.__class__ is basic_set: 10076 arg1 = basic_set(arg1) 10077 except: 10078 return set(arg0).is_subset(arg1) 10079 ctx = arg0.ctx 10080 res = isl.isl_basic_set_is_subset(arg0.ptr, arg1.ptr) 10081 if res < 0: 10082 raise 10083 return bool(res) 10084 def is_wrapping(arg0): 10085 try: 10086 if not arg0.__class__ is basic_set: 10087 arg0 = basic_set(arg0) 10088 except: 10089 raise 10090 ctx = arg0.ctx 10091 res = isl.isl_basic_set_is_wrapping(arg0.ptr) 10092 if res < 0: 10093 raise 10094 return bool(res) 10095 def lexmax(arg0): 10096 try: 10097 if not arg0.__class__ is basic_set: 10098 arg0 = basic_set(arg0) 10099 except: 10100 raise 10101 ctx = arg0.ctx 10102 res = isl.isl_basic_set_lexmax(isl.isl_basic_set_copy(arg0.ptr)) 10103 obj = set(ctx=ctx, ptr=res) 10104 return obj 10105 def lexmin(arg0): 10106 try: 10107 if not arg0.__class__ is basic_set: 10108 arg0 = basic_set(arg0) 10109 except: 10110 raise 10111 ctx = arg0.ctx 10112 res = isl.isl_basic_set_lexmin(isl.isl_basic_set_copy(arg0.ptr)) 10113 obj = set(ctx=ctx, ptr=res) 10114 return obj 10115 def params(arg0): 10116 try: 10117 if not arg0.__class__ is basic_set: 10118 arg0 = basic_set(arg0) 10119 except: 10120 raise 10121 ctx = arg0.ctx 10122 res = isl.isl_basic_set_params(isl.isl_basic_set_copy(arg0.ptr)) 10123 obj = basic_set(ctx=ctx, ptr=res) 10124 return obj 10125 def sample(arg0): 10126 try: 10127 if not arg0.__class__ is basic_set: 10128 arg0 = basic_set(arg0) 10129 except: 10130 raise 10131 ctx = arg0.ctx 10132 res = isl.isl_basic_set_sample(isl.isl_basic_set_copy(arg0.ptr)) 10133 obj = basic_set(ctx=ctx, ptr=res) 10134 return obj 10135 def sample_point(arg0): 10136 try: 10137 if not arg0.__class__ is basic_set: 10138 arg0 = basic_set(arg0) 10139 except: 10140 raise 10141 ctx = arg0.ctx 10142 res = isl.isl_basic_set_sample_point(isl.isl_basic_set_copy(arg0.ptr)) 10143 obj = point(ctx=ctx, ptr=res) 10144 return obj 10145 def union(arg0, arg1): 10146 try: 10147 if not arg0.__class__ is basic_set: 10148 arg0 = basic_set(arg0) 10149 except: 10150 raise 10151 try: 10152 if not arg1.__class__ is basic_set: 10153 arg1 = basic_set(arg1) 10154 except: 10155 return set(arg0).union(arg1) 10156 ctx = arg0.ctx 10157 res = isl.isl_basic_set_union(isl.isl_basic_set_copy(arg0.ptr), isl.isl_basic_set_copy(arg1.ptr)) 10158 obj = set(ctx=ctx, ptr=res) 10159 return obj 10160 10161isl.isl_basic_set_from_point.restype = c_void_p 10162isl.isl_basic_set_from_point.argtypes = [c_void_p] 10163isl.isl_basic_set_read_from_str.restype = c_void_p 10164isl.isl_basic_set_read_from_str.argtypes = [Context, c_char_p] 10165isl.isl_basic_set_affine_hull.restype = c_void_p 10166isl.isl_basic_set_affine_hull.argtypes = [c_void_p] 10167isl.isl_basic_set_apply.restype = c_void_p 10168isl.isl_basic_set_apply.argtypes = [c_void_p, c_void_p] 10169isl.isl_basic_set_detect_equalities.restype = c_void_p 10170isl.isl_basic_set_detect_equalities.argtypes = [c_void_p] 10171isl.isl_basic_set_dim_max_val.restype = c_void_p 10172isl.isl_basic_set_dim_max_val.argtypes = [c_void_p, c_int] 10173isl.isl_basic_set_flatten.restype = c_void_p 10174isl.isl_basic_set_flatten.argtypes = [c_void_p] 10175isl.isl_basic_set_gist.restype = c_void_p 10176isl.isl_basic_set_gist.argtypes = [c_void_p, c_void_p] 10177isl.isl_basic_set_intersect.restype = c_void_p 10178isl.isl_basic_set_intersect.argtypes = [c_void_p, c_void_p] 10179isl.isl_basic_set_intersect_params.restype = c_void_p 10180isl.isl_basic_set_intersect_params.argtypes = [c_void_p, c_void_p] 10181isl.isl_basic_set_is_empty.argtypes = [c_void_p] 10182isl.isl_basic_set_is_equal.argtypes = [c_void_p, c_void_p] 10183isl.isl_basic_set_is_subset.argtypes = [c_void_p, c_void_p] 10184isl.isl_basic_set_is_wrapping.argtypes = [c_void_p] 10185isl.isl_basic_set_lexmax.restype = c_void_p 10186isl.isl_basic_set_lexmax.argtypes = [c_void_p] 10187isl.isl_basic_set_lexmin.restype = c_void_p 10188isl.isl_basic_set_lexmin.argtypes = [c_void_p] 10189isl.isl_basic_set_params.restype = c_void_p 10190isl.isl_basic_set_params.argtypes = [c_void_p] 10191isl.isl_basic_set_sample.restype = c_void_p 10192isl.isl_basic_set_sample.argtypes = [c_void_p] 10193isl.isl_basic_set_sample_point.restype = c_void_p 10194isl.isl_basic_set_sample_point.argtypes = [c_void_p] 10195isl.isl_basic_set_union.restype = c_void_p 10196isl.isl_basic_set_union.argtypes = [c_void_p, c_void_p] 10197isl.isl_basic_set_copy.restype = c_void_p 10198isl.isl_basic_set_copy.argtypes = [c_void_p] 10199isl.isl_basic_set_free.restype = c_void_p 10200isl.isl_basic_set_free.argtypes = [c_void_p] 10201isl.isl_basic_set_to_str.restype = POINTER(c_char) 10202isl.isl_basic_set_to_str.argtypes = [c_void_p] 10203 10204class fixed_box(object): 10205 def __init__(self, *args, **keywords): 10206 if "ptr" in keywords: 10207 self.ctx = keywords["ctx"] 10208 self.ptr = keywords["ptr"] 10209 return 10210 raise Error 10211 def __del__(self): 10212 if hasattr(self, 'ptr'): 10213 isl.isl_fixed_box_free(self.ptr) 10214 def __str__(arg0): 10215 try: 10216 if not arg0.__class__ is fixed_box: 10217 arg0 = fixed_box(arg0) 10218 except: 10219 raise 10220 ptr = isl.isl_fixed_box_to_str(arg0.ptr) 10221 res = cast(ptr, c_char_p).value.decode('ascii') 10222 libc.free(ptr) 10223 return res 10224 def __repr__(self): 10225 s = str(self) 10226 if '"' in s: 10227 return 'isl.fixed_box("""%s""")' % s 10228 else: 10229 return 'isl.fixed_box("%s")' % s 10230 def offset(arg0): 10231 try: 10232 if not arg0.__class__ is fixed_box: 10233 arg0 = fixed_box(arg0) 10234 except: 10235 raise 10236 ctx = arg0.ctx 10237 res = isl.isl_fixed_box_get_offset(arg0.ptr) 10238 obj = multi_aff(ctx=ctx, ptr=res) 10239 return obj 10240 def get_offset(arg0): 10241 return arg0.offset() 10242 def size(arg0): 10243 try: 10244 if not arg0.__class__ is fixed_box: 10245 arg0 = fixed_box(arg0) 10246 except: 10247 raise 10248 ctx = arg0.ctx 10249 res = isl.isl_fixed_box_get_size(arg0.ptr) 10250 obj = multi_val(ctx=ctx, ptr=res) 10251 return obj 10252 def get_size(arg0): 10253 return arg0.size() 10254 def space(arg0): 10255 try: 10256 if not arg0.__class__ is fixed_box: 10257 arg0 = fixed_box(arg0) 10258 except: 10259 raise 10260 ctx = arg0.ctx 10261 res = isl.isl_fixed_box_get_space(arg0.ptr) 10262 obj = space(ctx=ctx, ptr=res) 10263 return obj 10264 def get_space(arg0): 10265 return arg0.space() 10266 def is_valid(arg0): 10267 try: 10268 if not arg0.__class__ is fixed_box: 10269 arg0 = fixed_box(arg0) 10270 except: 10271 raise 10272 ctx = arg0.ctx 10273 res = isl.isl_fixed_box_is_valid(arg0.ptr) 10274 if res < 0: 10275 raise 10276 return bool(res) 10277 10278isl.isl_fixed_box_get_offset.restype = c_void_p 10279isl.isl_fixed_box_get_offset.argtypes = [c_void_p] 10280isl.isl_fixed_box_get_size.restype = c_void_p 10281isl.isl_fixed_box_get_size.argtypes = [c_void_p] 10282isl.isl_fixed_box_get_space.restype = c_void_p 10283isl.isl_fixed_box_get_space.argtypes = [c_void_p] 10284isl.isl_fixed_box_is_valid.argtypes = [c_void_p] 10285isl.isl_fixed_box_copy.restype = c_void_p 10286isl.isl_fixed_box_copy.argtypes = [c_void_p] 10287isl.isl_fixed_box_free.restype = c_void_p 10288isl.isl_fixed_box_free.argtypes = [c_void_p] 10289isl.isl_fixed_box_to_str.restype = POINTER(c_char) 10290isl.isl_fixed_box_to_str.argtypes = [c_void_p] 10291 10292class id(object): 10293 def __init__(self, *args, **keywords): 10294 if "ptr" in keywords: 10295 self.ctx = keywords["ctx"] 10296 self.ptr = keywords["ptr"] 10297 return 10298 if len(args) == 1 and type(args[0]) == str: 10299 self.ctx = Context.getDefaultInstance() 10300 self.ptr = isl.isl_id_read_from_str(self.ctx, args[0].encode('ascii')) 10301 return 10302 raise Error 10303 def __del__(self): 10304 if hasattr(self, 'ptr'): 10305 isl.isl_id_free(self.ptr) 10306 def __str__(arg0): 10307 try: 10308 if not arg0.__class__ is id: 10309 arg0 = id(arg0) 10310 except: 10311 raise 10312 ptr = isl.isl_id_to_str(arg0.ptr) 10313 res = cast(ptr, c_char_p).value.decode('ascii') 10314 libc.free(ptr) 10315 return res 10316 def __repr__(self): 10317 s = str(self) 10318 if '"' in s: 10319 return 'isl.id("""%s""")' % s 10320 else: 10321 return 'isl.id("%s")' % s 10322 def name(arg0): 10323 try: 10324 if not arg0.__class__ is id: 10325 arg0 = id(arg0) 10326 except: 10327 raise 10328 ctx = arg0.ctx 10329 res = isl.isl_id_get_name(arg0.ptr) 10330 if res == 0: 10331 raise 10332 string = cast(res, c_char_p).value.decode('ascii') 10333 return string 10334 def get_name(arg0): 10335 return arg0.name() 10336 10337isl.isl_id_read_from_str.restype = c_void_p 10338isl.isl_id_read_from_str.argtypes = [Context, c_char_p] 10339isl.isl_id_get_name.restype = POINTER(c_char) 10340isl.isl_id_get_name.argtypes = [c_void_p] 10341isl.isl_id_copy.restype = c_void_p 10342isl.isl_id_copy.argtypes = [c_void_p] 10343isl.isl_id_free.restype = c_void_p 10344isl.isl_id_free.argtypes = [c_void_p] 10345isl.isl_id_to_str.restype = POINTER(c_char) 10346isl.isl_id_to_str.argtypes = [c_void_p] 10347 10348class id_list(object): 10349 def __init__(self, *args, **keywords): 10350 if "ptr" in keywords: 10351 self.ctx = keywords["ctx"] 10352 self.ptr = keywords["ptr"] 10353 return 10354 if len(args) == 1 and type(args[0]) == int: 10355 self.ctx = Context.getDefaultInstance() 10356 self.ptr = isl.isl_id_list_alloc(self.ctx, args[0]) 10357 return 10358 if len(args) == 1 and (args[0].__class__ is id or type(args[0]) == str): 10359 args = list(args) 10360 try: 10361 if not args[0].__class__ is id: 10362 args[0] = id(args[0]) 10363 except: 10364 raise 10365 self.ctx = Context.getDefaultInstance() 10366 self.ptr = isl.isl_id_list_from_id(isl.isl_id_copy(args[0].ptr)) 10367 return 10368 raise Error 10369 def __del__(self): 10370 if hasattr(self, 'ptr'): 10371 isl.isl_id_list_free(self.ptr) 10372 def __str__(arg0): 10373 try: 10374 if not arg0.__class__ is id_list: 10375 arg0 = id_list(arg0) 10376 except: 10377 raise 10378 ptr = isl.isl_id_list_to_str(arg0.ptr) 10379 res = cast(ptr, c_char_p).value.decode('ascii') 10380 libc.free(ptr) 10381 return res 10382 def __repr__(self): 10383 s = str(self) 10384 if '"' in s: 10385 return 'isl.id_list("""%s""")' % s 10386 else: 10387 return 'isl.id_list("%s")' % s 10388 def add(arg0, arg1): 10389 try: 10390 if not arg0.__class__ is id_list: 10391 arg0 = id_list(arg0) 10392 except: 10393 raise 10394 try: 10395 if not arg1.__class__ is id: 10396 arg1 = id(arg1) 10397 except: 10398 raise 10399 ctx = arg0.ctx 10400 res = isl.isl_id_list_add(isl.isl_id_list_copy(arg0.ptr), isl.isl_id_copy(arg1.ptr)) 10401 obj = id_list(ctx=ctx, ptr=res) 10402 return obj 10403 def clear(arg0): 10404 try: 10405 if not arg0.__class__ is id_list: 10406 arg0 = id_list(arg0) 10407 except: 10408 raise 10409 ctx = arg0.ctx 10410 res = isl.isl_id_list_clear(isl.isl_id_list_copy(arg0.ptr)) 10411 obj = id_list(ctx=ctx, ptr=res) 10412 return obj 10413 def concat(arg0, arg1): 10414 try: 10415 if not arg0.__class__ is id_list: 10416 arg0 = id_list(arg0) 10417 except: 10418 raise 10419 try: 10420 if not arg1.__class__ is id_list: 10421 arg1 = id_list(arg1) 10422 except: 10423 raise 10424 ctx = arg0.ctx 10425 res = isl.isl_id_list_concat(isl.isl_id_list_copy(arg0.ptr), isl.isl_id_list_copy(arg1.ptr)) 10426 obj = id_list(ctx=ctx, ptr=res) 10427 return obj 10428 def drop(arg0, arg1, arg2): 10429 try: 10430 if not arg0.__class__ is id_list: 10431 arg0 = id_list(arg0) 10432 except: 10433 raise 10434 ctx = arg0.ctx 10435 res = isl.isl_id_list_drop(isl.isl_id_list_copy(arg0.ptr), arg1, arg2) 10436 obj = id_list(ctx=ctx, ptr=res) 10437 return obj 10438 def foreach(arg0, arg1): 10439 try: 10440 if not arg0.__class__ is id_list: 10441 arg0 = id_list(arg0) 10442 except: 10443 raise 10444 exc_info = [None] 10445 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 10446 def cb_func(cb_arg0, cb_arg1): 10447 cb_arg0 = id(ctx=arg0.ctx, ptr=(cb_arg0)) 10448 try: 10449 arg1(cb_arg0) 10450 except: 10451 import sys 10452 exc_info[0] = sys.exc_info() 10453 return -1 10454 return 0 10455 cb = fn(cb_func) 10456 ctx = arg0.ctx 10457 res = isl.isl_id_list_foreach(arg0.ptr, cb, None) 10458 if exc_info[0] != None: 10459 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 10460 if res < 0: 10461 raise 10462 def at(arg0, arg1): 10463 try: 10464 if not arg0.__class__ is id_list: 10465 arg0 = id_list(arg0) 10466 except: 10467 raise 10468 ctx = arg0.ctx 10469 res = isl.isl_id_list_get_at(arg0.ptr, arg1) 10470 obj = id(ctx=ctx, ptr=res) 10471 return obj 10472 def get_at(arg0, arg1): 10473 return arg0.at(arg1) 10474 def insert(arg0, arg1, arg2): 10475 try: 10476 if not arg0.__class__ is id_list: 10477 arg0 = id_list(arg0) 10478 except: 10479 raise 10480 try: 10481 if not arg2.__class__ is id: 10482 arg2 = id(arg2) 10483 except: 10484 raise 10485 ctx = arg0.ctx 10486 res = isl.isl_id_list_insert(isl.isl_id_list_copy(arg0.ptr), arg1, isl.isl_id_copy(arg2.ptr)) 10487 obj = id_list(ctx=ctx, ptr=res) 10488 return obj 10489 def size(arg0): 10490 try: 10491 if not arg0.__class__ is id_list: 10492 arg0 = id_list(arg0) 10493 except: 10494 raise 10495 ctx = arg0.ctx 10496 res = isl.isl_id_list_size(arg0.ptr) 10497 if res < 0: 10498 raise 10499 return int(res) 10500 10501isl.isl_id_list_alloc.restype = c_void_p 10502isl.isl_id_list_alloc.argtypes = [Context, c_int] 10503isl.isl_id_list_from_id.restype = c_void_p 10504isl.isl_id_list_from_id.argtypes = [c_void_p] 10505isl.isl_id_list_add.restype = c_void_p 10506isl.isl_id_list_add.argtypes = [c_void_p, c_void_p] 10507isl.isl_id_list_clear.restype = c_void_p 10508isl.isl_id_list_clear.argtypes = [c_void_p] 10509isl.isl_id_list_concat.restype = c_void_p 10510isl.isl_id_list_concat.argtypes = [c_void_p, c_void_p] 10511isl.isl_id_list_drop.restype = c_void_p 10512isl.isl_id_list_drop.argtypes = [c_void_p, c_int, c_int] 10513isl.isl_id_list_foreach.argtypes = [c_void_p, c_void_p, c_void_p] 10514isl.isl_id_list_get_at.restype = c_void_p 10515isl.isl_id_list_get_at.argtypes = [c_void_p, c_int] 10516isl.isl_id_list_insert.restype = c_void_p 10517isl.isl_id_list_insert.argtypes = [c_void_p, c_int, c_void_p] 10518isl.isl_id_list_size.argtypes = [c_void_p] 10519isl.isl_id_list_copy.restype = c_void_p 10520isl.isl_id_list_copy.argtypes = [c_void_p] 10521isl.isl_id_list_free.restype = c_void_p 10522isl.isl_id_list_free.argtypes = [c_void_p] 10523isl.isl_id_list_to_str.restype = POINTER(c_char) 10524isl.isl_id_list_to_str.argtypes = [c_void_p] 10525 10526class multi_id(object): 10527 def __init__(self, *args, **keywords): 10528 if "ptr" in keywords: 10529 self.ctx = keywords["ctx"] 10530 self.ptr = keywords["ptr"] 10531 return 10532 if len(args) == 2 and args[0].__class__ is space and args[1].__class__ is id_list: 10533 self.ctx = Context.getDefaultInstance() 10534 self.ptr = isl.isl_multi_id_from_id_list(isl.isl_space_copy(args[0].ptr), isl.isl_id_list_copy(args[1].ptr)) 10535 return 10536 if len(args) == 1 and type(args[0]) == str: 10537 self.ctx = Context.getDefaultInstance() 10538 self.ptr = isl.isl_multi_id_read_from_str(self.ctx, args[0].encode('ascii')) 10539 return 10540 raise Error 10541 def __del__(self): 10542 if hasattr(self, 'ptr'): 10543 isl.isl_multi_id_free(self.ptr) 10544 def __str__(arg0): 10545 try: 10546 if not arg0.__class__ is multi_id: 10547 arg0 = multi_id(arg0) 10548 except: 10549 raise 10550 ptr = isl.isl_multi_id_to_str(arg0.ptr) 10551 res = cast(ptr, c_char_p).value.decode('ascii') 10552 libc.free(ptr) 10553 return res 10554 def __repr__(self): 10555 s = str(self) 10556 if '"' in s: 10557 return 'isl.multi_id("""%s""")' % s 10558 else: 10559 return 'isl.multi_id("%s")' % s 10560 def flat_range_product(arg0, arg1): 10561 try: 10562 if not arg0.__class__ is multi_id: 10563 arg0 = multi_id(arg0) 10564 except: 10565 raise 10566 try: 10567 if not arg1.__class__ is multi_id: 10568 arg1 = multi_id(arg1) 10569 except: 10570 raise 10571 ctx = arg0.ctx 10572 res = isl.isl_multi_id_flat_range_product(isl.isl_multi_id_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 10573 obj = multi_id(ctx=ctx, ptr=res) 10574 return obj 10575 def at(arg0, arg1): 10576 try: 10577 if not arg0.__class__ is multi_id: 10578 arg0 = multi_id(arg0) 10579 except: 10580 raise 10581 ctx = arg0.ctx 10582 res = isl.isl_multi_id_get_at(arg0.ptr, arg1) 10583 obj = id(ctx=ctx, ptr=res) 10584 return obj 10585 def get_at(arg0, arg1): 10586 return arg0.at(arg1) 10587 def list(arg0): 10588 try: 10589 if not arg0.__class__ is multi_id: 10590 arg0 = multi_id(arg0) 10591 except: 10592 raise 10593 ctx = arg0.ctx 10594 res = isl.isl_multi_id_get_list(arg0.ptr) 10595 obj = id_list(ctx=ctx, ptr=res) 10596 return obj 10597 def get_list(arg0): 10598 return arg0.list() 10599 def space(arg0): 10600 try: 10601 if not arg0.__class__ is multi_id: 10602 arg0 = multi_id(arg0) 10603 except: 10604 raise 10605 ctx = arg0.ctx 10606 res = isl.isl_multi_id_get_space(arg0.ptr) 10607 obj = space(ctx=ctx, ptr=res) 10608 return obj 10609 def get_space(arg0): 10610 return arg0.space() 10611 def plain_is_equal(arg0, arg1): 10612 try: 10613 if not arg0.__class__ is multi_id: 10614 arg0 = multi_id(arg0) 10615 except: 10616 raise 10617 try: 10618 if not arg1.__class__ is multi_id: 10619 arg1 = multi_id(arg1) 10620 except: 10621 raise 10622 ctx = arg0.ctx 10623 res = isl.isl_multi_id_plain_is_equal(arg0.ptr, arg1.ptr) 10624 if res < 0: 10625 raise 10626 return bool(res) 10627 def range_product(arg0, arg1): 10628 try: 10629 if not arg0.__class__ is multi_id: 10630 arg0 = multi_id(arg0) 10631 except: 10632 raise 10633 try: 10634 if not arg1.__class__ is multi_id: 10635 arg1 = multi_id(arg1) 10636 except: 10637 raise 10638 ctx = arg0.ctx 10639 res = isl.isl_multi_id_range_product(isl.isl_multi_id_copy(arg0.ptr), isl.isl_multi_id_copy(arg1.ptr)) 10640 obj = multi_id(ctx=ctx, ptr=res) 10641 return obj 10642 def set_at(arg0, arg1, arg2): 10643 try: 10644 if not arg0.__class__ is multi_id: 10645 arg0 = multi_id(arg0) 10646 except: 10647 raise 10648 try: 10649 if not arg2.__class__ is id: 10650 arg2 = id(arg2) 10651 except: 10652 raise 10653 ctx = arg0.ctx 10654 res = isl.isl_multi_id_set_at(isl.isl_multi_id_copy(arg0.ptr), arg1, isl.isl_id_copy(arg2.ptr)) 10655 obj = multi_id(ctx=ctx, ptr=res) 10656 return obj 10657 def size(arg0): 10658 try: 10659 if not arg0.__class__ is multi_id: 10660 arg0 = multi_id(arg0) 10661 except: 10662 raise 10663 ctx = arg0.ctx 10664 res = isl.isl_multi_id_size(arg0.ptr) 10665 if res < 0: 10666 raise 10667 return int(res) 10668 10669isl.isl_multi_id_from_id_list.restype = c_void_p 10670isl.isl_multi_id_from_id_list.argtypes = [c_void_p, c_void_p] 10671isl.isl_multi_id_read_from_str.restype = c_void_p 10672isl.isl_multi_id_read_from_str.argtypes = [Context, c_char_p] 10673isl.isl_multi_id_flat_range_product.restype = c_void_p 10674isl.isl_multi_id_flat_range_product.argtypes = [c_void_p, c_void_p] 10675isl.isl_multi_id_get_at.restype = c_void_p 10676isl.isl_multi_id_get_at.argtypes = [c_void_p, c_int] 10677isl.isl_multi_id_get_list.restype = c_void_p 10678isl.isl_multi_id_get_list.argtypes = [c_void_p] 10679isl.isl_multi_id_get_space.restype = c_void_p 10680isl.isl_multi_id_get_space.argtypes = [c_void_p] 10681isl.isl_multi_id_plain_is_equal.argtypes = [c_void_p, c_void_p] 10682isl.isl_multi_id_range_product.restype = c_void_p 10683isl.isl_multi_id_range_product.argtypes = [c_void_p, c_void_p] 10684isl.isl_multi_id_set_at.restype = c_void_p 10685isl.isl_multi_id_set_at.argtypes = [c_void_p, c_int, c_void_p] 10686isl.isl_multi_id_size.argtypes = [c_void_p] 10687isl.isl_multi_id_copy.restype = c_void_p 10688isl.isl_multi_id_copy.argtypes = [c_void_p] 10689isl.isl_multi_id_free.restype = c_void_p 10690isl.isl_multi_id_free.argtypes = [c_void_p] 10691isl.isl_multi_id_to_str.restype = POINTER(c_char) 10692isl.isl_multi_id_to_str.argtypes = [c_void_p] 10693 10694class multi_val(object): 10695 def __init__(self, *args, **keywords): 10696 if "ptr" in keywords: 10697 self.ctx = keywords["ctx"] 10698 self.ptr = keywords["ptr"] 10699 return 10700 if len(args) == 2 and args[0].__class__ is space and args[1].__class__ is val_list: 10701 self.ctx = Context.getDefaultInstance() 10702 self.ptr = isl.isl_multi_val_from_val_list(isl.isl_space_copy(args[0].ptr), isl.isl_val_list_copy(args[1].ptr)) 10703 return 10704 if len(args) == 1 and type(args[0]) == str: 10705 self.ctx = Context.getDefaultInstance() 10706 self.ptr = isl.isl_multi_val_read_from_str(self.ctx, args[0].encode('ascii')) 10707 return 10708 raise Error 10709 def __del__(self): 10710 if hasattr(self, 'ptr'): 10711 isl.isl_multi_val_free(self.ptr) 10712 def __str__(arg0): 10713 try: 10714 if not arg0.__class__ is multi_val: 10715 arg0 = multi_val(arg0) 10716 except: 10717 raise 10718 ptr = isl.isl_multi_val_to_str(arg0.ptr) 10719 res = cast(ptr, c_char_p).value.decode('ascii') 10720 libc.free(ptr) 10721 return res 10722 def __repr__(self): 10723 s = str(self) 10724 if '"' in s: 10725 return 'isl.multi_val("""%s""")' % s 10726 else: 10727 return 'isl.multi_val("%s")' % s 10728 def add(*args): 10729 if len(args) == 2 and args[1].__class__ is multi_val: 10730 ctx = args[0].ctx 10731 res = isl.isl_multi_val_add(isl.isl_multi_val_copy(args[0].ptr), isl.isl_multi_val_copy(args[1].ptr)) 10732 obj = multi_val(ctx=ctx, ptr=res) 10733 return obj 10734 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 10735 args = list(args) 10736 try: 10737 if not args[1].__class__ is val: 10738 args[1] = val(args[1]) 10739 except: 10740 raise 10741 ctx = args[0].ctx 10742 res = isl.isl_multi_val_add_val(isl.isl_multi_val_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 10743 obj = multi_val(ctx=ctx, ptr=res) 10744 return obj 10745 raise Error 10746 def flat_range_product(arg0, arg1): 10747 try: 10748 if not arg0.__class__ is multi_val: 10749 arg0 = multi_val(arg0) 10750 except: 10751 raise 10752 try: 10753 if not arg1.__class__ is multi_val: 10754 arg1 = multi_val(arg1) 10755 except: 10756 raise 10757 ctx = arg0.ctx 10758 res = isl.isl_multi_val_flat_range_product(isl.isl_multi_val_copy(arg0.ptr), isl.isl_multi_val_copy(arg1.ptr)) 10759 obj = multi_val(ctx=ctx, ptr=res) 10760 return obj 10761 def at(arg0, arg1): 10762 try: 10763 if not arg0.__class__ is multi_val: 10764 arg0 = multi_val(arg0) 10765 except: 10766 raise 10767 ctx = arg0.ctx 10768 res = isl.isl_multi_val_get_at(arg0.ptr, arg1) 10769 obj = val(ctx=ctx, ptr=res) 10770 return obj 10771 def get_at(arg0, arg1): 10772 return arg0.at(arg1) 10773 def list(arg0): 10774 try: 10775 if not arg0.__class__ is multi_val: 10776 arg0 = multi_val(arg0) 10777 except: 10778 raise 10779 ctx = arg0.ctx 10780 res = isl.isl_multi_val_get_list(arg0.ptr) 10781 obj = val_list(ctx=ctx, ptr=res) 10782 return obj 10783 def get_list(arg0): 10784 return arg0.list() 10785 def space(arg0): 10786 try: 10787 if not arg0.__class__ is multi_val: 10788 arg0 = multi_val(arg0) 10789 except: 10790 raise 10791 ctx = arg0.ctx 10792 res = isl.isl_multi_val_get_space(arg0.ptr) 10793 obj = space(ctx=ctx, ptr=res) 10794 return obj 10795 def get_space(arg0): 10796 return arg0.space() 10797 def max(arg0, arg1): 10798 try: 10799 if not arg0.__class__ is multi_val: 10800 arg0 = multi_val(arg0) 10801 except: 10802 raise 10803 try: 10804 if not arg1.__class__ is multi_val: 10805 arg1 = multi_val(arg1) 10806 except: 10807 raise 10808 ctx = arg0.ctx 10809 res = isl.isl_multi_val_max(isl.isl_multi_val_copy(arg0.ptr), isl.isl_multi_val_copy(arg1.ptr)) 10810 obj = multi_val(ctx=ctx, ptr=res) 10811 return obj 10812 def min(arg0, arg1): 10813 try: 10814 if not arg0.__class__ is multi_val: 10815 arg0 = multi_val(arg0) 10816 except: 10817 raise 10818 try: 10819 if not arg1.__class__ is multi_val: 10820 arg1 = multi_val(arg1) 10821 except: 10822 raise 10823 ctx = arg0.ctx 10824 res = isl.isl_multi_val_min(isl.isl_multi_val_copy(arg0.ptr), isl.isl_multi_val_copy(arg1.ptr)) 10825 obj = multi_val(ctx=ctx, ptr=res) 10826 return obj 10827 def neg(arg0): 10828 try: 10829 if not arg0.__class__ is multi_val: 10830 arg0 = multi_val(arg0) 10831 except: 10832 raise 10833 ctx = arg0.ctx 10834 res = isl.isl_multi_val_neg(isl.isl_multi_val_copy(arg0.ptr)) 10835 obj = multi_val(ctx=ctx, ptr=res) 10836 return obj 10837 def plain_is_equal(arg0, arg1): 10838 try: 10839 if not arg0.__class__ is multi_val: 10840 arg0 = multi_val(arg0) 10841 except: 10842 raise 10843 try: 10844 if not arg1.__class__ is multi_val: 10845 arg1 = multi_val(arg1) 10846 except: 10847 raise 10848 ctx = arg0.ctx 10849 res = isl.isl_multi_val_plain_is_equal(arg0.ptr, arg1.ptr) 10850 if res < 0: 10851 raise 10852 return bool(res) 10853 def product(arg0, arg1): 10854 try: 10855 if not arg0.__class__ is multi_val: 10856 arg0 = multi_val(arg0) 10857 except: 10858 raise 10859 try: 10860 if not arg1.__class__ is multi_val: 10861 arg1 = multi_val(arg1) 10862 except: 10863 raise 10864 ctx = arg0.ctx 10865 res = isl.isl_multi_val_product(isl.isl_multi_val_copy(arg0.ptr), isl.isl_multi_val_copy(arg1.ptr)) 10866 obj = multi_val(ctx=ctx, ptr=res) 10867 return obj 10868 def range_product(arg0, arg1): 10869 try: 10870 if not arg0.__class__ is multi_val: 10871 arg0 = multi_val(arg0) 10872 except: 10873 raise 10874 try: 10875 if not arg1.__class__ is multi_val: 10876 arg1 = multi_val(arg1) 10877 except: 10878 raise 10879 ctx = arg0.ctx 10880 res = isl.isl_multi_val_range_product(isl.isl_multi_val_copy(arg0.ptr), isl.isl_multi_val_copy(arg1.ptr)) 10881 obj = multi_val(ctx=ctx, ptr=res) 10882 return obj 10883 def scale(*args): 10884 if len(args) == 2 and args[1].__class__ is multi_val: 10885 ctx = args[0].ctx 10886 res = isl.isl_multi_val_scale_multi_val(isl.isl_multi_val_copy(args[0].ptr), isl.isl_multi_val_copy(args[1].ptr)) 10887 obj = multi_val(ctx=ctx, ptr=res) 10888 return obj 10889 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 10890 args = list(args) 10891 try: 10892 if not args[1].__class__ is val: 10893 args[1] = val(args[1]) 10894 except: 10895 raise 10896 ctx = args[0].ctx 10897 res = isl.isl_multi_val_scale_val(isl.isl_multi_val_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 10898 obj = multi_val(ctx=ctx, ptr=res) 10899 return obj 10900 raise Error 10901 def scale_down(*args): 10902 if len(args) == 2 and args[1].__class__ is multi_val: 10903 ctx = args[0].ctx 10904 res = isl.isl_multi_val_scale_down_multi_val(isl.isl_multi_val_copy(args[0].ptr), isl.isl_multi_val_copy(args[1].ptr)) 10905 obj = multi_val(ctx=ctx, ptr=res) 10906 return obj 10907 if len(args) == 2 and (args[1].__class__ is val or type(args[1]) == int): 10908 args = list(args) 10909 try: 10910 if not args[1].__class__ is val: 10911 args[1] = val(args[1]) 10912 except: 10913 raise 10914 ctx = args[0].ctx 10915 res = isl.isl_multi_val_scale_down_val(isl.isl_multi_val_copy(args[0].ptr), isl.isl_val_copy(args[1].ptr)) 10916 obj = multi_val(ctx=ctx, ptr=res) 10917 return obj 10918 raise Error 10919 def set_at(arg0, arg1, arg2): 10920 try: 10921 if not arg0.__class__ is multi_val: 10922 arg0 = multi_val(arg0) 10923 except: 10924 raise 10925 try: 10926 if not arg2.__class__ is val: 10927 arg2 = val(arg2) 10928 except: 10929 raise 10930 ctx = arg0.ctx 10931 res = isl.isl_multi_val_set_at(isl.isl_multi_val_copy(arg0.ptr), arg1, isl.isl_val_copy(arg2.ptr)) 10932 obj = multi_val(ctx=ctx, ptr=res) 10933 return obj 10934 def size(arg0): 10935 try: 10936 if not arg0.__class__ is multi_val: 10937 arg0 = multi_val(arg0) 10938 except: 10939 raise 10940 ctx = arg0.ctx 10941 res = isl.isl_multi_val_size(arg0.ptr) 10942 if res < 0: 10943 raise 10944 return int(res) 10945 def sub(arg0, arg1): 10946 try: 10947 if not arg0.__class__ is multi_val: 10948 arg0 = multi_val(arg0) 10949 except: 10950 raise 10951 try: 10952 if not arg1.__class__ is multi_val: 10953 arg1 = multi_val(arg1) 10954 except: 10955 raise 10956 ctx = arg0.ctx 10957 res = isl.isl_multi_val_sub(isl.isl_multi_val_copy(arg0.ptr), isl.isl_multi_val_copy(arg1.ptr)) 10958 obj = multi_val(ctx=ctx, ptr=res) 10959 return obj 10960 @staticmethod 10961 def zero(arg0): 10962 try: 10963 if not arg0.__class__ is space: 10964 arg0 = space(arg0) 10965 except: 10966 raise 10967 ctx = arg0.ctx 10968 res = isl.isl_multi_val_zero(isl.isl_space_copy(arg0.ptr)) 10969 obj = multi_val(ctx=ctx, ptr=res) 10970 return obj 10971 10972isl.isl_multi_val_from_val_list.restype = c_void_p 10973isl.isl_multi_val_from_val_list.argtypes = [c_void_p, c_void_p] 10974isl.isl_multi_val_read_from_str.restype = c_void_p 10975isl.isl_multi_val_read_from_str.argtypes = [Context, c_char_p] 10976isl.isl_multi_val_add.restype = c_void_p 10977isl.isl_multi_val_add.argtypes = [c_void_p, c_void_p] 10978isl.isl_multi_val_add_val.restype = c_void_p 10979isl.isl_multi_val_add_val.argtypes = [c_void_p, c_void_p] 10980isl.isl_multi_val_flat_range_product.restype = c_void_p 10981isl.isl_multi_val_flat_range_product.argtypes = [c_void_p, c_void_p] 10982isl.isl_multi_val_get_at.restype = c_void_p 10983isl.isl_multi_val_get_at.argtypes = [c_void_p, c_int] 10984isl.isl_multi_val_get_list.restype = c_void_p 10985isl.isl_multi_val_get_list.argtypes = [c_void_p] 10986isl.isl_multi_val_get_space.restype = c_void_p 10987isl.isl_multi_val_get_space.argtypes = [c_void_p] 10988isl.isl_multi_val_max.restype = c_void_p 10989isl.isl_multi_val_max.argtypes = [c_void_p, c_void_p] 10990isl.isl_multi_val_min.restype = c_void_p 10991isl.isl_multi_val_min.argtypes = [c_void_p, c_void_p] 10992isl.isl_multi_val_neg.restype = c_void_p 10993isl.isl_multi_val_neg.argtypes = [c_void_p] 10994isl.isl_multi_val_plain_is_equal.argtypes = [c_void_p, c_void_p] 10995isl.isl_multi_val_product.restype = c_void_p 10996isl.isl_multi_val_product.argtypes = [c_void_p, c_void_p] 10997isl.isl_multi_val_range_product.restype = c_void_p 10998isl.isl_multi_val_range_product.argtypes = [c_void_p, c_void_p] 10999isl.isl_multi_val_scale_multi_val.restype = c_void_p 11000isl.isl_multi_val_scale_multi_val.argtypes = [c_void_p, c_void_p] 11001isl.isl_multi_val_scale_val.restype = c_void_p 11002isl.isl_multi_val_scale_val.argtypes = [c_void_p, c_void_p] 11003isl.isl_multi_val_scale_down_multi_val.restype = c_void_p 11004isl.isl_multi_val_scale_down_multi_val.argtypes = [c_void_p, c_void_p] 11005isl.isl_multi_val_scale_down_val.restype = c_void_p 11006isl.isl_multi_val_scale_down_val.argtypes = [c_void_p, c_void_p] 11007isl.isl_multi_val_set_at.restype = c_void_p 11008isl.isl_multi_val_set_at.argtypes = [c_void_p, c_int, c_void_p] 11009isl.isl_multi_val_size.argtypes = [c_void_p] 11010isl.isl_multi_val_sub.restype = c_void_p 11011isl.isl_multi_val_sub.argtypes = [c_void_p, c_void_p] 11012isl.isl_multi_val_zero.restype = c_void_p 11013isl.isl_multi_val_zero.argtypes = [c_void_p] 11014isl.isl_multi_val_copy.restype = c_void_p 11015isl.isl_multi_val_copy.argtypes = [c_void_p] 11016isl.isl_multi_val_free.restype = c_void_p 11017isl.isl_multi_val_free.argtypes = [c_void_p] 11018isl.isl_multi_val_to_str.restype = POINTER(c_char) 11019isl.isl_multi_val_to_str.argtypes = [c_void_p] 11020 11021class point(basic_set): 11022 def __init__(self, *args, **keywords): 11023 if "ptr" in keywords: 11024 self.ctx = keywords["ctx"] 11025 self.ptr = keywords["ptr"] 11026 return 11027 raise Error 11028 def __del__(self): 11029 if hasattr(self, 'ptr'): 11030 isl.isl_point_free(self.ptr) 11031 def __str__(arg0): 11032 try: 11033 if not arg0.__class__ is point: 11034 arg0 = point(arg0) 11035 except: 11036 raise 11037 ptr = isl.isl_point_to_str(arg0.ptr) 11038 res = cast(ptr, c_char_p).value.decode('ascii') 11039 libc.free(ptr) 11040 return res 11041 def __repr__(self): 11042 s = str(self) 11043 if '"' in s: 11044 return 'isl.point("""%s""")' % s 11045 else: 11046 return 'isl.point("%s")' % s 11047 def multi_val(arg0): 11048 try: 11049 if not arg0.__class__ is point: 11050 arg0 = point(arg0) 11051 except: 11052 raise 11053 ctx = arg0.ctx 11054 res = isl.isl_point_get_multi_val(arg0.ptr) 11055 obj = multi_val(ctx=ctx, ptr=res) 11056 return obj 11057 def get_multi_val(arg0): 11058 return arg0.multi_val() 11059 11060isl.isl_point_get_multi_val.restype = c_void_p 11061isl.isl_point_get_multi_val.argtypes = [c_void_p] 11062isl.isl_point_copy.restype = c_void_p 11063isl.isl_point_copy.argtypes = [c_void_p] 11064isl.isl_point_free.restype = c_void_p 11065isl.isl_point_free.argtypes = [c_void_p] 11066isl.isl_point_to_str.restype = POINTER(c_char) 11067isl.isl_point_to_str.argtypes = [c_void_p] 11068 11069class pw_aff_list(object): 11070 def __init__(self, *args, **keywords): 11071 if "ptr" in keywords: 11072 self.ctx = keywords["ctx"] 11073 self.ptr = keywords["ptr"] 11074 return 11075 if len(args) == 1 and type(args[0]) == int: 11076 self.ctx = Context.getDefaultInstance() 11077 self.ptr = isl.isl_pw_aff_list_alloc(self.ctx, args[0]) 11078 return 11079 if len(args) == 1 and args[0].__class__ is pw_aff: 11080 self.ctx = Context.getDefaultInstance() 11081 self.ptr = isl.isl_pw_aff_list_from_pw_aff(isl.isl_pw_aff_copy(args[0].ptr)) 11082 return 11083 raise Error 11084 def __del__(self): 11085 if hasattr(self, 'ptr'): 11086 isl.isl_pw_aff_list_free(self.ptr) 11087 def __str__(arg0): 11088 try: 11089 if not arg0.__class__ is pw_aff_list: 11090 arg0 = pw_aff_list(arg0) 11091 except: 11092 raise 11093 ptr = isl.isl_pw_aff_list_to_str(arg0.ptr) 11094 res = cast(ptr, c_char_p).value.decode('ascii') 11095 libc.free(ptr) 11096 return res 11097 def __repr__(self): 11098 s = str(self) 11099 if '"' in s: 11100 return 'isl.pw_aff_list("""%s""")' % s 11101 else: 11102 return 'isl.pw_aff_list("%s")' % s 11103 def add(arg0, arg1): 11104 try: 11105 if not arg0.__class__ is pw_aff_list: 11106 arg0 = pw_aff_list(arg0) 11107 except: 11108 raise 11109 try: 11110 if not arg1.__class__ is pw_aff: 11111 arg1 = pw_aff(arg1) 11112 except: 11113 raise 11114 ctx = arg0.ctx 11115 res = isl.isl_pw_aff_list_add(isl.isl_pw_aff_list_copy(arg0.ptr), isl.isl_pw_aff_copy(arg1.ptr)) 11116 obj = pw_aff_list(ctx=ctx, ptr=res) 11117 return obj 11118 def clear(arg0): 11119 try: 11120 if not arg0.__class__ is pw_aff_list: 11121 arg0 = pw_aff_list(arg0) 11122 except: 11123 raise 11124 ctx = arg0.ctx 11125 res = isl.isl_pw_aff_list_clear(isl.isl_pw_aff_list_copy(arg0.ptr)) 11126 obj = pw_aff_list(ctx=ctx, ptr=res) 11127 return obj 11128 def concat(arg0, arg1): 11129 try: 11130 if not arg0.__class__ is pw_aff_list: 11131 arg0 = pw_aff_list(arg0) 11132 except: 11133 raise 11134 try: 11135 if not arg1.__class__ is pw_aff_list: 11136 arg1 = pw_aff_list(arg1) 11137 except: 11138 raise 11139 ctx = arg0.ctx 11140 res = isl.isl_pw_aff_list_concat(isl.isl_pw_aff_list_copy(arg0.ptr), isl.isl_pw_aff_list_copy(arg1.ptr)) 11141 obj = pw_aff_list(ctx=ctx, ptr=res) 11142 return obj 11143 def drop(arg0, arg1, arg2): 11144 try: 11145 if not arg0.__class__ is pw_aff_list: 11146 arg0 = pw_aff_list(arg0) 11147 except: 11148 raise 11149 ctx = arg0.ctx 11150 res = isl.isl_pw_aff_list_drop(isl.isl_pw_aff_list_copy(arg0.ptr), arg1, arg2) 11151 obj = pw_aff_list(ctx=ctx, ptr=res) 11152 return obj 11153 def foreach(arg0, arg1): 11154 try: 11155 if not arg0.__class__ is pw_aff_list: 11156 arg0 = pw_aff_list(arg0) 11157 except: 11158 raise 11159 exc_info = [None] 11160 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 11161 def cb_func(cb_arg0, cb_arg1): 11162 cb_arg0 = pw_aff(ctx=arg0.ctx, ptr=(cb_arg0)) 11163 try: 11164 arg1(cb_arg0) 11165 except: 11166 import sys 11167 exc_info[0] = sys.exc_info() 11168 return -1 11169 return 0 11170 cb = fn(cb_func) 11171 ctx = arg0.ctx 11172 res = isl.isl_pw_aff_list_foreach(arg0.ptr, cb, None) 11173 if exc_info[0] != None: 11174 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 11175 if res < 0: 11176 raise 11177 def at(arg0, arg1): 11178 try: 11179 if not arg0.__class__ is pw_aff_list: 11180 arg0 = pw_aff_list(arg0) 11181 except: 11182 raise 11183 ctx = arg0.ctx 11184 res = isl.isl_pw_aff_list_get_at(arg0.ptr, arg1) 11185 obj = pw_aff(ctx=ctx, ptr=res) 11186 return obj 11187 def get_at(arg0, arg1): 11188 return arg0.at(arg1) 11189 def insert(arg0, arg1, arg2): 11190 try: 11191 if not arg0.__class__ is pw_aff_list: 11192 arg0 = pw_aff_list(arg0) 11193 except: 11194 raise 11195 try: 11196 if not arg2.__class__ is pw_aff: 11197 arg2 = pw_aff(arg2) 11198 except: 11199 raise 11200 ctx = arg0.ctx 11201 res = isl.isl_pw_aff_list_insert(isl.isl_pw_aff_list_copy(arg0.ptr), arg1, isl.isl_pw_aff_copy(arg2.ptr)) 11202 obj = pw_aff_list(ctx=ctx, ptr=res) 11203 return obj 11204 def size(arg0): 11205 try: 11206 if not arg0.__class__ is pw_aff_list: 11207 arg0 = pw_aff_list(arg0) 11208 except: 11209 raise 11210 ctx = arg0.ctx 11211 res = isl.isl_pw_aff_list_size(arg0.ptr) 11212 if res < 0: 11213 raise 11214 return int(res) 11215 11216isl.isl_pw_aff_list_alloc.restype = c_void_p 11217isl.isl_pw_aff_list_alloc.argtypes = [Context, c_int] 11218isl.isl_pw_aff_list_from_pw_aff.restype = c_void_p 11219isl.isl_pw_aff_list_from_pw_aff.argtypes = [c_void_p] 11220isl.isl_pw_aff_list_add.restype = c_void_p 11221isl.isl_pw_aff_list_add.argtypes = [c_void_p, c_void_p] 11222isl.isl_pw_aff_list_clear.restype = c_void_p 11223isl.isl_pw_aff_list_clear.argtypes = [c_void_p] 11224isl.isl_pw_aff_list_concat.restype = c_void_p 11225isl.isl_pw_aff_list_concat.argtypes = [c_void_p, c_void_p] 11226isl.isl_pw_aff_list_drop.restype = c_void_p 11227isl.isl_pw_aff_list_drop.argtypes = [c_void_p, c_int, c_int] 11228isl.isl_pw_aff_list_foreach.argtypes = [c_void_p, c_void_p, c_void_p] 11229isl.isl_pw_aff_list_get_at.restype = c_void_p 11230isl.isl_pw_aff_list_get_at.argtypes = [c_void_p, c_int] 11231isl.isl_pw_aff_list_insert.restype = c_void_p 11232isl.isl_pw_aff_list_insert.argtypes = [c_void_p, c_int, c_void_p] 11233isl.isl_pw_aff_list_size.argtypes = [c_void_p] 11234isl.isl_pw_aff_list_copy.restype = c_void_p 11235isl.isl_pw_aff_list_copy.argtypes = [c_void_p] 11236isl.isl_pw_aff_list_free.restype = c_void_p 11237isl.isl_pw_aff_list_free.argtypes = [c_void_p] 11238isl.isl_pw_aff_list_to_str.restype = POINTER(c_char) 11239isl.isl_pw_aff_list_to_str.argtypes = [c_void_p] 11240 11241class pw_multi_aff_list(object): 11242 def __init__(self, *args, **keywords): 11243 if "ptr" in keywords: 11244 self.ctx = keywords["ctx"] 11245 self.ptr = keywords["ptr"] 11246 return 11247 if len(args) == 1 and type(args[0]) == int: 11248 self.ctx = Context.getDefaultInstance() 11249 self.ptr = isl.isl_pw_multi_aff_list_alloc(self.ctx, args[0]) 11250 return 11251 if len(args) == 1 and args[0].__class__ is pw_multi_aff: 11252 self.ctx = Context.getDefaultInstance() 11253 self.ptr = isl.isl_pw_multi_aff_list_from_pw_multi_aff(isl.isl_pw_multi_aff_copy(args[0].ptr)) 11254 return 11255 raise Error 11256 def __del__(self): 11257 if hasattr(self, 'ptr'): 11258 isl.isl_pw_multi_aff_list_free(self.ptr) 11259 def __str__(arg0): 11260 try: 11261 if not arg0.__class__ is pw_multi_aff_list: 11262 arg0 = pw_multi_aff_list(arg0) 11263 except: 11264 raise 11265 ptr = isl.isl_pw_multi_aff_list_to_str(arg0.ptr) 11266 res = cast(ptr, c_char_p).value.decode('ascii') 11267 libc.free(ptr) 11268 return res 11269 def __repr__(self): 11270 s = str(self) 11271 if '"' in s: 11272 return 'isl.pw_multi_aff_list("""%s""")' % s 11273 else: 11274 return 'isl.pw_multi_aff_list("%s")' % s 11275 def add(arg0, arg1): 11276 try: 11277 if not arg0.__class__ is pw_multi_aff_list: 11278 arg0 = pw_multi_aff_list(arg0) 11279 except: 11280 raise 11281 try: 11282 if not arg1.__class__ is pw_multi_aff: 11283 arg1 = pw_multi_aff(arg1) 11284 except: 11285 raise 11286 ctx = arg0.ctx 11287 res = isl.isl_pw_multi_aff_list_add(isl.isl_pw_multi_aff_list_copy(arg0.ptr), isl.isl_pw_multi_aff_copy(arg1.ptr)) 11288 obj = pw_multi_aff_list(ctx=ctx, ptr=res) 11289 return obj 11290 def clear(arg0): 11291 try: 11292 if not arg0.__class__ is pw_multi_aff_list: 11293 arg0 = pw_multi_aff_list(arg0) 11294 except: 11295 raise 11296 ctx = arg0.ctx 11297 res = isl.isl_pw_multi_aff_list_clear(isl.isl_pw_multi_aff_list_copy(arg0.ptr)) 11298 obj = pw_multi_aff_list(ctx=ctx, ptr=res) 11299 return obj 11300 def concat(arg0, arg1): 11301 try: 11302 if not arg0.__class__ is pw_multi_aff_list: 11303 arg0 = pw_multi_aff_list(arg0) 11304 except: 11305 raise 11306 try: 11307 if not arg1.__class__ is pw_multi_aff_list: 11308 arg1 = pw_multi_aff_list(arg1) 11309 except: 11310 raise 11311 ctx = arg0.ctx 11312 res = isl.isl_pw_multi_aff_list_concat(isl.isl_pw_multi_aff_list_copy(arg0.ptr), isl.isl_pw_multi_aff_list_copy(arg1.ptr)) 11313 obj = pw_multi_aff_list(ctx=ctx, ptr=res) 11314 return obj 11315 def drop(arg0, arg1, arg2): 11316 try: 11317 if not arg0.__class__ is pw_multi_aff_list: 11318 arg0 = pw_multi_aff_list(arg0) 11319 except: 11320 raise 11321 ctx = arg0.ctx 11322 res = isl.isl_pw_multi_aff_list_drop(isl.isl_pw_multi_aff_list_copy(arg0.ptr), arg1, arg2) 11323 obj = pw_multi_aff_list(ctx=ctx, ptr=res) 11324 return obj 11325 def foreach(arg0, arg1): 11326 try: 11327 if not arg0.__class__ is pw_multi_aff_list: 11328 arg0 = pw_multi_aff_list(arg0) 11329 except: 11330 raise 11331 exc_info = [None] 11332 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 11333 def cb_func(cb_arg0, cb_arg1): 11334 cb_arg0 = pw_multi_aff(ctx=arg0.ctx, ptr=(cb_arg0)) 11335 try: 11336 arg1(cb_arg0) 11337 except: 11338 import sys 11339 exc_info[0] = sys.exc_info() 11340 return -1 11341 return 0 11342 cb = fn(cb_func) 11343 ctx = arg0.ctx 11344 res = isl.isl_pw_multi_aff_list_foreach(arg0.ptr, cb, None) 11345 if exc_info[0] != None: 11346 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 11347 if res < 0: 11348 raise 11349 def at(arg0, arg1): 11350 try: 11351 if not arg0.__class__ is pw_multi_aff_list: 11352 arg0 = pw_multi_aff_list(arg0) 11353 except: 11354 raise 11355 ctx = arg0.ctx 11356 res = isl.isl_pw_multi_aff_list_get_at(arg0.ptr, arg1) 11357 obj = pw_multi_aff(ctx=ctx, ptr=res) 11358 return obj 11359 def get_at(arg0, arg1): 11360 return arg0.at(arg1) 11361 def insert(arg0, arg1, arg2): 11362 try: 11363 if not arg0.__class__ is pw_multi_aff_list: 11364 arg0 = pw_multi_aff_list(arg0) 11365 except: 11366 raise 11367 try: 11368 if not arg2.__class__ is pw_multi_aff: 11369 arg2 = pw_multi_aff(arg2) 11370 except: 11371 raise 11372 ctx = arg0.ctx 11373 res = isl.isl_pw_multi_aff_list_insert(isl.isl_pw_multi_aff_list_copy(arg0.ptr), arg1, isl.isl_pw_multi_aff_copy(arg2.ptr)) 11374 obj = pw_multi_aff_list(ctx=ctx, ptr=res) 11375 return obj 11376 def size(arg0): 11377 try: 11378 if not arg0.__class__ is pw_multi_aff_list: 11379 arg0 = pw_multi_aff_list(arg0) 11380 except: 11381 raise 11382 ctx = arg0.ctx 11383 res = isl.isl_pw_multi_aff_list_size(arg0.ptr) 11384 if res < 0: 11385 raise 11386 return int(res) 11387 11388isl.isl_pw_multi_aff_list_alloc.restype = c_void_p 11389isl.isl_pw_multi_aff_list_alloc.argtypes = [Context, c_int] 11390isl.isl_pw_multi_aff_list_from_pw_multi_aff.restype = c_void_p 11391isl.isl_pw_multi_aff_list_from_pw_multi_aff.argtypes = [c_void_p] 11392isl.isl_pw_multi_aff_list_add.restype = c_void_p 11393isl.isl_pw_multi_aff_list_add.argtypes = [c_void_p, c_void_p] 11394isl.isl_pw_multi_aff_list_clear.restype = c_void_p 11395isl.isl_pw_multi_aff_list_clear.argtypes = [c_void_p] 11396isl.isl_pw_multi_aff_list_concat.restype = c_void_p 11397isl.isl_pw_multi_aff_list_concat.argtypes = [c_void_p, c_void_p] 11398isl.isl_pw_multi_aff_list_drop.restype = c_void_p 11399isl.isl_pw_multi_aff_list_drop.argtypes = [c_void_p, c_int, c_int] 11400isl.isl_pw_multi_aff_list_foreach.argtypes = [c_void_p, c_void_p, c_void_p] 11401isl.isl_pw_multi_aff_list_get_at.restype = c_void_p 11402isl.isl_pw_multi_aff_list_get_at.argtypes = [c_void_p, c_int] 11403isl.isl_pw_multi_aff_list_insert.restype = c_void_p 11404isl.isl_pw_multi_aff_list_insert.argtypes = [c_void_p, c_int, c_void_p] 11405isl.isl_pw_multi_aff_list_size.argtypes = [c_void_p] 11406isl.isl_pw_multi_aff_list_copy.restype = c_void_p 11407isl.isl_pw_multi_aff_list_copy.argtypes = [c_void_p] 11408isl.isl_pw_multi_aff_list_free.restype = c_void_p 11409isl.isl_pw_multi_aff_list_free.argtypes = [c_void_p] 11410isl.isl_pw_multi_aff_list_to_str.restype = POINTER(c_char) 11411isl.isl_pw_multi_aff_list_to_str.argtypes = [c_void_p] 11412 11413class schedule(object): 11414 def __init__(self, *args, **keywords): 11415 if "ptr" in keywords: 11416 self.ctx = keywords["ctx"] 11417 self.ptr = keywords["ptr"] 11418 return 11419 if len(args) == 1 and type(args[0]) == str: 11420 self.ctx = Context.getDefaultInstance() 11421 self.ptr = isl.isl_schedule_read_from_str(self.ctx, args[0].encode('ascii')) 11422 return 11423 raise Error 11424 def __del__(self): 11425 if hasattr(self, 'ptr'): 11426 isl.isl_schedule_free(self.ptr) 11427 def __str__(arg0): 11428 try: 11429 if not arg0.__class__ is schedule: 11430 arg0 = schedule(arg0) 11431 except: 11432 raise 11433 ptr = isl.isl_schedule_to_str(arg0.ptr) 11434 res = cast(ptr, c_char_p).value.decode('ascii') 11435 libc.free(ptr) 11436 return res 11437 def __repr__(self): 11438 s = str(self) 11439 if '"' in s: 11440 return 'isl.schedule("""%s""")' % s 11441 else: 11442 return 'isl.schedule("%s")' % s 11443 @staticmethod 11444 def from_domain(arg0): 11445 try: 11446 if not arg0.__class__ is union_set: 11447 arg0 = union_set(arg0) 11448 except: 11449 raise 11450 ctx = arg0.ctx 11451 res = isl.isl_schedule_from_domain(isl.isl_union_set_copy(arg0.ptr)) 11452 obj = schedule(ctx=ctx, ptr=res) 11453 return obj 11454 def map(arg0): 11455 try: 11456 if not arg0.__class__ is schedule: 11457 arg0 = schedule(arg0) 11458 except: 11459 raise 11460 ctx = arg0.ctx 11461 res = isl.isl_schedule_get_map(arg0.ptr) 11462 obj = union_map(ctx=ctx, ptr=res) 11463 return obj 11464 def get_map(arg0): 11465 return arg0.map() 11466 def root(arg0): 11467 try: 11468 if not arg0.__class__ is schedule: 11469 arg0 = schedule(arg0) 11470 except: 11471 raise 11472 ctx = arg0.ctx 11473 res = isl.isl_schedule_get_root(arg0.ptr) 11474 obj = schedule_node(ctx=ctx, ptr=res) 11475 return obj 11476 def get_root(arg0): 11477 return arg0.root() 11478 def pullback(*args): 11479 if len(args) == 2 and args[1].__class__ is union_pw_multi_aff: 11480 ctx = args[0].ctx 11481 res = isl.isl_schedule_pullback_union_pw_multi_aff(isl.isl_schedule_copy(args[0].ptr), isl.isl_union_pw_multi_aff_copy(args[1].ptr)) 11482 obj = schedule(ctx=ctx, ptr=res) 11483 return obj 11484 raise Error 11485 11486isl.isl_schedule_read_from_str.restype = c_void_p 11487isl.isl_schedule_read_from_str.argtypes = [Context, c_char_p] 11488isl.isl_schedule_from_domain.restype = c_void_p 11489isl.isl_schedule_from_domain.argtypes = [c_void_p] 11490isl.isl_schedule_get_map.restype = c_void_p 11491isl.isl_schedule_get_map.argtypes = [c_void_p] 11492isl.isl_schedule_get_root.restype = c_void_p 11493isl.isl_schedule_get_root.argtypes = [c_void_p] 11494isl.isl_schedule_pullback_union_pw_multi_aff.restype = c_void_p 11495isl.isl_schedule_pullback_union_pw_multi_aff.argtypes = [c_void_p, c_void_p] 11496isl.isl_schedule_copy.restype = c_void_p 11497isl.isl_schedule_copy.argtypes = [c_void_p] 11498isl.isl_schedule_free.restype = c_void_p 11499isl.isl_schedule_free.argtypes = [c_void_p] 11500isl.isl_schedule_to_str.restype = POINTER(c_char) 11501isl.isl_schedule_to_str.argtypes = [c_void_p] 11502 11503class schedule_constraints(object): 11504 def __init__(self, *args, **keywords): 11505 if "ptr" in keywords: 11506 self.ctx = keywords["ctx"] 11507 self.ptr = keywords["ptr"] 11508 return 11509 if len(args) == 1 and type(args[0]) == str: 11510 self.ctx = Context.getDefaultInstance() 11511 self.ptr = isl.isl_schedule_constraints_read_from_str(self.ctx, args[0].encode('ascii')) 11512 return 11513 raise Error 11514 def __del__(self): 11515 if hasattr(self, 'ptr'): 11516 isl.isl_schedule_constraints_free(self.ptr) 11517 def __str__(arg0): 11518 try: 11519 if not arg0.__class__ is schedule_constraints: 11520 arg0 = schedule_constraints(arg0) 11521 except: 11522 raise 11523 ptr = isl.isl_schedule_constraints_to_str(arg0.ptr) 11524 res = cast(ptr, c_char_p).value.decode('ascii') 11525 libc.free(ptr) 11526 return res 11527 def __repr__(self): 11528 s = str(self) 11529 if '"' in s: 11530 return 'isl.schedule_constraints("""%s""")' % s 11531 else: 11532 return 'isl.schedule_constraints("%s")' % s 11533 def compute_schedule(arg0): 11534 try: 11535 if not arg0.__class__ is schedule_constraints: 11536 arg0 = schedule_constraints(arg0) 11537 except: 11538 raise 11539 ctx = arg0.ctx 11540 res = isl.isl_schedule_constraints_compute_schedule(isl.isl_schedule_constraints_copy(arg0.ptr)) 11541 obj = schedule(ctx=ctx, ptr=res) 11542 return obj 11543 def coincidence(arg0): 11544 try: 11545 if not arg0.__class__ is schedule_constraints: 11546 arg0 = schedule_constraints(arg0) 11547 except: 11548 raise 11549 ctx = arg0.ctx 11550 res = isl.isl_schedule_constraints_get_coincidence(arg0.ptr) 11551 obj = union_map(ctx=ctx, ptr=res) 11552 return obj 11553 def get_coincidence(arg0): 11554 return arg0.coincidence() 11555 def conditional_validity(arg0): 11556 try: 11557 if not arg0.__class__ is schedule_constraints: 11558 arg0 = schedule_constraints(arg0) 11559 except: 11560 raise 11561 ctx = arg0.ctx 11562 res = isl.isl_schedule_constraints_get_conditional_validity(arg0.ptr) 11563 obj = union_map(ctx=ctx, ptr=res) 11564 return obj 11565 def get_conditional_validity(arg0): 11566 return arg0.conditional_validity() 11567 def conditional_validity_condition(arg0): 11568 try: 11569 if not arg0.__class__ is schedule_constraints: 11570 arg0 = schedule_constraints(arg0) 11571 except: 11572 raise 11573 ctx = arg0.ctx 11574 res = isl.isl_schedule_constraints_get_conditional_validity_condition(arg0.ptr) 11575 obj = union_map(ctx=ctx, ptr=res) 11576 return obj 11577 def get_conditional_validity_condition(arg0): 11578 return arg0.conditional_validity_condition() 11579 def context(arg0): 11580 try: 11581 if not arg0.__class__ is schedule_constraints: 11582 arg0 = schedule_constraints(arg0) 11583 except: 11584 raise 11585 ctx = arg0.ctx 11586 res = isl.isl_schedule_constraints_get_context(arg0.ptr) 11587 obj = set(ctx=ctx, ptr=res) 11588 return obj 11589 def get_context(arg0): 11590 return arg0.context() 11591 def domain(arg0): 11592 try: 11593 if not arg0.__class__ is schedule_constraints: 11594 arg0 = schedule_constraints(arg0) 11595 except: 11596 raise 11597 ctx = arg0.ctx 11598 res = isl.isl_schedule_constraints_get_domain(arg0.ptr) 11599 obj = union_set(ctx=ctx, ptr=res) 11600 return obj 11601 def get_domain(arg0): 11602 return arg0.domain() 11603 def proximity(arg0): 11604 try: 11605 if not arg0.__class__ is schedule_constraints: 11606 arg0 = schedule_constraints(arg0) 11607 except: 11608 raise 11609 ctx = arg0.ctx 11610 res = isl.isl_schedule_constraints_get_proximity(arg0.ptr) 11611 obj = union_map(ctx=ctx, ptr=res) 11612 return obj 11613 def get_proximity(arg0): 11614 return arg0.proximity() 11615 def validity(arg0): 11616 try: 11617 if not arg0.__class__ is schedule_constraints: 11618 arg0 = schedule_constraints(arg0) 11619 except: 11620 raise 11621 ctx = arg0.ctx 11622 res = isl.isl_schedule_constraints_get_validity(arg0.ptr) 11623 obj = union_map(ctx=ctx, ptr=res) 11624 return obj 11625 def get_validity(arg0): 11626 return arg0.validity() 11627 @staticmethod 11628 def on_domain(arg0): 11629 try: 11630 if not arg0.__class__ is union_set: 11631 arg0 = union_set(arg0) 11632 except: 11633 raise 11634 ctx = arg0.ctx 11635 res = isl.isl_schedule_constraints_on_domain(isl.isl_union_set_copy(arg0.ptr)) 11636 obj = schedule_constraints(ctx=ctx, ptr=res) 11637 return obj 11638 def set_coincidence(arg0, arg1): 11639 try: 11640 if not arg0.__class__ is schedule_constraints: 11641 arg0 = schedule_constraints(arg0) 11642 except: 11643 raise 11644 try: 11645 if not arg1.__class__ is union_map: 11646 arg1 = union_map(arg1) 11647 except: 11648 raise 11649 ctx = arg0.ctx 11650 res = isl.isl_schedule_constraints_set_coincidence(isl.isl_schedule_constraints_copy(arg0.ptr), isl.isl_union_map_copy(arg1.ptr)) 11651 obj = schedule_constraints(ctx=ctx, ptr=res) 11652 return obj 11653 def set_conditional_validity(arg0, arg1, arg2): 11654 try: 11655 if not arg0.__class__ is schedule_constraints: 11656 arg0 = schedule_constraints(arg0) 11657 except: 11658 raise 11659 try: 11660 if not arg1.__class__ is union_map: 11661 arg1 = union_map(arg1) 11662 except: 11663 raise 11664 try: 11665 if not arg2.__class__ is union_map: 11666 arg2 = union_map(arg2) 11667 except: 11668 raise 11669 ctx = arg0.ctx 11670 res = isl.isl_schedule_constraints_set_conditional_validity(isl.isl_schedule_constraints_copy(arg0.ptr), isl.isl_union_map_copy(arg1.ptr), isl.isl_union_map_copy(arg2.ptr)) 11671 obj = schedule_constraints(ctx=ctx, ptr=res) 11672 return obj 11673 def set_context(arg0, arg1): 11674 try: 11675 if not arg0.__class__ is schedule_constraints: 11676 arg0 = schedule_constraints(arg0) 11677 except: 11678 raise 11679 try: 11680 if not arg1.__class__ is set: 11681 arg1 = set(arg1) 11682 except: 11683 raise 11684 ctx = arg0.ctx 11685 res = isl.isl_schedule_constraints_set_context(isl.isl_schedule_constraints_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 11686 obj = schedule_constraints(ctx=ctx, ptr=res) 11687 return obj 11688 def set_proximity(arg0, arg1): 11689 try: 11690 if not arg0.__class__ is schedule_constraints: 11691 arg0 = schedule_constraints(arg0) 11692 except: 11693 raise 11694 try: 11695 if not arg1.__class__ is union_map: 11696 arg1 = union_map(arg1) 11697 except: 11698 raise 11699 ctx = arg0.ctx 11700 res = isl.isl_schedule_constraints_set_proximity(isl.isl_schedule_constraints_copy(arg0.ptr), isl.isl_union_map_copy(arg1.ptr)) 11701 obj = schedule_constraints(ctx=ctx, ptr=res) 11702 return obj 11703 def set_validity(arg0, arg1): 11704 try: 11705 if not arg0.__class__ is schedule_constraints: 11706 arg0 = schedule_constraints(arg0) 11707 except: 11708 raise 11709 try: 11710 if not arg1.__class__ is union_map: 11711 arg1 = union_map(arg1) 11712 except: 11713 raise 11714 ctx = arg0.ctx 11715 res = isl.isl_schedule_constraints_set_validity(isl.isl_schedule_constraints_copy(arg0.ptr), isl.isl_union_map_copy(arg1.ptr)) 11716 obj = schedule_constraints(ctx=ctx, ptr=res) 11717 return obj 11718 11719isl.isl_schedule_constraints_read_from_str.restype = c_void_p 11720isl.isl_schedule_constraints_read_from_str.argtypes = [Context, c_char_p] 11721isl.isl_schedule_constraints_compute_schedule.restype = c_void_p 11722isl.isl_schedule_constraints_compute_schedule.argtypes = [c_void_p] 11723isl.isl_schedule_constraints_get_coincidence.restype = c_void_p 11724isl.isl_schedule_constraints_get_coincidence.argtypes = [c_void_p] 11725isl.isl_schedule_constraints_get_conditional_validity.restype = c_void_p 11726isl.isl_schedule_constraints_get_conditional_validity.argtypes = [c_void_p] 11727isl.isl_schedule_constraints_get_conditional_validity_condition.restype = c_void_p 11728isl.isl_schedule_constraints_get_conditional_validity_condition.argtypes = [c_void_p] 11729isl.isl_schedule_constraints_get_context.restype = c_void_p 11730isl.isl_schedule_constraints_get_context.argtypes = [c_void_p] 11731isl.isl_schedule_constraints_get_domain.restype = c_void_p 11732isl.isl_schedule_constraints_get_domain.argtypes = [c_void_p] 11733isl.isl_schedule_constraints_get_proximity.restype = c_void_p 11734isl.isl_schedule_constraints_get_proximity.argtypes = [c_void_p] 11735isl.isl_schedule_constraints_get_validity.restype = c_void_p 11736isl.isl_schedule_constraints_get_validity.argtypes = [c_void_p] 11737isl.isl_schedule_constraints_on_domain.restype = c_void_p 11738isl.isl_schedule_constraints_on_domain.argtypes = [c_void_p] 11739isl.isl_schedule_constraints_set_coincidence.restype = c_void_p 11740isl.isl_schedule_constraints_set_coincidence.argtypes = [c_void_p, c_void_p] 11741isl.isl_schedule_constraints_set_conditional_validity.restype = c_void_p 11742isl.isl_schedule_constraints_set_conditional_validity.argtypes = [c_void_p, c_void_p, c_void_p] 11743isl.isl_schedule_constraints_set_context.restype = c_void_p 11744isl.isl_schedule_constraints_set_context.argtypes = [c_void_p, c_void_p] 11745isl.isl_schedule_constraints_set_proximity.restype = c_void_p 11746isl.isl_schedule_constraints_set_proximity.argtypes = [c_void_p, c_void_p] 11747isl.isl_schedule_constraints_set_validity.restype = c_void_p 11748isl.isl_schedule_constraints_set_validity.argtypes = [c_void_p, c_void_p] 11749isl.isl_schedule_constraints_copy.restype = c_void_p 11750isl.isl_schedule_constraints_copy.argtypes = [c_void_p] 11751isl.isl_schedule_constraints_free.restype = c_void_p 11752isl.isl_schedule_constraints_free.argtypes = [c_void_p] 11753isl.isl_schedule_constraints_to_str.restype = POINTER(c_char) 11754isl.isl_schedule_constraints_to_str.argtypes = [c_void_p] 11755 11756class schedule_node(object): 11757 def __init__(self, *args, **keywords): 11758 if "ptr" in keywords: 11759 self.ctx = keywords["ctx"] 11760 self.ptr = keywords["ptr"] 11761 return 11762 if len(args) == 1 and isinstance(args[0], schedule_node_band): 11763 self.ctx = args[0].ctx 11764 self.ptr = isl.isl_schedule_node_copy(args[0].ptr) 11765 return 11766 if len(args) == 1 and isinstance(args[0], schedule_node_context): 11767 self.ctx = args[0].ctx 11768 self.ptr = isl.isl_schedule_node_copy(args[0].ptr) 11769 return 11770 if len(args) == 1 and isinstance(args[0], schedule_node_domain): 11771 self.ctx = args[0].ctx 11772 self.ptr = isl.isl_schedule_node_copy(args[0].ptr) 11773 return 11774 if len(args) == 1 and isinstance(args[0], schedule_node_expansion): 11775 self.ctx = args[0].ctx 11776 self.ptr = isl.isl_schedule_node_copy(args[0].ptr) 11777 return 11778 if len(args) == 1 and isinstance(args[0], schedule_node_extension): 11779 self.ctx = args[0].ctx 11780 self.ptr = isl.isl_schedule_node_copy(args[0].ptr) 11781 return 11782 if len(args) == 1 and isinstance(args[0], schedule_node_filter): 11783 self.ctx = args[0].ctx 11784 self.ptr = isl.isl_schedule_node_copy(args[0].ptr) 11785 return 11786 if len(args) == 1 and isinstance(args[0], schedule_node_leaf): 11787 self.ctx = args[0].ctx 11788 self.ptr = isl.isl_schedule_node_copy(args[0].ptr) 11789 return 11790 if len(args) == 1 and isinstance(args[0], schedule_node_guard): 11791 self.ctx = args[0].ctx 11792 self.ptr = isl.isl_schedule_node_copy(args[0].ptr) 11793 return 11794 if len(args) == 1 and isinstance(args[0], schedule_node_mark): 11795 self.ctx = args[0].ctx 11796 self.ptr = isl.isl_schedule_node_copy(args[0].ptr) 11797 return 11798 if len(args) == 1 and isinstance(args[0], schedule_node_sequence): 11799 self.ctx = args[0].ctx 11800 self.ptr = isl.isl_schedule_node_copy(args[0].ptr) 11801 return 11802 if len(args) == 1 and isinstance(args[0], schedule_node_set): 11803 self.ctx = args[0].ctx 11804 self.ptr = isl.isl_schedule_node_copy(args[0].ptr) 11805 return 11806 raise Error 11807 def __del__(self): 11808 if hasattr(self, 'ptr'): 11809 isl.isl_schedule_node_free(self.ptr) 11810 def __new__(cls, *args, **keywords): 11811 if "ptr" in keywords: 11812 type = isl.isl_schedule_node_get_type(keywords["ptr"]) 11813 if type == 0: 11814 return schedule_node_band(**keywords) 11815 if type == 1: 11816 return schedule_node_context(**keywords) 11817 if type == 2: 11818 return schedule_node_domain(**keywords) 11819 if type == 3: 11820 return schedule_node_expansion(**keywords) 11821 if type == 4: 11822 return schedule_node_extension(**keywords) 11823 if type == 5: 11824 return schedule_node_filter(**keywords) 11825 if type == 6: 11826 return schedule_node_leaf(**keywords) 11827 if type == 7: 11828 return schedule_node_guard(**keywords) 11829 if type == 8: 11830 return schedule_node_mark(**keywords) 11831 if type == 9: 11832 return schedule_node_sequence(**keywords) 11833 if type == 10: 11834 return schedule_node_set(**keywords) 11835 raise 11836 return super(schedule_node, cls).__new__(cls) 11837 def __str__(arg0): 11838 try: 11839 if not arg0.__class__ is schedule_node: 11840 arg0 = schedule_node(arg0) 11841 except: 11842 raise 11843 ptr = isl.isl_schedule_node_to_str(arg0.ptr) 11844 res = cast(ptr, c_char_p).value.decode('ascii') 11845 libc.free(ptr) 11846 return res 11847 def __repr__(self): 11848 s = str(self) 11849 if '"' in s: 11850 return 'isl.schedule_node("""%s""")' % s 11851 else: 11852 return 'isl.schedule_node("%s")' % s 11853 def ancestor(arg0, arg1): 11854 try: 11855 if not arg0.__class__ is schedule_node: 11856 arg0 = schedule_node(arg0) 11857 except: 11858 raise 11859 ctx = arg0.ctx 11860 res = isl.isl_schedule_node_ancestor(isl.isl_schedule_node_copy(arg0.ptr), arg1) 11861 obj = schedule_node(ctx=ctx, ptr=res) 11862 return obj 11863 def child(arg0, arg1): 11864 try: 11865 if not arg0.__class__ is schedule_node: 11866 arg0 = schedule_node(arg0) 11867 except: 11868 raise 11869 ctx = arg0.ctx 11870 res = isl.isl_schedule_node_child(isl.isl_schedule_node_copy(arg0.ptr), arg1) 11871 obj = schedule_node(ctx=ctx, ptr=res) 11872 return obj 11873 def every_descendant(arg0, arg1): 11874 try: 11875 if not arg0.__class__ is schedule_node: 11876 arg0 = schedule_node(arg0) 11877 except: 11878 raise 11879 exc_info = [None] 11880 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 11881 def cb_func(cb_arg0, cb_arg1): 11882 cb_arg0 = schedule_node(ctx=arg0.ctx, ptr=isl.isl_schedule_node_copy(cb_arg0)) 11883 try: 11884 res = arg1(cb_arg0) 11885 except: 11886 import sys 11887 exc_info[0] = sys.exc_info() 11888 return -1 11889 return 1 if res else 0 11890 cb = fn(cb_func) 11891 ctx = arg0.ctx 11892 res = isl.isl_schedule_node_every_descendant(arg0.ptr, cb, None) 11893 if exc_info[0] != None: 11894 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 11895 if res < 0: 11896 raise 11897 return bool(res) 11898 def first_child(arg0): 11899 try: 11900 if not arg0.__class__ is schedule_node: 11901 arg0 = schedule_node(arg0) 11902 except: 11903 raise 11904 ctx = arg0.ctx 11905 res = isl.isl_schedule_node_first_child(isl.isl_schedule_node_copy(arg0.ptr)) 11906 obj = schedule_node(ctx=ctx, ptr=res) 11907 return obj 11908 def foreach_ancestor_top_down(arg0, arg1): 11909 try: 11910 if not arg0.__class__ is schedule_node: 11911 arg0 = schedule_node(arg0) 11912 except: 11913 raise 11914 exc_info = [None] 11915 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 11916 def cb_func(cb_arg0, cb_arg1): 11917 cb_arg0 = schedule_node(ctx=arg0.ctx, ptr=isl.isl_schedule_node_copy(cb_arg0)) 11918 try: 11919 arg1(cb_arg0) 11920 except: 11921 import sys 11922 exc_info[0] = sys.exc_info() 11923 return -1 11924 return 0 11925 cb = fn(cb_func) 11926 ctx = arg0.ctx 11927 res = isl.isl_schedule_node_foreach_ancestor_top_down(arg0.ptr, cb, None) 11928 if exc_info[0] != None: 11929 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 11930 if res < 0: 11931 raise 11932 def foreach_descendant_top_down(arg0, arg1): 11933 try: 11934 if not arg0.__class__ is schedule_node: 11935 arg0 = schedule_node(arg0) 11936 except: 11937 raise 11938 exc_info = [None] 11939 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 11940 def cb_func(cb_arg0, cb_arg1): 11941 cb_arg0 = schedule_node(ctx=arg0.ctx, ptr=isl.isl_schedule_node_copy(cb_arg0)) 11942 try: 11943 res = arg1(cb_arg0) 11944 except: 11945 import sys 11946 exc_info[0] = sys.exc_info() 11947 return -1 11948 return 1 if res else 0 11949 cb = fn(cb_func) 11950 ctx = arg0.ctx 11951 res = isl.isl_schedule_node_foreach_descendant_top_down(arg0.ptr, cb, None) 11952 if exc_info[0] != None: 11953 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 11954 if res < 0: 11955 raise 11956 @staticmethod 11957 def from_domain(arg0): 11958 try: 11959 if not arg0.__class__ is union_set: 11960 arg0 = union_set(arg0) 11961 except: 11962 raise 11963 ctx = arg0.ctx 11964 res = isl.isl_schedule_node_from_domain(isl.isl_union_set_copy(arg0.ptr)) 11965 obj = schedule_node(ctx=ctx, ptr=res) 11966 return obj 11967 @staticmethod 11968 def from_extension(arg0): 11969 try: 11970 if not arg0.__class__ is union_map: 11971 arg0 = union_map(arg0) 11972 except: 11973 raise 11974 ctx = arg0.ctx 11975 res = isl.isl_schedule_node_from_extension(isl.isl_union_map_copy(arg0.ptr)) 11976 obj = schedule_node(ctx=ctx, ptr=res) 11977 return obj 11978 def ancestor_child_position(arg0, arg1): 11979 try: 11980 if not arg0.__class__ is schedule_node: 11981 arg0 = schedule_node(arg0) 11982 except: 11983 raise 11984 try: 11985 if not arg1.__class__ is schedule_node: 11986 arg1 = schedule_node(arg1) 11987 except: 11988 raise 11989 ctx = arg0.ctx 11990 res = isl.isl_schedule_node_get_ancestor_child_position(arg0.ptr, arg1.ptr) 11991 if res < 0: 11992 raise 11993 return int(res) 11994 def get_ancestor_child_position(arg0, arg1): 11995 return arg0.ancestor_child_position(arg1) 11996 def child_position(arg0): 11997 try: 11998 if not arg0.__class__ is schedule_node: 11999 arg0 = schedule_node(arg0) 12000 except: 12001 raise 12002 ctx = arg0.ctx 12003 res = isl.isl_schedule_node_get_child_position(arg0.ptr) 12004 if res < 0: 12005 raise 12006 return int(res) 12007 def get_child_position(arg0): 12008 return arg0.child_position() 12009 def prefix_schedule_multi_union_pw_aff(arg0): 12010 try: 12011 if not arg0.__class__ is schedule_node: 12012 arg0 = schedule_node(arg0) 12013 except: 12014 raise 12015 ctx = arg0.ctx 12016 res = isl.isl_schedule_node_get_prefix_schedule_multi_union_pw_aff(arg0.ptr) 12017 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 12018 return obj 12019 def get_prefix_schedule_multi_union_pw_aff(arg0): 12020 return arg0.prefix_schedule_multi_union_pw_aff() 12021 def prefix_schedule_union_map(arg0): 12022 try: 12023 if not arg0.__class__ is schedule_node: 12024 arg0 = schedule_node(arg0) 12025 except: 12026 raise 12027 ctx = arg0.ctx 12028 res = isl.isl_schedule_node_get_prefix_schedule_union_map(arg0.ptr) 12029 obj = union_map(ctx=ctx, ptr=res) 12030 return obj 12031 def get_prefix_schedule_union_map(arg0): 12032 return arg0.prefix_schedule_union_map() 12033 def prefix_schedule_union_pw_multi_aff(arg0): 12034 try: 12035 if not arg0.__class__ is schedule_node: 12036 arg0 = schedule_node(arg0) 12037 except: 12038 raise 12039 ctx = arg0.ctx 12040 res = isl.isl_schedule_node_get_prefix_schedule_union_pw_multi_aff(arg0.ptr) 12041 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 12042 return obj 12043 def get_prefix_schedule_union_pw_multi_aff(arg0): 12044 return arg0.prefix_schedule_union_pw_multi_aff() 12045 def schedule(arg0): 12046 try: 12047 if not arg0.__class__ is schedule_node: 12048 arg0 = schedule_node(arg0) 12049 except: 12050 raise 12051 ctx = arg0.ctx 12052 res = isl.isl_schedule_node_get_schedule(arg0.ptr) 12053 obj = schedule(ctx=ctx, ptr=res) 12054 return obj 12055 def get_schedule(arg0): 12056 return arg0.schedule() 12057 def shared_ancestor(arg0, arg1): 12058 try: 12059 if not arg0.__class__ is schedule_node: 12060 arg0 = schedule_node(arg0) 12061 except: 12062 raise 12063 try: 12064 if not arg1.__class__ is schedule_node: 12065 arg1 = schedule_node(arg1) 12066 except: 12067 raise 12068 ctx = arg0.ctx 12069 res = isl.isl_schedule_node_get_shared_ancestor(arg0.ptr, arg1.ptr) 12070 obj = schedule_node(ctx=ctx, ptr=res) 12071 return obj 12072 def get_shared_ancestor(arg0, arg1): 12073 return arg0.shared_ancestor(arg1) 12074 def tree_depth(arg0): 12075 try: 12076 if not arg0.__class__ is schedule_node: 12077 arg0 = schedule_node(arg0) 12078 except: 12079 raise 12080 ctx = arg0.ctx 12081 res = isl.isl_schedule_node_get_tree_depth(arg0.ptr) 12082 if res < 0: 12083 raise 12084 return int(res) 12085 def get_tree_depth(arg0): 12086 return arg0.tree_depth() 12087 def graft_after(arg0, arg1): 12088 try: 12089 if not arg0.__class__ is schedule_node: 12090 arg0 = schedule_node(arg0) 12091 except: 12092 raise 12093 try: 12094 if not arg1.__class__ is schedule_node: 12095 arg1 = schedule_node(arg1) 12096 except: 12097 raise 12098 ctx = arg0.ctx 12099 res = isl.isl_schedule_node_graft_after(isl.isl_schedule_node_copy(arg0.ptr), isl.isl_schedule_node_copy(arg1.ptr)) 12100 obj = schedule_node(ctx=ctx, ptr=res) 12101 return obj 12102 def graft_before(arg0, arg1): 12103 try: 12104 if not arg0.__class__ is schedule_node: 12105 arg0 = schedule_node(arg0) 12106 except: 12107 raise 12108 try: 12109 if not arg1.__class__ is schedule_node: 12110 arg1 = schedule_node(arg1) 12111 except: 12112 raise 12113 ctx = arg0.ctx 12114 res = isl.isl_schedule_node_graft_before(isl.isl_schedule_node_copy(arg0.ptr), isl.isl_schedule_node_copy(arg1.ptr)) 12115 obj = schedule_node(ctx=ctx, ptr=res) 12116 return obj 12117 def has_children(arg0): 12118 try: 12119 if not arg0.__class__ is schedule_node: 12120 arg0 = schedule_node(arg0) 12121 except: 12122 raise 12123 ctx = arg0.ctx 12124 res = isl.isl_schedule_node_has_children(arg0.ptr) 12125 if res < 0: 12126 raise 12127 return bool(res) 12128 def has_next_sibling(arg0): 12129 try: 12130 if not arg0.__class__ is schedule_node: 12131 arg0 = schedule_node(arg0) 12132 except: 12133 raise 12134 ctx = arg0.ctx 12135 res = isl.isl_schedule_node_has_next_sibling(arg0.ptr) 12136 if res < 0: 12137 raise 12138 return bool(res) 12139 def has_parent(arg0): 12140 try: 12141 if not arg0.__class__ is schedule_node: 12142 arg0 = schedule_node(arg0) 12143 except: 12144 raise 12145 ctx = arg0.ctx 12146 res = isl.isl_schedule_node_has_parent(arg0.ptr) 12147 if res < 0: 12148 raise 12149 return bool(res) 12150 def has_previous_sibling(arg0): 12151 try: 12152 if not arg0.__class__ is schedule_node: 12153 arg0 = schedule_node(arg0) 12154 except: 12155 raise 12156 ctx = arg0.ctx 12157 res = isl.isl_schedule_node_has_previous_sibling(arg0.ptr) 12158 if res < 0: 12159 raise 12160 return bool(res) 12161 def insert_context(arg0, arg1): 12162 try: 12163 if not arg0.__class__ is schedule_node: 12164 arg0 = schedule_node(arg0) 12165 except: 12166 raise 12167 try: 12168 if not arg1.__class__ is set: 12169 arg1 = set(arg1) 12170 except: 12171 raise 12172 ctx = arg0.ctx 12173 res = isl.isl_schedule_node_insert_context(isl.isl_schedule_node_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 12174 obj = schedule_node(ctx=ctx, ptr=res) 12175 return obj 12176 def insert_filter(arg0, arg1): 12177 try: 12178 if not arg0.__class__ is schedule_node: 12179 arg0 = schedule_node(arg0) 12180 except: 12181 raise 12182 try: 12183 if not arg1.__class__ is union_set: 12184 arg1 = union_set(arg1) 12185 except: 12186 raise 12187 ctx = arg0.ctx 12188 res = isl.isl_schedule_node_insert_filter(isl.isl_schedule_node_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 12189 obj = schedule_node(ctx=ctx, ptr=res) 12190 return obj 12191 def insert_guard(arg0, arg1): 12192 try: 12193 if not arg0.__class__ is schedule_node: 12194 arg0 = schedule_node(arg0) 12195 except: 12196 raise 12197 try: 12198 if not arg1.__class__ is set: 12199 arg1 = set(arg1) 12200 except: 12201 raise 12202 ctx = arg0.ctx 12203 res = isl.isl_schedule_node_insert_guard(isl.isl_schedule_node_copy(arg0.ptr), isl.isl_set_copy(arg1.ptr)) 12204 obj = schedule_node(ctx=ctx, ptr=res) 12205 return obj 12206 def insert_mark(arg0, arg1): 12207 try: 12208 if not arg0.__class__ is schedule_node: 12209 arg0 = schedule_node(arg0) 12210 except: 12211 raise 12212 try: 12213 if not arg1.__class__ is id: 12214 arg1 = id(arg1) 12215 except: 12216 raise 12217 ctx = arg0.ctx 12218 res = isl.isl_schedule_node_insert_mark(isl.isl_schedule_node_copy(arg0.ptr), isl.isl_id_copy(arg1.ptr)) 12219 obj = schedule_node(ctx=ctx, ptr=res) 12220 return obj 12221 def insert_partial_schedule(arg0, arg1): 12222 try: 12223 if not arg0.__class__ is schedule_node: 12224 arg0 = schedule_node(arg0) 12225 except: 12226 raise 12227 try: 12228 if not arg1.__class__ is multi_union_pw_aff: 12229 arg1 = multi_union_pw_aff(arg1) 12230 except: 12231 raise 12232 ctx = arg0.ctx 12233 res = isl.isl_schedule_node_insert_partial_schedule(isl.isl_schedule_node_copy(arg0.ptr), isl.isl_multi_union_pw_aff_copy(arg1.ptr)) 12234 obj = schedule_node(ctx=ctx, ptr=res) 12235 return obj 12236 def insert_sequence(arg0, arg1): 12237 try: 12238 if not arg0.__class__ is schedule_node: 12239 arg0 = schedule_node(arg0) 12240 except: 12241 raise 12242 try: 12243 if not arg1.__class__ is union_set_list: 12244 arg1 = union_set_list(arg1) 12245 except: 12246 raise 12247 ctx = arg0.ctx 12248 res = isl.isl_schedule_node_insert_sequence(isl.isl_schedule_node_copy(arg0.ptr), isl.isl_union_set_list_copy(arg1.ptr)) 12249 obj = schedule_node(ctx=ctx, ptr=res) 12250 return obj 12251 def insert_set(arg0, arg1): 12252 try: 12253 if not arg0.__class__ is schedule_node: 12254 arg0 = schedule_node(arg0) 12255 except: 12256 raise 12257 try: 12258 if not arg1.__class__ is union_set_list: 12259 arg1 = union_set_list(arg1) 12260 except: 12261 raise 12262 ctx = arg0.ctx 12263 res = isl.isl_schedule_node_insert_set(isl.isl_schedule_node_copy(arg0.ptr), isl.isl_union_set_list_copy(arg1.ptr)) 12264 obj = schedule_node(ctx=ctx, ptr=res) 12265 return obj 12266 def is_equal(arg0, arg1): 12267 try: 12268 if not arg0.__class__ is schedule_node: 12269 arg0 = schedule_node(arg0) 12270 except: 12271 raise 12272 try: 12273 if not arg1.__class__ is schedule_node: 12274 arg1 = schedule_node(arg1) 12275 except: 12276 raise 12277 ctx = arg0.ctx 12278 res = isl.isl_schedule_node_is_equal(arg0.ptr, arg1.ptr) 12279 if res < 0: 12280 raise 12281 return bool(res) 12282 def is_subtree_anchored(arg0): 12283 try: 12284 if not arg0.__class__ is schedule_node: 12285 arg0 = schedule_node(arg0) 12286 except: 12287 raise 12288 ctx = arg0.ctx 12289 res = isl.isl_schedule_node_is_subtree_anchored(arg0.ptr) 12290 if res < 0: 12291 raise 12292 return bool(res) 12293 def map_descendant_bottom_up(arg0, arg1): 12294 try: 12295 if not arg0.__class__ is schedule_node: 12296 arg0 = schedule_node(arg0) 12297 except: 12298 raise 12299 exc_info = [None] 12300 fn = CFUNCTYPE(c_void_p, c_void_p, c_void_p) 12301 def cb_func(cb_arg0, cb_arg1): 12302 cb_arg0 = schedule_node(ctx=arg0.ctx, ptr=(cb_arg0)) 12303 try: 12304 res = arg1(cb_arg0) 12305 except: 12306 import sys 12307 exc_info[0] = sys.exc_info() 12308 return None 12309 return isl.isl_schedule_node_copy(res.ptr) 12310 cb = fn(cb_func) 12311 ctx = arg0.ctx 12312 res = isl.isl_schedule_node_map_descendant_bottom_up(isl.isl_schedule_node_copy(arg0.ptr), cb, None) 12313 if exc_info[0] != None: 12314 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 12315 obj = schedule_node(ctx=ctx, ptr=res) 12316 return obj 12317 def n_children(arg0): 12318 try: 12319 if not arg0.__class__ is schedule_node: 12320 arg0 = schedule_node(arg0) 12321 except: 12322 raise 12323 ctx = arg0.ctx 12324 res = isl.isl_schedule_node_n_children(arg0.ptr) 12325 if res < 0: 12326 raise 12327 return int(res) 12328 def next_sibling(arg0): 12329 try: 12330 if not arg0.__class__ is schedule_node: 12331 arg0 = schedule_node(arg0) 12332 except: 12333 raise 12334 ctx = arg0.ctx 12335 res = isl.isl_schedule_node_next_sibling(isl.isl_schedule_node_copy(arg0.ptr)) 12336 obj = schedule_node(ctx=ctx, ptr=res) 12337 return obj 12338 def order_after(arg0, arg1): 12339 try: 12340 if not arg0.__class__ is schedule_node: 12341 arg0 = schedule_node(arg0) 12342 except: 12343 raise 12344 try: 12345 if not arg1.__class__ is union_set: 12346 arg1 = union_set(arg1) 12347 except: 12348 raise 12349 ctx = arg0.ctx 12350 res = isl.isl_schedule_node_order_after(isl.isl_schedule_node_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 12351 obj = schedule_node(ctx=ctx, ptr=res) 12352 return obj 12353 def order_before(arg0, arg1): 12354 try: 12355 if not arg0.__class__ is schedule_node: 12356 arg0 = schedule_node(arg0) 12357 except: 12358 raise 12359 try: 12360 if not arg1.__class__ is union_set: 12361 arg1 = union_set(arg1) 12362 except: 12363 raise 12364 ctx = arg0.ctx 12365 res = isl.isl_schedule_node_order_before(isl.isl_schedule_node_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 12366 obj = schedule_node(ctx=ctx, ptr=res) 12367 return obj 12368 def parent(arg0): 12369 try: 12370 if not arg0.__class__ is schedule_node: 12371 arg0 = schedule_node(arg0) 12372 except: 12373 raise 12374 ctx = arg0.ctx 12375 res = isl.isl_schedule_node_parent(isl.isl_schedule_node_copy(arg0.ptr)) 12376 obj = schedule_node(ctx=ctx, ptr=res) 12377 return obj 12378 def previous_sibling(arg0): 12379 try: 12380 if not arg0.__class__ is schedule_node: 12381 arg0 = schedule_node(arg0) 12382 except: 12383 raise 12384 ctx = arg0.ctx 12385 res = isl.isl_schedule_node_previous_sibling(isl.isl_schedule_node_copy(arg0.ptr)) 12386 obj = schedule_node(ctx=ctx, ptr=res) 12387 return obj 12388 def root(arg0): 12389 try: 12390 if not arg0.__class__ is schedule_node: 12391 arg0 = schedule_node(arg0) 12392 except: 12393 raise 12394 ctx = arg0.ctx 12395 res = isl.isl_schedule_node_root(isl.isl_schedule_node_copy(arg0.ptr)) 12396 obj = schedule_node(ctx=ctx, ptr=res) 12397 return obj 12398 12399isl.isl_schedule_node_ancestor.restype = c_void_p 12400isl.isl_schedule_node_ancestor.argtypes = [c_void_p, c_int] 12401isl.isl_schedule_node_child.restype = c_void_p 12402isl.isl_schedule_node_child.argtypes = [c_void_p, c_int] 12403isl.isl_schedule_node_every_descendant.argtypes = [c_void_p, c_void_p, c_void_p] 12404isl.isl_schedule_node_first_child.restype = c_void_p 12405isl.isl_schedule_node_first_child.argtypes = [c_void_p] 12406isl.isl_schedule_node_foreach_ancestor_top_down.argtypes = [c_void_p, c_void_p, c_void_p] 12407isl.isl_schedule_node_foreach_descendant_top_down.argtypes = [c_void_p, c_void_p, c_void_p] 12408isl.isl_schedule_node_from_domain.restype = c_void_p 12409isl.isl_schedule_node_from_domain.argtypes = [c_void_p] 12410isl.isl_schedule_node_from_extension.restype = c_void_p 12411isl.isl_schedule_node_from_extension.argtypes = [c_void_p] 12412isl.isl_schedule_node_get_ancestor_child_position.argtypes = [c_void_p, c_void_p] 12413isl.isl_schedule_node_get_child_position.argtypes = [c_void_p] 12414isl.isl_schedule_node_get_prefix_schedule_multi_union_pw_aff.restype = c_void_p 12415isl.isl_schedule_node_get_prefix_schedule_multi_union_pw_aff.argtypes = [c_void_p] 12416isl.isl_schedule_node_get_prefix_schedule_union_map.restype = c_void_p 12417isl.isl_schedule_node_get_prefix_schedule_union_map.argtypes = [c_void_p] 12418isl.isl_schedule_node_get_prefix_schedule_union_pw_multi_aff.restype = c_void_p 12419isl.isl_schedule_node_get_prefix_schedule_union_pw_multi_aff.argtypes = [c_void_p] 12420isl.isl_schedule_node_get_schedule.restype = c_void_p 12421isl.isl_schedule_node_get_schedule.argtypes = [c_void_p] 12422isl.isl_schedule_node_get_shared_ancestor.restype = c_void_p 12423isl.isl_schedule_node_get_shared_ancestor.argtypes = [c_void_p, c_void_p] 12424isl.isl_schedule_node_get_tree_depth.argtypes = [c_void_p] 12425isl.isl_schedule_node_graft_after.restype = c_void_p 12426isl.isl_schedule_node_graft_after.argtypes = [c_void_p, c_void_p] 12427isl.isl_schedule_node_graft_before.restype = c_void_p 12428isl.isl_schedule_node_graft_before.argtypes = [c_void_p, c_void_p] 12429isl.isl_schedule_node_has_children.argtypes = [c_void_p] 12430isl.isl_schedule_node_has_next_sibling.argtypes = [c_void_p] 12431isl.isl_schedule_node_has_parent.argtypes = [c_void_p] 12432isl.isl_schedule_node_has_previous_sibling.argtypes = [c_void_p] 12433isl.isl_schedule_node_insert_context.restype = c_void_p 12434isl.isl_schedule_node_insert_context.argtypes = [c_void_p, c_void_p] 12435isl.isl_schedule_node_insert_filter.restype = c_void_p 12436isl.isl_schedule_node_insert_filter.argtypes = [c_void_p, c_void_p] 12437isl.isl_schedule_node_insert_guard.restype = c_void_p 12438isl.isl_schedule_node_insert_guard.argtypes = [c_void_p, c_void_p] 12439isl.isl_schedule_node_insert_mark.restype = c_void_p 12440isl.isl_schedule_node_insert_mark.argtypes = [c_void_p, c_void_p] 12441isl.isl_schedule_node_insert_partial_schedule.restype = c_void_p 12442isl.isl_schedule_node_insert_partial_schedule.argtypes = [c_void_p, c_void_p] 12443isl.isl_schedule_node_insert_sequence.restype = c_void_p 12444isl.isl_schedule_node_insert_sequence.argtypes = [c_void_p, c_void_p] 12445isl.isl_schedule_node_insert_set.restype = c_void_p 12446isl.isl_schedule_node_insert_set.argtypes = [c_void_p, c_void_p] 12447isl.isl_schedule_node_is_equal.argtypes = [c_void_p, c_void_p] 12448isl.isl_schedule_node_is_subtree_anchored.argtypes = [c_void_p] 12449isl.isl_schedule_node_map_descendant_bottom_up.restype = c_void_p 12450isl.isl_schedule_node_map_descendant_bottom_up.argtypes = [c_void_p, c_void_p, c_void_p] 12451isl.isl_schedule_node_n_children.argtypes = [c_void_p] 12452isl.isl_schedule_node_next_sibling.restype = c_void_p 12453isl.isl_schedule_node_next_sibling.argtypes = [c_void_p] 12454isl.isl_schedule_node_order_after.restype = c_void_p 12455isl.isl_schedule_node_order_after.argtypes = [c_void_p, c_void_p] 12456isl.isl_schedule_node_order_before.restype = c_void_p 12457isl.isl_schedule_node_order_before.argtypes = [c_void_p, c_void_p] 12458isl.isl_schedule_node_parent.restype = c_void_p 12459isl.isl_schedule_node_parent.argtypes = [c_void_p] 12460isl.isl_schedule_node_previous_sibling.restype = c_void_p 12461isl.isl_schedule_node_previous_sibling.argtypes = [c_void_p] 12462isl.isl_schedule_node_root.restype = c_void_p 12463isl.isl_schedule_node_root.argtypes = [c_void_p] 12464isl.isl_schedule_node_copy.restype = c_void_p 12465isl.isl_schedule_node_copy.argtypes = [c_void_p] 12466isl.isl_schedule_node_free.restype = c_void_p 12467isl.isl_schedule_node_free.argtypes = [c_void_p] 12468isl.isl_schedule_node_to_str.restype = POINTER(c_char) 12469isl.isl_schedule_node_to_str.argtypes = [c_void_p] 12470isl.isl_schedule_node_get_type.argtypes = [c_void_p] 12471 12472class schedule_node_band(schedule_node): 12473 def __init__(self, *args, **keywords): 12474 if "ptr" in keywords: 12475 self.ctx = keywords["ctx"] 12476 self.ptr = keywords["ptr"] 12477 return 12478 raise Error 12479 def __del__(self): 12480 if hasattr(self, 'ptr'): 12481 isl.isl_schedule_node_free(self.ptr) 12482 def __new__(cls, *args, **keywords): 12483 return super(schedule_node_band, cls).__new__(cls) 12484 def __str__(arg0): 12485 try: 12486 if not arg0.__class__ is schedule_node_band: 12487 arg0 = schedule_node_band(arg0) 12488 except: 12489 raise 12490 ptr = isl.isl_schedule_node_to_str(arg0.ptr) 12491 res = cast(ptr, c_char_p).value.decode('ascii') 12492 libc.free(ptr) 12493 return res 12494 def __repr__(self): 12495 s = str(self) 12496 if '"' in s: 12497 return 'isl.schedule_node_band("""%s""")' % s 12498 else: 12499 return 'isl.schedule_node_band("%s")' % s 12500 def ast_build_options(arg0): 12501 try: 12502 if not arg0.__class__ is schedule_node: 12503 arg0 = schedule_node(arg0) 12504 except: 12505 raise 12506 ctx = arg0.ctx 12507 res = isl.isl_schedule_node_band_get_ast_build_options(arg0.ptr) 12508 obj = union_set(ctx=ctx, ptr=res) 12509 return obj 12510 def get_ast_build_options(arg0): 12511 return arg0.ast_build_options() 12512 def ast_isolate_option(arg0): 12513 try: 12514 if not arg0.__class__ is schedule_node: 12515 arg0 = schedule_node(arg0) 12516 except: 12517 raise 12518 ctx = arg0.ctx 12519 res = isl.isl_schedule_node_band_get_ast_isolate_option(arg0.ptr) 12520 obj = set(ctx=ctx, ptr=res) 12521 return obj 12522 def get_ast_isolate_option(arg0): 12523 return arg0.ast_isolate_option() 12524 def partial_schedule(arg0): 12525 try: 12526 if not arg0.__class__ is schedule_node: 12527 arg0 = schedule_node(arg0) 12528 except: 12529 raise 12530 ctx = arg0.ctx 12531 res = isl.isl_schedule_node_band_get_partial_schedule(arg0.ptr) 12532 obj = multi_union_pw_aff(ctx=ctx, ptr=res) 12533 return obj 12534 def get_partial_schedule(arg0): 12535 return arg0.partial_schedule() 12536 def permutable(arg0): 12537 try: 12538 if not arg0.__class__ is schedule_node: 12539 arg0 = schedule_node(arg0) 12540 except: 12541 raise 12542 ctx = arg0.ctx 12543 res = isl.isl_schedule_node_band_get_permutable(arg0.ptr) 12544 if res < 0: 12545 raise 12546 return bool(res) 12547 def get_permutable(arg0): 12548 return arg0.permutable() 12549 def member_get_coincident(arg0, arg1): 12550 try: 12551 if not arg0.__class__ is schedule_node: 12552 arg0 = schedule_node(arg0) 12553 except: 12554 raise 12555 ctx = arg0.ctx 12556 res = isl.isl_schedule_node_band_member_get_coincident(arg0.ptr, arg1) 12557 if res < 0: 12558 raise 12559 return bool(res) 12560 def member_set_coincident(arg0, arg1, arg2): 12561 try: 12562 if not arg0.__class__ is schedule_node: 12563 arg0 = schedule_node(arg0) 12564 except: 12565 raise 12566 ctx = arg0.ctx 12567 res = isl.isl_schedule_node_band_member_set_coincident(isl.isl_schedule_node_copy(arg0.ptr), arg1, arg2) 12568 obj = schedule_node(ctx=ctx, ptr=res) 12569 return obj 12570 def mod(arg0, arg1): 12571 try: 12572 if not arg0.__class__ is schedule_node: 12573 arg0 = schedule_node(arg0) 12574 except: 12575 raise 12576 try: 12577 if not arg1.__class__ is multi_val: 12578 arg1 = multi_val(arg1) 12579 except: 12580 raise 12581 ctx = arg0.ctx 12582 res = isl.isl_schedule_node_band_mod(isl.isl_schedule_node_copy(arg0.ptr), isl.isl_multi_val_copy(arg1.ptr)) 12583 obj = schedule_node(ctx=ctx, ptr=res) 12584 return obj 12585 def n_member(arg0): 12586 try: 12587 if not arg0.__class__ is schedule_node: 12588 arg0 = schedule_node(arg0) 12589 except: 12590 raise 12591 ctx = arg0.ctx 12592 res = isl.isl_schedule_node_band_n_member(arg0.ptr) 12593 if res < 0: 12594 raise 12595 return int(res) 12596 def scale(arg0, arg1): 12597 try: 12598 if not arg0.__class__ is schedule_node: 12599 arg0 = schedule_node(arg0) 12600 except: 12601 raise 12602 try: 12603 if not arg1.__class__ is multi_val: 12604 arg1 = multi_val(arg1) 12605 except: 12606 raise 12607 ctx = arg0.ctx 12608 res = isl.isl_schedule_node_band_scale(isl.isl_schedule_node_copy(arg0.ptr), isl.isl_multi_val_copy(arg1.ptr)) 12609 obj = schedule_node(ctx=ctx, ptr=res) 12610 return obj 12611 def scale_down(arg0, arg1): 12612 try: 12613 if not arg0.__class__ is schedule_node: 12614 arg0 = schedule_node(arg0) 12615 except: 12616 raise 12617 try: 12618 if not arg1.__class__ is multi_val: 12619 arg1 = multi_val(arg1) 12620 except: 12621 raise 12622 ctx = arg0.ctx 12623 res = isl.isl_schedule_node_band_scale_down(isl.isl_schedule_node_copy(arg0.ptr), isl.isl_multi_val_copy(arg1.ptr)) 12624 obj = schedule_node(ctx=ctx, ptr=res) 12625 return obj 12626 def set_ast_build_options(arg0, arg1): 12627 try: 12628 if not arg0.__class__ is schedule_node: 12629 arg0 = schedule_node(arg0) 12630 except: 12631 raise 12632 try: 12633 if not arg1.__class__ is union_set: 12634 arg1 = union_set(arg1) 12635 except: 12636 raise 12637 ctx = arg0.ctx 12638 res = isl.isl_schedule_node_band_set_ast_build_options(isl.isl_schedule_node_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 12639 obj = schedule_node(ctx=ctx, ptr=res) 12640 return obj 12641 def set_permutable(arg0, arg1): 12642 try: 12643 if not arg0.__class__ is schedule_node: 12644 arg0 = schedule_node(arg0) 12645 except: 12646 raise 12647 ctx = arg0.ctx 12648 res = isl.isl_schedule_node_band_set_permutable(isl.isl_schedule_node_copy(arg0.ptr), arg1) 12649 obj = schedule_node(ctx=ctx, ptr=res) 12650 return obj 12651 def shift(arg0, arg1): 12652 try: 12653 if not arg0.__class__ is schedule_node: 12654 arg0 = schedule_node(arg0) 12655 except: 12656 raise 12657 try: 12658 if not arg1.__class__ is multi_union_pw_aff: 12659 arg1 = multi_union_pw_aff(arg1) 12660 except: 12661 raise 12662 ctx = arg0.ctx 12663 res = isl.isl_schedule_node_band_shift(isl.isl_schedule_node_copy(arg0.ptr), isl.isl_multi_union_pw_aff_copy(arg1.ptr)) 12664 obj = schedule_node(ctx=ctx, ptr=res) 12665 return obj 12666 def split(arg0, arg1): 12667 try: 12668 if not arg0.__class__ is schedule_node: 12669 arg0 = schedule_node(arg0) 12670 except: 12671 raise 12672 ctx = arg0.ctx 12673 res = isl.isl_schedule_node_band_split(isl.isl_schedule_node_copy(arg0.ptr), arg1) 12674 obj = schedule_node(ctx=ctx, ptr=res) 12675 return obj 12676 def tile(arg0, arg1): 12677 try: 12678 if not arg0.__class__ is schedule_node: 12679 arg0 = schedule_node(arg0) 12680 except: 12681 raise 12682 try: 12683 if not arg1.__class__ is multi_val: 12684 arg1 = multi_val(arg1) 12685 except: 12686 raise 12687 ctx = arg0.ctx 12688 res = isl.isl_schedule_node_band_tile(isl.isl_schedule_node_copy(arg0.ptr), isl.isl_multi_val_copy(arg1.ptr)) 12689 obj = schedule_node(ctx=ctx, ptr=res) 12690 return obj 12691 def member_set_ast_loop_default(arg0, arg1): 12692 try: 12693 if not arg0.__class__ is schedule_node: 12694 arg0 = schedule_node(arg0) 12695 except: 12696 raise 12697 ctx = arg0.ctx 12698 res = isl.isl_schedule_node_band_member_set_ast_loop_type(isl.isl_schedule_node_copy(arg0.ptr), arg1, 0) 12699 obj = schedule_node(ctx=ctx, ptr=res) 12700 return obj 12701 def member_set_ast_loop_atomic(arg0, arg1): 12702 try: 12703 if not arg0.__class__ is schedule_node: 12704 arg0 = schedule_node(arg0) 12705 except: 12706 raise 12707 ctx = arg0.ctx 12708 res = isl.isl_schedule_node_band_member_set_ast_loop_type(isl.isl_schedule_node_copy(arg0.ptr), arg1, 1) 12709 obj = schedule_node(ctx=ctx, ptr=res) 12710 return obj 12711 def member_set_ast_loop_unroll(arg0, arg1): 12712 try: 12713 if not arg0.__class__ is schedule_node: 12714 arg0 = schedule_node(arg0) 12715 except: 12716 raise 12717 ctx = arg0.ctx 12718 res = isl.isl_schedule_node_band_member_set_ast_loop_type(isl.isl_schedule_node_copy(arg0.ptr), arg1, 2) 12719 obj = schedule_node(ctx=ctx, ptr=res) 12720 return obj 12721 def member_set_ast_loop_separate(arg0, arg1): 12722 try: 12723 if not arg0.__class__ is schedule_node: 12724 arg0 = schedule_node(arg0) 12725 except: 12726 raise 12727 ctx = arg0.ctx 12728 res = isl.isl_schedule_node_band_member_set_ast_loop_type(isl.isl_schedule_node_copy(arg0.ptr), arg1, 3) 12729 obj = schedule_node(ctx=ctx, ptr=res) 12730 return obj 12731 12732isl.isl_schedule_node_band_get_ast_build_options.restype = c_void_p 12733isl.isl_schedule_node_band_get_ast_build_options.argtypes = [c_void_p] 12734isl.isl_schedule_node_band_get_ast_isolate_option.restype = c_void_p 12735isl.isl_schedule_node_band_get_ast_isolate_option.argtypes = [c_void_p] 12736isl.isl_schedule_node_band_get_partial_schedule.restype = c_void_p 12737isl.isl_schedule_node_band_get_partial_schedule.argtypes = [c_void_p] 12738isl.isl_schedule_node_band_get_permutable.argtypes = [c_void_p] 12739isl.isl_schedule_node_band_member_get_coincident.argtypes = [c_void_p, c_int] 12740isl.isl_schedule_node_band_member_set_coincident.restype = c_void_p 12741isl.isl_schedule_node_band_member_set_coincident.argtypes = [c_void_p, c_int, c_int] 12742isl.isl_schedule_node_band_mod.restype = c_void_p 12743isl.isl_schedule_node_band_mod.argtypes = [c_void_p, c_void_p] 12744isl.isl_schedule_node_band_n_member.argtypes = [c_void_p] 12745isl.isl_schedule_node_band_scale.restype = c_void_p 12746isl.isl_schedule_node_band_scale.argtypes = [c_void_p, c_void_p] 12747isl.isl_schedule_node_band_scale_down.restype = c_void_p 12748isl.isl_schedule_node_band_scale_down.argtypes = [c_void_p, c_void_p] 12749isl.isl_schedule_node_band_set_ast_build_options.restype = c_void_p 12750isl.isl_schedule_node_band_set_ast_build_options.argtypes = [c_void_p, c_void_p] 12751isl.isl_schedule_node_band_set_permutable.restype = c_void_p 12752isl.isl_schedule_node_band_set_permutable.argtypes = [c_void_p, c_int] 12753isl.isl_schedule_node_band_shift.restype = c_void_p 12754isl.isl_schedule_node_band_shift.argtypes = [c_void_p, c_void_p] 12755isl.isl_schedule_node_band_split.restype = c_void_p 12756isl.isl_schedule_node_band_split.argtypes = [c_void_p, c_int] 12757isl.isl_schedule_node_band_tile.restype = c_void_p 12758isl.isl_schedule_node_band_tile.argtypes = [c_void_p, c_void_p] 12759isl.isl_schedule_node_band_member_set_ast_loop_type.restype = c_void_p 12760isl.isl_schedule_node_band_member_set_ast_loop_type.argtypes = [c_void_p, c_int, c_int] 12761isl.isl_schedule_node_copy.restype = c_void_p 12762isl.isl_schedule_node_copy.argtypes = [c_void_p] 12763isl.isl_schedule_node_free.restype = c_void_p 12764isl.isl_schedule_node_free.argtypes = [c_void_p] 12765isl.isl_schedule_node_to_str.restype = POINTER(c_char) 12766isl.isl_schedule_node_to_str.argtypes = [c_void_p] 12767 12768class schedule_node_context(schedule_node): 12769 def __init__(self, *args, **keywords): 12770 if "ptr" in keywords: 12771 self.ctx = keywords["ctx"] 12772 self.ptr = keywords["ptr"] 12773 return 12774 raise Error 12775 def __del__(self): 12776 if hasattr(self, 'ptr'): 12777 isl.isl_schedule_node_free(self.ptr) 12778 def __new__(cls, *args, **keywords): 12779 return super(schedule_node_context, cls).__new__(cls) 12780 def __str__(arg0): 12781 try: 12782 if not arg0.__class__ is schedule_node_context: 12783 arg0 = schedule_node_context(arg0) 12784 except: 12785 raise 12786 ptr = isl.isl_schedule_node_to_str(arg0.ptr) 12787 res = cast(ptr, c_char_p).value.decode('ascii') 12788 libc.free(ptr) 12789 return res 12790 def __repr__(self): 12791 s = str(self) 12792 if '"' in s: 12793 return 'isl.schedule_node_context("""%s""")' % s 12794 else: 12795 return 'isl.schedule_node_context("%s")' % s 12796 def context(arg0): 12797 try: 12798 if not arg0.__class__ is schedule_node: 12799 arg0 = schedule_node(arg0) 12800 except: 12801 raise 12802 ctx = arg0.ctx 12803 res = isl.isl_schedule_node_context_get_context(arg0.ptr) 12804 obj = set(ctx=ctx, ptr=res) 12805 return obj 12806 def get_context(arg0): 12807 return arg0.context() 12808 12809isl.isl_schedule_node_context_get_context.restype = c_void_p 12810isl.isl_schedule_node_context_get_context.argtypes = [c_void_p] 12811isl.isl_schedule_node_copy.restype = c_void_p 12812isl.isl_schedule_node_copy.argtypes = [c_void_p] 12813isl.isl_schedule_node_free.restype = c_void_p 12814isl.isl_schedule_node_free.argtypes = [c_void_p] 12815isl.isl_schedule_node_to_str.restype = POINTER(c_char) 12816isl.isl_schedule_node_to_str.argtypes = [c_void_p] 12817 12818class schedule_node_domain(schedule_node): 12819 def __init__(self, *args, **keywords): 12820 if "ptr" in keywords: 12821 self.ctx = keywords["ctx"] 12822 self.ptr = keywords["ptr"] 12823 return 12824 raise Error 12825 def __del__(self): 12826 if hasattr(self, 'ptr'): 12827 isl.isl_schedule_node_free(self.ptr) 12828 def __new__(cls, *args, **keywords): 12829 return super(schedule_node_domain, cls).__new__(cls) 12830 def __str__(arg0): 12831 try: 12832 if not arg0.__class__ is schedule_node_domain: 12833 arg0 = schedule_node_domain(arg0) 12834 except: 12835 raise 12836 ptr = isl.isl_schedule_node_to_str(arg0.ptr) 12837 res = cast(ptr, c_char_p).value.decode('ascii') 12838 libc.free(ptr) 12839 return res 12840 def __repr__(self): 12841 s = str(self) 12842 if '"' in s: 12843 return 'isl.schedule_node_domain("""%s""")' % s 12844 else: 12845 return 'isl.schedule_node_domain("%s")' % s 12846 def domain(arg0): 12847 try: 12848 if not arg0.__class__ is schedule_node: 12849 arg0 = schedule_node(arg0) 12850 except: 12851 raise 12852 ctx = arg0.ctx 12853 res = isl.isl_schedule_node_domain_get_domain(arg0.ptr) 12854 obj = union_set(ctx=ctx, ptr=res) 12855 return obj 12856 def get_domain(arg0): 12857 return arg0.domain() 12858 12859isl.isl_schedule_node_domain_get_domain.restype = c_void_p 12860isl.isl_schedule_node_domain_get_domain.argtypes = [c_void_p] 12861isl.isl_schedule_node_copy.restype = c_void_p 12862isl.isl_schedule_node_copy.argtypes = [c_void_p] 12863isl.isl_schedule_node_free.restype = c_void_p 12864isl.isl_schedule_node_free.argtypes = [c_void_p] 12865isl.isl_schedule_node_to_str.restype = POINTER(c_char) 12866isl.isl_schedule_node_to_str.argtypes = [c_void_p] 12867 12868class schedule_node_expansion(schedule_node): 12869 def __init__(self, *args, **keywords): 12870 if "ptr" in keywords: 12871 self.ctx = keywords["ctx"] 12872 self.ptr = keywords["ptr"] 12873 return 12874 raise Error 12875 def __del__(self): 12876 if hasattr(self, 'ptr'): 12877 isl.isl_schedule_node_free(self.ptr) 12878 def __new__(cls, *args, **keywords): 12879 return super(schedule_node_expansion, cls).__new__(cls) 12880 def __str__(arg0): 12881 try: 12882 if not arg0.__class__ is schedule_node_expansion: 12883 arg0 = schedule_node_expansion(arg0) 12884 except: 12885 raise 12886 ptr = isl.isl_schedule_node_to_str(arg0.ptr) 12887 res = cast(ptr, c_char_p).value.decode('ascii') 12888 libc.free(ptr) 12889 return res 12890 def __repr__(self): 12891 s = str(self) 12892 if '"' in s: 12893 return 'isl.schedule_node_expansion("""%s""")' % s 12894 else: 12895 return 'isl.schedule_node_expansion("%s")' % s 12896 def contraction(arg0): 12897 try: 12898 if not arg0.__class__ is schedule_node: 12899 arg0 = schedule_node(arg0) 12900 except: 12901 raise 12902 ctx = arg0.ctx 12903 res = isl.isl_schedule_node_expansion_get_contraction(arg0.ptr) 12904 obj = union_pw_multi_aff(ctx=ctx, ptr=res) 12905 return obj 12906 def get_contraction(arg0): 12907 return arg0.contraction() 12908 def expansion(arg0): 12909 try: 12910 if not arg0.__class__ is schedule_node: 12911 arg0 = schedule_node(arg0) 12912 except: 12913 raise 12914 ctx = arg0.ctx 12915 res = isl.isl_schedule_node_expansion_get_expansion(arg0.ptr) 12916 obj = union_map(ctx=ctx, ptr=res) 12917 return obj 12918 def get_expansion(arg0): 12919 return arg0.expansion() 12920 12921isl.isl_schedule_node_expansion_get_contraction.restype = c_void_p 12922isl.isl_schedule_node_expansion_get_contraction.argtypes = [c_void_p] 12923isl.isl_schedule_node_expansion_get_expansion.restype = c_void_p 12924isl.isl_schedule_node_expansion_get_expansion.argtypes = [c_void_p] 12925isl.isl_schedule_node_copy.restype = c_void_p 12926isl.isl_schedule_node_copy.argtypes = [c_void_p] 12927isl.isl_schedule_node_free.restype = c_void_p 12928isl.isl_schedule_node_free.argtypes = [c_void_p] 12929isl.isl_schedule_node_to_str.restype = POINTER(c_char) 12930isl.isl_schedule_node_to_str.argtypes = [c_void_p] 12931 12932class schedule_node_extension(schedule_node): 12933 def __init__(self, *args, **keywords): 12934 if "ptr" in keywords: 12935 self.ctx = keywords["ctx"] 12936 self.ptr = keywords["ptr"] 12937 return 12938 raise Error 12939 def __del__(self): 12940 if hasattr(self, 'ptr'): 12941 isl.isl_schedule_node_free(self.ptr) 12942 def __new__(cls, *args, **keywords): 12943 return super(schedule_node_extension, cls).__new__(cls) 12944 def __str__(arg0): 12945 try: 12946 if not arg0.__class__ is schedule_node_extension: 12947 arg0 = schedule_node_extension(arg0) 12948 except: 12949 raise 12950 ptr = isl.isl_schedule_node_to_str(arg0.ptr) 12951 res = cast(ptr, c_char_p).value.decode('ascii') 12952 libc.free(ptr) 12953 return res 12954 def __repr__(self): 12955 s = str(self) 12956 if '"' in s: 12957 return 'isl.schedule_node_extension("""%s""")' % s 12958 else: 12959 return 'isl.schedule_node_extension("%s")' % s 12960 def extension(arg0): 12961 try: 12962 if not arg0.__class__ is schedule_node: 12963 arg0 = schedule_node(arg0) 12964 except: 12965 raise 12966 ctx = arg0.ctx 12967 res = isl.isl_schedule_node_extension_get_extension(arg0.ptr) 12968 obj = union_map(ctx=ctx, ptr=res) 12969 return obj 12970 def get_extension(arg0): 12971 return arg0.extension() 12972 12973isl.isl_schedule_node_extension_get_extension.restype = c_void_p 12974isl.isl_schedule_node_extension_get_extension.argtypes = [c_void_p] 12975isl.isl_schedule_node_copy.restype = c_void_p 12976isl.isl_schedule_node_copy.argtypes = [c_void_p] 12977isl.isl_schedule_node_free.restype = c_void_p 12978isl.isl_schedule_node_free.argtypes = [c_void_p] 12979isl.isl_schedule_node_to_str.restype = POINTER(c_char) 12980isl.isl_schedule_node_to_str.argtypes = [c_void_p] 12981 12982class schedule_node_filter(schedule_node): 12983 def __init__(self, *args, **keywords): 12984 if "ptr" in keywords: 12985 self.ctx = keywords["ctx"] 12986 self.ptr = keywords["ptr"] 12987 return 12988 raise Error 12989 def __del__(self): 12990 if hasattr(self, 'ptr'): 12991 isl.isl_schedule_node_free(self.ptr) 12992 def __new__(cls, *args, **keywords): 12993 return super(schedule_node_filter, cls).__new__(cls) 12994 def __str__(arg0): 12995 try: 12996 if not arg0.__class__ is schedule_node_filter: 12997 arg0 = schedule_node_filter(arg0) 12998 except: 12999 raise 13000 ptr = isl.isl_schedule_node_to_str(arg0.ptr) 13001 res = cast(ptr, c_char_p).value.decode('ascii') 13002 libc.free(ptr) 13003 return res 13004 def __repr__(self): 13005 s = str(self) 13006 if '"' in s: 13007 return 'isl.schedule_node_filter("""%s""")' % s 13008 else: 13009 return 'isl.schedule_node_filter("%s")' % s 13010 def filter(arg0): 13011 try: 13012 if not arg0.__class__ is schedule_node: 13013 arg0 = schedule_node(arg0) 13014 except: 13015 raise 13016 ctx = arg0.ctx 13017 res = isl.isl_schedule_node_filter_get_filter(arg0.ptr) 13018 obj = union_set(ctx=ctx, ptr=res) 13019 return obj 13020 def get_filter(arg0): 13021 return arg0.filter() 13022 13023isl.isl_schedule_node_filter_get_filter.restype = c_void_p 13024isl.isl_schedule_node_filter_get_filter.argtypes = [c_void_p] 13025isl.isl_schedule_node_copy.restype = c_void_p 13026isl.isl_schedule_node_copy.argtypes = [c_void_p] 13027isl.isl_schedule_node_free.restype = c_void_p 13028isl.isl_schedule_node_free.argtypes = [c_void_p] 13029isl.isl_schedule_node_to_str.restype = POINTER(c_char) 13030isl.isl_schedule_node_to_str.argtypes = [c_void_p] 13031 13032class schedule_node_guard(schedule_node): 13033 def __init__(self, *args, **keywords): 13034 if "ptr" in keywords: 13035 self.ctx = keywords["ctx"] 13036 self.ptr = keywords["ptr"] 13037 return 13038 raise Error 13039 def __del__(self): 13040 if hasattr(self, 'ptr'): 13041 isl.isl_schedule_node_free(self.ptr) 13042 def __new__(cls, *args, **keywords): 13043 return super(schedule_node_guard, cls).__new__(cls) 13044 def __str__(arg0): 13045 try: 13046 if not arg0.__class__ is schedule_node_guard: 13047 arg0 = schedule_node_guard(arg0) 13048 except: 13049 raise 13050 ptr = isl.isl_schedule_node_to_str(arg0.ptr) 13051 res = cast(ptr, c_char_p).value.decode('ascii') 13052 libc.free(ptr) 13053 return res 13054 def __repr__(self): 13055 s = str(self) 13056 if '"' in s: 13057 return 'isl.schedule_node_guard("""%s""")' % s 13058 else: 13059 return 'isl.schedule_node_guard("%s")' % s 13060 def guard(arg0): 13061 try: 13062 if not arg0.__class__ is schedule_node: 13063 arg0 = schedule_node(arg0) 13064 except: 13065 raise 13066 ctx = arg0.ctx 13067 res = isl.isl_schedule_node_guard_get_guard(arg0.ptr) 13068 obj = set(ctx=ctx, ptr=res) 13069 return obj 13070 def get_guard(arg0): 13071 return arg0.guard() 13072 13073isl.isl_schedule_node_guard_get_guard.restype = c_void_p 13074isl.isl_schedule_node_guard_get_guard.argtypes = [c_void_p] 13075isl.isl_schedule_node_copy.restype = c_void_p 13076isl.isl_schedule_node_copy.argtypes = [c_void_p] 13077isl.isl_schedule_node_free.restype = c_void_p 13078isl.isl_schedule_node_free.argtypes = [c_void_p] 13079isl.isl_schedule_node_to_str.restype = POINTER(c_char) 13080isl.isl_schedule_node_to_str.argtypes = [c_void_p] 13081 13082class schedule_node_leaf(schedule_node): 13083 def __init__(self, *args, **keywords): 13084 if "ptr" in keywords: 13085 self.ctx = keywords["ctx"] 13086 self.ptr = keywords["ptr"] 13087 return 13088 raise Error 13089 def __del__(self): 13090 if hasattr(self, 'ptr'): 13091 isl.isl_schedule_node_free(self.ptr) 13092 def __new__(cls, *args, **keywords): 13093 return super(schedule_node_leaf, cls).__new__(cls) 13094 def __str__(arg0): 13095 try: 13096 if not arg0.__class__ is schedule_node_leaf: 13097 arg0 = schedule_node_leaf(arg0) 13098 except: 13099 raise 13100 ptr = isl.isl_schedule_node_to_str(arg0.ptr) 13101 res = cast(ptr, c_char_p).value.decode('ascii') 13102 libc.free(ptr) 13103 return res 13104 def __repr__(self): 13105 s = str(self) 13106 if '"' in s: 13107 return 'isl.schedule_node_leaf("""%s""")' % s 13108 else: 13109 return 'isl.schedule_node_leaf("%s")' % s 13110 13111isl.isl_schedule_node_copy.restype = c_void_p 13112isl.isl_schedule_node_copy.argtypes = [c_void_p] 13113isl.isl_schedule_node_free.restype = c_void_p 13114isl.isl_schedule_node_free.argtypes = [c_void_p] 13115isl.isl_schedule_node_to_str.restype = POINTER(c_char) 13116isl.isl_schedule_node_to_str.argtypes = [c_void_p] 13117 13118class schedule_node_mark(schedule_node): 13119 def __init__(self, *args, **keywords): 13120 if "ptr" in keywords: 13121 self.ctx = keywords["ctx"] 13122 self.ptr = keywords["ptr"] 13123 return 13124 raise Error 13125 def __del__(self): 13126 if hasattr(self, 'ptr'): 13127 isl.isl_schedule_node_free(self.ptr) 13128 def __new__(cls, *args, **keywords): 13129 return super(schedule_node_mark, cls).__new__(cls) 13130 def __str__(arg0): 13131 try: 13132 if not arg0.__class__ is schedule_node_mark: 13133 arg0 = schedule_node_mark(arg0) 13134 except: 13135 raise 13136 ptr = isl.isl_schedule_node_to_str(arg0.ptr) 13137 res = cast(ptr, c_char_p).value.decode('ascii') 13138 libc.free(ptr) 13139 return res 13140 def __repr__(self): 13141 s = str(self) 13142 if '"' in s: 13143 return 'isl.schedule_node_mark("""%s""")' % s 13144 else: 13145 return 'isl.schedule_node_mark("%s")' % s 13146 13147isl.isl_schedule_node_copy.restype = c_void_p 13148isl.isl_schedule_node_copy.argtypes = [c_void_p] 13149isl.isl_schedule_node_free.restype = c_void_p 13150isl.isl_schedule_node_free.argtypes = [c_void_p] 13151isl.isl_schedule_node_to_str.restype = POINTER(c_char) 13152isl.isl_schedule_node_to_str.argtypes = [c_void_p] 13153 13154class schedule_node_sequence(schedule_node): 13155 def __init__(self, *args, **keywords): 13156 if "ptr" in keywords: 13157 self.ctx = keywords["ctx"] 13158 self.ptr = keywords["ptr"] 13159 return 13160 raise Error 13161 def __del__(self): 13162 if hasattr(self, 'ptr'): 13163 isl.isl_schedule_node_free(self.ptr) 13164 def __new__(cls, *args, **keywords): 13165 return super(schedule_node_sequence, cls).__new__(cls) 13166 def __str__(arg0): 13167 try: 13168 if not arg0.__class__ is schedule_node_sequence: 13169 arg0 = schedule_node_sequence(arg0) 13170 except: 13171 raise 13172 ptr = isl.isl_schedule_node_to_str(arg0.ptr) 13173 res = cast(ptr, c_char_p).value.decode('ascii') 13174 libc.free(ptr) 13175 return res 13176 def __repr__(self): 13177 s = str(self) 13178 if '"' in s: 13179 return 'isl.schedule_node_sequence("""%s""")' % s 13180 else: 13181 return 'isl.schedule_node_sequence("%s")' % s 13182 13183isl.isl_schedule_node_copy.restype = c_void_p 13184isl.isl_schedule_node_copy.argtypes = [c_void_p] 13185isl.isl_schedule_node_free.restype = c_void_p 13186isl.isl_schedule_node_free.argtypes = [c_void_p] 13187isl.isl_schedule_node_to_str.restype = POINTER(c_char) 13188isl.isl_schedule_node_to_str.argtypes = [c_void_p] 13189 13190class schedule_node_set(schedule_node): 13191 def __init__(self, *args, **keywords): 13192 if "ptr" in keywords: 13193 self.ctx = keywords["ctx"] 13194 self.ptr = keywords["ptr"] 13195 return 13196 raise Error 13197 def __del__(self): 13198 if hasattr(self, 'ptr'): 13199 isl.isl_schedule_node_free(self.ptr) 13200 def __new__(cls, *args, **keywords): 13201 return super(schedule_node_set, cls).__new__(cls) 13202 def __str__(arg0): 13203 try: 13204 if not arg0.__class__ is schedule_node_set: 13205 arg0 = schedule_node_set(arg0) 13206 except: 13207 raise 13208 ptr = isl.isl_schedule_node_to_str(arg0.ptr) 13209 res = cast(ptr, c_char_p).value.decode('ascii') 13210 libc.free(ptr) 13211 return res 13212 def __repr__(self): 13213 s = str(self) 13214 if '"' in s: 13215 return 'isl.schedule_node_set("""%s""")' % s 13216 else: 13217 return 'isl.schedule_node_set("%s")' % s 13218 13219isl.isl_schedule_node_copy.restype = c_void_p 13220isl.isl_schedule_node_copy.argtypes = [c_void_p] 13221isl.isl_schedule_node_free.restype = c_void_p 13222isl.isl_schedule_node_free.argtypes = [c_void_p] 13223isl.isl_schedule_node_to_str.restype = POINTER(c_char) 13224isl.isl_schedule_node_to_str.argtypes = [c_void_p] 13225 13226class space(object): 13227 def __init__(self, *args, **keywords): 13228 if "ptr" in keywords: 13229 self.ctx = keywords["ctx"] 13230 self.ptr = keywords["ptr"] 13231 return 13232 raise Error 13233 def __del__(self): 13234 if hasattr(self, 'ptr'): 13235 isl.isl_space_free(self.ptr) 13236 def __str__(arg0): 13237 try: 13238 if not arg0.__class__ is space: 13239 arg0 = space(arg0) 13240 except: 13241 raise 13242 ptr = isl.isl_space_to_str(arg0.ptr) 13243 res = cast(ptr, c_char_p).value.decode('ascii') 13244 libc.free(ptr) 13245 return res 13246 def __repr__(self): 13247 s = str(self) 13248 if '"' in s: 13249 return 'isl.space("""%s""")' % s 13250 else: 13251 return 'isl.space("%s")' % s 13252 def add_named_tuple(*args): 13253 if len(args) == 3 and (args[1].__class__ is id or type(args[1]) == str) and type(args[2]) == int: 13254 args = list(args) 13255 try: 13256 if not args[1].__class__ is id: 13257 args[1] = id(args[1]) 13258 except: 13259 raise 13260 ctx = args[0].ctx 13261 res = isl.isl_space_add_named_tuple_id_ui(isl.isl_space_copy(args[0].ptr), isl.isl_id_copy(args[1].ptr), args[2]) 13262 obj = space(ctx=ctx, ptr=res) 13263 return obj 13264 raise Error 13265 def add_unnamed_tuple(*args): 13266 if len(args) == 2 and type(args[1]) == int: 13267 ctx = args[0].ctx 13268 res = isl.isl_space_add_unnamed_tuple_ui(isl.isl_space_copy(args[0].ptr), args[1]) 13269 obj = space(ctx=ctx, ptr=res) 13270 return obj 13271 raise Error 13272 def domain(arg0): 13273 try: 13274 if not arg0.__class__ is space: 13275 arg0 = space(arg0) 13276 except: 13277 raise 13278 ctx = arg0.ctx 13279 res = isl.isl_space_domain(isl.isl_space_copy(arg0.ptr)) 13280 obj = space(ctx=ctx, ptr=res) 13281 return obj 13282 def flatten_domain(arg0): 13283 try: 13284 if not arg0.__class__ is space: 13285 arg0 = space(arg0) 13286 except: 13287 raise 13288 ctx = arg0.ctx 13289 res = isl.isl_space_flatten_domain(isl.isl_space_copy(arg0.ptr)) 13290 obj = space(ctx=ctx, ptr=res) 13291 return obj 13292 def flatten_range(arg0): 13293 try: 13294 if not arg0.__class__ is space: 13295 arg0 = space(arg0) 13296 except: 13297 raise 13298 ctx = arg0.ctx 13299 res = isl.isl_space_flatten_range(isl.isl_space_copy(arg0.ptr)) 13300 obj = space(ctx=ctx, ptr=res) 13301 return obj 13302 def is_equal(arg0, arg1): 13303 try: 13304 if not arg0.__class__ is space: 13305 arg0 = space(arg0) 13306 except: 13307 raise 13308 try: 13309 if not arg1.__class__ is space: 13310 arg1 = space(arg1) 13311 except: 13312 raise 13313 ctx = arg0.ctx 13314 res = isl.isl_space_is_equal(arg0.ptr, arg1.ptr) 13315 if res < 0: 13316 raise 13317 return bool(res) 13318 def is_wrapping(arg0): 13319 try: 13320 if not arg0.__class__ is space: 13321 arg0 = space(arg0) 13322 except: 13323 raise 13324 ctx = arg0.ctx 13325 res = isl.isl_space_is_wrapping(arg0.ptr) 13326 if res < 0: 13327 raise 13328 return bool(res) 13329 def map_from_set(arg0): 13330 try: 13331 if not arg0.__class__ is space: 13332 arg0 = space(arg0) 13333 except: 13334 raise 13335 ctx = arg0.ctx 13336 res = isl.isl_space_map_from_set(isl.isl_space_copy(arg0.ptr)) 13337 obj = space(ctx=ctx, ptr=res) 13338 return obj 13339 def params(arg0): 13340 try: 13341 if not arg0.__class__ is space: 13342 arg0 = space(arg0) 13343 except: 13344 raise 13345 ctx = arg0.ctx 13346 res = isl.isl_space_params(isl.isl_space_copy(arg0.ptr)) 13347 obj = space(ctx=ctx, ptr=res) 13348 return obj 13349 def range(arg0): 13350 try: 13351 if not arg0.__class__ is space: 13352 arg0 = space(arg0) 13353 except: 13354 raise 13355 ctx = arg0.ctx 13356 res = isl.isl_space_range(isl.isl_space_copy(arg0.ptr)) 13357 obj = space(ctx=ctx, ptr=res) 13358 return obj 13359 @staticmethod 13360 def unit(): 13361 ctx = Context.getDefaultInstance() 13362 res = isl.isl_space_unit(ctx) 13363 obj = space(ctx=ctx, ptr=res) 13364 return obj 13365 def unwrap(arg0): 13366 try: 13367 if not arg0.__class__ is space: 13368 arg0 = space(arg0) 13369 except: 13370 raise 13371 ctx = arg0.ctx 13372 res = isl.isl_space_unwrap(isl.isl_space_copy(arg0.ptr)) 13373 obj = space(ctx=ctx, ptr=res) 13374 return obj 13375 def wrap(arg0): 13376 try: 13377 if not arg0.__class__ is space: 13378 arg0 = space(arg0) 13379 except: 13380 raise 13381 ctx = arg0.ctx 13382 res = isl.isl_space_wrap(isl.isl_space_copy(arg0.ptr)) 13383 obj = space(ctx=ctx, ptr=res) 13384 return obj 13385 13386isl.isl_space_add_named_tuple_id_ui.restype = c_void_p 13387isl.isl_space_add_named_tuple_id_ui.argtypes = [c_void_p, c_void_p, c_int] 13388isl.isl_space_add_unnamed_tuple_ui.restype = c_void_p 13389isl.isl_space_add_unnamed_tuple_ui.argtypes = [c_void_p, c_int] 13390isl.isl_space_domain.restype = c_void_p 13391isl.isl_space_domain.argtypes = [c_void_p] 13392isl.isl_space_flatten_domain.restype = c_void_p 13393isl.isl_space_flatten_domain.argtypes = [c_void_p] 13394isl.isl_space_flatten_range.restype = c_void_p 13395isl.isl_space_flatten_range.argtypes = [c_void_p] 13396isl.isl_space_is_equal.argtypes = [c_void_p, c_void_p] 13397isl.isl_space_is_wrapping.argtypes = [c_void_p] 13398isl.isl_space_map_from_set.restype = c_void_p 13399isl.isl_space_map_from_set.argtypes = [c_void_p] 13400isl.isl_space_params.restype = c_void_p 13401isl.isl_space_params.argtypes = [c_void_p] 13402isl.isl_space_range.restype = c_void_p 13403isl.isl_space_range.argtypes = [c_void_p] 13404isl.isl_space_unit.restype = c_void_p 13405isl.isl_space_unit.argtypes = [Context] 13406isl.isl_space_unwrap.restype = c_void_p 13407isl.isl_space_unwrap.argtypes = [c_void_p] 13408isl.isl_space_wrap.restype = c_void_p 13409isl.isl_space_wrap.argtypes = [c_void_p] 13410isl.isl_space_copy.restype = c_void_p 13411isl.isl_space_copy.argtypes = [c_void_p] 13412isl.isl_space_free.restype = c_void_p 13413isl.isl_space_free.argtypes = [c_void_p] 13414isl.isl_space_to_str.restype = POINTER(c_char) 13415isl.isl_space_to_str.argtypes = [c_void_p] 13416 13417class union_access_info(object): 13418 def __init__(self, *args, **keywords): 13419 if "ptr" in keywords: 13420 self.ctx = keywords["ctx"] 13421 self.ptr = keywords["ptr"] 13422 return 13423 if len(args) == 1 and args[0].__class__ is union_map: 13424 self.ctx = Context.getDefaultInstance() 13425 self.ptr = isl.isl_union_access_info_from_sink(isl.isl_union_map_copy(args[0].ptr)) 13426 return 13427 raise Error 13428 def __del__(self): 13429 if hasattr(self, 'ptr'): 13430 isl.isl_union_access_info_free(self.ptr) 13431 def __str__(arg0): 13432 try: 13433 if not arg0.__class__ is union_access_info: 13434 arg0 = union_access_info(arg0) 13435 except: 13436 raise 13437 ptr = isl.isl_union_access_info_to_str(arg0.ptr) 13438 res = cast(ptr, c_char_p).value.decode('ascii') 13439 libc.free(ptr) 13440 return res 13441 def __repr__(self): 13442 s = str(self) 13443 if '"' in s: 13444 return 'isl.union_access_info("""%s""")' % s 13445 else: 13446 return 'isl.union_access_info("%s")' % s 13447 def compute_flow(arg0): 13448 try: 13449 if not arg0.__class__ is union_access_info: 13450 arg0 = union_access_info(arg0) 13451 except: 13452 raise 13453 ctx = arg0.ctx 13454 res = isl.isl_union_access_info_compute_flow(isl.isl_union_access_info_copy(arg0.ptr)) 13455 obj = union_flow(ctx=ctx, ptr=res) 13456 return obj 13457 def set_kill(arg0, arg1): 13458 try: 13459 if not arg0.__class__ is union_access_info: 13460 arg0 = union_access_info(arg0) 13461 except: 13462 raise 13463 try: 13464 if not arg1.__class__ is union_map: 13465 arg1 = union_map(arg1) 13466 except: 13467 raise 13468 ctx = arg0.ctx 13469 res = isl.isl_union_access_info_set_kill(isl.isl_union_access_info_copy(arg0.ptr), isl.isl_union_map_copy(arg1.ptr)) 13470 obj = union_access_info(ctx=ctx, ptr=res) 13471 return obj 13472 def set_may_source(arg0, arg1): 13473 try: 13474 if not arg0.__class__ is union_access_info: 13475 arg0 = union_access_info(arg0) 13476 except: 13477 raise 13478 try: 13479 if not arg1.__class__ is union_map: 13480 arg1 = union_map(arg1) 13481 except: 13482 raise 13483 ctx = arg0.ctx 13484 res = isl.isl_union_access_info_set_may_source(isl.isl_union_access_info_copy(arg0.ptr), isl.isl_union_map_copy(arg1.ptr)) 13485 obj = union_access_info(ctx=ctx, ptr=res) 13486 return obj 13487 def set_must_source(arg0, arg1): 13488 try: 13489 if not arg0.__class__ is union_access_info: 13490 arg0 = union_access_info(arg0) 13491 except: 13492 raise 13493 try: 13494 if not arg1.__class__ is union_map: 13495 arg1 = union_map(arg1) 13496 except: 13497 raise 13498 ctx = arg0.ctx 13499 res = isl.isl_union_access_info_set_must_source(isl.isl_union_access_info_copy(arg0.ptr), isl.isl_union_map_copy(arg1.ptr)) 13500 obj = union_access_info(ctx=ctx, ptr=res) 13501 return obj 13502 def set_schedule(arg0, arg1): 13503 try: 13504 if not arg0.__class__ is union_access_info: 13505 arg0 = union_access_info(arg0) 13506 except: 13507 raise 13508 try: 13509 if not arg1.__class__ is schedule: 13510 arg1 = schedule(arg1) 13511 except: 13512 raise 13513 ctx = arg0.ctx 13514 res = isl.isl_union_access_info_set_schedule(isl.isl_union_access_info_copy(arg0.ptr), isl.isl_schedule_copy(arg1.ptr)) 13515 obj = union_access_info(ctx=ctx, ptr=res) 13516 return obj 13517 def set_schedule_map(arg0, arg1): 13518 try: 13519 if not arg0.__class__ is union_access_info: 13520 arg0 = union_access_info(arg0) 13521 except: 13522 raise 13523 try: 13524 if not arg1.__class__ is union_map: 13525 arg1 = union_map(arg1) 13526 except: 13527 raise 13528 ctx = arg0.ctx 13529 res = isl.isl_union_access_info_set_schedule_map(isl.isl_union_access_info_copy(arg0.ptr), isl.isl_union_map_copy(arg1.ptr)) 13530 obj = union_access_info(ctx=ctx, ptr=res) 13531 return obj 13532 13533isl.isl_union_access_info_from_sink.restype = c_void_p 13534isl.isl_union_access_info_from_sink.argtypes = [c_void_p] 13535isl.isl_union_access_info_compute_flow.restype = c_void_p 13536isl.isl_union_access_info_compute_flow.argtypes = [c_void_p] 13537isl.isl_union_access_info_set_kill.restype = c_void_p 13538isl.isl_union_access_info_set_kill.argtypes = [c_void_p, c_void_p] 13539isl.isl_union_access_info_set_may_source.restype = c_void_p 13540isl.isl_union_access_info_set_may_source.argtypes = [c_void_p, c_void_p] 13541isl.isl_union_access_info_set_must_source.restype = c_void_p 13542isl.isl_union_access_info_set_must_source.argtypes = [c_void_p, c_void_p] 13543isl.isl_union_access_info_set_schedule.restype = c_void_p 13544isl.isl_union_access_info_set_schedule.argtypes = [c_void_p, c_void_p] 13545isl.isl_union_access_info_set_schedule_map.restype = c_void_p 13546isl.isl_union_access_info_set_schedule_map.argtypes = [c_void_p, c_void_p] 13547isl.isl_union_access_info_copy.restype = c_void_p 13548isl.isl_union_access_info_copy.argtypes = [c_void_p] 13549isl.isl_union_access_info_free.restype = c_void_p 13550isl.isl_union_access_info_free.argtypes = [c_void_p] 13551isl.isl_union_access_info_to_str.restype = POINTER(c_char) 13552isl.isl_union_access_info_to_str.argtypes = [c_void_p] 13553 13554class union_flow(object): 13555 def __init__(self, *args, **keywords): 13556 if "ptr" in keywords: 13557 self.ctx = keywords["ctx"] 13558 self.ptr = keywords["ptr"] 13559 return 13560 raise Error 13561 def __del__(self): 13562 if hasattr(self, 'ptr'): 13563 isl.isl_union_flow_free(self.ptr) 13564 def __str__(arg0): 13565 try: 13566 if not arg0.__class__ is union_flow: 13567 arg0 = union_flow(arg0) 13568 except: 13569 raise 13570 ptr = isl.isl_union_flow_to_str(arg0.ptr) 13571 res = cast(ptr, c_char_p).value.decode('ascii') 13572 libc.free(ptr) 13573 return res 13574 def __repr__(self): 13575 s = str(self) 13576 if '"' in s: 13577 return 'isl.union_flow("""%s""")' % s 13578 else: 13579 return 'isl.union_flow("%s")' % s 13580 def full_may_dependence(arg0): 13581 try: 13582 if not arg0.__class__ is union_flow: 13583 arg0 = union_flow(arg0) 13584 except: 13585 raise 13586 ctx = arg0.ctx 13587 res = isl.isl_union_flow_get_full_may_dependence(arg0.ptr) 13588 obj = union_map(ctx=ctx, ptr=res) 13589 return obj 13590 def get_full_may_dependence(arg0): 13591 return arg0.full_may_dependence() 13592 def full_must_dependence(arg0): 13593 try: 13594 if not arg0.__class__ is union_flow: 13595 arg0 = union_flow(arg0) 13596 except: 13597 raise 13598 ctx = arg0.ctx 13599 res = isl.isl_union_flow_get_full_must_dependence(arg0.ptr) 13600 obj = union_map(ctx=ctx, ptr=res) 13601 return obj 13602 def get_full_must_dependence(arg0): 13603 return arg0.full_must_dependence() 13604 def may_dependence(arg0): 13605 try: 13606 if not arg0.__class__ is union_flow: 13607 arg0 = union_flow(arg0) 13608 except: 13609 raise 13610 ctx = arg0.ctx 13611 res = isl.isl_union_flow_get_may_dependence(arg0.ptr) 13612 obj = union_map(ctx=ctx, ptr=res) 13613 return obj 13614 def get_may_dependence(arg0): 13615 return arg0.may_dependence() 13616 def may_no_source(arg0): 13617 try: 13618 if not arg0.__class__ is union_flow: 13619 arg0 = union_flow(arg0) 13620 except: 13621 raise 13622 ctx = arg0.ctx 13623 res = isl.isl_union_flow_get_may_no_source(arg0.ptr) 13624 obj = union_map(ctx=ctx, ptr=res) 13625 return obj 13626 def get_may_no_source(arg0): 13627 return arg0.may_no_source() 13628 def must_dependence(arg0): 13629 try: 13630 if not arg0.__class__ is union_flow: 13631 arg0 = union_flow(arg0) 13632 except: 13633 raise 13634 ctx = arg0.ctx 13635 res = isl.isl_union_flow_get_must_dependence(arg0.ptr) 13636 obj = union_map(ctx=ctx, ptr=res) 13637 return obj 13638 def get_must_dependence(arg0): 13639 return arg0.must_dependence() 13640 def must_no_source(arg0): 13641 try: 13642 if not arg0.__class__ is union_flow: 13643 arg0 = union_flow(arg0) 13644 except: 13645 raise 13646 ctx = arg0.ctx 13647 res = isl.isl_union_flow_get_must_no_source(arg0.ptr) 13648 obj = union_map(ctx=ctx, ptr=res) 13649 return obj 13650 def get_must_no_source(arg0): 13651 return arg0.must_no_source() 13652 13653isl.isl_union_flow_get_full_may_dependence.restype = c_void_p 13654isl.isl_union_flow_get_full_may_dependence.argtypes = [c_void_p] 13655isl.isl_union_flow_get_full_must_dependence.restype = c_void_p 13656isl.isl_union_flow_get_full_must_dependence.argtypes = [c_void_p] 13657isl.isl_union_flow_get_may_dependence.restype = c_void_p 13658isl.isl_union_flow_get_may_dependence.argtypes = [c_void_p] 13659isl.isl_union_flow_get_may_no_source.restype = c_void_p 13660isl.isl_union_flow_get_may_no_source.argtypes = [c_void_p] 13661isl.isl_union_flow_get_must_dependence.restype = c_void_p 13662isl.isl_union_flow_get_must_dependence.argtypes = [c_void_p] 13663isl.isl_union_flow_get_must_no_source.restype = c_void_p 13664isl.isl_union_flow_get_must_no_source.argtypes = [c_void_p] 13665isl.isl_union_flow_copy.restype = c_void_p 13666isl.isl_union_flow_copy.argtypes = [c_void_p] 13667isl.isl_union_flow_free.restype = c_void_p 13668isl.isl_union_flow_free.argtypes = [c_void_p] 13669isl.isl_union_flow_to_str.restype = POINTER(c_char) 13670isl.isl_union_flow_to_str.argtypes = [c_void_p] 13671 13672class union_pw_aff_list(object): 13673 def __init__(self, *args, **keywords): 13674 if "ptr" in keywords: 13675 self.ctx = keywords["ctx"] 13676 self.ptr = keywords["ptr"] 13677 return 13678 if len(args) == 1 and type(args[0]) == int: 13679 self.ctx = Context.getDefaultInstance() 13680 self.ptr = isl.isl_union_pw_aff_list_alloc(self.ctx, args[0]) 13681 return 13682 if len(args) == 1 and args[0].__class__ is union_pw_aff: 13683 self.ctx = Context.getDefaultInstance() 13684 self.ptr = isl.isl_union_pw_aff_list_from_union_pw_aff(isl.isl_union_pw_aff_copy(args[0].ptr)) 13685 return 13686 raise Error 13687 def __del__(self): 13688 if hasattr(self, 'ptr'): 13689 isl.isl_union_pw_aff_list_free(self.ptr) 13690 def __str__(arg0): 13691 try: 13692 if not arg0.__class__ is union_pw_aff_list: 13693 arg0 = union_pw_aff_list(arg0) 13694 except: 13695 raise 13696 ptr = isl.isl_union_pw_aff_list_to_str(arg0.ptr) 13697 res = cast(ptr, c_char_p).value.decode('ascii') 13698 libc.free(ptr) 13699 return res 13700 def __repr__(self): 13701 s = str(self) 13702 if '"' in s: 13703 return 'isl.union_pw_aff_list("""%s""")' % s 13704 else: 13705 return 'isl.union_pw_aff_list("%s")' % s 13706 def add(arg0, arg1): 13707 try: 13708 if not arg0.__class__ is union_pw_aff_list: 13709 arg0 = union_pw_aff_list(arg0) 13710 except: 13711 raise 13712 try: 13713 if not arg1.__class__ is union_pw_aff: 13714 arg1 = union_pw_aff(arg1) 13715 except: 13716 raise 13717 ctx = arg0.ctx 13718 res = isl.isl_union_pw_aff_list_add(isl.isl_union_pw_aff_list_copy(arg0.ptr), isl.isl_union_pw_aff_copy(arg1.ptr)) 13719 obj = union_pw_aff_list(ctx=ctx, ptr=res) 13720 return obj 13721 def clear(arg0): 13722 try: 13723 if not arg0.__class__ is union_pw_aff_list: 13724 arg0 = union_pw_aff_list(arg0) 13725 except: 13726 raise 13727 ctx = arg0.ctx 13728 res = isl.isl_union_pw_aff_list_clear(isl.isl_union_pw_aff_list_copy(arg0.ptr)) 13729 obj = union_pw_aff_list(ctx=ctx, ptr=res) 13730 return obj 13731 def concat(arg0, arg1): 13732 try: 13733 if not arg0.__class__ is union_pw_aff_list: 13734 arg0 = union_pw_aff_list(arg0) 13735 except: 13736 raise 13737 try: 13738 if not arg1.__class__ is union_pw_aff_list: 13739 arg1 = union_pw_aff_list(arg1) 13740 except: 13741 raise 13742 ctx = arg0.ctx 13743 res = isl.isl_union_pw_aff_list_concat(isl.isl_union_pw_aff_list_copy(arg0.ptr), isl.isl_union_pw_aff_list_copy(arg1.ptr)) 13744 obj = union_pw_aff_list(ctx=ctx, ptr=res) 13745 return obj 13746 def drop(arg0, arg1, arg2): 13747 try: 13748 if not arg0.__class__ is union_pw_aff_list: 13749 arg0 = union_pw_aff_list(arg0) 13750 except: 13751 raise 13752 ctx = arg0.ctx 13753 res = isl.isl_union_pw_aff_list_drop(isl.isl_union_pw_aff_list_copy(arg0.ptr), arg1, arg2) 13754 obj = union_pw_aff_list(ctx=ctx, ptr=res) 13755 return obj 13756 def foreach(arg0, arg1): 13757 try: 13758 if not arg0.__class__ is union_pw_aff_list: 13759 arg0 = union_pw_aff_list(arg0) 13760 except: 13761 raise 13762 exc_info = [None] 13763 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 13764 def cb_func(cb_arg0, cb_arg1): 13765 cb_arg0 = union_pw_aff(ctx=arg0.ctx, ptr=(cb_arg0)) 13766 try: 13767 arg1(cb_arg0) 13768 except: 13769 import sys 13770 exc_info[0] = sys.exc_info() 13771 return -1 13772 return 0 13773 cb = fn(cb_func) 13774 ctx = arg0.ctx 13775 res = isl.isl_union_pw_aff_list_foreach(arg0.ptr, cb, None) 13776 if exc_info[0] != None: 13777 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 13778 if res < 0: 13779 raise 13780 def at(arg0, arg1): 13781 try: 13782 if not arg0.__class__ is union_pw_aff_list: 13783 arg0 = union_pw_aff_list(arg0) 13784 except: 13785 raise 13786 ctx = arg0.ctx 13787 res = isl.isl_union_pw_aff_list_get_at(arg0.ptr, arg1) 13788 obj = union_pw_aff(ctx=ctx, ptr=res) 13789 return obj 13790 def get_at(arg0, arg1): 13791 return arg0.at(arg1) 13792 def insert(arg0, arg1, arg2): 13793 try: 13794 if not arg0.__class__ is union_pw_aff_list: 13795 arg0 = union_pw_aff_list(arg0) 13796 except: 13797 raise 13798 try: 13799 if not arg2.__class__ is union_pw_aff: 13800 arg2 = union_pw_aff(arg2) 13801 except: 13802 raise 13803 ctx = arg0.ctx 13804 res = isl.isl_union_pw_aff_list_insert(isl.isl_union_pw_aff_list_copy(arg0.ptr), arg1, isl.isl_union_pw_aff_copy(arg2.ptr)) 13805 obj = union_pw_aff_list(ctx=ctx, ptr=res) 13806 return obj 13807 def size(arg0): 13808 try: 13809 if not arg0.__class__ is union_pw_aff_list: 13810 arg0 = union_pw_aff_list(arg0) 13811 except: 13812 raise 13813 ctx = arg0.ctx 13814 res = isl.isl_union_pw_aff_list_size(arg0.ptr) 13815 if res < 0: 13816 raise 13817 return int(res) 13818 13819isl.isl_union_pw_aff_list_alloc.restype = c_void_p 13820isl.isl_union_pw_aff_list_alloc.argtypes = [Context, c_int] 13821isl.isl_union_pw_aff_list_from_union_pw_aff.restype = c_void_p 13822isl.isl_union_pw_aff_list_from_union_pw_aff.argtypes = [c_void_p] 13823isl.isl_union_pw_aff_list_add.restype = c_void_p 13824isl.isl_union_pw_aff_list_add.argtypes = [c_void_p, c_void_p] 13825isl.isl_union_pw_aff_list_clear.restype = c_void_p 13826isl.isl_union_pw_aff_list_clear.argtypes = [c_void_p] 13827isl.isl_union_pw_aff_list_concat.restype = c_void_p 13828isl.isl_union_pw_aff_list_concat.argtypes = [c_void_p, c_void_p] 13829isl.isl_union_pw_aff_list_drop.restype = c_void_p 13830isl.isl_union_pw_aff_list_drop.argtypes = [c_void_p, c_int, c_int] 13831isl.isl_union_pw_aff_list_foreach.argtypes = [c_void_p, c_void_p, c_void_p] 13832isl.isl_union_pw_aff_list_get_at.restype = c_void_p 13833isl.isl_union_pw_aff_list_get_at.argtypes = [c_void_p, c_int] 13834isl.isl_union_pw_aff_list_insert.restype = c_void_p 13835isl.isl_union_pw_aff_list_insert.argtypes = [c_void_p, c_int, c_void_p] 13836isl.isl_union_pw_aff_list_size.argtypes = [c_void_p] 13837isl.isl_union_pw_aff_list_copy.restype = c_void_p 13838isl.isl_union_pw_aff_list_copy.argtypes = [c_void_p] 13839isl.isl_union_pw_aff_list_free.restype = c_void_p 13840isl.isl_union_pw_aff_list_free.argtypes = [c_void_p] 13841isl.isl_union_pw_aff_list_to_str.restype = POINTER(c_char) 13842isl.isl_union_pw_aff_list_to_str.argtypes = [c_void_p] 13843 13844class union_set_list(object): 13845 def __init__(self, *args, **keywords): 13846 if "ptr" in keywords: 13847 self.ctx = keywords["ctx"] 13848 self.ptr = keywords["ptr"] 13849 return 13850 if len(args) == 1 and type(args[0]) == int: 13851 self.ctx = Context.getDefaultInstance() 13852 self.ptr = isl.isl_union_set_list_alloc(self.ctx, args[0]) 13853 return 13854 if len(args) == 1 and args[0].__class__ is union_set: 13855 self.ctx = Context.getDefaultInstance() 13856 self.ptr = isl.isl_union_set_list_from_union_set(isl.isl_union_set_copy(args[0].ptr)) 13857 return 13858 raise Error 13859 def __del__(self): 13860 if hasattr(self, 'ptr'): 13861 isl.isl_union_set_list_free(self.ptr) 13862 def __str__(arg0): 13863 try: 13864 if not arg0.__class__ is union_set_list: 13865 arg0 = union_set_list(arg0) 13866 except: 13867 raise 13868 ptr = isl.isl_union_set_list_to_str(arg0.ptr) 13869 res = cast(ptr, c_char_p).value.decode('ascii') 13870 libc.free(ptr) 13871 return res 13872 def __repr__(self): 13873 s = str(self) 13874 if '"' in s: 13875 return 'isl.union_set_list("""%s""")' % s 13876 else: 13877 return 'isl.union_set_list("%s")' % s 13878 def add(arg0, arg1): 13879 try: 13880 if not arg0.__class__ is union_set_list: 13881 arg0 = union_set_list(arg0) 13882 except: 13883 raise 13884 try: 13885 if not arg1.__class__ is union_set: 13886 arg1 = union_set(arg1) 13887 except: 13888 raise 13889 ctx = arg0.ctx 13890 res = isl.isl_union_set_list_add(isl.isl_union_set_list_copy(arg0.ptr), isl.isl_union_set_copy(arg1.ptr)) 13891 obj = union_set_list(ctx=ctx, ptr=res) 13892 return obj 13893 def clear(arg0): 13894 try: 13895 if not arg0.__class__ is union_set_list: 13896 arg0 = union_set_list(arg0) 13897 except: 13898 raise 13899 ctx = arg0.ctx 13900 res = isl.isl_union_set_list_clear(isl.isl_union_set_list_copy(arg0.ptr)) 13901 obj = union_set_list(ctx=ctx, ptr=res) 13902 return obj 13903 def concat(arg0, arg1): 13904 try: 13905 if not arg0.__class__ is union_set_list: 13906 arg0 = union_set_list(arg0) 13907 except: 13908 raise 13909 try: 13910 if not arg1.__class__ is union_set_list: 13911 arg1 = union_set_list(arg1) 13912 except: 13913 raise 13914 ctx = arg0.ctx 13915 res = isl.isl_union_set_list_concat(isl.isl_union_set_list_copy(arg0.ptr), isl.isl_union_set_list_copy(arg1.ptr)) 13916 obj = union_set_list(ctx=ctx, ptr=res) 13917 return obj 13918 def drop(arg0, arg1, arg2): 13919 try: 13920 if not arg0.__class__ is union_set_list: 13921 arg0 = union_set_list(arg0) 13922 except: 13923 raise 13924 ctx = arg0.ctx 13925 res = isl.isl_union_set_list_drop(isl.isl_union_set_list_copy(arg0.ptr), arg1, arg2) 13926 obj = union_set_list(ctx=ctx, ptr=res) 13927 return obj 13928 def foreach(arg0, arg1): 13929 try: 13930 if not arg0.__class__ is union_set_list: 13931 arg0 = union_set_list(arg0) 13932 except: 13933 raise 13934 exc_info = [None] 13935 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 13936 def cb_func(cb_arg0, cb_arg1): 13937 cb_arg0 = union_set(ctx=arg0.ctx, ptr=(cb_arg0)) 13938 try: 13939 arg1(cb_arg0) 13940 except: 13941 import sys 13942 exc_info[0] = sys.exc_info() 13943 return -1 13944 return 0 13945 cb = fn(cb_func) 13946 ctx = arg0.ctx 13947 res = isl.isl_union_set_list_foreach(arg0.ptr, cb, None) 13948 if exc_info[0] != None: 13949 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 13950 if res < 0: 13951 raise 13952 def at(arg0, arg1): 13953 try: 13954 if not arg0.__class__ is union_set_list: 13955 arg0 = union_set_list(arg0) 13956 except: 13957 raise 13958 ctx = arg0.ctx 13959 res = isl.isl_union_set_list_get_at(arg0.ptr, arg1) 13960 obj = union_set(ctx=ctx, ptr=res) 13961 return obj 13962 def get_at(arg0, arg1): 13963 return arg0.at(arg1) 13964 def insert(arg0, arg1, arg2): 13965 try: 13966 if not arg0.__class__ is union_set_list: 13967 arg0 = union_set_list(arg0) 13968 except: 13969 raise 13970 try: 13971 if not arg2.__class__ is union_set: 13972 arg2 = union_set(arg2) 13973 except: 13974 raise 13975 ctx = arg0.ctx 13976 res = isl.isl_union_set_list_insert(isl.isl_union_set_list_copy(arg0.ptr), arg1, isl.isl_union_set_copy(arg2.ptr)) 13977 obj = union_set_list(ctx=ctx, ptr=res) 13978 return obj 13979 def size(arg0): 13980 try: 13981 if not arg0.__class__ is union_set_list: 13982 arg0 = union_set_list(arg0) 13983 except: 13984 raise 13985 ctx = arg0.ctx 13986 res = isl.isl_union_set_list_size(arg0.ptr) 13987 if res < 0: 13988 raise 13989 return int(res) 13990 13991isl.isl_union_set_list_alloc.restype = c_void_p 13992isl.isl_union_set_list_alloc.argtypes = [Context, c_int] 13993isl.isl_union_set_list_from_union_set.restype = c_void_p 13994isl.isl_union_set_list_from_union_set.argtypes = [c_void_p] 13995isl.isl_union_set_list_add.restype = c_void_p 13996isl.isl_union_set_list_add.argtypes = [c_void_p, c_void_p] 13997isl.isl_union_set_list_clear.restype = c_void_p 13998isl.isl_union_set_list_clear.argtypes = [c_void_p] 13999isl.isl_union_set_list_concat.restype = c_void_p 14000isl.isl_union_set_list_concat.argtypes = [c_void_p, c_void_p] 14001isl.isl_union_set_list_drop.restype = c_void_p 14002isl.isl_union_set_list_drop.argtypes = [c_void_p, c_int, c_int] 14003isl.isl_union_set_list_foreach.argtypes = [c_void_p, c_void_p, c_void_p] 14004isl.isl_union_set_list_get_at.restype = c_void_p 14005isl.isl_union_set_list_get_at.argtypes = [c_void_p, c_int] 14006isl.isl_union_set_list_insert.restype = c_void_p 14007isl.isl_union_set_list_insert.argtypes = [c_void_p, c_int, c_void_p] 14008isl.isl_union_set_list_size.argtypes = [c_void_p] 14009isl.isl_union_set_list_copy.restype = c_void_p 14010isl.isl_union_set_list_copy.argtypes = [c_void_p] 14011isl.isl_union_set_list_free.restype = c_void_p 14012isl.isl_union_set_list_free.argtypes = [c_void_p] 14013isl.isl_union_set_list_to_str.restype = POINTER(c_char) 14014isl.isl_union_set_list_to_str.argtypes = [c_void_p] 14015 14016class val(object): 14017 def __init__(self, *args, **keywords): 14018 if "ptr" in keywords: 14019 self.ctx = keywords["ctx"] 14020 self.ptr = keywords["ptr"] 14021 return 14022 if len(args) == 1 and type(args[0]) == int: 14023 self.ctx = Context.getDefaultInstance() 14024 self.ptr = isl.isl_val_int_from_si(self.ctx, args[0]) 14025 return 14026 if len(args) == 1 and type(args[0]) == str: 14027 self.ctx = Context.getDefaultInstance() 14028 self.ptr = isl.isl_val_read_from_str(self.ctx, args[0].encode('ascii')) 14029 return 14030 raise Error 14031 def __del__(self): 14032 if hasattr(self, 'ptr'): 14033 isl.isl_val_free(self.ptr) 14034 def __str__(arg0): 14035 try: 14036 if not arg0.__class__ is val: 14037 arg0 = val(arg0) 14038 except: 14039 raise 14040 ptr = isl.isl_val_to_str(arg0.ptr) 14041 res = cast(ptr, c_char_p).value.decode('ascii') 14042 libc.free(ptr) 14043 return res 14044 def __repr__(self): 14045 s = str(self) 14046 if '"' in s: 14047 return 'isl.val("""%s""")' % s 14048 else: 14049 return 'isl.val("%s")' % s 14050 def abs(arg0): 14051 try: 14052 if not arg0.__class__ is val: 14053 arg0 = val(arg0) 14054 except: 14055 raise 14056 ctx = arg0.ctx 14057 res = isl.isl_val_abs(isl.isl_val_copy(arg0.ptr)) 14058 obj = val(ctx=ctx, ptr=res) 14059 return obj 14060 def abs_eq(arg0, arg1): 14061 try: 14062 if not arg0.__class__ is val: 14063 arg0 = val(arg0) 14064 except: 14065 raise 14066 try: 14067 if not arg1.__class__ is val: 14068 arg1 = val(arg1) 14069 except: 14070 raise 14071 ctx = arg0.ctx 14072 res = isl.isl_val_abs_eq(arg0.ptr, arg1.ptr) 14073 if res < 0: 14074 raise 14075 return bool(res) 14076 def add(arg0, arg1): 14077 try: 14078 if not arg0.__class__ is val: 14079 arg0 = val(arg0) 14080 except: 14081 raise 14082 try: 14083 if not arg1.__class__ is val: 14084 arg1 = val(arg1) 14085 except: 14086 raise 14087 ctx = arg0.ctx 14088 res = isl.isl_val_add(isl.isl_val_copy(arg0.ptr), isl.isl_val_copy(arg1.ptr)) 14089 obj = val(ctx=ctx, ptr=res) 14090 return obj 14091 def ceil(arg0): 14092 try: 14093 if not arg0.__class__ is val: 14094 arg0 = val(arg0) 14095 except: 14096 raise 14097 ctx = arg0.ctx 14098 res = isl.isl_val_ceil(isl.isl_val_copy(arg0.ptr)) 14099 obj = val(ctx=ctx, ptr=res) 14100 return obj 14101 def cmp_si(arg0, arg1): 14102 try: 14103 if not arg0.__class__ is val: 14104 arg0 = val(arg0) 14105 except: 14106 raise 14107 ctx = arg0.ctx 14108 res = isl.isl_val_cmp_si(arg0.ptr, arg1) 14109 return res 14110 def div(arg0, arg1): 14111 try: 14112 if not arg0.__class__ is val: 14113 arg0 = val(arg0) 14114 except: 14115 raise 14116 try: 14117 if not arg1.__class__ is val: 14118 arg1 = val(arg1) 14119 except: 14120 raise 14121 ctx = arg0.ctx 14122 res = isl.isl_val_div(isl.isl_val_copy(arg0.ptr), isl.isl_val_copy(arg1.ptr)) 14123 obj = val(ctx=ctx, ptr=res) 14124 return obj 14125 def eq(arg0, arg1): 14126 try: 14127 if not arg0.__class__ is val: 14128 arg0 = val(arg0) 14129 except: 14130 raise 14131 try: 14132 if not arg1.__class__ is val: 14133 arg1 = val(arg1) 14134 except: 14135 raise 14136 ctx = arg0.ctx 14137 res = isl.isl_val_eq(arg0.ptr, arg1.ptr) 14138 if res < 0: 14139 raise 14140 return bool(res) 14141 def floor(arg0): 14142 try: 14143 if not arg0.__class__ is val: 14144 arg0 = val(arg0) 14145 except: 14146 raise 14147 ctx = arg0.ctx 14148 res = isl.isl_val_floor(isl.isl_val_copy(arg0.ptr)) 14149 obj = val(ctx=ctx, ptr=res) 14150 return obj 14151 def gcd(arg0, arg1): 14152 try: 14153 if not arg0.__class__ is val: 14154 arg0 = val(arg0) 14155 except: 14156 raise 14157 try: 14158 if not arg1.__class__ is val: 14159 arg1 = val(arg1) 14160 except: 14161 raise 14162 ctx = arg0.ctx 14163 res = isl.isl_val_gcd(isl.isl_val_copy(arg0.ptr), isl.isl_val_copy(arg1.ptr)) 14164 obj = val(ctx=ctx, ptr=res) 14165 return obj 14166 def ge(arg0, arg1): 14167 try: 14168 if not arg0.__class__ is val: 14169 arg0 = val(arg0) 14170 except: 14171 raise 14172 try: 14173 if not arg1.__class__ is val: 14174 arg1 = val(arg1) 14175 except: 14176 raise 14177 ctx = arg0.ctx 14178 res = isl.isl_val_ge(arg0.ptr, arg1.ptr) 14179 if res < 0: 14180 raise 14181 return bool(res) 14182 def den_si(arg0): 14183 try: 14184 if not arg0.__class__ is val: 14185 arg0 = val(arg0) 14186 except: 14187 raise 14188 ctx = arg0.ctx 14189 res = isl.isl_val_get_den_si(arg0.ptr) 14190 return res 14191 def get_den_si(arg0): 14192 return arg0.den_si() 14193 def num_si(arg0): 14194 try: 14195 if not arg0.__class__ is val: 14196 arg0 = val(arg0) 14197 except: 14198 raise 14199 ctx = arg0.ctx 14200 res = isl.isl_val_get_num_si(arg0.ptr) 14201 return res 14202 def get_num_si(arg0): 14203 return arg0.num_si() 14204 def gt(arg0, arg1): 14205 try: 14206 if not arg0.__class__ is val: 14207 arg0 = val(arg0) 14208 except: 14209 raise 14210 try: 14211 if not arg1.__class__ is val: 14212 arg1 = val(arg1) 14213 except: 14214 raise 14215 ctx = arg0.ctx 14216 res = isl.isl_val_gt(arg0.ptr, arg1.ptr) 14217 if res < 0: 14218 raise 14219 return bool(res) 14220 @staticmethod 14221 def infty(): 14222 ctx = Context.getDefaultInstance() 14223 res = isl.isl_val_infty(ctx) 14224 obj = val(ctx=ctx, ptr=res) 14225 return obj 14226 def inv(arg0): 14227 try: 14228 if not arg0.__class__ is val: 14229 arg0 = val(arg0) 14230 except: 14231 raise 14232 ctx = arg0.ctx 14233 res = isl.isl_val_inv(isl.isl_val_copy(arg0.ptr)) 14234 obj = val(ctx=ctx, ptr=res) 14235 return obj 14236 def is_divisible_by(arg0, arg1): 14237 try: 14238 if not arg0.__class__ is val: 14239 arg0 = val(arg0) 14240 except: 14241 raise 14242 try: 14243 if not arg1.__class__ is val: 14244 arg1 = val(arg1) 14245 except: 14246 raise 14247 ctx = arg0.ctx 14248 res = isl.isl_val_is_divisible_by(arg0.ptr, arg1.ptr) 14249 if res < 0: 14250 raise 14251 return bool(res) 14252 def is_infty(arg0): 14253 try: 14254 if not arg0.__class__ is val: 14255 arg0 = val(arg0) 14256 except: 14257 raise 14258 ctx = arg0.ctx 14259 res = isl.isl_val_is_infty(arg0.ptr) 14260 if res < 0: 14261 raise 14262 return bool(res) 14263 def is_int(arg0): 14264 try: 14265 if not arg0.__class__ is val: 14266 arg0 = val(arg0) 14267 except: 14268 raise 14269 ctx = arg0.ctx 14270 res = isl.isl_val_is_int(arg0.ptr) 14271 if res < 0: 14272 raise 14273 return bool(res) 14274 def is_nan(arg0): 14275 try: 14276 if not arg0.__class__ is val: 14277 arg0 = val(arg0) 14278 except: 14279 raise 14280 ctx = arg0.ctx 14281 res = isl.isl_val_is_nan(arg0.ptr) 14282 if res < 0: 14283 raise 14284 return bool(res) 14285 def is_neg(arg0): 14286 try: 14287 if not arg0.__class__ is val: 14288 arg0 = val(arg0) 14289 except: 14290 raise 14291 ctx = arg0.ctx 14292 res = isl.isl_val_is_neg(arg0.ptr) 14293 if res < 0: 14294 raise 14295 return bool(res) 14296 def is_neginfty(arg0): 14297 try: 14298 if not arg0.__class__ is val: 14299 arg0 = val(arg0) 14300 except: 14301 raise 14302 ctx = arg0.ctx 14303 res = isl.isl_val_is_neginfty(arg0.ptr) 14304 if res < 0: 14305 raise 14306 return bool(res) 14307 def is_negone(arg0): 14308 try: 14309 if not arg0.__class__ is val: 14310 arg0 = val(arg0) 14311 except: 14312 raise 14313 ctx = arg0.ctx 14314 res = isl.isl_val_is_negone(arg0.ptr) 14315 if res < 0: 14316 raise 14317 return bool(res) 14318 def is_nonneg(arg0): 14319 try: 14320 if not arg0.__class__ is val: 14321 arg0 = val(arg0) 14322 except: 14323 raise 14324 ctx = arg0.ctx 14325 res = isl.isl_val_is_nonneg(arg0.ptr) 14326 if res < 0: 14327 raise 14328 return bool(res) 14329 def is_nonpos(arg0): 14330 try: 14331 if not arg0.__class__ is val: 14332 arg0 = val(arg0) 14333 except: 14334 raise 14335 ctx = arg0.ctx 14336 res = isl.isl_val_is_nonpos(arg0.ptr) 14337 if res < 0: 14338 raise 14339 return bool(res) 14340 def is_one(arg0): 14341 try: 14342 if not arg0.__class__ is val: 14343 arg0 = val(arg0) 14344 except: 14345 raise 14346 ctx = arg0.ctx 14347 res = isl.isl_val_is_one(arg0.ptr) 14348 if res < 0: 14349 raise 14350 return bool(res) 14351 def is_pos(arg0): 14352 try: 14353 if not arg0.__class__ is val: 14354 arg0 = val(arg0) 14355 except: 14356 raise 14357 ctx = arg0.ctx 14358 res = isl.isl_val_is_pos(arg0.ptr) 14359 if res < 0: 14360 raise 14361 return bool(res) 14362 def is_rat(arg0): 14363 try: 14364 if not arg0.__class__ is val: 14365 arg0 = val(arg0) 14366 except: 14367 raise 14368 ctx = arg0.ctx 14369 res = isl.isl_val_is_rat(arg0.ptr) 14370 if res < 0: 14371 raise 14372 return bool(res) 14373 def is_zero(arg0): 14374 try: 14375 if not arg0.__class__ is val: 14376 arg0 = val(arg0) 14377 except: 14378 raise 14379 ctx = arg0.ctx 14380 res = isl.isl_val_is_zero(arg0.ptr) 14381 if res < 0: 14382 raise 14383 return bool(res) 14384 def le(arg0, arg1): 14385 try: 14386 if not arg0.__class__ is val: 14387 arg0 = val(arg0) 14388 except: 14389 raise 14390 try: 14391 if not arg1.__class__ is val: 14392 arg1 = val(arg1) 14393 except: 14394 raise 14395 ctx = arg0.ctx 14396 res = isl.isl_val_le(arg0.ptr, arg1.ptr) 14397 if res < 0: 14398 raise 14399 return bool(res) 14400 def lt(arg0, arg1): 14401 try: 14402 if not arg0.__class__ is val: 14403 arg0 = val(arg0) 14404 except: 14405 raise 14406 try: 14407 if not arg1.__class__ is val: 14408 arg1 = val(arg1) 14409 except: 14410 raise 14411 ctx = arg0.ctx 14412 res = isl.isl_val_lt(arg0.ptr, arg1.ptr) 14413 if res < 0: 14414 raise 14415 return bool(res) 14416 def max(arg0, arg1): 14417 try: 14418 if not arg0.__class__ is val: 14419 arg0 = val(arg0) 14420 except: 14421 raise 14422 try: 14423 if not arg1.__class__ is val: 14424 arg1 = val(arg1) 14425 except: 14426 raise 14427 ctx = arg0.ctx 14428 res = isl.isl_val_max(isl.isl_val_copy(arg0.ptr), isl.isl_val_copy(arg1.ptr)) 14429 obj = val(ctx=ctx, ptr=res) 14430 return obj 14431 def min(arg0, arg1): 14432 try: 14433 if not arg0.__class__ is val: 14434 arg0 = val(arg0) 14435 except: 14436 raise 14437 try: 14438 if not arg1.__class__ is val: 14439 arg1 = val(arg1) 14440 except: 14441 raise 14442 ctx = arg0.ctx 14443 res = isl.isl_val_min(isl.isl_val_copy(arg0.ptr), isl.isl_val_copy(arg1.ptr)) 14444 obj = val(ctx=ctx, ptr=res) 14445 return obj 14446 def mod(arg0, arg1): 14447 try: 14448 if not arg0.__class__ is val: 14449 arg0 = val(arg0) 14450 except: 14451 raise 14452 try: 14453 if not arg1.__class__ is val: 14454 arg1 = val(arg1) 14455 except: 14456 raise 14457 ctx = arg0.ctx 14458 res = isl.isl_val_mod(isl.isl_val_copy(arg0.ptr), isl.isl_val_copy(arg1.ptr)) 14459 obj = val(ctx=ctx, ptr=res) 14460 return obj 14461 def mul(arg0, arg1): 14462 try: 14463 if not arg0.__class__ is val: 14464 arg0 = val(arg0) 14465 except: 14466 raise 14467 try: 14468 if not arg1.__class__ is val: 14469 arg1 = val(arg1) 14470 except: 14471 raise 14472 ctx = arg0.ctx 14473 res = isl.isl_val_mul(isl.isl_val_copy(arg0.ptr), isl.isl_val_copy(arg1.ptr)) 14474 obj = val(ctx=ctx, ptr=res) 14475 return obj 14476 @staticmethod 14477 def nan(): 14478 ctx = Context.getDefaultInstance() 14479 res = isl.isl_val_nan(ctx) 14480 obj = val(ctx=ctx, ptr=res) 14481 return obj 14482 def ne(arg0, arg1): 14483 try: 14484 if not arg0.__class__ is val: 14485 arg0 = val(arg0) 14486 except: 14487 raise 14488 try: 14489 if not arg1.__class__ is val: 14490 arg1 = val(arg1) 14491 except: 14492 raise 14493 ctx = arg0.ctx 14494 res = isl.isl_val_ne(arg0.ptr, arg1.ptr) 14495 if res < 0: 14496 raise 14497 return bool(res) 14498 def neg(arg0): 14499 try: 14500 if not arg0.__class__ is val: 14501 arg0 = val(arg0) 14502 except: 14503 raise 14504 ctx = arg0.ctx 14505 res = isl.isl_val_neg(isl.isl_val_copy(arg0.ptr)) 14506 obj = val(ctx=ctx, ptr=res) 14507 return obj 14508 @staticmethod 14509 def neginfty(): 14510 ctx = Context.getDefaultInstance() 14511 res = isl.isl_val_neginfty(ctx) 14512 obj = val(ctx=ctx, ptr=res) 14513 return obj 14514 @staticmethod 14515 def negone(): 14516 ctx = Context.getDefaultInstance() 14517 res = isl.isl_val_negone(ctx) 14518 obj = val(ctx=ctx, ptr=res) 14519 return obj 14520 @staticmethod 14521 def one(): 14522 ctx = Context.getDefaultInstance() 14523 res = isl.isl_val_one(ctx) 14524 obj = val(ctx=ctx, ptr=res) 14525 return obj 14526 def pow2(arg0): 14527 try: 14528 if not arg0.__class__ is val: 14529 arg0 = val(arg0) 14530 except: 14531 raise 14532 ctx = arg0.ctx 14533 res = isl.isl_val_pow2(isl.isl_val_copy(arg0.ptr)) 14534 obj = val(ctx=ctx, ptr=res) 14535 return obj 14536 def sgn(arg0): 14537 try: 14538 if not arg0.__class__ is val: 14539 arg0 = val(arg0) 14540 except: 14541 raise 14542 ctx = arg0.ctx 14543 res = isl.isl_val_sgn(arg0.ptr) 14544 return res 14545 def sub(arg0, arg1): 14546 try: 14547 if not arg0.__class__ is val: 14548 arg0 = val(arg0) 14549 except: 14550 raise 14551 try: 14552 if not arg1.__class__ is val: 14553 arg1 = val(arg1) 14554 except: 14555 raise 14556 ctx = arg0.ctx 14557 res = isl.isl_val_sub(isl.isl_val_copy(arg0.ptr), isl.isl_val_copy(arg1.ptr)) 14558 obj = val(ctx=ctx, ptr=res) 14559 return obj 14560 def trunc(arg0): 14561 try: 14562 if not arg0.__class__ is val: 14563 arg0 = val(arg0) 14564 except: 14565 raise 14566 ctx = arg0.ctx 14567 res = isl.isl_val_trunc(isl.isl_val_copy(arg0.ptr)) 14568 obj = val(ctx=ctx, ptr=res) 14569 return obj 14570 @staticmethod 14571 def zero(): 14572 ctx = Context.getDefaultInstance() 14573 res = isl.isl_val_zero(ctx) 14574 obj = val(ctx=ctx, ptr=res) 14575 return obj 14576 14577isl.isl_val_int_from_si.restype = c_void_p 14578isl.isl_val_int_from_si.argtypes = [Context, c_long] 14579isl.isl_val_read_from_str.restype = c_void_p 14580isl.isl_val_read_from_str.argtypes = [Context, c_char_p] 14581isl.isl_val_abs.restype = c_void_p 14582isl.isl_val_abs.argtypes = [c_void_p] 14583isl.isl_val_abs_eq.argtypes = [c_void_p, c_void_p] 14584isl.isl_val_add.restype = c_void_p 14585isl.isl_val_add.argtypes = [c_void_p, c_void_p] 14586isl.isl_val_ceil.restype = c_void_p 14587isl.isl_val_ceil.argtypes = [c_void_p] 14588isl.isl_val_cmp_si.argtypes = [c_void_p, c_long] 14589isl.isl_val_div.restype = c_void_p 14590isl.isl_val_div.argtypes = [c_void_p, c_void_p] 14591isl.isl_val_eq.argtypes = [c_void_p, c_void_p] 14592isl.isl_val_floor.restype = c_void_p 14593isl.isl_val_floor.argtypes = [c_void_p] 14594isl.isl_val_gcd.restype = c_void_p 14595isl.isl_val_gcd.argtypes = [c_void_p, c_void_p] 14596isl.isl_val_ge.argtypes = [c_void_p, c_void_p] 14597isl.isl_val_get_den_si.argtypes = [c_void_p] 14598isl.isl_val_get_num_si.argtypes = [c_void_p] 14599isl.isl_val_gt.argtypes = [c_void_p, c_void_p] 14600isl.isl_val_infty.restype = c_void_p 14601isl.isl_val_infty.argtypes = [Context] 14602isl.isl_val_inv.restype = c_void_p 14603isl.isl_val_inv.argtypes = [c_void_p] 14604isl.isl_val_is_divisible_by.argtypes = [c_void_p, c_void_p] 14605isl.isl_val_is_infty.argtypes = [c_void_p] 14606isl.isl_val_is_int.argtypes = [c_void_p] 14607isl.isl_val_is_nan.argtypes = [c_void_p] 14608isl.isl_val_is_neg.argtypes = [c_void_p] 14609isl.isl_val_is_neginfty.argtypes = [c_void_p] 14610isl.isl_val_is_negone.argtypes = [c_void_p] 14611isl.isl_val_is_nonneg.argtypes = [c_void_p] 14612isl.isl_val_is_nonpos.argtypes = [c_void_p] 14613isl.isl_val_is_one.argtypes = [c_void_p] 14614isl.isl_val_is_pos.argtypes = [c_void_p] 14615isl.isl_val_is_rat.argtypes = [c_void_p] 14616isl.isl_val_is_zero.argtypes = [c_void_p] 14617isl.isl_val_le.argtypes = [c_void_p, c_void_p] 14618isl.isl_val_lt.argtypes = [c_void_p, c_void_p] 14619isl.isl_val_max.restype = c_void_p 14620isl.isl_val_max.argtypes = [c_void_p, c_void_p] 14621isl.isl_val_min.restype = c_void_p 14622isl.isl_val_min.argtypes = [c_void_p, c_void_p] 14623isl.isl_val_mod.restype = c_void_p 14624isl.isl_val_mod.argtypes = [c_void_p, c_void_p] 14625isl.isl_val_mul.restype = c_void_p 14626isl.isl_val_mul.argtypes = [c_void_p, c_void_p] 14627isl.isl_val_nan.restype = c_void_p 14628isl.isl_val_nan.argtypes = [Context] 14629isl.isl_val_ne.argtypes = [c_void_p, c_void_p] 14630isl.isl_val_neg.restype = c_void_p 14631isl.isl_val_neg.argtypes = [c_void_p] 14632isl.isl_val_neginfty.restype = c_void_p 14633isl.isl_val_neginfty.argtypes = [Context] 14634isl.isl_val_negone.restype = c_void_p 14635isl.isl_val_negone.argtypes = [Context] 14636isl.isl_val_one.restype = c_void_p 14637isl.isl_val_one.argtypes = [Context] 14638isl.isl_val_pow2.restype = c_void_p 14639isl.isl_val_pow2.argtypes = [c_void_p] 14640isl.isl_val_sgn.argtypes = [c_void_p] 14641isl.isl_val_sub.restype = c_void_p 14642isl.isl_val_sub.argtypes = [c_void_p, c_void_p] 14643isl.isl_val_trunc.restype = c_void_p 14644isl.isl_val_trunc.argtypes = [c_void_p] 14645isl.isl_val_zero.restype = c_void_p 14646isl.isl_val_zero.argtypes = [Context] 14647isl.isl_val_copy.restype = c_void_p 14648isl.isl_val_copy.argtypes = [c_void_p] 14649isl.isl_val_free.restype = c_void_p 14650isl.isl_val_free.argtypes = [c_void_p] 14651isl.isl_val_to_str.restype = POINTER(c_char) 14652isl.isl_val_to_str.argtypes = [c_void_p] 14653 14654class val_list(object): 14655 def __init__(self, *args, **keywords): 14656 if "ptr" in keywords: 14657 self.ctx = keywords["ctx"] 14658 self.ptr = keywords["ptr"] 14659 return 14660 if len(args) == 1 and type(args[0]) == int: 14661 self.ctx = Context.getDefaultInstance() 14662 self.ptr = isl.isl_val_list_alloc(self.ctx, args[0]) 14663 return 14664 if len(args) == 1 and (args[0].__class__ is val or type(args[0]) == int): 14665 args = list(args) 14666 try: 14667 if not args[0].__class__ is val: 14668 args[0] = val(args[0]) 14669 except: 14670 raise 14671 self.ctx = Context.getDefaultInstance() 14672 self.ptr = isl.isl_val_list_from_val(isl.isl_val_copy(args[0].ptr)) 14673 return 14674 raise Error 14675 def __del__(self): 14676 if hasattr(self, 'ptr'): 14677 isl.isl_val_list_free(self.ptr) 14678 def __str__(arg0): 14679 try: 14680 if not arg0.__class__ is val_list: 14681 arg0 = val_list(arg0) 14682 except: 14683 raise 14684 ptr = isl.isl_val_list_to_str(arg0.ptr) 14685 res = cast(ptr, c_char_p).value.decode('ascii') 14686 libc.free(ptr) 14687 return res 14688 def __repr__(self): 14689 s = str(self) 14690 if '"' in s: 14691 return 'isl.val_list("""%s""")' % s 14692 else: 14693 return 'isl.val_list("%s")' % s 14694 def add(arg0, arg1): 14695 try: 14696 if not arg0.__class__ is val_list: 14697 arg0 = val_list(arg0) 14698 except: 14699 raise 14700 try: 14701 if not arg1.__class__ is val: 14702 arg1 = val(arg1) 14703 except: 14704 raise 14705 ctx = arg0.ctx 14706 res = isl.isl_val_list_add(isl.isl_val_list_copy(arg0.ptr), isl.isl_val_copy(arg1.ptr)) 14707 obj = val_list(ctx=ctx, ptr=res) 14708 return obj 14709 def clear(arg0): 14710 try: 14711 if not arg0.__class__ is val_list: 14712 arg0 = val_list(arg0) 14713 except: 14714 raise 14715 ctx = arg0.ctx 14716 res = isl.isl_val_list_clear(isl.isl_val_list_copy(arg0.ptr)) 14717 obj = val_list(ctx=ctx, ptr=res) 14718 return obj 14719 def concat(arg0, arg1): 14720 try: 14721 if not arg0.__class__ is val_list: 14722 arg0 = val_list(arg0) 14723 except: 14724 raise 14725 try: 14726 if not arg1.__class__ is val_list: 14727 arg1 = val_list(arg1) 14728 except: 14729 raise 14730 ctx = arg0.ctx 14731 res = isl.isl_val_list_concat(isl.isl_val_list_copy(arg0.ptr), isl.isl_val_list_copy(arg1.ptr)) 14732 obj = val_list(ctx=ctx, ptr=res) 14733 return obj 14734 def drop(arg0, arg1, arg2): 14735 try: 14736 if not arg0.__class__ is val_list: 14737 arg0 = val_list(arg0) 14738 except: 14739 raise 14740 ctx = arg0.ctx 14741 res = isl.isl_val_list_drop(isl.isl_val_list_copy(arg0.ptr), arg1, arg2) 14742 obj = val_list(ctx=ctx, ptr=res) 14743 return obj 14744 def foreach(arg0, arg1): 14745 try: 14746 if not arg0.__class__ is val_list: 14747 arg0 = val_list(arg0) 14748 except: 14749 raise 14750 exc_info = [None] 14751 fn = CFUNCTYPE(c_int, c_void_p, c_void_p) 14752 def cb_func(cb_arg0, cb_arg1): 14753 cb_arg0 = val(ctx=arg0.ctx, ptr=(cb_arg0)) 14754 try: 14755 arg1(cb_arg0) 14756 except: 14757 import sys 14758 exc_info[0] = sys.exc_info() 14759 return -1 14760 return 0 14761 cb = fn(cb_func) 14762 ctx = arg0.ctx 14763 res = isl.isl_val_list_foreach(arg0.ptr, cb, None) 14764 if exc_info[0] != None: 14765 raise (exc_info[0][0], exc_info[0][1], exc_info[0][2]) 14766 if res < 0: 14767 raise 14768 def at(arg0, arg1): 14769 try: 14770 if not arg0.__class__ is val_list: 14771 arg0 = val_list(arg0) 14772 except: 14773 raise 14774 ctx = arg0.ctx 14775 res = isl.isl_val_list_get_at(arg0.ptr, arg1) 14776 obj = val(ctx=ctx, ptr=res) 14777 return obj 14778 def get_at(arg0, arg1): 14779 return arg0.at(arg1) 14780 def insert(arg0, arg1, arg2): 14781 try: 14782 if not arg0.__class__ is val_list: 14783 arg0 = val_list(arg0) 14784 except: 14785 raise 14786 try: 14787 if not arg2.__class__ is val: 14788 arg2 = val(arg2) 14789 except: 14790 raise 14791 ctx = arg0.ctx 14792 res = isl.isl_val_list_insert(isl.isl_val_list_copy(arg0.ptr), arg1, isl.isl_val_copy(arg2.ptr)) 14793 obj = val_list(ctx=ctx, ptr=res) 14794 return obj 14795 def size(arg0): 14796 try: 14797 if not arg0.__class__ is val_list: 14798 arg0 = val_list(arg0) 14799 except: 14800 raise 14801 ctx = arg0.ctx 14802 res = isl.isl_val_list_size(arg0.ptr) 14803 if res < 0: 14804 raise 14805 return int(res) 14806 14807isl.isl_val_list_alloc.restype = c_void_p 14808isl.isl_val_list_alloc.argtypes = [Context, c_int] 14809isl.isl_val_list_from_val.restype = c_void_p 14810isl.isl_val_list_from_val.argtypes = [c_void_p] 14811isl.isl_val_list_add.restype = c_void_p 14812isl.isl_val_list_add.argtypes = [c_void_p, c_void_p] 14813isl.isl_val_list_clear.restype = c_void_p 14814isl.isl_val_list_clear.argtypes = [c_void_p] 14815isl.isl_val_list_concat.restype = c_void_p 14816isl.isl_val_list_concat.argtypes = [c_void_p, c_void_p] 14817isl.isl_val_list_drop.restype = c_void_p 14818isl.isl_val_list_drop.argtypes = [c_void_p, c_int, c_int] 14819isl.isl_val_list_foreach.argtypes = [c_void_p, c_void_p, c_void_p] 14820isl.isl_val_list_get_at.restype = c_void_p 14821isl.isl_val_list_get_at.argtypes = [c_void_p, c_int] 14822isl.isl_val_list_insert.restype = c_void_p 14823isl.isl_val_list_insert.argtypes = [c_void_p, c_int, c_void_p] 14824isl.isl_val_list_size.argtypes = [c_void_p] 14825isl.isl_val_list_copy.restype = c_void_p 14826isl.isl_val_list_copy.argtypes = [c_void_p] 14827isl.isl_val_list_free.restype = c_void_p 14828isl.isl_val_list_free.argtypes = [c_void_p] 14829isl.isl_val_list_to_str.restype = POINTER(c_char) 14830isl.isl_val_list_to_str.argtypes = [c_void_p] 14831