lambda-lanczos 2.0.0
All Classes Namespaces Files Functions Variables Typedefs Pages
lambda_lanczos::tridiagonal_lapack Namespace Reference

Functions

lapack_int stev (int matrix_layout, char jobz, lapack_int n, float *d, float *e, float *z, lapack_int ldz)
 
lapack_int stev (int matrix_layout, char jobz, lapack_int n, double *d, double *e, double *z, lapack_int ldz)
 
template<typename T >
find_mth_eigenvalue (const std::vector< T > &alpha, const std::vector< T > &beta, const size_t index)
 Finds the mth smaller eigenvalue of given tridiagonal matrix. More...
 
template<typename T >
void tridiagonal_eigenpairs (const std::vector< T > &alpha, const std::vector< T > &beta, std::vector< T > &eigenvalues, std::vector< std::vector< T > > &eigenvectors, bool compute_eigenvector=true)
 Computes all eigenpairs (eigenvalues and eigenvectors) for given tri-diagonal matrix. More...
 
template<typename T >
void tridiagonal_eigenvalues (const std::vector< T > &alpha, const std::vector< T > &beta, std::vector< T > &eigenvalues)
 Computes all eigenvalues for given tri-diagonal matrix using the Implicitly Shifted QR algorithm. More...
 

Function Documentation

◆ find_mth_eigenvalue()

template<typename T >
T lambda_lanczos::tridiagonal_lapack::find_mth_eigenvalue ( const std::vector< T > &  alpha,
const std::vector< T > &  beta,
const size_t  index 
)
inline

Finds the mth smaller eigenvalue of given tridiagonal matrix.

◆ stev() [1/2]

lapack_int lambda_lanczos::tridiagonal_lapack::stev ( int  matrix_layout,
char  jobz,
lapack_int  n,
double *  d,
double *  e,
double *  z,
lapack_int  ldz 
)
inline

◆ stev() [2/2]

lapack_int lambda_lanczos::tridiagonal_lapack::stev ( int  matrix_layout,
char  jobz,
lapack_int  n,
float *  d,
float *  e,
float *  z,
lapack_int  ldz 
)
inline

◆ tridiagonal_eigenpairs()

template<typename T >
void lambda_lanczos::tridiagonal_lapack::tridiagonal_eigenpairs ( const std::vector< T > &  alpha,
const std::vector< T > &  beta,
std::vector< T > &  eigenvalues,
std::vector< std::vector< T > > &  eigenvectors,
bool  compute_eigenvector = true 
)
inline

Computes all eigenpairs (eigenvalues and eigenvectors) for given tri-diagonal matrix.

◆ tridiagonal_eigenvalues()

template<typename T >
void lambda_lanczos::tridiagonal_lapack::tridiagonal_eigenvalues ( const std::vector< T > &  alpha,
const std::vector< T > &  beta,
std::vector< T > &  eigenvalues 
)
inline

Computes all eigenvalues for given tri-diagonal matrix using the Implicitly Shifted QR algorithm.

Parameters
[in]alphaDiagonal elements of the full tridiagonal matrix.
[in]betaSub-diagonal elements of the full tridiagonal matrix.
[out]eigenvaluesEigenvalues.
Returns
Count of forced breaks due to unconvergence.