All Classes Namespaces Functions Typedefs Enumerations Pages
Public Member Functions | List of all members
fmatvec::Matrix< General, Ref, Ref, AT > Class Template Reference

This is a matrix class for general matrices. More...

#include <general_matrix.h>

Inheritance diagram for fmatvec::Matrix< General, Ref, Ref, AT >:
fmatvec::RowVector< Ref, AT > fmatvec::SquareMatrix< Ref, AT > fmatvec::Vector< Ref, AT >

Public Member Functions

 Matrix ()
 Standard constructor. More...
 
 Matrix (int m_, int n_, Noinit)
 
 Matrix (int m_, int n_, Init ini=INIT, const AT &a=0)
 
 Matrix (int m_, int n_, Eye ini, const AT &a=1)
 
 Matrix (const Matrix< General, Ref, Ref, AT > &A)
 Copy Constructor. More...
 
 Matrix (int m_, int n_, AT *ele_)
 Regular Constructor. More...
 
 Matrix (const char *str)
 String Constructor. More...
 
 ~Matrix ()
 Destructor.
 
template<class Type , class Row , class Col >
 Matrix (const Matrix< Type, Row, Col, AT > &A)
 
Matrix< General, Ref, Ref, AT > & resize ()
 
Matrix< General, Ref, Ref, AT > & resize (int m_, int n_, Noinit)
 
Matrix< General, Ref, Ref, AT > & resize (int m, int n, Init ini=INIT, const AT &a=0)
 
Matrix< General, Ref, Ref, AT > & resize (int m, int n, Eye ini, const AT &a=1)
 
Matrix< General, Ref, Ref, AT > & operator= (const Matrix< General, Ref, Ref, AT > &A)
 Assignment operator. More...
 
template<class Type , class Row , class Col >
Matrix< General, Ref, Ref, AT > & operator= (const Matrix< Type, Row, Col, AT > &A)
 
template<class Type , class Row , class Col >
Matrix< General, Ref, Ref, AT > & operator<< (const Matrix< Type, Row, Col, AT > &A)
 Copy operator. More...
 
Matrix< General, Ref, Ref, AT > & operator>> (const Matrix< General, Ref, Ref, AT > &A)
 Reference operator. More...
 
AT & operator() (int i, int j)
 Element operator. More...
 
const AT & operator() (int i, int j) const
 Element operator. More...
 
AT & er (int i, int j)
 
const AT & er (int i, int j) const
 
AT & et (int i, int j)
 
const AT & et (int i, int j) const
 
AT & e (int i, int j)
 
const AT & e (int i, int j) const
 
AT * operator() ()
 Pointer operator. More...
 
const AT * operator() () const
 Pointer operator. More...
 
int rows () const
 Number of rows. More...
 
int cols () const
 Number of columns. More...
 
int ldim () const
 Leading dimension. More...
 
bool transposed () const
 Transposed status. More...
 
const CBLAS_TRANSPOSE blasTrans () const
 Transposed status. More...
 
const CBLAS_ORDER blasOrder () const
 Storage convention. More...
 
Matrix< General, Ref, Ref, AT > operator() (int i1, int j1, int i2, int j2)
 Submatrix operator. More...
 
const Matrix< General, Ref,
Ref, AT > 
operator() (int i1, int j1, int i2, int j2) const
 Submatrix operator. More...
 
Matrix< General, Ref, Ref, AT > operator() (const Index &I, const Index &J)
 Submatrix operator. More...
 
const Matrix< General, Ref,
Ref, AT > 
operator() (const Index &I, const Index &J) const
 Submatrix operator. More...
 
SquareMatrix< Ref, AT > operator() (const Index &I)
 Submatrix operator. More...
 
const SquareMatrix< Ref, AT > operator() (const Index &I) const
 Submatrix operator. More...
 
Vector< Ref, AT > col (int i)
 Column operator. More...
 
