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
enum  TMatrixNorm { NORM_TOTAL, NORM_ROW_SUM, NORM_COLUMN_SUM, NORM_SCHUR }

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 width () const
TSize height () 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 norm (TMatrixNorm norm=NORM_SCHUR) const
entry_type det () const
entry_type trace () const
entry_type diagonalProduct () const
matrix transposed () const
matrix inverted () const
matrix gauss (scalar_type pivot_threshold=0, TSize *swapcount=NULL) const
matrix gaussJordan (scalar_type pivot_threshold=0, TSize *swapcount=NULL) const
matrix linearSolve (matrix const &vec, scalar_type pivot_threshold=0) const
matrix cholesky () const
void decomposeLR (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 (std::ostream &ostr, void(*item_formatter)(std::ostream &os, bool first, bool last)=NULL) const
TSize getWidth () const
 
Deprecated:
use width() instead.


TSize getHeight () const
 
Deprecated:
use height() instead.


matrix getTransposed () const
 
Deprecated:
use transpose() instead.


matrix getInverted () const
 
Deprecated:
use invert() instead.


matrix getGaussElim (scalar_type pivot_threshold=0, TSize *swapcount=NULL) const
 
Deprecated:
use gauss() instead.


matrix getGaussJordan (scalar_type pivot_threshold=0, TSize *swapcount=NULL) const
 
Deprecated:
use gaussJordan() instead.


matrix getCholesky () const
 
Deprecated:
use cholesky() instead.


void getLR (matrix &l, matrix &r) const
 
Deprecated:
use decomposeLR() instead.



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 59 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 56 of file ixlib_matrix.hh.

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

Definition at line 58 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 57 of file ixlib_matrix.hh.

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

Definition at line 55 of file ixlib_matrix.hh.


Member Enumeration Documentation

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

Enumeration values:
NORM_TOTAL  
NORM_ROW_SUM  
NORM_COLUMN_SUM  
NORM_SCHUR  

Definition at line 154 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 246 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 143 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 140 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 106 of file ixlib_matrix.hh.

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

Definition at line 103 of file ixlib_matrix.hh.

Referenced by matrix().

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

Referenced by getCholesky().

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

Referenced by getLR().

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 112 of file ixlib_matrix.hh.

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

Definition at line 109 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 127 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 124 of file ixlib_matrix.hh.

Referenced by operator()().

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

Referenced by getGaussElim().

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

Referenced by getGaussJordan().

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

Deprecated:
use cholesky() instead.

Definition at line 208 of file ixlib_matrix.hh.

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 [inline]
 

Deprecated:
use gauss() instead.

Definition at line 200 of file ixlib_matrix.hh.

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 [inline]
 

Deprecated:
use gaussJordan() instead.

Definition at line 204 of file ixlib_matrix.hh.

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

Deprecated:
use height() instead.

Definition at line 188 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 221 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 [inline]
 

Deprecated:
use invert() instead.

Definition at line 196 of file ixlib_matrix.hh.

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

Deprecated:
use decomposeLR() instead.

Definition at line 212 of file ixlib_matrix.hh.

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

Definition at line 218 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 [inline]
 

Deprecated:
use transpose() instead.

Definition at line 192 of file ixlib_matrix.hh.

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

Deprecated:
use width() instead.

Definition at line 184 of file ixlib_matrix.hh.

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

Definition at line 119 of file ixlib_matrix.hh.

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

Referenced by getInverted().

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>>
entry_type ixion::matrix<T, Traits>::norm ( TMatrixNorm norm = NORM_SCHUR ) const
 

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 70 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 99 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 96 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 93 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 81 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 86 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 76 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 ( std::ostream & ostr,
void(* item_formatter)(std::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 135 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 132 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>::transposed ( ) const
 

Referenced by getTransposed().

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>>
TSize ixion::matrix<T, Traits>::width ( ) const [inline]
 

Definition at line 116 of file ixlib_matrix.hh.

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 52 of file ixlib_matrix.hh.

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

Definition at line 51 of file ixlib_matrix.hh.

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

Definition at line 51 of file ixlib_matrix.hh.


The documentation for this class was generated from the following file:
Generated at Fri Jul 6 21:05:14 2001 for ixlib by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001