Generated on Thu Mar 22 10:39:54 2012 for Gecode by doxygen 1.6.3

Gecode::Matrix< A > Class Template Reference
[Direct modeling support]

Matrix-interface for arrays. More...

#include <minimodel.hh>

List of all members.

Public Types

typedef ArrayTraits< A >::ValueType ValueType
 The type of elements of this array.
typedef ArrayTraits< A >::ArgsType ArgsType
 The type of the Args-array type for ValueType values.

Public Member Functions

 Matrix (A a, int w, int h)
 Basic constructor.
 Matrix (A a, int n)
 Basic constructor.
int width (void) const
 Return the width of the matrix.
int height (void) const
 Return the height of the matrix.
ArgsType const get_array (void) const
 Return an Args-array of the contents of the matrix.
ValueTypeoperator() (int c, int r)
 Access element (c, r) of the matrix.
const ValueTypeoperator() (int c, int r) const
 Access element (c, r) of the matrix.
Slice< A > slice (int fc, int tc, int fr, int tr) const
 Access slice of the matrix.
Slice< A > row (int r) const
 Access row r.
Slice< A > col (int c) const
 Access column c.

Related Functions

(Note that these are not member functions.)



template<class Char , class Traits , class A >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const Matrix< A > &m)
template<class Char , class Traits , class A >
std::basic_ostream< Char,
Traits > & 
operator<< (std::basic_ostream< Char, Traits > &os, const Slice< A > &s)
void element (Home home, const Matrix< IntArgs > &m, IntVar x, IntVar y, IntVar z, IntConLevel icl=ICL_DEF)
 Element constraint for matrix.
void element (Home home, const Matrix< IntArgs > &m, IntVar x, IntVar y, BoolVar z, IntConLevel icl=ICL_DEF)
 Element constraint for matrix.
void element (Home home, const Matrix< IntVarArgs > &m, IntVar x, IntVar y, IntVar z, IntConLevel icl=ICL_DEF)
 Element constraint for matrix.
void element (Home home, const Matrix< BoolVarArgs > &m, IntVar x, IntVar y, BoolVar z, IntConLevel icl=ICL_DEF)
 Element constraint for matrix.
void element (Home home, const Matrix< IntSetArgs > &m, IntVar x, IntVar y, SetVar z)
 Element constraint for matrix.
void element (Home home, const Matrix< SetVarArgs > &m, IntVar x, IntVar y, SetVar z)
 Element constraint for matrix.

Detailed Description

template<class A>
class Gecode::Matrix< A >

Matrix-interface for arrays.

This class allows for wrapping some array and accessing it as a matrix.

Note:
This is a light-weight wrapper, and is not intended for storing variables directly instead of in an array.

Definition at line 1675 of file minimodel.hh.


Member Typedef Documentation

template<class A>
typedef ArrayTraits<A>::ValueType Gecode::Matrix< A >::ValueType

The type of elements of this array.

Definition at line 1678 of file minimodel.hh.

template<class A>
typedef ArrayTraits<A>::ArgsType Gecode::Matrix< A >::ArgsType

The type of the Args-array type for ValueType values.

Definition at line 1680 of file minimodel.hh.


Constructor & Destructor Documentation

template<class A>
Gecode::Matrix< A >::Matrix ( a,
int  w,
int  h 
) [inline]

Basic constructor.

Constructs a Matrix from the array a, using w and h as the width and height of the matrix.

The elements in the wrapped array a are accessed in row-major order.

Exceptions:
MiniModel::ArgumentSizeMismatch Raised if the parameters w and h doesn't match the size of the array a.

Definition at line 131 of file matrix.hpp.

template<class A>
Gecode::Matrix< A >::Matrix ( a,
int  n 
) [inline]

Basic constructor.

Constructs a square Matrix from the array a, using n as the length of the sides.

The elements in the wrapped array a are accessed in row-major order.

Exceptions:
MiniModel::ArgumentSizeMismatch Raised if the parameter n doesn't match the size of the array a.

Definition at line 139 of file matrix.hpp.


Member Function Documentation

template<class A >
int Gecode::Matrix< A >::width ( void   )  const [inline]

Return the width of the matrix.

Definition at line 147 of file matrix.hpp.

template<class A >
int Gecode::Matrix< A >::height ( void   )  const [inline]

