flopc::MP_index Class Reference
[Public interface]

Representation of an index.

This is one of the main public interface classes. It is used to iterate through, or index into an MP_domain. It is also used to share the 'current' index offsets between expressions which share an index. More...

#include <MP_index.hpp>

Inheritance diagram for flopc::MP_index:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 MP_index ()
 Default constructor.
int evaluate () const

Static Public Member Functions

static MP_indexgetEmpty ()
 returns a reference to the distinct "empty" index.
static MP_indexAny ()
 returns a reference to the distinct "wildcard" index.

Private Member Functions

bool isInstantiated () const
void assign (int i)
void unInstantiate ()
void instantiate ()
MP_indexgetIndex () const
virtual MP_domain getDomain (MP_set *s) const
 Getter for domain over which this index is applied.

Private Attributes

int index
bool instantiated

Static Private Attributes

static MP_indexEmpty = *new MP_index()
static MP_indexAny_index = *new MP_index()

Friends

class MP_domain_set
class MP_domain_subset

Detailed Description

Representation of an index.

This is one of the main public interface classes. It is used to iterate through, or index into an MP_domain. It is also used to share the 'current' index offsets between expressions which share an index.

Definition at line 53 of file MP_index.hpp.


Constructor & Destructor Documentation

flopc::MP_index::MP_index (  )  [inline]

Default constructor.

Definition at line 58 of file MP_index.hpp.


Member Function Documentation

MP_index & flopc::MP_index::Any (  )  [static]

returns a reference to the distinct "wildcard" index.

Definition at line 23 of file MP_index.cpp.

References Any_index.

void flopc::MP_index::assign ( int  i  )  [inline, private]

Setter for the index.

Todo:
should this assert "instatiated"?

Definition at line 75 of file MP_index.hpp.

References index.

Referenced by flopc::MP_domain_set::operator()().

int flopc::MP_index::evaluate (  )  const [inline, virtual]

Implements flopc::MP_index_base.

Definition at line 59 of file MP_index.hpp.

References index.

Referenced by flopc::MP_subset< nbr >::evaluate(), flopc::MP_domain_set::evaluate(), flopc::VariableRef::level(), flopc::MP_variable::operator()(), and flopc::MP_data::operator()().

MP_domain MP_index::getDomain ( MP_set s  )  const [private, virtual]

Getter for domain over which this index is applied.

Implements flopc::MP_index_base.

Definition at line 90 of file MP_index.cpp.

References MP_domain_set.

MP_index & flopc::MP_index::getEmpty (  )  [static]

returns a reference to the distinct "empty" index.

Reimplemented in flopc::MP_set.

Definition at line 20 of file MP_index.cpp.

References Empty.

Referenced by flopc::MP_domain_subset< nbr >::operator()().

MP_index* flopc::MP_index::getIndex (  )  const [inline, private, virtual]

getter for MP_index * data type.

Todo:
should this be virtual?

Implements flopc::MP_index_base.

Definition at line 91 of file MP_index.hpp.

void flopc::MP_index::instantiate (  )  [inline, private]

setter for instatiated.

Definition at line 85 of file MP_index.hpp.

References instantiated.

Referenced by flopc::MP_domain_set::operator()().

bool flopc::MP_index::isInstantiated (  )  const [inline, private]

interrogate state of instatiation of data.

Definition at line 69 of file MP_index.hpp.

References instantiated.

Referenced by flopc::MP_domain_set::operator()().

void flopc::MP_index::unInstantiate (  )  [inline, private]

unsetter for instatiated.

Definition at line 80 of file MP_index.hpp.

References instantiated.

Referenced by flopc::MP_domain_set::operator()().


Friends And Related Function Documentation

friend class MP_domain_set [friend]

Definition at line 54 of file MP_index.hpp.

Referenced by getDomain(), flopc::MP_set::operator MP_domain(), and flopc::MP_set::such_that().

friend class MP_domain_subset [friend]

Definition at line 55 of file MP_index.hpp.


Member Data Documentation

MP_index & flopc::MP_index::Any_index = *new MP_index() [static, private]

Definition at line 98 of file MP_index.hpp.

Referenced by Any().

MP_index & flopc::MP_index::Empty = *new MP_index() [static, private]

Reimplemented in flopc::MP_set.

Definition at line 97 of file MP_index.hpp.

Referenced by getEmpty().

int flopc::MP_index::index [private]

Definition at line 99 of file MP_index.hpp.

Referenced by assign(), and evaluate().

bool flopc::MP_index::instantiated [private]

Definition at line 100 of file MP_index.hpp.

Referenced by instantiate(), isInstantiated(), and unInstantiate().


The documentation for this class was generated from the following files:
Generated on Fri May 16 00:25:30 2008 for FLOPC++ by  doxygen 1.4.7