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_type & operator() (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.
More...


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


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


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


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


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


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


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



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< T, Traits >


Member Typedef Documentation

template<class T, class Traits = number_traits<T>>
typedef T const* ixion::matrix::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::entry_type
 

Definition at line 56 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
typedef T* ixion::matrix::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::scalar_type
 

Definition at line 57 of file ixlib_matrix.hh.

template<class T, class Traits = number_traits<T>>
typedef Traits ixion::matrix::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::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 (  TSize    height = 0,
TSize    width = 0
) 
 

template<class T, class Traits>
template<class InputIterator>
ixion::matrix< T, Traits >::matrix (  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 (  matrix< T, Traits > const &    src ) 
 


Member Function Documentation

template<class T, class Traits = number_traits<T>>
matrix& 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& 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& 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& 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& 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 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 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 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 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 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 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 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 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 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 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 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 ixion::matrix< T, Traits >::inverted (    )  const
 

Referenced by getInverted().

template<class T, class Traits = number_traits<T>>
matrix 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 ixion::matrix< T, Traits >::lowerTriangleSolve (  matrix< T, Traits > const &    vec )  const
 

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

template<class T, class Traits = number_traits<T>>
matrix& 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& ixion::matrix< T, Traits >::normalize (    ) 
 

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

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

template<class T, class Traits = number_traits<T>>
matrix& 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 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 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& ixion::matrix< T, Traits >::operator+= (  matrix< T, Traits > const &    op2 ) 
 

template<class T, class Traits = number_traits<T>>
matrix 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 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& ixion::matrix< T, Traits >::operator-= (  matrix< T, Traits > const &    op2 ) 
 

template<class T, class Traits = number_traits<T>>
matrix& 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
 

Referenced by operator<<().

template<class T, class Traits = number_traits<T>>
matrix& 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& 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& 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& ixion::matrix< T, Traits >::swapColumnSelf (  TIndex    col1,
TIndex    col2
) 
 

template<class T, class Traits = number_traits<T>>
matrix& 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 ixion::matrix< T, Traits >::transposed (    )  const
 

Referenced by getTransposed().

template<class T, class Traits = number_traits<T>>
matrix 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::Data [protected]
 

Definition at line 52 of file ixlib_matrix.hh.

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

Definition at line 51 of file ixlib_matrix.hh.

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

Definition at line 51 of file ixlib_matrix.hh.


The documentation for this class was generated from the following file:
Generated on Wed Oct 31 17:12:25 2001 for ixlib by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001