FLOPC++
Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes
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:
flopc::MP_set_base flopc::MP_index flopc::Named flopc::MP_index_base flopc::MP_stage flopc::MP_subset< nbr >

List of all members.

Public Member Functions

 MP_set (int i=0)
 constructs a set with specific cardinality.
MP_domain operator() (const MP_index_exp &i) const
 Constructs an MP_domain on the stack given an index expression into the set.
 operator MP_domain () const
 constructs an MP_domain from the MP_set.
MP_domain such_that (const MP_boolean &b)
 constructs a domain by subsetting this MP_set where the MP_boolean evaluates to 'true'
void cyclic ()
virtual int size () const
 getter for the cardinality of this MP_set.
int last ()

Static Public Member Functions

static MP_setgetEmpty ()
 gets the distinct 'empty' MP_set.

Private Attributes

int cardinality

Static Private Attributes

static MP_set Empty = *new MP_set(1)

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 79 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 82 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 103 of file MP_set.hpp.

References flopc::MP_set_base::Cyclic.

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

gets the distinct 'empty' MP_set.

Reimplemented from flopc::MP_index.

Definition at line 17 of file MP_set.cpp.

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

int flopc::MP_set::last ( ) [inline]

Definition at line 110 of file MP_set.hpp.

References cardinality.

flopc::MP_set::operator MP_domain ( ) const [inline, virtual]

constructs an MP_domain from the MP_set.

Implements flopc::MP_set_base.

Definition at line 91 of file MP_set.hpp.

References flopc::MP_index::MP_domain_set.

MP_domain flopc::MP_set::operator() ( const MP_index_exp i) const [inline, virtual]

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 87 of file MP_set.hpp.

virtual int flopc::MP_set::size ( ) const [inline, virtual]

getter for the cardinality of this MP_set.

Implements flopc::MP_set_base.

Reimplemented in flopc::MP_subset< nbr >.

Definition at line 107 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 97 of file MP_set.hpp.

References flopc::MP_index::MP_domain_set, and flopc::MP_domain::such_that().


Member Data Documentation

Definition at line 117 of file MP_set.hpp.

Referenced by last(), and size().

MP_set flopc::MP_set::Empty = *new MP_set(1) [static, private]

Reimplemented from flopc::MP_index.

Definition at line 116 of file MP_set.hpp.


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