Parma_Polyhedra_Library::Congruence_System::const_iterator Class Reference
[C++ Language Interface]

An iterator over a system of congruences. More...

#include <Congruence_System.defs.hh>

Collaboration diagram for Parma_Polyhedra_Library::Congruence_System::const_iterator:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 const_iterator ()
 Default constructor.
 const_iterator (const const_iterator &y)
 Ordinary copy-constructor.
 ~const_iterator ()
 Destructor.
const_iteratoroperator= (const const_iterator &y)
 Assignment operator.
const Congruenceoperator* () const
 Dereference operator.
const Congruenceoperator-> () const
 Indirect member selector.
const_iteratoroperator++ ()
 Prefix increment operator.
const_iterator operator++ (int)
 Postfix increment operator.
bool operator== (const const_iterator &y) const
 Returns true if and only if *this and y are identical.
bool operator!= (const const_iterator &y) const
 Returns true if and only if *this and y are different.

Private Member Functions

 const_iterator (const Matrix::const_iterator &iter, const Congruence_System &cgs)
 Constructor.
void skip_forward ()
 *this skips to the next non-trivial congruence.

Private Attributes

Matrix::const_iterator i
 The const iterator over the matrix of congruences.
const Matrixcsp
 A const pointer to the matrix of congruences.

Friends

class Congruence_System


Detailed Description

An iterator over a system of congruences.

A const_iterator is used to provide read-only access to each congruence contained in an object of Congruence_System.

Example
The following code prints the system of congruences defining the grid gr:
  const Congruence_System& cgs = gr.congruences();
  for (Congruence_System::const_iterator i = cgs.begin(),
         cgs_end = cgs.end(); i != cgs_end; ++i)
    cout << *i << endl;

Definition at line 234 of file Congruence_System.defs.hh.


Constructor & Destructor Documentation

Parma_Polyhedra_Library::Congruence_System::const_iterator::const_iterator (  )  [inline]

Default constructor.

Definition at line 108 of file Congruence_System.inlines.hh.

00109   : i(), csp(0) {
00110 }

Parma_Polyhedra_Library::Congruence_System::const_iterator::const_iterator ( const const_iterator y  )  [inline]

Ordinary copy-constructor.

Definition at line 113 of file Congruence_System.inlines.hh.

00114   : i(y.i), csp(y.csp) {
00115 }

Parma_Polyhedra_Library::Congruence_System::const_iterator::~const_iterator (  )  [inline]

Destructor.

Definition at line 118 of file Congruence_System.inlines.hh.

00118                                                  {
00119 }

Parma_Polyhedra_Library::Congruence_System::const_iterator::const_iterator ( const Matrix::const_iterator iter,
const Congruence_System cgs 
) [inline, private]

Constructor.

Definition at line 164 of file Congruence_System.inlines.hh.

00166   : i(iter), csp(&csys) {
00167 }


Member Function Documentation

Congruence_System::const_iterator & Parma_Polyhedra_Library::Congruence_System::const_iterator::operator= ( const const_iterator y  )  [inline]

Assignment operator.

Definition at line 122 of file Congruence_System.inlines.hh.

References csp, Parma_Polyhedra_Library::Matrix::const_iterator::i, and i.

00122                                                                   {
00123   i = y.i;
00124   csp = y.csp;
00125   return *this;
00126 }

const Congruence & Parma_Polyhedra_Library::Congruence_System::const_iterator::operator* (  )  const [inline]

Dereference operator.

Definition at line 129 of file Congruence_System.inlines.hh.

00129                                                  {
00130   return static_cast<const Congruence&>(*i);
00131 }

const Congruence * Parma_Polyhedra_Library::Congruence_System::const_iterator::operator-> (  )  const [inline]

Indirect member selector.

Definition at line 134 of file Congruence_System.inlines.hh.

References i.

00134                                                   {
00135   return static_cast<const Congruence*>(i.operator->());
00136 }

Congruence_System::const_iterator & Parma_Polyhedra_Library::Congruence_System::const_iterator::operator++ (  )  [inline]

Prefix increment operator.

Definition at line 139 of file Congruence_System.inlines.hh.

References i, and skip_forward().

Referenced by operator++().

00139                                             {
00140   ++i;
00141   skip_forward();
00142   return *this;
00143 }

Congruence_System::const_iterator Parma_Polyhedra_Library::Congruence_System::const_iterator::operator++ ( int   )  [inline]

Postfix increment operator.

Definition at line 146 of file Congruence_System.inlines.hh.

References operator++().

00146                                                {
00147   const const_iterator tmp = *this;
00148   operator++();
00149   return tmp;
00150 }

bool Parma_Polyhedra_Library::Congruence_System::const_iterator::operator== ( const const_iterator y  )  const [inline]

Returns true if and only if *this and y are identical.

Definition at line 153 of file Congruence_System.inlines.hh.

References Parma_Polyhedra_Library::Matrix::const_iterator::i, and i.

00153                                                                          {
00154   return i == y.i;
00155 }

bool Parma_Polyhedra_Library::Congruence_System::const_iterator::operator!= ( const const_iterator y  )  const [inline]

Returns true if and only if *this and y are different.

Definition at line 158 of file Congruence_System.inlines.hh.

References Parma_Polyhedra_Library::Matrix::const_iterator::i, and i.

00158                                                                          {
00159   return i != y.i;
00160 }

void Parma_Polyhedra_Library::Congruence_System::const_iterator::skip_forward (  )  [private]

*this skips to the next non-trivial congruence.

Definition at line 248 of file Congruence_System.cc.

References csp, Parma_Polyhedra_Library::Matrix::end(), and i.

Referenced by operator++().

00248                                                  {
00249   const Matrix::const_iterator csp_end = csp->end();
00250   while (i != csp_end && (*this)->is_trivial_true())
00251     ++i;
00252 }


Friends And Related Function Documentation

friend class Congruence_System [friend]

Definition at line 278 of file Congruence_System.defs.hh.


Member Data Documentation

The const iterator over the matrix of congruences.

Definition at line 281 of file Congruence_System.defs.hh.

Referenced by operator!=(), operator++(), operator->(), operator=(), operator==(), and skip_forward().

A const pointer to the matrix of congruences.

Definition at line 284 of file Congruence_System.defs.hh.

Referenced by operator=(), and skip_forward().


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

Generated on Wed Jul 16 22:55:48 2008 for PPL by  doxygen 1.5.6