Return the height of the matrix.

Definition at line 150 of file matrix.hpp.

template<class A >
Matrix< A >::ArgsType const Gecode::Matrix< A >::get_array ( void   )  const [inline]

Return an Args-array of the contents of the matrix.

Definition at line 153 of file matrix.hpp.

template<class A >
Matrix< A >::ValueType & Gecode::Matrix< A >::operator() ( int  c,
int  r 
) [inline]

Access element (c, r) of the matrix.

Exceptions:
MiniModel::ArgumentOutOfRange Raised if c or r are out of range.

Definition at line 159 of file matrix.hpp.

template<class A >
const Matrix< A >::ValueType & Gecode::Matrix< A >::operator() ( int  c,
int  r 
) const [inline]

Access element (c, r) of the matrix.

Exceptions:
MiniModel::ArgumentOutOfRange Raised if c or r are out of range.

Definition at line 167 of file matrix.hpp.

template<class A >
Slice< A > Gecode::Matrix< A >::slice ( int  fc,
int  tc,
int  fr,
int  tr 
) const [inline]

Access slice of the matrix.

This function allows accessing a slice of the matrix, located at columns $[fc,tc)$ and rows $[fr,tr)$. The result of this function is an object that can be converted into either a Matrix<ArgsType> or into ArgsType.

For further information, see Slice.

Definition at line 175 of file matrix.hpp.

template<class A >
Slice< A > Gecode::Matrix< A >::row ( int  r  )  const [inline]

Access row r.

Definition at line 181 of file matrix.hpp.

template<class A >
Slice< A > Gecode::Matrix< A >::col ( int  c  )  const [inline]

Access column c.

Definition at line 187 of file matrix.hpp.


Friends And Related Function Documentation

template<class Char , class Traits , class A >
std::basic_ostream< Char, Traits > & operator<< ( std::basic_ostream< Char, Traits > &  os,
const Matrix< A > &  m 
) [related]

Print matrix m

Definition at line 193 of file matrix.hpp.

template<class Char , class Traits , class A >
std::basic_ostream< Char, Traits > & operator<< ( std::basic_ostream< Char, Traits > &  os,
const Slice< A > &  s 
) [related]

Print slice s

Definition at line 207 of file matrix.hpp.

template<class A>
void element ( Home  home,
const Matrix< IntArgs > &  m,
IntVar  x,
IntVar  y,
IntVar  z,
IntConLevel  icl = ICL_DEF 
) [related]

Element constraint for matrix.

Here, x and y are the coordinates and z is the value at position m(x,y).

Definition at line 212 of file matrix.hpp.

template<class A>
void element ( Home  home,
const Matrix< IntArgs > &  m,
IntVar  x,
IntVar  y,
BoolVar  z,
IntConLevel  icl = ICL_DEF 
) [related]

Element constraint for matrix.

Here, x and y are the coordinates and z is the value at position m(x,y).

Definition at line 217 of file matrix.hpp.

template<class A>
void element ( Home  home,
const Matrix< IntVarArgs > &  m,
IntVar  x,
IntVar  y,
IntVar  z,
IntConLevel  icl = ICL_DEF 
) [related]

Element constraint for matrix.

Here, x and y are the coordinates and z is the value at position m(x,y).

Definition at line 222 of file matrix.hpp.

template<class A>
void element ( Home  home,
const Matrix< BoolVarArgs > &  m,
IntVar  x,
IntVar  y,
BoolVar  z,
IntConLevel  icl = ICL_DEF 
) [related]

Element constraint for matrix.

Here, x and y are the coordinates and z is the value at position m(x,y).

Definition at line 227 of file matrix.hpp.

template<class A>
void element ( Home  home,
const Matrix< IntSetArgs > &  m,
IntVar  x,
IntVar  y,
SetVar  z 
) [related]

Element constraint for matrix.

Here, x and y are the coordinates and z is the value at position m(x,y).

Definition at line 234 of file matrix.hpp.

template<class A>
void element ( Home  home,
const Matrix< SetVarArgs > &  m,
IntVar  x,
IntVar  y,
SetVar  z 
) [related]

Element constraint for matrix.

Here, x and y are the coordinates and z is the value at position m(x,y).

Definition at line 239 of file matrix.hpp.


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