Matrix Decompositions
Base Module » Linear Algebra

## Functions

bool | itpp::chol (const mat &X, mat &F)
| Cholesky factorisation of real symmetric and positive definite matrix.
mat | itpp::chol (const mat &X)
| Cholesky factorisation of real symmetric and positive definite matrix.
bool | itpp::chol (const cmat &X, cmat &F)
| Cholesky factorisation of complex hermitian and positive-definite matrix.
cmat | itpp::chol (const cmat &X)
| Cholesky factorisation of complex hermitian and positive-definite matrix.
bool | itpp::eig_sym (const mat &A, vec &d, mat &V)
| Calculates the eigenvalues and eigenvectors of a symmetric real matrix.
bool | itpp::eig_sym (const mat &A, vec &d)
| Calculates the eigenvalues of a symmetric real matrix.
vec | itpp::eig_sym (const mat &A)
| Calculates the eigenvalues of a symmetric real matrix.
bool | itpp::eig_sym (const cmat &A, vec &d, cmat &V)
| Calculates the eigenvalues and eigenvectors of a hermitian complex matrix.
bool | itpp::eig_sym (const cmat &A, vec &d)
| Calculates the eigenvalues of a hermitian complex matrix.
vec | itpp::eig_sym (const cmat &A)
| Calculates the eigenvalues of a hermitian complex matrix.
bool | itpp::eig (const mat &A, cvec &d, cmat &V)
| Calculates the eigenvalues and eigenvectors of a real non-symmetric matrix.
bool | itpp::eig (const mat &A, cvec &d)
| Calculates the eigenvalues of a real non-symmetric matrix.
cvec | itpp::eig (const mat &A)
| Calculates the eigenvalues of a real non-symmetric matrix.
bool | itpp::eig (const cmat &A, cvec &d, cmat &V)
| Calculates the eigenvalues and eigenvectors of a complex non-hermitian matrix.
bool | itpp::eig (const cmat &A, cvec &d)
| Calculates the eigenvalues of a complex non-hermitian matrix.
cvec | itpp::eig (const cmat &A)
| Calculates the eigenvalues of a complex non-hermitian matrix.
bool | itpp::lu (const mat &X, mat &L, mat &U, ivec &p)
| LU factorisation of real matrix.
bool | itpp::lu (const cmat &X, cmat &L, cmat &U, ivec &p)
| LU factorisation of real matrix.
void | itpp::interchange_permutations (vec &b, const ivec &p)
| Makes swapping of vector b according to the interchange permutation vector p.
bmat | itpp::permutation_matrix (const ivec &p)
| Make permutation matrix P from the interchange permutation vector p.
bool | itpp::qr (const mat &A, mat &Q, mat &R)
| QR factorisation of real matrix.
bool | itpp::qr (const mat &A, mat &R)
| QR factorisation of real matrix with suppressed evaluation of Q.
bool | itpp::qr (const mat &A, mat &Q, mat &R, bmat &P)
| QR factorisation of real matrix with pivoting.
bool | itpp::qr (const cmat &A, cmat &Q, cmat &R)
| QR factorisation of a complex matrix.
bool | itpp::qr (const cmat &A, cmat &R)
| QR factorisation of complex matrix with suppressed evaluation of Q.
bool | itpp::qr (const cmat &A, cmat &Q, cmat &R, bmat &P)
| QR factorisation of a complex matrix with pivoting.
bool | itpp::schur (const mat &A, mat &U, mat &T)
| Schur decomposition of a real matrix.
mat | itpp::schur (const mat &A)
| Schur decomposition of a real matrix.
bool | itpp::schur (const cmat &A, cmat &U, cmat &T)
| Schur decomposition of a complex matrix.
cmat | itpp::schur (const cmat &A)
| Schur decomposition of a complex matrix.
bool | itpp::svd (const mat &A, vec &s)
| Get singular values `s` of a real matrix `A` using SVD.
bool | itpp::svd (const cmat &A, vec &s)
| Get singular values `s` of a complex matrix `A` using SVD.
vec | itpp::svd (const mat &A)
| Return singular values of a real matrix `A` using SVD.
vec | itpp::svd (const cmat &A)
| Return singular values of a complex matrix `A` using SVD.
bool | itpp::svd (const mat &A, mat &U, vec &s, mat &V)
| Perform Singular Value Decomposition (SVD) of a real matrix `A`.
bool | itpp::svd (const cmat &A, cmat &U, vec &s, cmat &V)
| Perform Singular Value Decomposition (SVD) of a complex matrix `A`.

