Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members  

ixion::matrix Class Template Reference

#include <ixlib_matrix.hh>

List of all members.

Public Types

typedef Traits traits_type
typedef traits_type::number_type entry_type
typedef traits_type::scalar_type scalar_type
typedef T* iterator
typedef T const* const_iterator

Public Methods

 matrix (TSize height=0, TSize width=0)
template<class InputIterator>  matrix (TSize height, TSize width, InputIterator first)
 matrix (matrix const &src)
matrix& operator= (matrix const &src)
matrix& operator+= (matrix const &op2)
matrix& operator-= (matrix const &op2)
matrix& operator *= (matrix const &op2)
matrix& operator *= (scalar_type scalar)
matrix operator- () const
matrix operator+ (matrix const &op2) const
matrix operator- (matrix const &op2) const
matrix operator * (matrix const &op2) const
matrix operator() (TIndex row) const
entry_typeoperator() (TIndex row, TIndex col)
entry_type operator() (TIndex row, TIndex col) const
iterator begin ()
const_iterator begin () const
iterator end ()
const_iterator end () const
TSize getWidth () const
TSize getHeight () const
matrix extract (TIndex row, TIndex col, TSize height, TSize width) const
matrix extractRow (TIndex row) const
matrix extractColumn (TIndex col) const
matrix& set (TIndex row, TIndex col, matrix const &src)
matrix& setRow (TIndex row, matrix const &src)
matrix& setColumn (TIndex col, matrix const &src)
matrix& add (TIndex row, TIndex col, matrix const &src, entry_type factor=1)
matrix& addRow (TIndex row, matrix &src, entry_type factor=1)
matrix& addColumn (TIndex col, matrix &src, entry_type factor=1)
matrix& addRowSelf (TIndex to, TIndex from, entry_type factor=1, TIndex startcol=0)
matrix& addColumnSelf (TIndex to, TIndex from, entry_type factor=1, TIndex startrow=0)
matrix& multiplyRowSelf (TIndex row, entry_type factor, TIndex startcol=0)
matrix& multiplyColumnSelf (TIndex column, entry_type factor, TIndex startrow=0)
matrix& swapRowSelf (TIndex row1, TIndex row2)
matrix& swapColumnSelf (TIndex col1, TIndex col2)
entry_type det () const
entry_type getVectorNorm (int index=2) const
entry_type trace () const
entry_type diagonalProduct () const
matrix getTransposed () const
matrix getInverted () const
matrix getGaussElim (scalar_type pivot_threshold=0, TSize *swapcount=NULL) const
matrix getGaussJordan (scalar_type pivot_threshold=0, TSize *swapcount=NULL) const
matrix linearSolve (matrix const &vec, scalar_type pivot_threshold=0) const
matrix getCholesky () const
void getLR (matrix &l, matrix &r) const
matrix& normalize ()
matrix upperTriangleSolve (matrix const &vec) const
matrix lowerTriangleSolve (matrix const &vec) const
void wipe (entry_type value=traits_type::zero)
void setDimension (TSize height, TSize width)
void outMatrix (ostream &ostr, void(*item_formatter)(ostream &os, bool first, bool last)=NULL) const

Static Public Attributes

const int infty = -1

Protected Methods

void setup (TSize height, TSize width)
TSize getSize () const
TIndex getIndex (TIndex row, TIndex col) const

Protected Attributes

TSize Height
TSize Width
auto_array<T> Data

template<class T, class Traits = number_traits<T>> class ixion::matrix


Member Typedef Documentation

template<class T, class Traits = number_traits<T>>
typedef T const* ixion::matrix<T, Traits>::const_iterator
 

Definition at line 58 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
typedef traits_type::number_type ixion::matrix<T, Traits>::entry_type
 

Definition at line 55 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
typedef T* ixion::matrix<T, Traits>::iterator
 

Definition at line 57 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
typedef traits_type::scalar_type ixion::matrix<T, Traits>::scalar_type
 

Definition at line 56 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
typedef Traits ixion::matrix<T, Traits>::traits_type
 

Definition at line 54 of file ixlib_matrix.hh.


Constructor & Destructor Documentation

template<class T, class Traits = number_traits<T>>
ixion::matrix<T, Traits>::matrix<T, Traits> ( TSize height = 0,
TSize width = 0 )
 

template<class T, class Traits>
template<class InputIterator>
ixion::matrix< T, Traits >::matrix<T, Traits> ( TSize width,
TSize height,
InputIterator first ) [inline]
 

