34 virtual int size()
const = 0;
39 if ((i>=0) && (i<
size())) {
50 if ((i>=0) && (i<
size())) {
88 return i->getDomain(const_cast<MP_set*>(
this));
128 template <
int nbr>
class MP_subset;
140 vector<int> elm(nbr);
141 for (
int i=0; i<nbr; i++) {
142 elm[i] =
I[i]->evaluate();
148 vector<MP_index_exp>
I;
171 S = makeVector<nbr,const MP_set*>(&s1,&s2,&s3,&s4,&s5);
174 void display(
const std::string& s =
"")
const {
175 std::map<std::vector<int>,
int>::const_iterator i;
178 for (
int j=0; j<nbr; j++) {
179 cout<<(*i).first[j]<<
" ";
189 int operator()(
int i1,
int i2=0,
int i3=0,
int i4=0,
int i5=0) {
190 std::map<vector<int>,
int>::const_iterator
pos;
191 pos =
elements.find(makeVector<nbr>(i1, i2, i3, i4, i5));
213 for (
int k=0; k<nbr; k++) {
214 int temp = I[k]->evaluate();
217 std::map<vector<int>,
int>::const_iterator
pos;
228 for (
int i=0; i<nbr; i++) {
234 std::map<vector<int>,
int>::const_iterator
pos;
242 void insert(
int i1,
int i2=0,
int i3=0,
int i4=0,
int i5=0) {
243 insert(makeVector<nbr>(i1, i2, i3, i4, i5));
257 vector<const MP_set*>
S;
309 makeVector<nbr>(
I1->getIndex(),
I2->getIndex(),
310 I3->getIndex(),
I4->getIndex(),
316 makeVector<nbr>(
I1->getIndex(),
I2->getIndex(),
317 I3->getIndex(),
I4->getIndex(),
331 vector<MP_index_exp> I = makeVector<nbr>(
I1,
I2,
I3,
I4,
I5);
333 for (
int k=0; k<nbr; k++) {
334 int temp = I[k]->evaluate();
337 std::map<vector<int>,
int>::const_iterator
pos;
338 pos =
S->elements.find(vi);
339 if (pos==
S->elements.end()) {