CVM Class Library
8.1
This C++ class library encapsulates concepts of vector and different matrices including square, band, symmetric and hermitian ones in Euclidean space of real and complex numbers.
|
End-user class encapsulating symmetric matrix of real numbers. More...
#include <cvm.h>
Public Member Functions | |
basic_srsmatrix () | |
Default constructor. | |
basic_srsmatrix (tint nDim) | |
Constructor. | |
basic_srsmatrix (TR *pd, tint nDim, TR tol=basic_cvmMachSp< TR >()) | |
Constructor. | |
basic_srsmatrix (const TR *pd, tint nDim, TR tol=basic_cvmMachSp< TR >()) | |
Constructor. | |
basic_srsmatrix (const basic_srsmatrix &m) | |
Copy constructor. | |
basic_srsmatrix (basic_srsmatrix &&m) noexcept | |
Move constructor. | |
basic_srsmatrix (const BaseRMatrix &m, TR tol=basic_cvmMachSp< TR >()) | |
Constructor. | |
basic_srsmatrix (const RVector &v) | |
Constructor. | |
basic_srsmatrix (basic_srsmatrix &m, tint nRowCol, tint nDim) | |
Submatrix constructor. | |
TR | operator() (tint nRow, tint nCol) const throw (cvmexception) |
Value of element (not l-value) | |
const RVector | operator() (tint nCol) const throw (cvmexception) |
Column as not l-value. | |
const RVector | operator[] (tint nRow) const throw (cvmexception) |
Row as not l-value. | |
const RVector | diag (tint nDiag) const throw (cvmexception) |
Diagonal (not l-value) | |
basic_srsmatrix & | operator= (const basic_srsmatrix &m) throw (cvmexception) |
Assignment operator. | |
basic_srsmatrix & | operator= (basic_srsmatrix &&m) throw (cvmexception) |
Move assignment operator. | |
basic_srsmatrix & | assign (const RVector &v, TR tol=basic_cvmMachSp< TR >()) throw (cvmexception) |
Vector (as array) assignment. | |
basic_srsmatrix & | assign (const TR *pd, TR tol=basic_cvmMachSp< TR >()) throw (cvmexception) |
External array assignment. | |
basic_srsmatrix & | assign (tint nRowCol, const basic_srsmatrix &m) throw (cvmexception) |
Assignment to submatrix. | |
basic_srsmatrix & | set (TR d) |
Sets all elements to one value. | |
basic_srsmatrix & | set (tint nRow, tint nCol, TR d) |
Sets both elements to keep matrix symmetric. | |
basic_srsmatrix & | set_diag (tint nDiag, const RVector &vDiag) throw (cvmexception) |
Sets diagonal(s) | |
basic_srsmatrix & | resize (tint nNewDim) throw (cvmexception) |
Changes dimension. | |
bool | operator== (const basic_srsmatrix &m) const |
Matrix comparison. | |
bool | operator!= (const basic_srsmatrix &m) const |
Matrix comparison. | |
basic_srsmatrix & | operator<< (const basic_srsmatrix &m) throw (cvmexception) |
Matrix replacement. | |
basic_srsmatrix | operator+ (const basic_srsmatrix &m) const throw (cvmexception) |
Addition operator. | |
basic_srsmatrix | operator- (const basic_srsmatrix &m) const throw (cvmexception) |
Subtraction operator. | |
basic_srsmatrix & | sum (const basic_srsmatrix &m1, const basic_srsmatrix &m2) throw (cvmexception) |
Sum of matrices. | |
basic_srsmatrix & | diff (const basic_srsmatrix &m1, const basic_srsmatrix &m2) throw (cvmexception) |
Difference of matrices. | |
basic_srsmatrix & | operator+= (const basic_srsmatrix &m) throw (cvmexception) |
Increment operator. | |
basic_srsmatrix & | operator-= (const basic_srsmatrix &m) throw (cvmexception) |
Decrement operator. | |
basic_srsmatrix | operator- () const |
Unary minus operator. | |
basic_srsmatrix & | operator++ () |
Plus identity, prefix. | |
basic_srsmatrix | operator++ (int) |
Plus identity, postfix. | |
basic_srsmatrix & | operator-- () |
Minus identity, prefix. | |
basic_srsmatrix | operator-- (int) |
Minus identity, postfix. | |
basic_srsmatrix | operator* (TR dMult) const |
Multiply by number operator. | |
basic_srsmatrix | operator/ (TR dDiv) const throw (cvmexception) |
Divide by number operator. | |
basic_srsmatrix & | operator*= (TR dMult) |
Multiply by number and assign. | |
basic_srsmatrix & | operator/= (TR dDiv) throw (cvmexception) |
Divide by number and assign. | |
basic_srsmatrix & | normalize () |
Matrix normalizer. | |
basic_srsmatrix | operator~ () const |
Does nothing and returns copy of calling symmetric matrix. | |
basic_srsmatrix & | transpose (const basic_srsmatrix &m) throw (cvmexception) |
Assigns symmetric matrix m to calling one and returns reference to the matrix changed. | |
basic_srsmatrix & | transpose () |
Does nothing and returns reference to calling symmetric matrix. | |
RVector | operator* (const RVector &v) const throw (cvmexception) |
Matrix-vector product. | |
BaseRMatrix | operator* (const BaseRMatrix &m) const throw (cvmexception) |
Matrix-matrix product. | |
BaseSRMatrix | operator* (const BaseSRMatrix &m) const throw (cvmexception) |
Matrix-matrix product. | |
RVector | operator/ (const RVector &v) const throw (cvmexception) |
Linear solver operator. | |
basic_srsmatrix & | syrk (TR alpha, const RVector &v, TR beta) throw (cvmexception) |
Rank-1 update matrix-vector operation. | |
basic_srsmatrix & | syrk (bool bTransp, TR alpha, const BaseRMatrix &m, TR beta) throw (cvmexception) |
Rank-1 update matrix-matrix operation. | |
basic_srsmatrix & | syr2k (TR alpha, const RVector &v1, const RVector &v2, TR beta) throw (cvmexception) |
Rank-1 update matrix-vector operation. | |
basic_srsmatrix & | syr2k (bool bTransp, TR alpha, const BaseRMatrix &m1, const BaseRMatrix &m2, TR beta) throw (cvmexception) |
Rank-1 update matrix-matrix operation. | |
basic_srsmatrix & | inv (const basic_srsmatrix &m) throw (cvmexception) |
Matrix inversion. | |
basic_srsmatrix | inv () const throw (cvmexception) |
Matrix inversion. | |
basic_srsmatrix & | exp (const basic_srsmatrix &m, TR tol=basic_cvmMachSp< TR >()) throw (cvmexception) |
Matrix exponent. | |
basic_srsmatrix | exp (TR tol=basic_cvmMachSp< TR >()) const throw (cvmexception) |
Matrix exponent. | |
basic_srsmatrix & | polynom (const basic_srsmatrix &m, const RVector &v) throw (cvmexception) |
Matrix polynomial. | |
basic_srsmatrix | polynom (const RVector &v) const |
Matrix polynomial. | |
RVector | eig (BaseSRMatrix &mEigVect) const throw (cvmexception) |
Eigenvalues and eigenvectors. | |
RVector | eig () const throw (cvmexception) |
Eigenvalues. | |
BaseSRMatrix | cholesky () const throw (cvmexception) |
Cholesky factorization. | |
BaseSRMatrix | bunch_kaufman (tint *nPivots) const throw (cvmexception) |
Bunch-Kaufman factorization. | |
basic_srsmatrix & | identity () |
Identity matrix. | |
basic_srsmatrix & | vanish () |
Set matrix to zero. | |
basic_srsmatrix & | randomize (TR dFrom, TR dTo) |
Randomizer. | |
TR | norminf () const override |
Infinity norm. | |
bool | is_positive_definite () const |
Is calling symmetric matrix positive definite? | |
bool | equilibrate (RVector &vScalings, RVector &vB) throw (cvmexception) |
Matrix equilibration. | |
bool | equilibrate (RVector &vScalings, BaseRMatrix &mB) throw (cvmexception) |
Matrix equilibration. | |
Public Member Functions inherited from basic_srmatrix< TR > | |
basic_srmatrix () | |
Default constructor. | |
basic_srmatrix (tint nDim) | |
Constructor. | |
basic_srmatrix (TR *pd, tint nDim) | |
Constructor. | |
basic_srmatrix (const TR *pd, tint nDim) | |
Constructor. | |
basic_srmatrix (const basic_srmatrix &m) | |
Copy constructor. | |
basic_srmatrix (basic_srmatrix &&m) noexcept | |
Move constructor. | |
basic_srmatrix (const BaseRMatrix &m) | |
Constructor. | |
basic_srmatrix (const RVector &v) | |
Constructor. | |
basic_srmatrix (BaseRMatrix &m, tint nRow, tint nCol, tint nDim) | |
Submatrix constructor. | |
type_proxy< TR, TR > | operator() (tint nRow, tint nCol) throw (cvmexception) |
Reference to element (l-value) | |
RVector | operator() (tint nCol) throw (cvmexception) |
Column as l-value. | |
RVector | operator[] (tint nRow) throw (cvmexception) |
Row as l-value. | |
basic_srmatrix & | operator= (const basic_srmatrix &m) throw (cvmexception) |
Assignment operator. | |
basic_srmatrix & | operator= (basic_srmatrix &&m) throw (cvmexception) |
Move assignment operator. | |
basic_srmatrix & | assign (const RVector &v) throw (cvmexception) |
Vector (as array) assignment. | |
basic_srmatrix & | assign (const TR *pd) |
External array assignment. | |
basic_srmatrix & | assign (tint nRow, tint nCol, const BaseRMatrix &m) throw (cvmexception) |
Assignment to submatrix. | |
basic_srmatrix & | operator<< (const basic_srmatrix &m) throw (cvmexception) |
Matrix replacement. | |
basic_srmatrix | operator+ (const basic_srmatrix &m) const throw (cvmexception) |
Addition operator. | |
basic_srmatrix | operator- (const basic_srmatrix &m) const throw (cvmexception) |
Subtraction operator. | |
basic_srmatrix & | sum (const basic_srmatrix &m1, const basic_srmatrix &m2) throw (cvmexception) |
Sum of matrices. | |
basic_srmatrix & | diff (const basic_srmatrix &m1, const basic_srmatrix &m2) throw (cvmexception) |
Difference of matrices. | |
basic_srmatrix & | operator+= (const basic_srmatrix &m) throw (cvmexception) |
Increment operator. | |
basic_srmatrix & | operator-= (const basic_srmatrix &m) throw (cvmexception) |
Decrement operator. | |
basic_srmatrix & | transpose (const basic_srmatrix &m) throw (cvmexception) |
Matrix transposition. | |
basic_srmatrix | operator* (const basic_srmatrix &m) const throw (cvmexception) |
Matrix-matrix product. | |
basic_srmatrix & | operator*= (const basic_srmatrix &m) throw (cvmexception) |
Matrix-matrix product with assignment. | |
basic_srmatrix & | swap_rows (tint n1, tint n2) throw (cvmexception) |
Rows swap. | |
basic_srmatrix & | swap_cols (tint n1, tint n2) throw (cvmexception) |
Columns swap. | |
RVector | solve (const RVector &vB, TR &dErr) const throw (cvmexception) |
Linear solver. | |
RVector | solve_tran (const RVector &vB, TR &dErr) const throw (cvmexception) |
Linear solver (transposed) | |
RVector | solve (const RVector &vB) const throw (cvmexception) |
Linear solver. | |
RVector | solve_tran (const RVector &vB) const throw (cvmexception) |
Linear solver (transposed) | |
BaseRMatrix | solve (const BaseRMatrix &mB, TR &dErr) const throw (cvmexception) |
Linear solver. | |
BaseRMatrix | solve_tran (const BaseRMatrix &mB, TR &dErr) const throw (cvmexception) |
Linear solver (transposed) | |
BaseRMatrix | solve (const BaseRMatrix &mB) const throw (cvmexception) |
Linear solver. | |
BaseRMatrix | solve_tran (const BaseRMatrix &mB) const throw (cvmexception) |
Linear solver (transposed) | |
RVector | operator% (const RVector &vB) const throw (cvmexception) |
Linear solver operator (transposed) | |
RVector | solve_lu (const basic_srmatrix &mLU, const tint *pPivots, const RVector &vB, TR &dErr) const throw (cvmexception) |
LU factorization based linear solver. | |
RVector | solve_lu (const basic_srmatrix &mLU, const tint *pPivots, const RVector &vB) const throw (cvmexception) |
LU factorization based linear solver. | |
BaseRMatrix | solve_lu (const basic_srmatrix &mLU, const tint *pPivots, const BaseRMatrix &mB, TR &dErr) const throw (cvmexception) |
LU factorization based linear solver. | |
BaseRMatrix | solve_lu (const basic_srmatrix &mLU, const tint *pPivots, const BaseRMatrix &mB) const throw (cvmexception) |
LU factorization based linear solver. | |
TR | det () const throw (cvmexception) |
Matrix determinant. | |
basic_srmatrix & | low_up (const basic_srmatrix &m, tint *nPivots) throw (cvmexception) |
Low-up (LU) factorization. | |
basic_srmatrix | low_up (tint *nPivots) const throw (cvmexception) |
Low-up (LU) factorization. | |
TR | cond () const throw (cvmexception) |
Condition number reciprocal. | |
basic_srmatrix & | inv (const basic_srmatrix &m) throw (cvmexception) |
Matrix inversion. | |
basic_srmatrix & | exp (const basic_srmatrix &m, TR tol=basic_cvmMachSp< TR >()) throw (cvmexception) |
Matrix exponent. | |
basic_srmatrix & | polynom (const basic_srmatrix &m, const RVector &v) throw (cvmexception) |
Matrix polynomial. | |
CVector | eig (basic_scmatrix< TR, TC > &mEigVect, bool bRightVect=true) const throw (cvmexception) |
Eigenvalues and eigenvectors. | |
basic_srmatrix & | cholesky (const basic_srsmatrix< TR > &m) throw (cvmexception) |
Cholesky factorization. | |
basic_srmatrix & | bunch_kaufman (const basic_srsmatrix< TR > &m, tint *nPivots) throw (cvmexception) |
Bunch-Kaufman factorization. | |
void | qr (basic_srmatrix< TR > &mQ, basic_srmatrix< TR > &mR) const throw (cvmexception) |
QR factorization. | |
void | lq (basic_srmatrix< TR > &mL, basic_srmatrix< TR > &mQ) const throw (cvmexception) |
LQ factorization. | |
void | ql (basic_srmatrix< TR > &mQ, basic_srmatrix< TR > &mL) const throw (cvmexception) |
QL factorization. | |
void | rq (basic_srmatrix< TR > &mR, basic_srmatrix< TR > &mQ) const throw (cvmexception) |
RQ factorization. | |
Public Member Functions inherited from basic_rmatrix< TR > | |
basic_rmatrix () | |
Default constructor. | |
basic_rmatrix (tint nM, tint nN) | |
Constructor. | |
basic_rmatrix (TR *pd, tint nM, tint nN) | |
Constructor. | |
basic_rmatrix (const TR *pd, tint nM, tint nN) | |
Constructor. | |
basic_rmatrix (const basic_rmatrix &m) | |
Copy constructor. | |
basic_rmatrix (basic_rmatrix &&m) noexcept | |
Move constructor. | |
basic_rmatrix (const RVector &v, bool bBeColumn=true) | |
Constructor. | |
basic_rmatrix (basic_rmatrix &m, tint nRow, tint nCol, tint nHeight, tint nWidth) | |
Submatrix constructor. | |
RVector | diag (tint nDiag) throw (cvmexception) |
Diagonal as l-value. | |
basic_rmatrix & | operator= (const basic_rmatrix &m) throw (cvmexception) |
Assignment operator. | |
basic_rmatrix & | operator= (basic_rmatrix &&m) throw (cvmexception) |
Move assignment operator. | |
basic_rmatrix & | assign (tint nRow, tint nCol, const basic_rmatrix &m) throw (cvmexception) |
Assignment to submatrix. | |
basic_rmatrix & | resize (tint nNewM, tint nNewN) throw (cvmexception) |
Changes dimensions. | |
bool | operator== (const basic_rmatrix &m) const |
Matrix comparison. | |
bool | operator!= (const basic_rmatrix &m) const |
Matrix comparison. | |
basic_rmatrix & | operator<< (const basic_rmatrix &m) throw (cvmexception) |
Matrix replacement. | |
basic_rmatrix | operator+ (const basic_rmatrix &m) const throw (cvmexception) |
Addition operator. | |
basic_rmatrix | operator- (const basic_rmatrix &m) const throw (cvmexception) |
Subtraction operator. | |
basic_rmatrix & | sum (const basic_rmatrix &m1, const basic_rmatrix &m2) throw (cvmexception) |
Sum of matrices. | |
basic_rmatrix & | diff (const basic_rmatrix &m1, const basic_rmatrix &m2) throw (cvmexception) |
Difference of matrices. | |
basic_rmatrix & | operator+= (const basic_rmatrix &m) throw (cvmexception) |
Increment operator. | |
basic_rmatrix & | operator-= (const basic_rmatrix &m) throw (cvmexception) |
Decrement operator. | |
basic_rmatrix & | transpose (const basic_rmatrix &m) throw (cvmexception) |
Matrix transposition. | |
basic_rmatrix | operator* (const basic_rmatrix &m) const throw (cvmexception) |
Matrix-matrix product. | |
basic_rmatrix & | mult (const basic_rmatrix &m1, const basic_rmatrix &m2) throw (cvmexception) |
Matrix-matrix product. | |
basic_rmatrix & | rank1update (const RVector &vCol, const RVector &vRow) throw (cvmexception) |
Rank-1 update. | |
basic_rmatrix & | solve (const basic_srmatrix< TR > &mA, const basic_rmatrix &mB, TR &dErr) throw (cvmexception) |
Linear solver. | |
basic_rmatrix & | solve_tran (const basic_srmatrix< TR > &mA, const basic_rmatrix &mB, TR &dErr) throw (cvmexception) |
Linear solver (transposed) | |
basic_rmatrix & | solve (const basic_srmatrix< TR > &mA, const basic_rmatrix &mB) throw (cvmexception) |
Linear solver. | |
basic_rmatrix & | solve_tran (const basic_srmatrix< TR > &mA, const basic_rmatrix &mB) throw (cvmexception) |
Linear solver (transposed) | |
basic_rmatrix & | solve_lu (const basic_srmatrix< TR > &mA, const basic_srmatrix< TR > &mLU, const tint *pPivots, const basic_rmatrix &mB, TR &dErr) throw (cvmexception) |
LU factorization based linear solver. | |
basic_rmatrix & | solve_lu (const basic_srmatrix< TR > &mA, const basic_srmatrix< TR > &mLU, const tint *pPivots, const basic_rmatrix &mB) throw (cvmexception) |
LU factorization based linear solver. | |
RVector | svd () const throw (cvmexception) |
Singular value decomposition. | |
RVector | svd (basic_srmatrix< TR > &mU, basic_srmatrix< TR > &mVH) const throw (cvmexception) |
Singular value decomposition. | |
basic_rmatrix | pinv (TR threshold=basic_cvmMachSp< TR >()) const throw (cvmexception) |
Pseudo (generalized) inversion. | |
basic_rmatrix & | pinv (const basic_rmatrix &mA, TR threshold=basic_cvmMachSp< TR >()) throw (cvmexception) |
Pseudo (generalized) inversion. | |
basic_rmatrix | gels (bool transpose, const basic_rmatrix &mB, basic_rvector< TR > &vErr) const throw (cvmexception) |
Overdetermined or underdetermined linear solver. | |
basic_rmatrix & | gels (bool transpose, const basic_rmatrix &mA, const basic_rmatrix &mB, basic_rvector< TR > &vErr) throw (cvmexception) |
Overdetermined or underdetermined linear solver. | |
basic_rvector< TR > | gels (bool transpose, const basic_rvector< TR > &vB, TR &dErr) const throw (cvmexception) |
Overdetermined or underdetermined linear solver. | |
basic_rmatrix | gelsy (const basic_rmatrix &mB, tint &rank, TR tol=basic_cvmMachSp< TR >()) const throw (cvmexception) |
Linear least squares problem. | |
basic_rmatrix & | gelsy (const basic_rmatrix &mA, const basic_rmatrix &mB, tint &rank, TR tol=basic_cvmMachSp< TR >()) throw (cvmexception) |
Linear least squares problem. | |
basic_rvector< TR > | gelsy (const basic_rvector< TR > &vB, tint &rank, TR tol=basic_cvmMachSp< TR >()) const throw (cvmexception) |
Linear least squares problem. | |
basic_rmatrix | gelss (const basic_rmatrix &mB, basic_rvector< TR > &sv, tint &rank, TR tol=basic_cvmMachSp< TR >()) const throw (cvmexception) |
Linear least squares problem. | |
basic_rmatrix & | gelss (const basic_rmatrix &mA, const basic_rmatrix &mB, basic_rvector< TR > &sv, tint &rank, TR tol=basic_cvmMachSp< TR >()) throw (cvmexception) |
Linear least squares problem. | |
basic_rvector< TR > | gelss (const basic_rvector< TR > &vB, basic_rvector< TR > &sv, tint &rank, TR tol=basic_cvmMachSp< TR >()) const throw (cvmexception) |
Linear least squares problem. | |
basic_rmatrix | gelsd (const basic_rmatrix &mB, basic_rvector< TR > &sv, tint &rank, TR tol=basic_cvmMachSp< TR >()) const throw (cvmexception) |
Linear least squares problem. | |
basic_rmatrix & | gelsd (const basic_rmatrix &mA, const basic_rmatrix &mB, basic_rvector< TR > &sv, tint &rank, TR tol=basic_cvmMachSp< TR >()) throw (cvmexception) |
Linear least squares problem. | |
basic_rvector< TR > | gelsd (const basic_rvector< TR > &vB, basic_rvector< TR > &sv, tint &rank, TR tol=basic_cvmMachSp< TR >()) const throw (cvmexception) |
Linear least squares problem. | |
tint | rank (TR tol=basic_cvmMachSp< TR >()) const throw (cvmexception) |
Matrix rank. | |
void | qr (basic_rmatrix< TR > &mQ, basic_srmatrix< TR > &mR) const throw (cvmexception) |
QR factorization ("economy" mode) | |
void | qr (basic_srmatrix< TR > &mQ, basic_rmatrix< TR > &mR) const throw (cvmexception) |
QR factorization ("full" mode) | |
void | lq (basic_srmatrix< TR > &mL, basic_rmatrix< TR > &mQ) const throw (cvmexception) |
LQ factorization ("economy" mode) | |
void | lq (basic_rmatrix< TR > &mL, basic_srmatrix< TR > &mQ) const throw (cvmexception) |
LQ factorization ("full" mode) | |
void | rq (basic_srmatrix< TR > &mR, basic_rmatrix< TR > &mQ) const throw (cvmexception) |
RQ factorization ("economy" mode) | |
void | rq (basic_rmatrix< TR > &mR, basic_srmatrix< TR > &mQ) const throw (cvmexception) |
RQ factorization ("full" mode) | |
void | ql (basic_rmatrix< TR > &mQ, basic_srmatrix< TR > &mL) const throw (cvmexception) |
QL factorization ("economy" mode) | |
void | ql (basic_srmatrix< TR > &mQ, basic_rmatrix< TR > &mL) const throw (cvmexception) |
QL factorization ("full" mode) | |
basic_rmatrix & | ger (TR alpha, const RVector &vCol, const RVector &vRow) throw (cvmexception) |
Rank-1 update matrix-vector operation. | |
basic_rmatrix & | gemm (const basic_rmatrix &m1, bool bTrans1, const basic_rmatrix &m2, bool bTrans2, TR dAlpha, TR dBeta) throw (cvmexception) |
Generic matrix-matrix operation. | |
basic_rmatrix & | symm (bool bLeft, const basic_srsmatrix< TR > &ms, const basic_rmatrix &m, TR dAlpha, TR dBeta) throw (cvmexception) |
Generic symmetric matrix-matrix operation. | |
TR | norm2 () const override |
2-norm | |
Public Member Functions inherited from Matrix< TR, TR > | |
tint | msize () const |
Number of rows. | |
tint | nsize () const |
Number of columns. | |
tint | ld () const |
Leading dimension. | |
tint | rowofmax () const |
Row with maximum element. | |
tint | rowofmin () const |
Row with minimum element. | |
tint | colofmax () const |
Column with maximum element. | |
tint | colofmin () const |
Column with minimum element. | |
TR | norm1 () const override |
1-norm | |
Public Member Functions inherited from basic_array< TR, TR > | |
basic_array () | |
Default constructor. | |
basic_array (tint nSize, bool bZeroMemory=true) | |
Constructor. | |
basic_array (TR *pd, tint nSize, tint nIncr=1) | |
Constructor. | |
basic_array (const TR *pd, tint nSize, tint nIncr=1) | |
Constructor. | |
basic_array (const TR *begin, const TR *end) | |
Constructor. | |
basic_array (const basic_array &a) | |
Copy constructor. | |
basic_array (basic_array &&a) noexcept | |
Move constructor. | |
basic_array & | operator= (const basic_array &a) throw (cvmexception) |
Assignment operator. | |
basic_array & | operator= (basic_array &&a) throw (cvmexception) |
Move assignment operator. | |
virtual | ~basic_array () |
Destructor. | |
tint | size () const |
Size (length) of array. | |
TR * | get () |
Pointer to data. | |
const TR * | get () const |
Const pointer to data. | |
operator TR * () | |
operator const TR * () const | |
void | assign (size_type n, const TR &val) throw (cvmexception) |
(STL) assigns given value to n-th element (0-based) | |
void | assign (const_iterator begin, const_iterator end) throw (cvmexception) |
(STL) assigns begin-end iteartor range to array | |
tint | incr () const |
Increment between elements. | |
tint | indofmax () const |
Index of element with maximum module. | |
tint | indofmin () const |
Index of element with minimum module. | |
virtual TR | norm () const |
Euclidean norm. | |
iterator | begin () |
(STL) iterator to begin | |
const_iterator | begin () const |
(STL) const iterator to begin | |
iterator | end () |
(STL) iterator to end | |
const_iterator | end () const |
(STL) const iterator to end | |
reverse_iterator | rbegin () |
(STL) iterator to begin reversed | |
const_reverse_iterator | rbegin () const |
(STL) const iterator to begin reversed | |
reverse_iterator | rend () |
(STL) iterator to end reversed | |
const_reverse_iterator | rend () const |
(STL) const iterator to end reversed | |
size_type | max_size () const |
(STL) maximum possible size of array | |
size_type | capacity () const |
(STL) current capacity of array, equal to size() | |
bool | empty () const |
(STL) is array empty | |
reference | front () |
(STL) reference to first element | |
const_reference | front () const |
(STL) const reference to first element | |
reference | back () |
(STL) reference to last element | |
const_reference | back () const |
(STL) const reference to last element | |
void | clear () |
(STL) clears array, dealocates memory and sets size() to zero | |
void | swap (basic_array &v) throw (cvmexception) |
(STL) swaps array values, throws cvmexception if sizes are different | |
reference | at (size_type n) throw (cvmexception) |
(STL) returns reference to n-th element of array (0-based), throws cvmexception if n is out of boundaries | |
const_reference | at (size_type n) const throw (cvmexception) |
(STL) returns const reference to n-th element of array (0-based), throws cvmexception if n is out of boundaries | |
void | push_back (const TR &x) throw (cvmexception) |
(STL) pushes new value to the end of array | |
void | pop_back () throw (cvmexception) |
(STL) removes last element from array | |
iterator | insert (iterator position, const TR &x) throw (cvmexception) |
(STL) inserts element to given position in array | |
iterator | erase (iterator position) throw (cvmexception) |
(STL) removes element from given position in array |
Additional Inherited Members | |
Public Types inherited from basic_array< TR, TR > | |
typedef TR | value_type |
STL-specific value type definition. | |
typedef value_type * | pointer |
STL-specific value pointer definition. | |
typedef value_type * | iterator |
STL-specific iterator definition. | |
typedef const value_type * | const_iterator |
STL-specific const iterator definition. | |
typedef const value_type * | const_pointer |
STL-specific const pointer definition. | |
typedef value_type & | reference |
STL-specific reference definition. | |
typedef const value_type & | const_reference |
STL-specific const reference definition. | |
typedef size_t | size_type |
STL-specific size type definition. | |
typedef ptrdiff_t | difference_type |
STL-specific difference type definition. | |
typedef std::reverse_iterator < const_iterator > | const_reverse_iterator |
STL-specific const reverse iterator definition. | |
typedef std::reverse_iterator < iterator > | reverse_iterator |
STL-specific reverse iterator definition. | |
Protected Member Functions inherited from Matrix< TR, TR > | |
Matrix () | |
Default constructor. | |
Matrix (tint nM, tint nN, tint nLD, bool bZeroMemory) | |
Constructor. | |
Matrix (TR *pd, tint nM, tint nN, tint nLD, tint nSize) | |
Constructor. | |
Matrix (const TR *pd, tint nM, tint nN, tint nLD, tint nSize) | |
Constructor. | |
Matrix (const BaseArray &v, bool bBeColumn) | |
Constructor. | |
Matrix (Matrix &&m) noexcept | |
Move constructor. | |
Matrix & | operator= (Matrix &&m) throw (cvmexception) |
Move assignment operator. | |
Protected Member Functions inherited from SqMatrix< TR, TR > | |
SqMatrix () | |
internal constructor | |
virtual | ~SqMatrix () |
Protected Attributes inherited from Matrix< TR, TR > | |
tint | mm |
Number of rows. | |
tint | mn |
Number of columns. | |
tint | mld |
Leading dimension. |
End-user class encapsulating symmetric matrix of real numbers.
TR
type stands for treal. Please use predefined srsmatrix class in your applications.
|
inline |
Default constructor.
Creates empty symmetric matrix. No memory gets allocated.
|
inlineexplicit |
Constructor.
Creates srsmatrix object where is passed in nDim
parameter. Constructor sets all elements to zero. It throws cvmexception in case of non-positive size passed or memory allocation failure. Example:
prints
[in] | nDim | Number of rows and columns. |
|
inline |
Constructor.
Creates srsmatrix object where is passed in nDim
parameter. It throws cvmexception in case of non-positive size passed or if the matrix created doesn't appear to be symmetric. Symmetry tolerance is set by parameter tol
. Unlike others, this constructor does not allocate memory. It just shares memory with array pointed to by pd
(for matrices nIncr=1
is always satisfied). If subsequent application flow would change the array passed so it becomes not symmetric matrix anymore then results are not predictable.
[in] | pd | Pointer to array to share memory with. |
[in] | nDim | Number of rows and columns. |
[in] | tol | Symmetry tolerance. |
|
inline |
Constructor.
Creates srsmatrix object where is passed in nDim
parameter. Constructor throws cvmexception in case of non-positive sizes passed or if the matrix created doesn't appear to be symmetric. Symmetry tolerance is set by parameter tol
. This is const version, it allocates memory and copies every element (deep copy) from external array pointed to by pd
parameter. It copies nDim*nDim
elements total. Example:
prints
[in] | pd | Const pointer to external array. |
[in] | nDim | Number of rows and columns. |
[in] | tol | Symmetry tolerance. |
|
inline |
Copy constructor.
Creates srsmatrix object as a copy of symmetric matrix m
. It throws cvmexception in case of memory allocation failure.
[in] | m | srsmatrix to copy from. |
|
inline |
Move constructor.
Implements move semantics introduced in new C++ standard. Moves data ownership from other matrix to newly created object. It's usually executed implicitly in cases like this:
or this
Here temporary result of calling b.operator+(c)
will not be destroyed but rather moved to newly created object a
.
[in] | m | rvalue reference to other matrix. |
|
inlineexplicit |
Constructor.
Creates srsmatrix object as a copy of matrix m
. It's assumed that matrix m
must have equal sizes, i.e. is satisfied, and must be symmetric. Symmetry tolerance is set by parameter tol
. Constructor throws cvmexception if this is not true or in case of memory allocation failure.
[in] | m | rmatrix to copy from. |
[in] | tol | Symmetry tolerance. |
Definition at line 32262 of file cvm.h.
|
inlineexplicit |
Constructor.
Creates srsmatrix object of size v.size()
by v.size()
and assigns vector v
to its main diagonal. Constructor throws cvmexception in case of memory allocation failure.
[in] | v | rvector to copy main diagonal from. |
|
inline |
Submatrix constructor.
Creates srsmatrix object as submatrix of symmetric matrix m
. It means that the object created shares memory with some part of m
. This part is defined by its upper left corner (parameter nRowCol
, CVM0 based) and its dimension (parameter nDim
).
|
inline |
Value of element (not l-value)
Operator returns value of a particular element of calling matrix by its row and column index. Indexes passed are CVM0 based. Operator throws cvmexception if nRow
or nCol
is outside of boundaries.
Reimplemented from basic_srmatrix< TR >.
Definition at line 32330 of file cvm.h.
|
inline |
Column as not l-value.
Operator creates rvector object as a copy of nCol-th
column (CVM0 based) of calling matrix. Operator throws cvmexception if nCol
is outside of boundaries.
[in] | nCol | Index of column (CVM0 based). |
Reimplemented from basic_srmatrix< TR >.
Definition at line 32338 of file cvm.h.
|
inline |
Row as not l-value.
Operator creates rvector object as a copy of nRow-th
row (CVM0 based) of calling matrix. Operator throws cvmexception if nRow
is outside of boundaries.
[in] | nRow | Index of row (CVM0 based). |
Reimplemented from basic_srmatrix< TR >.
Definition at line 32345 of file cvm.h.
|
inline |
Diagonal (not l-value)
Operator creates rvector object as a copy of nDiag-th
diagonal of calling matrix where nDiag=0
for main diagonal, nDiag<0
for lower diagonals and nDiag>0
for upper ones. Operator throws cvmexception if nDiag
is outside of boundaries.
[in] | nDiag | Index of diagonal (0 for main diagonal, negative for lower, positive for upper one). |
Reimplemented from basic_rmatrix< TR >.
|
inline |
Assignment operator.
Sets every element of calling srsmatrix to be equal to appropriate element of symmetric matrix m
and returns reference to the matrix changed. Operator throws cvmexception in case of different matrix dimensions.
[in] | m | srsmatrix to assign from. |
Definition at line 32382 of file cvm.h.
|
inline |
Move assignment operator.
Implements move semantics introduced in new C++ standard. Moves data ownership from other matrix to calling object. It's usually executed implicitly in cases like this:
Here temporary result of calling b.operator+(c)
will not be destroyed but rather moved to calling object a
.
[in] | m | rvalue reference to other matrix. |
Definition at line 32402 of file cvm.h.
|
inline |
Vector (as array) assignment.
Sets every element of calling symmetric matrix to be equal to appropriate element of rvector v
as an array. Assignment is performed according to matrix storage (by columns). It's assumed that vector passed is long enough to fill calling matrix. Function throws cvmexception otherwise. Function also throws cvmexception if the matrix changed doesn't appear to be symmetric. Symmetry tolerance is set by parameter tol
.
[in] | v | rvector to assign. |
[in] | tol | Symmetry tolerance. |
Definition at line 32436 of file cvm.h.
|
inline |
External array assignment.
Sets every element of calling symmetric matrix to be equal to appropriate element of array pointed to by parameter pd
and returns reference to the matrix changed. Assignment is performed according to matrix storage (by columns). It's assumed that array passed is long enough to fill calling matrix. Function throws cvmexception if the matrix changed doesn't appear to be symmetric. Symmetry tolerance is set by parameter tol
.
[in] | pd | Const pointer to external array. |
[in] | tol | Symmetry tolerance. |
|
inline |
Assignment to submatrix.
Sets main submatrix of calling symmetric matrix beginning with row and column nRowCol
to symmetric matrix m
and returns reference to the matrix changed. Function throws cvmexception if nRowCol
is not positive or matrix m
doesn't fit. Indexes are CVM0 based.
[in] | nRowCol | Row and column index (CVM0 based). |
[in] | m | Reference to symmetric matrix to assign. |
Definition at line 32510 of file cvm.h.
|
inline |
Sets all elements to one value.
Sets every element of calling matrix to be equal to parameter d
and returns reference to the matrix changed.
[in] | d | Value to set to. |
Reimplemented from basic_srmatrix< TR >.
Definition at line 32518 of file cvm.h.
|
inline |
Sets both elements to keep matrix symmetric.
Sets main submatrix of calling symmetric matrix beginning with row and column nRowCol
to symmetric matrix m
and returns reference to the matrix changed. Function throws cvmexception if nRowCol
is out of boundaries (it's CVM0 based).
[in] | nRow | Row (and column) index to set (CVM0 based). |
[in] | nCol | Column (and row) index to set (CVM0 based). |
[in] | d | Element value to set to. |
|
inline |
Sets diagonal(s)
Assigns vector vDiag
to -th diagonal of calling matrix ( is passed in nDiag
parameter), where for main diagonal, for lower diagonals and for upper ones. If , then function assigns the vector to both -th and -th diagonals (thus calling matrix remains symmetric). Function returns reference to the matrix changed. Function throws cvmexception if parameter nDiag
is outside of boundaries or if vector vDiag
passed has size not equal to msize()-abs(nDiag)
.
[in] | nDiag | Diagonal index to set. |
[in] | vDiag | rvector to set diagonal(s) to. |
|
inline |
Changes dimension.
Changes dimension of calling square matrix to nNewDim
and returns reference to the matrix changed. In case of increasing of its size, the matrix is filled up with zeroes. Function throws cvmexception in case of negative dimension passed or memory allocation failure.
[in] | nNewDim | New dimension. |
Reimplemented from basic_srmatrix< TR >.
|
inline |
Matrix comparison.
Operator compares calling symmetric matrix with symmetric matrix m
and returns true
if they have same dimensions and their appropriate elements differ by not more than cvmMachMin() (the smallest normalized positive number). Returns false
otherwise.
[in] | m | srsmatrix to compare to. |
Definition at line 32628 of file cvm.h.
|
inline |
Matrix comparison.
Operator compares calling symmetric matrix with symmetric matrix m
and returns true
if they have different sizes or at least one of their appropriate elements differs by more than cvmMachMin() (the smallest normalized positive number). Returns false
otherwise.
[in] | m | srsmatrix to compare to. |
|
inline |
Matrix replacement.
Destroys calling symmetric matrix, creates a new one as a copy of m
and returns reference to the matrix changed. Operator throws cvmexception in case of memory allocation failure.
[in] | m | srsmatrix to replace by. |
|
inline |
Addition operator.
Creates object of type srsmatrix as sum of calling symmetric matrix and symmetric matrix m
. Operator throws cvmexception in case of different sizes of the operands or memory allocation failure.
[in] | m | srsmatrix to add to calling one. |
Definition at line 32733 of file cvm.h.
|
inline |
Subtraction operator.
Creates object of type srsmatrix as difference of calling symmetric matrix and symmetric matrix m
. It throws cvmexception in case of different sizes of the operands or memory allocation failure.
[in] | m | srsmatrix to subtract from calling one. |
Definition at line 32771 of file cvm.h.
|
inline |
Sum of matrices.
Assigns sum of symmetric matrices m1
and m2
to calling symmetric matrix and returns reference to the matrices changed. It throws cvmexception in case of different sizes of the operands.
Definition at line 32811 of file cvm.h.
|
inline |
Difference of matrices.
Assigns difference of symmetric matrices m1
and m2
to calling symmetric matrix and returns reference to the matrix changed. It throws cvmexception in case of different sizes of the operands.
Definition at line 32851 of file cvm.h.
|
inline |
Increment operator.
Adds srsmatrix m
to calling symmetric matrix and returns reference to the matrix changed. It throws cvmexception in case of different sizes of the operands.
[in] | m | srsmatrix to increment by. |
Definition at line 32895 of file cvm.h.
|
inline |
Decrement operator.
Subtracts srsmatrix m
from calling symmetric matrix and returns reference to the matrix changed. It throws cvmexception in case of different sizes of the operands.
[in] | m | srsmatrix to decrement by. |
Definition at line 32938 of file cvm.h.
|
inline |
Unary minus operator.
Creates object of type srsmatrix as calling symmetric matrix multiplied by -1
. It throws cvmexception in case of memory allocation failure.
Reimplemented from basic_srmatrix< TR >.
|
inline |
Plus identity, prefix.
Adds identity matrix to calling square matrix and returns reference to the matrix changed.
Reimplemented from basic_srmatrix< TR >.
|
inline |
Plus identity, postfix.
Adds identity matrix to calling square matrix and returns reference to the matrix changed.
Reimplemented from basic_srmatrix< TR >.
|
inline |
Minus identity, prefix.
Subtracts identity matrix from calling square matrix and returns reference to the matrix changed.
Reimplemented from basic_srmatrix< TR >.
|
inline |
Minus identity, postfix.
Subtracts identity matrix from calling square matrix and returns reference to the matrix changed.
Reimplemented from basic_srmatrix< TR >.
|
inline |
Multiply by number operator.
Creates object of type srmatrix as product of calling square matrix and number dMult
. It throws cvmexception in case of memory allocation failure.
[in] | dMult | Number to multiply by. |
Reimplemented from basic_srmatrix< TR >.
|
inline |
Divide by number operator.
Creates object of type srmatrix as quotient of calling square matrix and number dDiv
. It throws cvmexception if dDiv
has absolute value equal or less than cvmMachMin() (the smallest normalized positive number). It also throws exception in case of memory allocation failure.
[in] | dDiv | Number to divide by. |
Reimplemented from basic_srmatrix< TR >.
|
inline |
Multiply by number and assign.
Multiplies calling matrix by number dMult
and returns reference to the matrix changed.
[in] | dMult | Number to multiply by. |
Reimplemented from basic_srmatrix< TR >.
|
inline |
Divide by number and assign.
Divides calling matrix by number dDiv
and returns reference to the matrix changed. It throws cvmexception if dDiv
has absolute value equal or less than cvmMachMin() (the smallest normalized positive number).
[in] | dDiv | Number to divide by. |
Reimplemented from basic_srmatrix< TR >.
|
inline |
Matrix normalizer.
Normalizes calling matrix so its Euclidean norm() becomes equal to 1 if it was greater than cvmMachMin() (the smallest normalized positive number) before the call. Does nothing otherwise.
Reimplemented from basic_srmatrix< TR >.
|
inline |
Does nothing and returns copy of calling symmetric matrix.
Reimplemented from basic_srmatrix< TR >.
|
inline |
|
inline |
Does nothing and returns reference to calling symmetric matrix.
Reimplemented from basic_srmatrix< TR >.
|
inline |
Matrix-vector product.
Creates object of type rvector as product of calling matrix and vector v
. Function throws cvmexception if the number of columns of the calling matrix differs from size of the vector v
. Use basic_rvector::mult(const basic_rmatrix<TR>&,const basic_rvector<TR>&) to avoid new object creation.
[in] | v | rvector to compute product with. |
Reimplemented from basic_srmatrix< TR >.
Definition at line 33057 of file cvm.h.
|
inline |
Matrix-matrix product.
Creates object of type rmatrix as product of calling square matrix and matrix m
. Operator throws cvmexception if number of columns of calling matrix differs from number of rows of the matrix m
. Use mult() to avoid new object creation.
[in] | m | rmatrix to compute product with. |
Reimplemented from basic_srmatrix< TR >.
Definition at line 33066 of file cvm.h.
|
inline |
Matrix-matrix product.
Creates object of type srmatrix as product of calling symmetric matrix and square matrix m
. Operator throws cvmexception if dimension of calling matrix differs from dimension the matrix m
. Use mult() to avoid new object creation.
[in] | m | srmatrix to compute product with. |
Definition at line 33113 of file cvm.h.
|
inline |
Linear solver operator.
Creates rvector object as solution of linear equation where calling matrix is square matrix and parameter vB
is vector . Operator throws cvmexception in case of inappropriate sizes of the operands or when matrix is close to singular.
[in] | vB | rvector . |
Reimplemented from basic_srmatrix< TR >.
|
inline |
Rank-1 update matrix-vector operation.
Calls one of DSYRK
routines of the BLAS
library performing rank-1 update matrix-vector operation defined as
where and are real numbers (parameters alpha
and beta
), is calling symmetric matrix and is real vector (parameter v
). Function returns reference to the matrix changed and throws cvmexception in case of inappropriate sizes of the operands.
[in] | alpha | Multiplier . |
[in] | v | rvector . |
[in] | beta | Multiplier . |
Definition at line 33176 of file cvm.h.
|
inline |
Rank-1 update matrix-matrix operation.
Calls one of DSYRK
routines of the BLAS
library performing rank-1 update matrix-vector operation defined as
where and are real numbers (parameters alpha
and beta
), is calling symmetric matrix and is real matrix (parameter m
). First operation is performed if bTransp
passed is false
and second one otherwise. Function returns reference to the matrix changed and throws cvmexception in case of inappropriate sizes of the operands.
[in] | bTransp | Use transposed operation. |
[in] | alpha | Multiplier . |
[in] | m | rmatrix . |
[in] | beta | Multiplier . |
Definition at line 33246 of file cvm.h.
|
inline |
Rank-1 update matrix-vector operation.
Calls SSYR2K
or DSYR2K
routine of the BLAS
library performing rank-1 update matrix-vector operation defined as
where and are real numbers (parameters alpha
and beta
), is calling symmetric matrix and and are real vectors (parameters v1
and v2
). Function returns reference to the matrix changed and throws cvmexception in case of inappropriate sizes of the operands.
Definition at line 33299 of file cvm.h.
|
inline |
Rank-1 update matrix-matrix operation.
Calls SSYR2K
or DSYR2K
routine of the BLAS
library performing rank-1 update matrix-matrix operation defined as
where and are real numbers (parameters alpha
and beta
), is calling symmetric matrix and and are real matrices (parameters m1
and m2
). First operation is performed if bTransp
passed is false
and second one otherwise. Function returns reference to the matrix changed and throws cvmexception in case of inappropriate sizes of the operands.
[in] | bTransp | Use transposed version of the operation. |
[in] | alpha | Multiplier . |
[in] | m1 | rmatrix . |
[in] | m2 | rmatrix . |
[in] | beta | Multiplier . |
Definition at line 33376 of file cvm.h.
|
inline |
Matrix inversion.
This version sets calling matrix to be equal to symmetric matrix m
inverted. Function throws cvmexception in case of inappropriate sizes of the operands or when the matrix to be inverted is close to singular.
[in] | m | srsmatrix to invert. |
|
inline |
Matrix inversion.
This version creates srsmatrix object equal to calling symmetric matrix inverted. Function throws cvmexception in case of memory allocation failure or when the matrix to be inverted is close to singular.
Reimplemented from basic_srmatrix< TR >.
Definition at line 33458 of file cvm.h.
|
inline |
Matrix exponent.
Computes exponent of symmetric matrix using Pade approximation defined as
where
along with the matrix normalizing as described in Gene H. Golub, Charles F. Van Loan. Matrix Computations, The Johns Hopkins University Press, 1996, 694~p., ISBN 0-8018-5413-X, p. 572. Function uses DMEXP (or SMEXP for float
version) FORTRAN
subroutine implementing the algorithm. This version sets calling matrix to be equal to exponent of symmetric matrix m
and returns reference to the matrix changed. The algorithm uses parameter tol
as in order to choose constants and so that
This parameter is equal to the largest relative spacing (see cvmMachSp() ) by default. Function throws cvmexception in case of inappropriate sizes of the operands or when LAPACK subroutine fails.
[in] | m | srsmatrix to compute exponent for. |
[in] | tol | Computation tolerance. |
|
inline |
Matrix exponent.
Computes exponent of symmetric matrix using Pade approximation defined as
where
along with the matrix normalizing as described in Gene H. Golub, Charles F. Van Loan. Matrix Computations, The Johns Hopkins University Press, 1996, 694~p., ISBN 0-8018-5413-X, p. 572. Function uses DMEXP (or SMEXP for float
version) FORTRAN
subroutine implementing the algorithm. This version creates object of type srsmatrix
as exponent of calling symmetric matrix. The algorithm uses parameter tol
as in order to choose constants and so that
This parameter is equal to the largest relative spacing (see cvmMachSp() ) by default. Function throws cvmexception in case of inappropriate sizes of the operands or when LAPACK subroutine fails.
[in] | tol | Computation tolerance. |
Reimplemented from basic_srmatrix< TR >.
Definition at line 33589 of file cvm.h.
|
inline |
Matrix polynomial.
Computes symmetric matrix polynomial defined as
using the Horner's rule:
where
See also Gene H. Golub, Charles F. Van Loan. Matrix Computations, The Johns Hopkins University Press, 1996, 694~p., ISBN 0-8018-5413-X, p. 568. The coefficients are passed in parameter v
, where is equal to v.size()-1
, so the function computes matrix polynomial equal to
This version sets calling matrix to be equal to the polynomial of symmetric matrix m
. Function uses DPOLY (or SPOLY for float
version) FORTRAN
subroutine implementing the Horner's algorithm. Function throws cvmexception in case of inappropriate sizes of the operands.
[in] | m | srsmatrix to compute polynomial for. |
[in] | v | Vector of coefficients. |
Definition at line 33663 of file cvm.h.
|
inline |
Matrix polynomial.
Computes symmetric matrix polynomial defined as
using the Horner's rule:
where
See also Gene H. Golub, Charles F. Van Loan. Matrix Computations, The Johns Hopkins University Press, 1996, 694~p., ISBN 0-8018-5413-X, p. 568. The coefficients are passed in parameter v
, where is equal to v.size()-1
, so the function computes matrix polynomial equal to
This version creates object of type srsmatrix as the polynomial of calling symmetric matrix. Function uses DPOLY (or SPOLY for float
version) FORTRAN
subroutine implementing the Horner's algorithm. Function throws cvmexception in case of memory allocation failure.
[in] | v | Vector of coefficients. |
Reimplemented from basic_srmatrix< TR >.
Definition at line 33736 of file cvm.h.
|
inline |
Eigenvalues and eigenvectors.
Solves symmetric eigenvalue problem and creates rvector object equal to eigenvalues of calling matrix. The symmetric eigenvalue problem is defined as follows: given symmetric matrix , find the eigenvalues and the corresponding eigenvectors that satisfy the equation
Eigenvalues and eigenvectors of symmetric real matrix are real. Function sets output parameter mEigVect
to be equal to square matrix containing eigenvectors as columns. Function throws cvmexception in case of inappropriate calling object sizes or in case of convergence error.
[out] | mEigVect | Eigenvectors of calling symmetric matrix. |
Definition at line 33787 of file cvm.h.
|
inline |
Eigenvalues.
Solves symmetric eigenvalue problem and creates rvector object equal to eigenvalues of calling symmetric matrix. The eigenvalue problem is defined as follows: given symmetric matrix , find the eigenvalues and the corresponding eigenvectors that satisfy the equation
Eigenvalues and eigenvectors of symmetric real matrix are real. Function throws cvmexception in case of memory allocation failure or convergence error.
Reimplemented from basic_srmatrix< TR >.
Definition at line 33824 of file cvm.h.
|
inline |
Cholesky factorization.
Forms the Cholesky factorization of symmetric positive-definite calling matrix defined as
where is upper triangular matrix. It utilizes one of DPOTRF
routines of the LAPACK
library. Function creates srmatrix object equal to the factorization. Function throws cvmexception in case of convergence error.
|
inline |
Bunch-Kaufman factorization.
Forms the Bunch-Kaufman factorization of symmetric calling matrix (cited from the MKL library documentation):
where is calling symmetric matrix, is a permutation matrix, and are upper and lower triangular matrices with unit diagonal, and is a symmetric block-diagonal matrix with 1-by-1 and 2-by-2 diagonal blocks. and have 2-by-2 unit diagonal blocks corresponding to the 2-by-2 blocks of . It utilizes one of DSYTRF
routines of the LAPACK
library. Function creates srmatrix object equal to the factorization of symmetric calling matrix. Function throws cvmexception in case of convergence error. Function is mostly designed to be used for subsequent calls of DSYTRS
, DSYCON
and DSYTRI
routines of the LAPACK
library. Currently it's used internally in det() flow when argument is symmetric but not positive-definite.
[out] | nPivots | Pivot indices array. |
|
inline |
Identity matrix.
Sets calling matrix to be equal to identity matrix and returns reference to the matrix changed.
Reimplemented from basic_srmatrix< TR >.
|
inline |
Set matrix to zero.
Sets every element of calling square matrix to be equal to zero and returns reference to the matrix changed. This function is faster than, for example, set(TR) with zero parameter passed.
Reimplemented from basic_srmatrix< TR >.
|
inline |
Fills calling matrix with pseudo-random numbers distributed between dFrom
and dTo
. Function returns reference to the matrix changed.
[in] | dFrom | First limit. |
[in] | dTo | Second limit. |
Reimplemented from basic_srmatrix< TR >.
|
inlineoverridevirtual |
Infinity norm.
Infinity norm of calling array that for vectors is defined as
and for matrices as
Reimplemented from Matrix< TR, TR >.
Definition at line 33935 of file cvm.h.
|
inline |
|
inline |
|
inline |