lambda-lanczos 2.1.1
Loading...
Searching...
No Matches
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.
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.
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.

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.