const Vector< Ref, AT > col (int i) const
 Column operator. More...
 
RowVector< Ref, AT > row (int i)
 Row operator. More...
 
const RowVector< Ref, AT > row (int i) const
 Row operator. More...
 
Matrix< General, Ref, Ref, AT > copy () const
 Matrix duplicating. More...
 
Matrix< General, Ref, Ref, AT > & init (const AT &a=0)
 Initialization. More...
 
Matrix< General, Ref, Ref, AT > & init (Init, const AT &a=0)
 
Matrix< General, Ref, Ref, AT > & init (Eye, const AT &a=1)
 
Matrix< General, Ref, Ref, AT > & init (Noinit, const AT &a=0)
 
Matrix< General, Ref, Ref, AT > & init0 (const AT &a=0)
 
Matrix< General, Ref, Ref, AT > & init0 (Init, const AT &a=0)
 
 operator std::vector< std::vector< AT > > ()
 Cast to std::vector<std::vector<AT> >. More...
 
 Matrix (std::vector< std::vector< AT > > m)
 std::vector<std::vector<AT> > Constructor. Constructs and initializes a matrix with a std::vector<std::vector<AT> > object. An assert checks for constant length of each row. More...
 
Matrix< General, Ref, Ref, AT > T ()
 
const Matrix< General, Ref,
Ref, AT > 
T () const
 

Detailed Description

template<class AT>
class fmatvec::Matrix< General, Ref, Ref, AT >

This is a matrix class for general matrices.

Template class Matrix with shape type General and atomic type AT. The storage form is dense. The template parameter AT defines the atomic type of the matrix. Valid types are int, float, double, complex<float> and complex<double>

Constructor & Destructor Documentation

template<class AT >
fmatvec::Matrix< General, Ref, Ref, AT >::Matrix ( )
inline

Standard constructor.

Constructs a matrix with no size.

template<class AT >
fmatvec::Matrix< General, Ref, Ref, AT >::Matrix ( const Matrix< General, Ref, Ref, AT > &  A)
inline

Copy Constructor.

Constructs a reference to the matrix A.

Attention
The physical memory of the matrix A will not be copied, only referenced.
Parameters
AThe matrix that will be referenced.
template<class AT >
fmatvec::Matrix< General, Ref, Ref, AT >::Matrix ( int  m_,
int  n_,
AT *  ele_ 
)
inline

Regular Constructor.

Constructs a matrix of size m x n with the pyhsical memory given by ele_.

Parameters
m_The number of rows.
n_The number of columns.
ele_The physical memory the matrix will point to.
template<class AT >
fmatvec::Matrix< General, Ref, Ref, AT >::Matrix ( const char *  str)

String Constructor.

Constructs and initializes a matrix with a string in a matlab-like notation. The rows are seperated by semicolons, the columns by commas. For example

* Matrix<General<Ref,Ref>double> A("[3,2;1,2]");
*

constructs the matrix

\[ A=\begin{pmatrix}3 & 2\\ 1 & 2\end{pmatrix} \]

Parameters
strThe string the matrix will be initialized with.
template<class AT >
fmatvec::Matrix< General, Ref, Ref, AT >::Matrix ( std::vector< std::vector< AT > >  m)
inline

std::vector<std::vector<AT> > Constructor. Constructs and initializes a matrix with a std::vector<std::vector<AT> > object. An assert checks for constant length of each row.

Parameters
mThe std::vector<std::vector<AT> > the matrix will be initialized with.

Member Function Documentation

template<class AT >
const CBLAS_ORDER fmatvec::Matrix< General, Ref, Ref, AT >::blasOrder ( ) const
inline

Storage convention.

Returns the blas-conform storage convention. The elements are stored in columnmajor form, i.e. the elements are stored columnwise.

Returns
CblasColMajor.
template<class AT >
const CBLAS_TRANSPOSE fmatvec::Matrix< General, Ref, Ref, AT >::blasTrans ( ) const
inline

