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 band square matrix of real numbers. More...
#include <cvm.h>
Public Member Functions | |
basic_srbmatrix () | |
Default constructor. | |
basic_srbmatrix (tint nDim) | |
Diagonal band matrix constructor. | |
basic_srbmatrix (tint nDim, tint nKL, tint nKU) | |
Band matrix constructor. | |
basic_srbmatrix (TR *pd, tint nDim, tint nKL, tint nKU) | |
Constructor. | |
basic_srbmatrix (const TR *pd, tint nDim, tint nKL, tint nKU) | |
Constructor. | |
basic_srbmatrix (const basic_srbmatrix &m) | |
Copy constructor. | |
basic_srbmatrix (basic_srbmatrix &&m) noexcept | |
Move constructor. | |
basic_srbmatrix (const BaseRMatrix &m, tint nKL, tint nKU) | |
Constructor. | |
basic_srbmatrix (const RVector &v) | |
Constructor. | |
type_proxy< TR, TR > | operator() (tint nRow, tint nCol) throw (cvmexception) |
Reference to element (l-value) | |
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. | |
basic_srbmatrix & | operator= (const basic_srbmatrix &m) throw (cvmexception) |
Assignment operator. | |
basic_srbmatrix & | operator= (basic_srbmatrix &&m) throw (cvmexception) |
Move assignment operator. | |
basic_srbmatrix & | assign (const RVector &v) throw (cvmexception) |
Vector (as array) assignment. | |
basic_srbmatrix & | assign (const TR *pd) |
External array assignment. | |
basic_srbmatrix & | set (TR d) |
Sets all elements to one value. | |
basic_srbmatrix & | resize (tint nNewDim) throw (cvmexception) |
Changes dimension. | |
basic_srbmatrix & | resize_lu (tint nNewKL, tint nNewKU) throw (cvmexception) |
Changes number of sub- and super-diagonals. | |
bool | operator== (const basic_srbmatrix &m) const |
Band matrix comparison. | |
bool | operator!= (const basic_srbmatrix &m) const |
Band matrix comparison. | |
basic_srbmatrix & | operator<< (const basic_srbmatrix &m) throw (cvmexception) |
Matrix replacement. | |
basic_srbmatrix | operator+ (const basic_srbmatrix &m) const throw (cvmexception) |
Addition operator. | |
basic_srbmatrix | operator- (const basic_srbmatrix &m) const throw (cvmexception) |
Subtraction operator. | |
basic_srbmatrix & | sum (const basic_srbmatrix &m1, const basic_srbmatrix &m2) throw (cvmexception) |
Sum of matrices. | |
basic_srbmatrix & | diff (const basic_srbmatrix &m1, const basic_srbmatrix &m2) throw (cvmexception) |
Difference of matrices. | |
basic_srbmatrix & | operator+= (const basic_srbmatrix &m) throw (cvmexception) |
Increment operator. | |
basic_srbmatrix & | operator-= (const basic_srbmatrix &m) throw (cvmexception) |
Decrement operator. | |
basic_srbmatrix | operator- () const |
Unary minus operator. | |
basic_srbmatrix & | operator++ () |
Plus identity, prefix. | |
basic_srbmatrix | operator++ (int) |
Plus identity, postfix. | |
basic_srbmatrix & | operator-- () |
Minus identity, prefix. | |
basic_srbmatrix | operator-- (int) |
Minus identity, postfix. | |
basic_srbmatrix | operator* (TR dMult) const |
Multiply by number operator. | |
basic_srbmatrix | operator/ (TR dDiv) const throw (cvmexception) |
Divide by number operator. | |
basic_srbmatrix & | operator*= (TR dMult) |
Multiply by number and assign. | |
basic_srbmatrix & | operator/= (TR dDiv) throw (cvmexception) |
Divide by number and assign. | |
basic_srbmatrix & | normalize () |
Matrix normalizer. | |
basic_srbmatrix | operator~ () const throw (cvmexception) |
Matrix transposition. | |
basic_srbmatrix & | transpose (const basic_srbmatrix &m) throw (cvmexception) |
Matrix transposition. | |
basic_srbmatrix & | transpose () throw (cvmexception) |
Matrix transposition (in-place) | |
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. | |
basic_srbmatrix | operator* (const basic_srbmatrix &m) const throw (cvmexception) |
Matrix-matrix product. | |
RVector | operator/ (const RVector &v) const throw (cvmexception) |
Linear solver operator. | |
basic_srbmatrix & | low_up (const basic_srbmatrix &m, tint *nPivots) throw (cvmexception) |
Low-up (LU) factorization. | |
basic_srbmatrix | low_up (tint *nPivots) const throw (cvmexception) |
Low-up (LU) factorization. | |
basic_srbmatrix & | identity () |
Identity matrix. | |
basic_srbmatrix & | vanish () |
Set matrix to zero. | |
basic_srbmatrix & | randomize (TR dFrom, TR dTo) |
Randomizer. | |
TR | norm () const override |
Euclidean norm. | |
TR | norm1 () const override |
1-norm | |
TR | norminf () const override |
Infinity norm. | |
basic_srbmatrix & | mult (const BaseRMatrix &m1, const BaseRMatrix &m2) throw (cvmexception) |
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. | |
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 (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. | |
TR | cond () const throw (cvmexception) |
Condition number reciprocal. | |
basic_srmatrix & | inv (const basic_srmatrix &m) throw (cvmexception) |
Matrix inversion. | |
basic_srmatrix | inv () const throw (cvmexception) |
Matrix inversion. | |
basic_srmatrix & | exp (const basic_srmatrix &m, TR tol=basic_cvmMachSp< TR >()) throw (cvmexception) |
Matrix exponent. | |
basic_srmatrix | exp (TR tol=basic_cvmMachSp< TR >()) const throw (cvmexception) |
Matrix exponent. | |
basic_srmatrix & | polynom (const basic_srmatrix &m, const RVector &v) throw (cvmexception) |
Matrix polynomial. | |
basic_srmatrix | polynom (const RVector &v) const |
Matrix polynomial. | |
CVector | eig (basic_scmatrix< TR, TC > &mEigVect, bool bRightVect=true) const throw (cvmexception) |
Eigenvalues and eigenvectors. | |
CVector | eig () const throw (cvmexception) |
Eigenvalues. | |
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. | |
const RVector | diag (tint nDiag) const throw (cvmexception) |
Diagonal (not 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. | |
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. | |
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 | |
Public Member Functions inherited from BandMatrix< TR, TR > | |
tint | lsize () const |
Number of lower sub-diagonals. | |
tint | usize () const |
Number of upper super-diagonals. |
Protected Attributes | |
BaseSRMatrix | mSM |
Temporary storage for square matrix enclosing band one (if needed) | |
Protected Attributes inherited from BandMatrix< TR, TR > | |
tint | mkl |
Number of sub-diagonals. | |
tint | mku |
Number of super-diagonals. |
Friends | |
class | basic_scbmatrix< TR, TC > |
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 Member Functions inherited from BandMatrix< TR, TR > | |
BandMatrix () | |
internal protected constructor | |
BandMatrix (tint nKL, tint nKU) | |
internal protected constructor | |
virtual | ~BandMatrix () |
Destructor. |
End-user class encapsulating band square matrix of real numbers.
TR
type stands for treal. Please use predefined srbmatrix class in your applications. Band storage can be described as follows (cited from MKL manual): an by band matrix with sub-diagonals and super-diagonals is stored compactly in a two-dimensional array with rows and columns. Columns of the matrix are stored in the corresponding columns of the array, and diagonals of the matrix are stored in rows of the array}. This way of storage can be illustrated as follows (referenced elements are shown as , not referenced as , zeros are not stored):
CVM library implements square band matrices only, therefore is satisfied for them.
|
inline |
Default constructor.
Creates empty square band matrix. No memory gets allocated.
|
inlineexplicit |
Diagonal band matrix constructor.
Creates srbmatrix object where dimension is passed in nDim
parameter. The matrix created is diagonal, i.e. . Constructor throws cvmexception in case of non-positive size passed or memory allocation failure.
[in] | nDim | Number of rows and columns. |
|
inline |
Band matrix constructor.
Creates srbmatrix object of dimension passed in nDim
parameter. The matrix created has nKL
sub-diagonals and nKU
super-diagonals. Constructor throws cvmexception in case of non-positive size or negative number of sub-diagonals or super-diagonals passed or in case of memory allocation failure. Example:
prints
[in] | nDim | Number of rows and columns. |
[in] | nKL | Number of lower sub-diagonals. |
[in] | nKU | Number of upper super-diagonals. |
|
inline |
Constructor.
Creates srbmatrix object where is passed in nDim
parameter. The matrix created has nKL
sub-diagonals and nKU
super-diagonals. Constructor throws cvmexception in case of non-positive size or negative number of sub-diagonals or super-diagonals passed or in case of memory allocation failure. 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).
[in] | pd | Pointer to array to share memory with. |
[in] | nDim | Number of rows and columns. |
[in] | nKL | Number of lower sub-diagonals. |
[in] | nKU | Number of upper super-diagonals. |
|
inline |
Constructor.
Creates srbmatrix object where is passed in nDim
parameter. The matrix created has nKL
sub-diagonals and nKU
super-diagonals. Constructor throws cvmexception in case of non-positive size or negative number of sub-diagonals or super-diagonals passed or in case of memory allocation failure. Then constructor copies elements of array pd
to the matrix according to band storage.
[in] | pd | Pointer to array to share memory with. |
[in] | nDim | Number of rows and columns. |
[in] | nKL | Number of lower sub-diagonals. |
[in] | nKU | Number of upper super-diagonals. |
|
inline |
Copy constructor.
Creates srbmatrix object as a copy of band matrix m
. It throws cvmexception in case of memory allocation failure.
[in] | m | srbmatrix 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. |
|
inline |
Constructor.
Creates srbmatrix object as a copy of sliced matrix m
, i.e. it copies main diagonal, nKL
sub-diagonals and nKU
super-diagonals of matrix m
. It's assumed that matrix m
must have equal sizes, i.e. is satisfied. Constructor throws cvmexception if this is not true or in case of memory allocation failure.
[in] | m | rmatrix to copy diagonal and subdiagonals from. |
[in] | nKL | Number of lower sub-diagonals. |
[in] | nKU | Number of upper super-diagonals. |
Definition at line 28611 of file cvm.h.
|
inlineexplicit |
Constructor.
Creates srbmatrix 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. |
Definition at line 28643 of file cvm.h.
|
inline |
Reference to element (l-value)
Operator provides access to a particular element of calling matrix by its row and column index. Indexes passed are CVM0 based. It returns l-value in order to make possible write access to an element. Operator throws cvmexception if nRow
or nCol
is outside of boundaries.
Reimplemented from basic_srmatrix< TR >.
Definition at line 28650 of file cvm.h.
|
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 28657 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 28665 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 28672 of file cvm.h.
|
inline |
Assignment operator.
Sets every element of calling srbmatrix to be equal to appropriate element of matrix m
and returns reference to the matrix changed. Operator throws cvmexception in case of different matrix dimensions.
[in] | m | srbmatrix to assign from. |
|
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 28730 of file cvm.h.
|
inline |
Vector (as array) assignment.
Sets every element of calling 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.
[in] | v | rvector to assign. |
Reimplemented from basic_srmatrix< TR >.
Definition at line 28738 of file cvm.h.
|
inline |
External array assignment.
Sets every element of calling 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.
[in] | pd | Const pointer to external array. |
Reimplemented from basic_srmatrix< TR >.
|
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 >.
|
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 |
Changes number of sub- and super-diagonals.
Changes number of sub- and super-diagonals of calling band matrix to nNewKL
and nNewKU
respectively and returns reference to the matrix changed. In case of increasing of the numbers, calling matrix is filled up with zeroes. Function throws cvmexception in case of negative number passed or memory allocation failure.
[in] | nNewKL | New number of lower sub-diagonals. |
[in] | nNewKU | New number of upper super-diagonals. |
Definition at line 28803 of file cvm.h.
|
inline |
Band matrix comparison.
Operator compares calling band matrix with band 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 | srbmatrix to compare to. |
Definition at line 28843 of file cvm.h.
|
inline |
Band matrix comparison.
Operator compares calling band matrix with band matrix m
and returns true
if they have different dimensions or at least one of their appropriate elements differs by more than cvmMachMin() (the smallest normalized positive number). Returns false
otherwise.
[in] | m | srbmatrix to compare to. |
Definition at line 28880 of file cvm.h.
|
inline |
Matrix replacement.
Destroys calling band matrix, creates a new one as a copy of band matrix m
and returns reference to the matrix changed. Operator throws cvmexception in case of memory allocation failure.
[in] | m | srbmatrix to replace by. |
|
inline |
Addition operator.
Creates object of type srbmatrix as sum of calling matrix and matrix m
. Operator throws cvmexception in case of different dimensions of the operands or memory allocation failure.
[in] | m | srbmatrix to add to calling one. |
|
inline |
Subtraction operator.
Creates object of type srbmatrix as difference of calling band matrix and band matrix m
. It throws cvmexception in case of different dimensions of the operands or memory allocation failure.
[in] | m | srbmatrix to subtract from calling one. |
|
inline |
Sum of matrices.
Assigns sum of square band matrices m1
and m2
to calling matrix and returns reference to the matrices changed. It throws cvmexception in case of different sizes of the operands.
|
inline |
Difference of matrices.
Assigns difference of square band matrices m1
and m2
to calling matrix and returns reference to the matrix changed. It throws cvmexception in case of different sizes of the operands.
|
inline |
Increment operator.
Adds srbmatrix m
to calling matrix and returns reference to the matrix changed. It throws cvmexception in case of different sizes of the operands.
[in] | m | srbmatrix to increment by. |
|
inline |
Decrement operator.
Subtracts srbmatrix m
from calling matrix and returns reference to the matrix changed. It throws cvmexception in case of different sizes of the operands.
[in] | m | srbmatrix to decrement by. |
|
inline |
Unary minus operator.
Creates object of type srbmatrix as calling 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 band matrix and returns reference to the matrix changed.
Reimplemented from basic_srmatrix< TR >.
|
inline |
Plus identity, postfix.
Adds identity matrix to calling square band matrix and returns reference to the matrix changed.
Reimplemented from basic_srmatrix< TR >.
|
inline |
Minus identity, prefix.
Subtracts identity matrix from calling square band matrix and returns reference to the matrix changed.
Reimplemented from basic_srmatrix< TR >.
|
inline |
Minus identity, postfix.
Subtracts identity matrix from calling square band 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 |
Matrix transposition.
Creates object of type srmatrix
as transposed calling matrix.
Reimplemented from basic_srmatrix< TR >.
Definition at line 29435 of file cvm.h.
|
inline |
Matrix transposition.
Sets calling square band matrix to be equal to square band matrix m
transposed. Function throws cvmexception in case of not appropriate sizes of the operands.
[in] | m | srbmatrix to transpose. |
Definition at line 29478 of file cvm.h.
|
inline |
Matrix transposition (in-place)
Makes calling matrix to be equal to transposed itself. Function throws cvmexception in case of memory allocation failure.
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 29493 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 >.
|
inline |
Matrix-matrix product.
Creates object of type srmatrix as product of calling square band matrix and square 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 | srmatrix to compute product with. |
|
inline |
Matrix-matrix product.
Creates object of type srbmatrix as product of calling square band matrix and square band 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 | srbmatrix to compute product with. |
Definition at line 29579 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 |
Low-up (LU) factorization.
Compute LU factorization of square band matrix as
where is permutation matrix, is lower triangular matrix with unit diagonal elements and is upper triangular matrix. Function stores result as the matrix without main diagonal combined with . Function returns pivot indices as array of integers (it should support at least msize() elements) pointed to by nPivots
so -th row was interchanged with nPivots
[ ]-th row. This version sets calling matrix to be equal to matrix m's
LU factorization. This version also changes number of super-diagonals to be equal to in order to keep the result of factorization. Function throws cvmexception in case of inappropriate sizes of the operands or when the matrix to be factorized is close to singular. It is recommended to use iarray for pivot values.
[in] | m | srbmatrix to compute LU factorization for. |
[out] | nPivots | Array of pivot indices. |
Definition at line 29686 of file cvm.h.
|
inline |
Low-up (LU) factorization.
Compute LU factorization of square matrix as
where is permutation matrix, is lower triangular matrix with unit diagonal elements and is upper triangular matrix. Function stores result as the matrix without main diagonal combined with . Function returns pivot indices as array of integers (it should support at least msize() elements) pointed to by nPivots
so -th row was interchanged with nPivots
[ ]-th row. This version creates object of type srmatrix as calling matrix LU factorization. Function throws cvmexception in case of inappropriate sizes of the operands or when the matrix to be factorized is close to singular. It is recommended to use iarray for pivot values.
[out] | nPivots | Array of pivot indices. |
Reimplemented from basic_srmatrix< TR >.
|
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 |
Euclidean norm.
Euclidean norm of calling array that for vectors is defined as
and for matrices as
Reimplemented from basic_array< TR, TR >.
Definition at line 29720 of file cvm.h.
|
inlineoverridevirtual |
1-norm
1-norm of calling array that for vectors is defined as
and for matrices as
Reimplemented from Matrix< TR, 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 29744 of file cvm.h.
|
inline |
|
friend |
|
mutableprotected |