## Detailed Description

## Function Documentation

## chol() [1/4]

ITPP_EXPORT bool itpp::chol | ( | const mat & | X,
|  | mat & | F )

Cholesky factorisation of real symmetric and positive definite matrix.

The Cholesky factorisation of a real symmetric positive-definite matrix of size is given by

where is an upper triangular matrix.

Returns true if calculation succeeded. False otherwise.

Definition at line 86 of file cholesky.cpp.

References it_error.

Referenced by chol(), and chol().

## chol() [2/4]

ITPP_EXPORT mat itpp::chol | ( | const mat & | X | ) |

Cholesky factorisation of real symmetric and positive definite matrix.

The Cholesky factorisation of a real symmetric positive-definite matrix of size is given by

where is an upper triangular matrix.

Definition at line 111 of file cholesky.cpp.

References chol(), and it_warning.

## chol() [3/4]

ITPP_EXPORT bool itpp::chol | ( | const cmat & | X,
|  | cmat & | F )

Cholesky factorisation of complex hermitian and positive-definite matrix.

The Cholesky factorisation of a hermitian positive-definite matrix of size is given by

where is an upper triangular matrix.

Returns true if calculation succeeded. False otherwise.

If `X` is positive definite, true is returned and `F=chol(X)` produces an upper triangular `F`. If also `X` is symmetric then `F'*F` = X. If `X` is not positive definite, false is returned.

Definition at line 92 of file cholesky.cpp.

References it_error.

## chol() [4/4]

ITPP_EXPORT cmat itpp::chol | ( | const cmat & | X | ) |

Cholesky factorisation of complex hermitian and positive-definite matrix.

The Cholesky factorisation of a hermitian positive-definite matrix of size is given by

where is an upper triangular matrix.

Definition at line 101 of file cholesky.cpp.

References chol(), and it_warning.

## eig_sym() [1/6]

ITPP_EXPORT bool itpp::eig_sym | ( | const mat & | A,
|  | vec & | d,
|  | mat & | V )

Calculates the eigenvalues and eigenvectors of a symmetric real matrix.

The Eigenvalues and the eigenvectors of the real and symmetric matrix satisfies

The eigenvectors are the columns of the matrix V. True is returned if the calculation was successful. Otherwise false.

Uses the LAPACK routine DSYEV.

Definition at line 252 of file eigen.cpp.

References it_error.

Referenced by eig_sym(), eig_sym(), mpower(), and pcamat().

## eig_sym() [2/6]

ITPP_EXPORT bool itpp::eig_sym | ( | const mat & | A,
|  | vec & | d )

Calculates the eigenvalues of a symmetric real matrix.

The Eigenvalues and the eigenvectors of the real and symmetric matrix satisfies

True is returned if the calculation was successful. Otherwise false.

Uses the LAPACK routine DSYEV.

Definition at line 258 of file eigen.cpp.

References it_error.

## eig_sym() [3/6]

ITPP_EXPORT vec itpp::eig_sym | ( | const mat & | A | ) |

Calculates the eigenvalues of a symmetric real matrix.

The Eigenvalues and the eigenvectors of the real and symmetric matrix satisfies

Uses the LAPACK routine DSYEV.

Definition at line 303 of file eigen.cpp.

References eig_sym().

## eig_sym() [4/6]

ITPP_EXPORT bool itpp::eig_sym | ( | const cmat & | A,
|  | vec & | d,
|  | cmat & | V )

Calculates the eigenvalues and eigenvectors of a hermitian complex matrix.

The Eigenvalues and the eigenvectors of the complex and hermitian matrix satisfies

The eigenvectors are the columns of the matrix V. True is returned if the calculation was successful. Otherwise false.

Uses the LAPACK routine ZHEEV.

Definition at line 264 of file eigen.cpp.

References it_error.

## eig_sym() [5/6]

ITPP_EXPORT bool itpp::eig_sym | ( | const cmat & | A,
|  | vec & | d )

Calculates the eigenvalues of a hermitian complex matrix.

The Eigenvalues and the eigenvectors of the complex and hermitian matrix satisfies

True is returned if the calculation was successful. Otherwise false.

Uses the LAPACK routine ZHEEV.

Definition at line 270 of file eigen.cpp.

References it_error.

## eig_sym() [6/6]

ITPP_EXPORT vec itpp::eig_sym | ( | const cmat & | A | ) |

Calculates the eigenvalues of a hermitian complex matrix.

The Eigenvalues and the eigenvectors of the complex and hermitian matrix satisfies

Uses the LAPACK routine ZHEEV.

Definition at line 310 of file eigen.cpp.

References eig_sym().

## eig() [1/6]

ITPP_EXPORT bool itpp::eig | ( | const mat & | A,
|  | cvec & | d,
|  | cmat & | V )

Calculates the eigenvalues and eigenvectors of a real non-symmetric matrix.

The Eigenvalues and the eigenvectors of the real matrix satisfies

The eigenvectors are the columns of the matrix V. True is returned if the calculation was successful. Otherwise false.

Uses the LAPACK routine DGEEV.

Definition at line 277 of file eigen.cpp.

References it_error.

Referenced by eig(), eig(), roots(), and roots().

## eig() [2/6]

ITPP_EXPORT bool itpp::eig | ( | const mat & | A,
|  | cvec & | d )

Calculates the eigenvalues of a real non-symmetric matrix.

The Eigenvalues and the eigenvectors of the real matrix satisfies

True is returned if the calculation was successful. Otherwise false.

Uses the LAPACK routine DGEEV.

Definition at line 283 of file eigen.cpp.

References it_error.

## eig() [3/6]

ITPP_EXPORT cvec itpp::eig | ( | const mat & | A | ) |

Calculates the eigenvalues of a real non-symmetric matrix.

The Eigenvalues and the eigenvectors of the real matrix satisfies

Uses the LAPACK routine DGEEV.

Definition at line 318 of file eigen.cpp.

References eig().

## eig() [4/6]

ITPP_EXPORT bool itpp::eig | ( | const cmat & | A,
|  | cvec & | d,
|  | cmat & | V )

Calculates the eigenvalues and eigenvectors of a complex non-hermitian matrix.

The Eigenvalues and the eigenvectors of the complex matrix satisfies

The eigenvectors are the columns of the matrix V. True is returned if the calculation was successful. Otherwise false.

Uses the LAPACK routine ZGEEV.

Definition at line 289 of file eigen.cpp.

References it_error.

## eig() [5/6]

ITPP_EXPORT bool itpp::eig | ( | const cmat & | A,
|  | cvec & | d )

Calculates the eigenvalues of a complex non-hermitian matrix.

The Eigenvalues and the eigenvectors of the complex matrix satisfies

True is returned if the calculation was successful. Otherwise false.

Uses the LAPACK routine ZGEEV.

Definition at line 295 of file eigen.cpp.

References it_error.

## eig() [6/6]

ITPP_EXPORT cvec itpp::eig | ( | const cmat & | A | ) |

Calculates the eigenvalues of a complex non-hermitian matrix.

The Eigenvalues and the eigenvectors of the complex matrix satisfies

Uses the LAPACK routine ZGEEV.

Definition at line 325 of file eigen.cpp.

References eig().

## lu() [1/2]

ITPP_EXPORT bool itpp::lu | ( | const mat & | X,
|  | mat & | L,
|  | mat & | U,
|  | ivec & | p )

LU factorisation of real matrix.

The LU factorization of the real matrix of size is given by

where and are lower and upper triangular matrices and is a permutation matrix.

The interchange permutation vector p is such that k and p(k) should be changed for all k. Given this vector a permutation matrix can be constructed using the function

bmat permutation_matrix(const ivec &p)
itpp::permutation_matrix
bmat permutation_matrix(const ivec &p)
Make permutation matrix P from the interchange permutation vector p.
Definition lu.cpp:144
bmat
Mat< bin > bmat
bin matrix
Definition mat.h:508

If X is an n by n matrix lu(X,L,U,p) computes the LU decomposition. L is a lower triangular, U an upper triangular matrix. p is the interchange permutation vector such that k and p(k) should be changed for all k.

Returns true is calculation succeeds. False otherwise.

Definition at line 117 of file lu.cpp.

References it_error.

Referenced by det(), and det().

## lu() [2/2]

ITPP_EXPORT bool itpp::lu | ( | const cmat & | X,
|  | cmat & | L,
|  | cmat & | U,
|  | ivec & | p )

LU factorisation of real matrix.

The LU factorization of the complex matrix of size is given by

where and are lower and upper triangular matrices and is a permutation matrix.

The interchange permutation vector p is such that k and p(k) should be changed for all k. Given this vector a permutation matrix can be constructed using the function

bmat permutation_matrix(const ivec &p)

If X is an n by n matrix lu(X,L,U,p) computes the LU decomposition. L is a lower triangular, U an upper triangular matrix. p is the interchange permutation vector such that elements k and row p(k) should be interchanged.

Returns true is calculation succeeds. False otherwise.

Definition at line 123 of file lu.cpp.

References it_error.

## interchange_permutations()

ITPP_EXPORT void itpp::interchange_permutations | ( | vec & | b,
|  | const ivec & | p )

Makes swapping of vector b according to the interchange permutation vector p.

Definition at line 132 of file lu.cpp.

References it_assert.

## permutation_matrix()

ITPP_EXPORT bmat itpp::permutation_matrix | ( | const ivec & | p | ) |

Make permutation matrix P from the interchange permutation vector p.

Definition at line 144 of file lu.cpp.

References eye_b(), and it_assert.

## qr() [1/6]

ITPP_EXPORT bool itpp::qr | ( | const mat & | A,
|  | mat & | Q,
|  | mat & | R )

QR factorisation of real matrix.

The QR factorization of the real matrix of size is given by

where is an orthogonal matrix and is an upper triangular matrix.

Returns true is calculation succeeds. False otherwise. Uses the LAPACK routine DGEQRF and DORGQR.

Definition at line 303 of file qr.cpp.

References it_error.

## qr() [2/6]

ITPP_EXPORT bool itpp::qr | ( | const mat & | A,
|  | mat & | R )

QR factorisation of real matrix with suppressed evaluation of Q.

For certain type of applications only the matrix of full QR factorization of the real matrix is needed. These situations arise typically in designs of square-root algorithms where it is required that . In such cases, evaluation of can be skipped.

Modification of qr(A,Q,R).

Author
  Vasek Smidl

Definition at line 309 of file qr.cpp.

References it_error.

## qr() [3/6]

ITPP_EXPORT bool itpp::qr | ( | const mat & | A,
|  | mat & | Q,
|  | mat & | R,
|  | bmat & | P )

QR factorisation of real matrix with pivoting.

The QR factorization of the real matrix of size is given by

where is an orthogonal matrix, is an upper triangular matrix and is an permutation matrix.

Returns true is calculation succeeds. False otherwise. Uses the LAPACK routines DGEQP3 and DORGQR.

Definition at line 315 of file qr.cpp.

References it_error.

## qr() [4/6]

ITPP_EXPORT bool itpp::qr | ( | const cmat & | A,
|  | cmat & | Q,
|  | cmat & | R )

QR factorisation of a complex matrix.

The QR factorization of the complex matrix of size is given by

where is an unitary matrix and is an upper triangular matrix.

Returns true is calculation succeeds. False otherwise. Uses the LAPACK routines ZGEQRF and ZUNGQR.

Definition at line 321 of file qr.cpp.

References it_error.

## qr() [5/6]

ITPP_EXPORT bool itpp::qr | ( | const cmat & | A,
|  | cmat & | R )

QR factorisation of complex matrix with suppressed evaluation of Q.

For certain type of applications only the matrix of full QR factorization of the complex matrix is needed. These situations arise typically in designs of square-root algorithms where it is required that . In such cases, evaluation of can be skipped.

Modification of qr(A,Q,R).

Author
  Vasek Smidl

Definition at line 327 of file qr.cpp.

References it_error.

## qr() [6/6]

ITPP_EXPORT bool itpp::qr | ( | const cmat & | A,
|  | cmat & | Q,
|  | cmat & | R,
|  | bmat & | P )

QR factorisation of a complex matrix with pivoting.

The QR factorization of the complex matrix of size is given by

where is an unitary matrix, is an upper triangular matrix and is an permutation matrix.

Returns true is calculation succeeds. False otherwise. Uses the LAPACK routines ZGEQP3 and ZUNGQR.

Definition at line 333 of file qr.cpp.

References it_error.

## schur() [1/4]

ITPP_EXPORT bool itpp::schur | ( | const mat & | A,
|  | mat & | U,
|  | mat & | T )

Schur decomposition of a real matrix.

This function computes the Schur form of a square real matrix . The Schur decomposition satisfies the following equation:

where: is a unitary, is upper quasi-triangular, and is the transposed matrix.

The upper quasi-triangular matrix may have blocks on its diagonal.

Uses the LAPACK routine DGEES.

Definition at line 104 of file schur.cpp.

References it_error.

Referenced by schur(), and schur().