Transposed status.

Returns the blas-conform transposed status.

Returns
CblasTrans if the matrix is in transposed form, CblasNoTrans otherwise.
template<class AT >
Vector< Ref, AT > fmatvec::Matrix< General, Ref, Ref, AT >::col ( int  i)
inline

Column operator.

Returns a vector containing the i-th column of the calling matrix.

Attention
The vector and the calling matrix will share the same physical memory.
Parameters
iThe column, that will be returned.
Returns
A vector containing the i-th column of the calling matrix.
template<class AT >
const Vector< Ref, AT > fmatvec::Matrix< General, Ref, Ref, AT >::col ( int  i) const
inline

Column operator.

see col(int)

template<class AT >
int fmatvec::Matrix< General, Ref, Ref, AT >::cols ( ) const
inline

Number of columns.

Returns
The number of columns of the matrix.
template<class AT >
Matrix< General, Ref, Ref, AT > fmatvec::Matrix< General, Ref, Ref, AT >::copy ( ) const
inline

Matrix duplicating.

The calling matrix returns a deep copy of itself.

Returns
The duplicate.
template<class AT >
Matrix< General, Ref, Ref, AT > & fmatvec::Matrix< General, Ref, Ref, AT >::init ( const AT &  a = 0)
inline

Initialization.

Initializes all elements of the calling matrix with the value given by a.

Parameters
aValue all elements will be initialized with.
Returns
A reference to the calling matrix.
template<class AT >
int fmatvec::Matrix< General, Ref, Ref, AT >::ldim ( ) const
inline

Leading dimension.

Returns
The leading dimension of the matrix.
template<class AT >
fmatvec::Matrix< General, Ref, Ref, AT >::operator std::vector< std::vector< AT > > ( )
inline

Cast to std::vector<std::vector<AT> >.

Returns
The std::vector<std::vector<AT> > representation of the matrix
template<class AT >
AT& fmatvec::Matrix< General, Ref, Ref, AT >::operator() ( int  i,
int  j 
)
inline

Element operator.

Returns a reference to the element in the i-th row and the j-th column.

Parameters
iThe i-th row of the matrix
jThe j-th column of the matrix
Returns
A reference to the element A(i,j).
Remarks
The bounds are checked by default. To change this behavior, define FMATVEC_NO_BOUNDS_CHECK.
See Also
operator()(int,int) const
template<class AT >
const AT& fmatvec::Matrix< General, Ref, Ref, AT >::operator() ( int  i,
int  j 
) const
inline

Element operator.

See operator()(int,int)

template<class AT >
AT* fmatvec::Matrix< General, Ref, Ref, AT >::operator() ( )
inline

Pointer operator.

Returns the pointer to the first element.

Returns
The pointer to the first element.
template<class AT >
const AT* fmatvec::Matrix< General, Ref, Ref, AT >::operator() ( ) const
inline

Pointer operator.

See operator()()

template<class AT >
Matrix< General, Ref, Ref, AT > fmatvec::Matrix< General, Ref, Ref, AT >::operator() ( int  i1,
int  j1,
int  i2,
int  j2 
)
inline

Submatrix operator.

Returns a submatrix of the calling matrix.

Attention
The submatrix and the calling matrix will share the same physical memory.
Parameters
i1The starting row.
j1The starting column.
i2The ending row.
j2The ending column.
Returns
A submatrix of the calling matrix.
template<class AT >
const Matrix< General, Ref, Ref, AT > fmatvec::Matrix< General, Ref, Ref, AT >::operator() ( int  i1,
int  j1,
int  i2,
int  j2 
) const
inline

Submatrix operator.

See operator()(int,int,int,int);

template<class AT >
Matrix< General, Ref, Ref, AT > fmatvec::Matrix< General, Ref, Ref, AT >::operator() ( const Index I,
const Index J 
)
inline

Submatrix operator.