Definition at line 207 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
ixion::matrix<T, Traits>::matrix<T, Traits> ( matrix<T, Traits> const & src )
 


Member Function Documentation

template<class T, class Traits = number_traits<T>>
matrix<T, Traits>& ixion::matrix<T, Traits>::add ( TIndex row,
TIndex col,
matrix<T, Traits> const & src,
entry_type factor = 1 )
 

Referenced by addColumn(), and addRow().

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> & ixion::matrix<T, Traits>::addColumn ( TIndex col,
matrix<T, Traits> & src,
entry_type factor = 1 ) [inline]
 

Definition at line 142 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
matrix<T, Traits>& ixion::matrix<T, Traits>::addColumnSelf ( TIndex to,
TIndex from,
entry_type factor = 1,
TIndex startrow = 0 )
 

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> & ixion::matrix<T, Traits>::addRow ( TIndex row,
matrix<T, Traits> & src,
entry_type factor = 1 ) [inline]
 

Definition at line 139 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
matrix<T, Traits>& ixion::matrix<T, Traits>::addRowSelf ( TIndex to,
TIndex from,
entry_type factor = 1,
TIndex startcol = 0 )
 

template<class T, class Traits = number_traits<T>>
const_iterator ixion::matrix<T, Traits>::begin ( ) const [inline]
 

Definition at line 105 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
iterator ixion::matrix<T, Traits>::begin ( ) [inline]
 

Definition at line 102 of file ixlib_matrix.hh.

Referenced by matrix().

template<class T, class Traits = number_traits<T>>
entry_type ixion::matrix<T, Traits>::det ( ) const
 

template<class T, class Traits = number_traits<T>>
entry_type ixion::matrix<T, Traits>::diagonalProduct ( ) const
 

template<class T, class Traits = number_traits<T>>
const_iterator ixion::matrix<T, Traits>::end ( ) const [inline]
 

Definition at line 111 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
iterator ixion::matrix<T, Traits>::end ( ) [inline]
 

Definition at line 108 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> ixion::matrix<T, Traits>::extract ( TIndex row,
TIndex col,
TSize height,
TSize width ) const
 

Referenced by extractColumn(), and extractRow().

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> ixion::matrix<T, Traits>::extractColumn ( TIndex col ) const [inline]
 

Definition at line 126 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> ixion::matrix<T, Traits>::extractRow ( TIndex row ) const [inline]
 

Definition at line 123 of file ixlib_matrix.hh.

Referenced by operator()().

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> ixion::matrix<T, Traits>::getCholesky ( ) const
 

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> ixion::matrix<T, Traits>::getGaussElim ( scalar_type pivot_threshold = 0,
TSize * swapcount = NULL ) const
 

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> ixion::matrix<T, Traits>::getGaussJordan ( scalar_type pivot_threshold = 0,
TSize * swapcount = NULL ) const
 

template<class T, class Traits = number_traits<T>>
TSize ixion::matrix<T, Traits>::getHeight ( ) const [inline]
 

Definition at line 118 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
TIndex ixion::matrix<T, Traits>::getIndex ( TIndex row,
TIndex col ) const [inline, protected]
 

Definition at line 182 of file ixlib_matrix.hh.

Referenced by operator()().

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> ixion::matrix<T, Traits>::getInverted ( ) const
 

template<class T, class Traits = number_traits<T>>
void ixion::matrix<T, Traits>::getLR ( matrix<T, Traits> & l,
matrix<T, Traits> & r ) const
 

template<class T, class Traits = number_traits<T>>
TSize ixion::matrix<T, Traits>::getSize ( ) const [inline, protected]
 

Definition at line 179 of file ixlib_matrix.hh.

Referenced by end(), and matrix().

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> ixion::matrix<T, Traits>::getTransposed ( ) const
 

template<class T, class Traits = number_traits<T>>
entry_type ixion::matrix<T, Traits>::getVectorNorm ( int index = 2 ) const
 

template<class T, class Traits = number_traits<T>>
TSize ixion::matrix<T, Traits>::getWidth ( ) const [inline]
 

Definition at line 115 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> ixion::matrix<T, Traits>::linearSolve ( matrix<T, Traits> const & vec,
scalar_type pivot_threshold = 0 ) const
 

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> ixion::matrix<T, Traits>::lowerTriangleSolve ( matrix<T, Traits> const & vec ) const
 

template<class T, class Traits = number_traits<T>>
matrix<T, Traits>& ixion::matrix<T, Traits>::multiplyColumnSelf ( TIndex column,
entry_type factor,
TIndex startrow = 0 )
 

