FLOPC++
Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
flopc::MP_domain Class Reference

Range over which some other constuct is defined.This is one of the main public interface classes. One uses this in the context of a constraint, objective, variable, or data. It is usually used in conjunction with an MP_set, or a subset, but can be used without one. It is the range over which the other construct is defined. More...

#include <MP_domain.hpp>

Inheritance diagram for flopc::MP_domain:
Inheritance graph
[legend]
Collaboration diagram for flopc::MP_domain:
Collaboration graph
[legend]

Public Member Functions

 MP_domain ()
 
 ~MP_domain ()
 
 MP_domain (MP_domain_base *r)
 
MP_domain such_that (const MP_boolean &b)
 Special conditional creation of a subset. More...
 
void Forall (const Functor *op) const
 Special conditional operation on the domain. More...
 
size_t size () const
 returns number of elements in the domain. More...
 
- Public Member Functions inherited from flopc::Handle< T >
const T & operator-> () const
 
 Handle (const T &r)
 
 Handle (const Handle &h)
 
const Handleoperator= (const Handle &h)
 
 ~Handle ()
 

Static Public Member Functions

static const MP_domaingetEmpty ()
 returns a reference to the "empty" set. More...
 

Private Attributes

std::vector< MP_booleancondition
 
Handle< MP_domain_base * > last
 

Static Private Attributes

static const MP_domainEmpty = NULL
 

Friends

class MP_constraint
 
class MP_index_exp
 
MP_domain operator* (const MP_domain &a, const MP_domain &b)
 

Additional Inherited Members

- Protected Member Functions inherited from flopc::Handle< T >
void increment ()
 
void decrement ()
 

Detailed Description

Range over which some other constuct is defined.

This is one of the main public interface classes. One uses this in the context of a constraint, objective, variable, or data. It is usually used in conjunction with an MP_set, or a subset, but can be used without one. It is the range over which the other construct is defined.

Definition at line 61 of file MP_domain.hpp.

Constructor & Destructor Documentation

MP_domain::MP_domain ( )

a set which points to nothing.

Note
This is not the same as the "empty" set.

Definition at line 74 of file MP_domain.cpp.

Referenced by getEmpty().

MP_domain::~MP_domain ( )

Definition at line 76 of file MP_domain.cpp.

MP_domain::MP_domain ( MP_domain_base r)

For internal use.

Todo:
make this constructor private?

Definition at line 75 of file MP_domain.cpp.

Member Function Documentation

void MP_domain::Forall ( const Functor op) const

Special conditional operation on the domain.

This method will call the functor for each member of the MP_domain.

Definition at line 85 of file MP_domain.cpp.

References condition, flopc::MP_domain_base::donext, last, and flopc::Handle< T >::operator->().

Referenced by flopc::forall(), flopc::Expression_constant::generate(), flopc::VariableRef::generate(), and flopc::operator<<=().

const MP_domain & MP_domain::getEmpty ( )
static
size_t MP_domain::size ( ) const

returns number of elements in the domain.

Definition at line 98 of file MP_domain.cpp.

References flopc::Handle< T >::operator->().

MP_domain MP_domain::such_that ( const MP_boolean b)

Special conditional creation of a subset.

This method allows for a test for inclusion of a condition during construction of a subset. The output MP_domain will include references where the condition is satisfied.

Definition at line 78 of file MP_domain.cpp.

References condition.

Referenced by flopc::MP_set::such_that().

Friends And Related Function Documentation

friend class MP_constraint
friend

Definition at line 64 of file MP_domain.hpp.

friend class MP_index_exp
friend

Definition at line 65 of file MP_domain.hpp.

MP_domain operator* ( const MP_domain a,
const MP_domain b 
)
friend

operator which creates a new domain as the pairwise combinations of two input domains.

Member Data Documentation

std::vector<MP_boolean> flopc::MP_domain::condition
private

Definition at line 95 of file MP_domain.hpp.

Referenced by Forall(), flopc::operator*(), and such_that().

const MP_domain * MP_domain::Empty = NULL
staticprivate

Definition at line 97 of file MP_domain.hpp.

Referenced by getEmpty().

Handle<MP_domain_base*> flopc::MP_domain::last
private

Definition at line 96 of file MP_domain.hpp.

Referenced by Forall(), and flopc::operator*().


The documentation for this class was generated from the following files: