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

Representation of a set for indexing into some other construct.This is one of the main public interface classes. One uses this when constructing MP_domains, and subsets. It is frequent that one would directly construct sets of indices, then use expressions to subset or slice the data. More...

#include <MP_set.hpp>

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

Public Member Functions

 MP_set (int i=0)
 constructs a set with specific cardinality. More...
 
MP_domain operator() (const MP_index_exp &i) const
 Constructs an MP_domain on the stack given an index expression into the set. More...
 
 operator MP_domain () const
 constructs an MP_domain from the MP_set. More...
 
MP_domain such_that (const MP_boolean &b)
 constructs a domain by subsetting this MP_set where the MP_boolean evaluates to 'true' More...
 
void cyclic ()
 
virtual int size () const
 getter for the cardinality of this MP_set. More...
 
int last ()
 
- Public Member Functions inherited from flopc::MP_set_base
 MP_set_base ()
 
void display () const
 
int check (int i) const
 
int checkStage (int i) const
 
virtual int isStage () const
 
- Public Member Functions inherited from flopc::MP_index
 MP_index ()
 Default constructor. More...
 
int evaluate () const
 
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. More...
 
- Public Member Functions inherited from flopc::Named
std::string getName () const
 
void setName (const std::string &n)
 

Static Public Member Functions

static MP_setgetEmpty ()
 gets the distinct 'empty' MP_set. More...
 
- Static Public Member Functions inherited from flopc::MP_index
static MP_indexgetEmpty ()
 returns a reference to the distinct "empty" index. More...
 

Private Attributes

int cardinality
 

Static Private Attributes

static MP_set Empty = *new MP_set(1)
 

Additional Inherited Members

- Public Attributes inherited from flopc::MP_set_base
bool Cyclic
 
- Static Public Attributes inherited from flopc::MP_index
static MP_indexAny = *new MP_index()
 
- Protected Member Functions inherited from flopc::MP_index_base
 MP_index_base ()
 
virtual ~MP_index_base ()
 

Detailed Description

Representation of a set for indexing into some other construct.

This is one of the main public interface classes. One uses this when constructing MP_domains, and subsets. It is frequent that one would directly construct sets of indices, then use expressions to subset or slice the data.

Note
term: cardinality is the number of elements in the set.
term: dimension is the number of indices used to reference into it.
there is a distince 'empty' MP_set

Definition at line 78 of file MP_set.hpp.

Constructor & Destructor Documentation

flopc::MP_set::MP_set ( int  i = 0)
inline

constructs a set with specific cardinality.

Definition at line 81 of file MP_set.hpp.

Member Function Documentation

void flopc::MP_set::cyclic ( )
inline

setter for 'cyclic' property

Todo:
better explain the use of cyclic.

Definition at line 102 of file MP_set.hpp.

References flopc::MP_set_base::Cyclic.

MP_set & flopc::MP_set::getEmpty ( )
static

gets the distinct 'empty' MP_set.

Definition at line 17 of file MP_set.cpp.

Referenced by flopc::MP_domain::getEmpty(), flopc::MP_data::operator()(), and flopc::MP_variable::operator()().

int flopc::MP_set::last ( )
inline

Definition at line 109 of file MP_set.hpp.

References cardinality.

flopc::MP_set::operator MP_domain ( ) const
inlinevirtual

constructs an MP_domain from the MP_set.

Implements flopc::MP_set_base.

Definition at line 90 of file MP_set.hpp.

MP_domain flopc::MP_set::operator() ( const MP_index_exp i) const
inlinevirtual

Constructs an MP_domain on the stack given an index expression into the set.

Todo:
is the internal use?

Implements flopc::MP_set_base.

Definition at line 86 of file MP_set.hpp.

virtual int flopc::MP_set::size ( ) const
inlinevirtual

getter for the cardinality of this MP_set.

Implements flopc::MP_set_base.

Reimplemented in flopc::MP_subset< nbr >.

Definition at line 106 of file MP_set.hpp.

References cardinality.

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

MP_domain flopc::MP_set::such_that ( const MP_boolean b)
inline

constructs a domain by subsetting this MP_set where the MP_boolean evaluates to 'true'

Definition at line 96 of file MP_set.hpp.

References flopc::MP_domain::such_that().

Member Data Documentation

int flopc::MP_set::cardinality
private

Definition at line 116 of file MP_set.hpp.

Referenced by last(), and size().

MP_set flopc::MP_set::Empty = *new MP_set(1)
staticprivate

Definition at line 115 of file MP_set.hpp.


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