14 class SRelation
: public Relation
{
19 std::vector
<stmt_node
*> nested
;
21 SRelation(symtab_ann
*a
) : Relation(0), sa(a
) {
25 SRelation(symtab_ann
*a
, named_lin_ineq
*nlq
) : Relation(0, 0), sa(a
) {
30 SRelation(SRelation
&s
) : Relation(s
), sa(s
.sa
), nested(s
.nested
) {}
31 SRelation (Relation
& r
, symtab_ann
*a
) : Relation(r
), sa(a
) {}
32 SRelation(Relation
&r
, symtab_ann
*a
, std::vector
<stmt_node
*> nested
)
33 : Relation(r
), sa(a
), nested(nested
) {}
34 SRelation (int in
, int out
, std::vector
< std::vector
<int> > & c
,
36 void fix(var_sym
*var
, int val
);
37 void set_infinite(var_sym
*var
);
38 void intersect(named_lin_ineq
*nlq
);
39 SRelation
*Intersection(SRelation
*b
);
40 SRelation
*Union(SRelation
*b
);
41 SRelation
*Difference(SRelation
*b
);
42 SRelation
*Composition(SRelation
*b
);
43 SRelation
*Complement();