def __init__(self, schedule=None, coincident=None, permutable=None, **kwargs): super().__init__(**kwargs) if schedule is None or isinstance(schedule, str): schedule = isl.multi_union_pw_aff(schedule or '[]') if coincident is None: coincident = [False] * schedule.size() else: coincident = list(map(bool, coincident)) self.schedule: isl.multi_union_pw_aff = schedule self.coincident: List[bool] = coincident self.permutable: bool = bool(permutable)
def construct_schedule_tree(): A = isl.union_set("{ A[i] : 0 <= i < 10 }") B = isl.union_set("{ B[i] : 0 <= i < 20 }") node = isl.schedule_node.from_domain(A.union(B)) node = node.child(0) filters = isl.union_set_list(A).add(B) node = node.insert_sequence(filters) f_A = isl.multi_union_pw_aff("[ { A[i] -> [i] } ]") node = node.child(0) node = node.child(0) node = node.insert_partial_schedule(f_A) node = node.member_set_coincident(0, True) node = node.ancestor(2) f_B = isl.multi_union_pw_aff("[ { B[i] -> [i] } ]") node = node.child(1) node = node.child(0) node = node.insert_partial_schedule(f_B) node = node.ancestor(2) return node.schedule()