8 #ifndef _MP_domain_hpp_ 
    9 #define _MP_domain_hpp_ 
   44     virtual size_t size() 
const ;
 
  146         std::vector<int> elm(nbr);
 
  147         for (
int i=0; i<nbr; i++) {
 
  148             elm[i] = 
D->I[i]->evaluate();
 
  170                            const std::vector<MP_index*> &i) : 
S(s), 
I(i){}
 
  176         return S->evaluate(
I);
 
  195         bool allBound = 
true;
 
  196         for (
int j=0; j<nbr; j++) {
 
  197             if (
I[j]->isInstantiated() == 
true) {
 
  207         if (allBound == 
true) {
 
  210             std::map<std::vector<int>, 
int>::const_iterator i;
 
  212             for (i = 
S->elements.begin(); i != 
S->elements.end(); i++) {
 
  216                 for (
int j=0; j<nbr; j++) {
 
  217                     if (isBound[j] == 
true) {
 
  223                         I[j]->assign(i->first[j]);
 
  231         for (
int j=0; j<nbr; j++) {
 
  232             if (isBound[j] == 
false) {
 
  234                 I[j]->unInstantiate();
 
  246     std::vector<MP_index*> 
I;
 
MP_domain such_that(const MP_boolean &b)
Special conditional creation of a subset. 
 
virtual Functor * makeInsertFunctor() const 
 
virtual const MP_set_base * getSet() const =0
 
Handle< MP_domain_base * > last
 
Functor * makeInsertFunctor() const 
 
static MP_index & getEmpty()
returns a reference to the distinct "empty" index. 
 
static const MP_domain * Empty
 
Internal representation of a "set". 
 
virtual MP_index * getIndex() const =0
 
friend MP_domain operator*(const MP_domain &a, const MP_domain &b)
 
MP_domain_set(const MP_set *s, MP_index *i)
Constructor taking a set pointer and an index pointer. 
 
void Forall(const Functor *op) const 
Special conditional operation on the domain. 
 
MP_set_base * getSet() const 
getter for obtaining the set used in construction 
 
Representation of an index.This is one of the main public interface classes. It is used to iterate th...
 
MP_domain_subset< nbr > * D
 
Utility for doing reference counted pointers. 
 
virtual size_t size() const 
 
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...
 
Reference to a set of index values. 
 
MP_domain getDomain(MP_set *s) const 
 
Range over which some other constuct is defined. Uses subsetting.This is one of the main public inter...
 
std::vector< MP_boolean > condition
 
size_t size() const 
returns number of elements in the domain. 
 
MP_domain getDomain(MP_set *s) const 
 
const MP_set_base * getSet() const 
Getter for the set used in construction. 
 
Reference counted class for all "boolean" types of data.This contains counters to ConstantBase pointe...
 
Range over which some other constuct is defined.This is one of the main public interface classes...
 
std::vector< MP_index * > I
 
static const MP_domain & getEmpty()
returns a reference to the "empty" set. 
 
insertFunctor(MP_domain_subset< nbr > *d)
 
Function object. Often used. 
 
friend MP_domain operator*(const MP_domain &a, const MP_domain &b)
 
Representation of a set for indexing into some other construct.This is one of the main public interfa...
 
MP_index * getIndex() const 
getter for obtaining the index used in construction 
 
Constant operator*(const Constant &a, const Constant &b)
Returns the product of two constants.This is used in the formation of an expression. 
 
Internal representation of a "set". 
 
MP_index * getIndex() const 
Getter for the index used in construction. 
 
Internal representation of a index. 
 
virtual ~MP_domain_base()
 
Semantic representation of a linear constraint.This is one of the main public interface classes...
 
Inserter for construction of a subset.