32     virtual int size() 
const = 0;
 
   38         if ((i>=0) && (i<
size())) {
 
   49         if ((i>=0) && (i<
size())) {
 
   87         return i->getDomain(const_cast<MP_set*>(
this));
 
  127 template <
int nbr> 
class MP_subset;
 
  139         std::vector<int> elm(nbr);
 
  140         for (
int i=0; i<nbr; i++) {
 
  141             elm[i] = 
I[i]->evaluate();
 
  147     std::vector<MP_index_exp> 
I;
 
  170         S = makeVector<nbr,const MP_set*>(&s1,&s2,&s3,&s4,&s5);
 
  193     int operator()(
int i1, 
int i2=0, 
int i3=0, 
int i4=0, 
int i5=0) {
 
  194         std::map<std::vector<int>, 
int>::const_iterator 
pos;
 
  195         pos = 
elements.find(makeVector<nbr>(i1, i2, i3, i4, i5));
 
  215     int evaluate(
const std::vector<MP_index*>& I)
 const {
 
  217         for (
int k=0; k<nbr; k++) {
 
  218             int temp = I[k]->evaluate();
 
  221         std::map<std::vector<int>, 
int>::const_iterator 
pos;
 
  230     void insert(
const std::vector<int> &args) {
 
  232         for (
int i=0; i<nbr; i++) {
 
  238             std::map<std::vector<int>, 
int>::const_iterator 
pos;
 
  241                 const int v = 
static_cast<int>(
elements.size());
 
  246     void insert(
int i1, 
int i2=0, 
int i3=0, 
int i4=0, 
int i5=0) {
 
  247         insert(makeVector<nbr>(i1, i2, i3, i4, i5));
 
  257         return static_cast<int>(
elements.size());
 
  261     std::vector<const MP_set*> 
S; 
 
  294     class SubsetRef : 
public SUBSETREF {
 
  318                           makeVector<nbr>(
I1->getIndex(), 
I2->getIndex(), 
 
  319                                           I3->getIndex(), 
I4->getIndex(), 
 
  325                 makeVector<nbr>(
I1->getIndex(), 
I2->getIndex(), 
 
  326                                 I3->getIndex(), 
I4->getIndex(), 
 
  336             std::vector<MP_index_exp> I = makeVector<nbr>(
I1,
I2,
I3,
I4,
I5);
 
  338             for (
int k=0; k<nbr; k++) {
 
  339                 int temp = I[k]->evaluate();
 
  342             std::map<std::vector<int>, 
int>::const_iterator 
pos;
 
  343             pos = 
S->elements.find(vi);
 
  344             if (pos==
S->elements.end()) {
 
InsertFunctor(MP_subset< nbr > *s, std::vector< MP_index_exp > i)
 
std::vector< const MP_set * > S
 
int checkStage(int i) const 
 
void insert(int i1, int i2=0, int i3=0, int i4=0, int i5=0)
 
static MP_set & getEmpty()
gets the distinct 'empty' MP_set. 
 
MP_domain such_that(const MP_boolean &b)
Special conditional creation of a subset. 
 
MP_domain & operator()(const SUBSETREF &s)
 
Internal representation of a "set". 
 
MP_domain operator()(const MP_index_exp &i) const 
Constructs an MP_domain on the stack given an index expression into the set. 
 
MP_index * getIndex() const 
 
void insert(const std::vector< int > &args)
 
virtual int size() const 
getter for the cardinality of this MP_set. 
 
MP_subset(const MP_set &s1, const MP_set &s2=MP_set::getEmpty(), const MP_set &s3=MP_set::getEmpty(), const MP_set &s4=MP_set::getEmpty(), const MP_set &s5=MP_set::getEmpty())
 
static MP_index & getEmpty()
returns a reference to the distinct "empty" index. 
 
Internal representation of a "set". 
 
MP_subset(std::vector< const MP_set * > s)
 
std::vector< MP_index_exp > I
 
Representation of an index.This is one of the main public interface classes. It is used to iterate th...
 
Internal representation of a "set". 
 
void display(const std::string &s="") const 
 
const InsertFunctor< nbr > & insert(MP_index_exp i1, MP_index_exp i2=MP_index_exp::getEmpty(), MP_index_exp i3=MP_index_exp::getEmpty(), MP_index_exp i4=MP_index_exp::getEmpty(), MP_index_exp i5=MP_index_exp::getEmpty())
 
virtual MP_domain operator()(const MP_index_exp &i) const =0
 
virtual MP_index * getIndex() const 
 
SubsetRef(MP_subset< nbr > *s, const MP_index_exp &i1, const MP_index_exp &i2, const MP_index_exp &i3, const MP_index_exp &i4, const MP_index_exp &i5)
 
int operator()(int i1, int i2=0, int i3=0, int i4=0, int i5=0)
 
MP_domain such_that(const MP_boolean &b)
constructs a domain by subsetting this MP_set where the MP_boolean evaluates to 'true' ...
 
virtual int size() const 
getter for the cardinality of this MP_set. 
 
Utility interface class for adding a string name onto a structure. 
 
Representation of an expression involving an index.This is one of the main public interface classes...
 
Range over which some other constuct is defined.This is one of the main public interface classes...
 
virtual MP_domain getDomain(MP_set *s) const 
 
static const MP_index_exp & getEmpty()
Return the unique empty expression. 
 
Range over which some other constuct is defined. Uses subsetting.This is one of the main public inter...
 
const int outOfBound
Distinct return value on conditions where an index goes out of bounds. 
 
virtual MP_domain getDomain(MP_set *s) const 
 
std::map< std::vector< int >, int > elements
 
Reference counted class for all "boolean" types of data.This contains counters to ConstantBase pointe...
 
virtual int isStage() const 
 
virtual int size() const =0
 
SubsetRef & such_that(const MP_boolean &b)
 
Range over which some other constuct is defined.This is one of the main public interface classes...
 
static const MP_domain & getEmpty()
returns a reference to the "empty" set. 
 
Function object. Often used. 
 
Constant pos(const Constant &c)
for returning non-negative value of the constant.This is used in the formation of an expression...
 
Representation of a set for indexing into some other construct.This is one of the main public interfa...
 
Internal representation of a "set". 
 
Internal representation of a index. 
 
int mod(int a, int b)
return the strictly positive modulus of two integers 
 
int evaluate(const std::vector< MP_index * > &I) const 
 
MP_set(int i=0)
constructs a set with specific cardinality. 
 
virtual int isStage() const 
 
Internal representation of a "set". 
 
SubsetRef< nbr > & operator()(const MP_index_exp &i1, const MP_index_exp &i2=MP_index::getEmpty(), const MP_index_exp &i3=MP_index::getEmpty(), const MP_index_exp &i4=MP_index::getEmpty(), const MP_index_exp &i5=MP_index::getEmpty())