Returns a submatrix of the calling matrix. For example

* B = A(Index(1,2),Index(2,4));
*

yields

\[ A=\begin{pmatrix} a_{00} & a_{01} & a_{02} & a_{03} & a_{04}\\ a_{10} & a_{11} & a_{12} & a_{13} & a_{14}\\ a_{20} & a_{21} & a_{22} & a_{23} & a_{24}\\ a_{30} & a_{31} & a_{32} & a_{33} & a_{34} \end{pmatrix}\quad \Rightarrow \quad B=\begin{pmatrix} a_{12} & a_{13} & a_{14}\\ a_{22} & a_{23} & a_{24} \end{pmatrix} \]

Attention
The submatrix and the calling matrix will share the same physical memory.
Parameters
IIndex containing the starting and the ending row.
JIndex containing the starting and the ending column.
Returns
A submatrix of the calling matrix.
template<class AT >
const Matrix< General, Ref, Ref, AT > fmatvec::Matrix< General, Ref, Ref, AT >::operator() ( const Index I,
const Index J 
) const
inline

Submatrix operator.

See operator()(const Index&, const Index&)

template<class AT >
SquareMatrix< Ref, AT > fmatvec::Matrix< General, Ref, Ref, AT >::operator() ( const Index I)
inline

Submatrix operator.

Returns a square submatrix of the calling matrix.

Attention
The submatrix and the calling matrix will share the same physical memory.
Parameters
IIndex containing the starting and the ending row.
Returns
A submatrix of the calling matrix.
template<class AT >
const SquareMatrix< Ref, AT > fmatvec::Matrix< General, Ref, Ref, AT >::operator() ( const Index I) const
inline

Submatrix operator.

See operator()(const Index&)

template<class AT >
template<class Type , class Row , class Col >
Matrix< General, Ref, Ref, AT > & fmatvec::Matrix< General, Ref, Ref, AT >::operator<< ( const Matrix< Type, Row, Col, AT > &  A)
inline

Copy operator.

Copies the matrix given by A.

Parameters
AThe matrix to be copied.
Returns
A reference to the calling matrix.
template<class AT >
Matrix< General, Ref, Ref, AT > & fmatvec::Matrix< General, Ref, Ref, AT >::operator= ( const Matrix< General, Ref, Ref, AT > &  A)
inline

Assignment operator.

Copies the matrix given by A by calling operator<<().

Parameters
AThe matrix to be assigned.
Returns
A reference to the calling matrix.
Remarks
To call operator>>() by default, define FMATVEC_NO_DEEP_ASSIGNMENT
See Also
operator<<(), operator>>()
template<class AT >
Matrix< General, Ref, Ref, AT > & fmatvec::Matrix< General, Ref, Ref, AT >::operator>> ( const Matrix< General, Ref, Ref, AT > &  A)
inline

Reference operator.

References the matrix given by A.

Parameters
AThe matrix to be referenced.
Returns
A reference to the calling matrix.
template<class AT >
RowVector< Ref, AT > fmatvec::Matrix< General, Ref, Ref, AT >::row ( int  i)
inline

Row operator.

Returns a RowVector containing the i-th row of the calling matrix.

Attention
The rowvector and the calling matrix will share the same physical memory.
Parameters
iThe row, that will be returned.
Returns
A rowvector containing the i-th row of the calling matrix.
template<class AT >
const RowVector< Ref, AT > fmatvec::Matrix< General, Ref, Ref, AT >::row ( int  i) const
inline

Row operator.

see row(int)

template<class AT >
int fmatvec::Matrix< General, Ref, Ref, AT >::rows ( ) const
inline

Number of rows.

Returns
The number of rows of the matrix.
template<class AT >
bool fmatvec::Matrix< General, Ref, Ref, AT >::transposed ( ) const
inline

Transposed status.

Returns boolean transposed status.

Returns
True, if the matrix is in transposed form, false otherwise.

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

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML