tensor-0.1.0
 All Data Structures Namespaces Functions Variables Typedefs Enumerations Enumerator Groups Pages
linalg Namespace Reference

Namespace for Linear Algebra functions based on BLAS, LAPACK, Lanczos and related algorithms. More...

Data Structures

class  CArpack
 Finder of a few eigenvalues of eigenvectors via Arnoldi method. More...
 
class  RArpack
 Finder of a few eigenvalues of eigenvectors via Arnoldi method. More...
 

Enumerations

enum  EigType {
  LargestMagnitude = 0, SmallestMagnitude = 1, LargestReal = 2, LargestAlgebraic = 2,
  SmallestReal = 3, SmallestAlgebraic = 3, LargestImaginary = 4, SmallestImaginary = 5
}
 Type of eigenvalues that eigs and Arpack compute. More...
 

Functions

const CTensor eig (const RTensor &A, CTensor *R=0, CTensor *L=0)
 Eigenvalue decomposition of a real matrix. More...
 
const CTensor eig (const CTensor &A, CTensor *R=0, CTensor *L=0)
 Eigenvalue decomposition of a complex matrix. More...
 
double eig_power_left (const RTensor &O, RTensor *vector, size_t iter, double tol)
 Left eigenvalue and eigenvector with the largest absolute value, computed using the power method.
 
tensor::cdouble eig_power_left (const CTensor &O, CTensor *vector, size_t iter, double tol)
 Left eigenvalue and eigenvector with the largest absolute value, computed using the power method.
 
double eig_power_right (const RTensor &O, RTensor *vector, size_t iter, double tol)
 Right eigenvalue and eigenvector with the largest absolute value, computed using the power method.
 
tensor::cdouble eig_power_right (const CTensor &O, CTensor *vector, size_t iter, double tol)
 Right eigenvalue and eigenvector with the largest absolute value, computed using the power method.
 
RTensor eig_sym (const RTensor &A, RTensor *V)
 Eigenvalue decomposition of a real matrix. More...
 
RTensor eig_sym (const CTensor &A, CTensor *V)
 Eigenvalue decomposition of a complex matrix. More...
 
CTensor eigs (const CTensor &A, int eig_type, size_t neig, CTensor *vectors=NULL, const tensor::cdouble *initial_guess=NULL)
 Find out a few eigenvalues and eigenvectors of a complex nonsymmetric matrix. More...
 
CTensor eigs (const CSparse &A, int eig_type, size_t neig, CTensor *vectors=NULL, const tensor::cdouble *initial_guess=NULL)
 Find out a few eigenvalues and eigenvectors of a nonsymmetric complex sparse matrix. More...
 
RTensor eigs (const RTensor &A, int eig_type, size_t neig, RTensor *vectors=NULL, const double *initial_guess=NULL)
 Find out a few eigenvalues and eigenvectors of a real nonsymmetric matrix. More...
 
RTensor eigs (const RSparse &A, int eig_type, size_t neig, RTensor *vectors=NULL, const double *initial_guess=NULL)
 Find out a few eigenvalues and eigenvectors of a nonsymmetric real sparse matrix. More...
 
RTensor eigs_sym (const RTensor &A, int eig_type, size_t neig, RTensor *vectors=NULL, const double *initial_guess=NULL)
 Find out a few eigenvalues and eigenvectors of a symmetric real matrix. More...
 
RTensor eigs_sym (const CTensor &A, int eig_type, size_t neig, CTensor *vectors=NULL, const tensor::cdouble *initial_guess=NULL)
 Find out a few eigenvalues and eigenvectors of a symmetric real matrix. More...
 
RTensor eigs_sym (const RSparse &A, int eig_type, size_t neig, RTensor *vectors=NULL, const double *initial_guess=NULL)
 Find out a few eigenvalues and eigenvectors of a symmetric real sparse matrix. More...
 
RTensor eigs_sym (const CSparse &A, int eig_type, size_t neig, CTensor *vectors=NULL, const tensor::cdouble *initial_guess=NULL)
 Find out a few eigenvalues and eigenvectors of a hermitian complex sparse matrix. More...
 
const RTensor expm (const RTensor &Aunorm, unsigned int order)
 Compute the exponential of a real matrix. More...
 
const CTensor expm (const CTensor &Aunorm, unsigned int order)
 Compute the exponential of a real matrix. More...
 
const RTensor solve (const RTensor &A, const RTensor &B)
 Solve a real linear system of equations by Gauss-Seidel method. More...
 
const CTensor solve (const CTensor &A, const CTensor &B)
 Solve a complex linear system of equations by Gauss-Seidel method.
 
const RTensor solve_with_svd (const RTensor &A, const RTensor &B, double tol)
 Solution of a linear system of equations using Penrose's pseudoinvese. More...
 
const CTensor solve_with_svd (const CTensor &A, const CTensor &B, double tol)
 Solution of a linear system of equations using Penrose's pseudoinvese. More...
 
RTensor svd (RTensor A, RTensor *U, RTensor *VT, bool economic)
 Singular value decomposition of a real matrix. More...
 
RTensor svd (CTensor A, CTensor *U, CTensor *VT, bool economic)
 Singular value decomposition of a complex matrix. More...
 

Detailed Description

Namespace for Linear Algebra functions based on BLAS, LAPACK, Lanczos and related algorithms.

Enumeration Type Documentation

Type of eigenvalues that eigs and Arpack compute.

Enumerator
LargestMagnitude 

Eigenvalues with smallest modulus.

SmallestMagnitude 

Eigenvalues with largest modulus.

LargestReal 

Eigenvalues with largest real part.

LargestAlgebraic 

Eigenvalues with largest real part.

SmallestReal 

Eigenvalues with smallest real part.

SmallestAlgebraic 

Eigenvalues with smallest real part.

LargestImaginary 

Eigenvalues with the largest imaginary part.

SmallestImaginary 

Eigenvalues with the smallest imaginary part.

Definition at line 69 of file linalg.h.

Function Documentation

CTensor linalg::eigs ( const CTensor &  A,
int  eig_type,
size_t  neig,
CTensor *  vectors = NULL,
const tensor::cdouble *  initial_guess = NULL 
)

Find out a few eigenvalues and eigenvectors of a complex nonsymmetric matrix.

CTensor linalg::eigs ( const CSparse &  A,
int  eig_type,
size_t  neig,
CTensor *  vectors = NULL,
const tensor::cdouble *  initial_guess = NULL 
)

Find out a few eigenvalues and eigenvectors of a nonsymmetric complex sparse matrix.

RTensor linalg::eigs ( const RTensor &  A,
int  eig_type,
size_t  neig,
RTensor *  vectors = NULL,
const double *  initial_guess = NULL 
)

Find out a few eigenvalues and eigenvectors of a real nonsymmetric matrix.

RTensor linalg::eigs ( const RSparse &  A,
int  eig_type,
size_t  neig,
RTensor *  vectors = NULL,
const double *  initial_guess = NULL 
)

Find out a few eigenvalues and eigenvectors of a nonsymmetric real sparse matrix.

RTensor linalg::eigs_sym ( const RTensor &  A,
int  eig_type,
size_t  neig,
RTensor *  vectors = NULL,
const double *  initial_guess = NULL 
)

Find out a few eigenvalues and eigenvectors of a symmetric real matrix.

RTensor linalg::eigs_sym ( const CTensor &  A,
int  eig_type,
size_t  neig,
CTensor *  vectors = NULL,
const tensor::cdouble *  initial_guess = NULL 
)

Find out a few eigenvalues and eigenvectors of a symmetric real matrix.

RTensor linalg::eigs_sym ( const RSparse &  A,
int  eig_type,
size_t  neig,
RTensor *  vectors = NULL,
const double *  initial_guess = NULL 
)

Find out a few eigenvalues and eigenvectors of a symmetric real sparse matrix.

RTensor linalg::eigs_sym ( const CSparse &  A,
int  eig_type,
size_t  neig,
CTensor *  vectors = NULL,
const tensor::cdouble *  initial_guess = NULL 
)

Find out a few eigenvalues and eigenvectors of a hermitian complex sparse matrix.