# flopc::MP_domain Class Reference
[Public interface]

Range over which some other constuct is defined. More...

`#include <MP_domain.hpp>`

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

List of all members.

## Public Member Functions
| MP_domain ()
| a set which points to nothing.
| ~MP_domain ()
| MP_domain (MP_domain_base *r)
| For internal use.
MP_domain | such_that (const MP_boolean &b)
| Special conditional creation of a subset.
void | Forall (const Functor *op) const
| Special conditional operation on the domain.
size_t | size () const
| returns number of elements in the domain.
## Static Public Member Functions
static const MP_domain & | getEmpty ()
| returns a reference to the "empty" set.
## Private Attributes
std::vector< MP_boolean > | condition
Handle< MP_domain_base * > | last
## Static Private Attributes
static const MP_domain * | Empty
## Friends
class | MP_constraint
class | MP_index_exp
MP_domain | operator* (const MP_domain &a, const MP_domain &b)

## 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.

- there is a special domain known as "empty". It is static and a reference can be obtained using MP_domain::getEmpty();
- The empty set is used when defaulting in parameters for dimensions which are not used.

Definition at line 61 of file MP_domain.hpp.

## Constructor & Destructor Documentation

flopc::MP_domain::MP_domain | ( |  | ) |

a set which points to nothing.

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

flopc::MP_domain::~MP_domain | ( |  | ) |

flopc::MP_domain::MP_domain | ( | MP_domain_base * | r | ) |

For internal use.

Todo:
  make this constructor private?

## Member Function Documentation

MP_domain flopc::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.

void flopc::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.

size_t flopc::MP_domain::size | ( |  | ) | const

returns number of elements in the domain.

static const MP_domain& flopc::MP_domain::getEmpty | ( |  | ) | `[static]`

returns a reference to the "empty" set.

## 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]`

## Member Data Documentation

std::vector<MP_boolean> flopc::MP_domain::condition`[private]`

Definition at line 95 of file MP_domain.hpp.

Handle<MP_domain_base*> flopc::MP_domain::last`[private]`

Definition at line 96 of file MP_domain.hpp.

const MP_domain* flopc::MP_domain::Empty`[static, private]`

Definition at line 97 of file MP_domain.hpp.

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

- /home/coin/svn-release/Smi-0.93.1/FlopCpp/src/MP_domain.hpp