## schur() [2/4]

ITPP_EXPORT mat itpp::schur | ( | const mat & | A | ) |

Schur decomposition of a real matrix.

This function computes the Schur form of a square real matrix . The Schur decomposition satisfies the following equation:

where: is a unitary, is upper quasi-triangular, and is the transposed matrix.

The upper quasi-triangular matrix may have blocks on its diagonal.

Returns
  Real Schur matrix

uses the LAPACK routine DGEES.

Definition at line 119 of file schur.cpp.

References schur().

## schur() [3/4]

ITPP_EXPORT bool itpp::schur | ( | const cmat & | A,
|  | cmat & | U,
|  | cmat & | T )

Schur decomposition of a complex matrix.

This function computes the Schur form of a square complex matrix . The Schur decomposition satisfies the following equation:

where: is a unitary, is upper triangular, and is the Hermitian transposition of the matrix.

Uses the LAPACK routine ZGEES.

Definition at line 111 of file schur.cpp.

References it_error.

## schur() [4/4]

ITPP_EXPORT cmat itpp::schur | ( | const cmat & | A | ) |

Schur decomposition of a complex matrix.

This function computes the Schur form of a square complex matrix . The Schur decomposition satisfies the following equation:

where: is a unitary, is upper triangular, and is the Hermitian transposition of the matrix.

Returns
  Complex Schur matrix

Uses the LAPACK routine ZGEES.

Definition at line 127 of file schur.cpp.

References schur().

## svd() [1/6]

ITPP_EXPORT bool itpp::svd | ( | const mat & | A,
|  | vec & | s )

Get singular values `s` of a real matrix `A` using SVD.

This function calculates singular values from the SVD decomposition of a real matrix . The SVD algorithm computes the decomposition of a real matrix so that

where are the singular values of . Or put differently:

where

Note
  An external LAPACK library is required by this function.

Definition at line 185 of file svd.cpp.

References it_error.

Referenced by norm(), norm(), orth(), rank(), svd(), and svd().

## svd() [2/6]

ITPP_EXPORT bool itpp::svd | ( | const cmat & | A,
|  | vec & | s )

Get singular values `s` of a complex matrix `A` using SVD.

This function calculates singular values from the SVD decomposition of a complex matrix . The SVD algorithm computes the decomposition of a complex matrix so that

where are the singular values of . Or put differently:

where

Note
  An external LAPACK library is required by this function.

Definition at line 191 of file svd.cpp.

References it_error.

## svd() [3/6]

ITPP_EXPORT vec itpp::svd | ( | const mat & | A | ) |

Return singular values of a real matrix `A` using SVD.

This function returns singular values from the SVD decomposition of a real matrix . The SVD algorithm computes the decomposition of a real matrix so that

where are the singular values of . Or put differently:

where

Note
  An external LAPACK library is required by this function.

Definition at line 211 of file svd.cpp.

References svd().

## svd() [4/6]

ITPP_EXPORT vec itpp::svd | ( | const cmat & | A | ) |

Return singular values of a complex matrix `A` using SVD.

This function returns singular values from the SVD decomposition of a complex matrix . The SVD algorithm computes the decomposition of a complex matrix so that

where are the singular values of . Or put differently:

where

Note
  An external LAPACK library is required by this function.

Definition at line 218 of file svd.cpp.

References svd().

## svd() [5/6]

ITPP_EXPORT bool itpp::svd | ( | const mat & | A,
|  | mat & | U,
|  | vec & | s,
|  | mat & | V )

Perform Singular Value Decomposition (SVD) of a real matrix `A`.

This function returns two orthonormal matrices and and a vector of singular values . The SVD algorithm computes the decomposition of a real matrix so that

where the elements of , are the singular values of . Or put differently:

where

Note
  An external LAPACK library is required by this function.

Definition at line 197 of file svd.cpp.

References it_error.

## svd() [6/6]

ITPP_EXPORT bool itpp::svd | ( | const cmat & | A,
|  | cmat & | U,
|  | vec & | s,
|  | cmat & | V )

Perform Singular Value Decomposition (SVD) of a complex matrix `A`.

This function returns two orthonormal matrices and and a vector of singular values . The SVD algorithm computes the decomposition of a complex matrix so that

where the elements of , are the singular values of . Or put differently:

where

Note
  An external LAPACK library is required by this function.

Definition at line 203 of file svd.cpp.

References it_error.

Generated on for IT++ by Doxygen 1.15.0