template<class T, class Traits = number_traits<T>>
matrix<T, Traits>& ixion::matrix<T, Traits>::multiplyRowSelf ( TIndex row,
entry_type factor,
TIndex startcol = 0 )
 

template<class T, class Traits = number_traits<T>>
matrix<T, Traits>& ixion::matrix<T, Traits>::normalize ( )
 

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> ixion::matrix<T, Traits>::operator * ( matrix<T, Traits> const & op2 ) const
 

template<class T, class Traits = number_traits<T>>
matrix<T, Traits>& ixion::matrix<T, Traits>::operator *= ( scalar_type scalar )
 

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> & ixion::matrix<T, Traits>::operator *= ( matrix<T, Traits> const & op2 ) [inline]
 

Definition at line 69 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
entry_type ixion::matrix<T, Traits>::operator() ( TIndex row,
TIndex col ) const [inline]
 

Definition at line 98 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
entry_type & ixion::matrix<T, Traits>::operator() ( TIndex row,
TIndex col ) [inline]
 

Definition at line 95 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> ixion::matrix<T, Traits>::operator() ( TIndex row ) const [inline]
 

Definition at line 92 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> ixion::matrix<T, Traits>::operator+ ( matrix<T, Traits> const & op2 ) const [inline]
 

Definition at line 80 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
matrix<T, Traits>& ixion::matrix<T, Traits>::operator+= ( matrix<T, Traits> const & op2 )
 

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> ixion::matrix<T, Traits>::operator- ( matrix<T, Traits> const & op2 ) const [inline]
 

Definition at line 85 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> ixion::matrix<T, Traits>::operator- ( ) const [inline]
 

Definition at line 75 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
matrix<T, Traits>& ixion::matrix<T, Traits>::operator-= ( matrix<T, Traits> const & op2 )
 

template<class T, class Traits = number_traits<T>>
matrix<T, Traits>& ixion::matrix<T, Traits>::operator= ( matrix<T, Traits> const & src )
 

Referenced by operator *=().

template<class T, class Traits = number_traits<T>>
void ixion::matrix<T, Traits>::outMatrix ( ostream & ostr,
void(* item_formatter)(ostream &os, bool first, bool last) = NULL ) const
 

template<class T, class Traits = number_traits<T>>
matrix<T, Traits>& ixion::matrix<T, Traits>::set ( TIndex row,
TIndex col,
matrix<T, Traits> const & src )
 

Referenced by setColumn(), and setRow().

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> & ixion::matrix<T, Traits>::setColumn ( TIndex col,
matrix<T, Traits> const & src ) [inline]
 

Definition at line 134 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
void ixion::matrix<T, Traits>::setDimension ( TSize height,
TSize width )
 

Referenced by operator>>().

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> & ixion::matrix<T, Traits>::setRow ( TIndex row,
matrix<T, Traits> const & src ) [inline]
 

Definition at line 131 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
void ixion::matrix<T, Traits>::setup ( TSize height,
TSize width ) [protected]
 

Referenced by matrix().

template<class T, class Traits = number_traits<T>>
matrix<T, Traits>& ixion::matrix<T, Traits>::swapColumnSelf ( TIndex col1,
TIndex col2 )
 

template<class T, class Traits = number_traits<T>>
matrix<T, Traits>& ixion::matrix<T, Traits>::swapRowSelf ( TIndex row1,
TIndex row2 )
 

template<class T, class Traits = number_traits<T>>
entry_type ixion::matrix<T, Traits>::trace ( ) const
 

template<class T, class Traits = number_traits<T>>
matrix<T, Traits> ixion::matrix<T, Traits>::upperTriangleSolve ( matrix<T, Traits> const & vec ) const
 

template<class T, class Traits = number_traits<T>>
void ixion::matrix<T, Traits>::wipe ( entry_type value = traits_type::zero )
 


Member Data Documentation

template<class T, class Traits = number_traits<T>>
auto_array<T> ixion::matrix<T, Traits>::Data [protected]
 

Definition at line 51 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
TSize ixion::matrix<T, Traits>::Height [protected]
 

Definition at line 50 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
TSize ixion::matrix<T, Traits>::Width [protected]
 

Definition at line 50 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
const int ixion::matrix<T, Traits>::infty = -1 [static]
 

Definition at line 153 of file ixlib_matrix.hh.


The documentation for this class was generated from the following file:
Generated at Tue Apr 17 18:29:45 2001 for ixlib by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001