#include <UpperHessenbergQR.h>
Public Member Functions | |
void | compute (ConstGenericMatrix &mat, const Scalar &shift=Scalar(0)) |
void | matrix_QtHQ (Matrix &dest) const |
Matrix | matrix_R () const |
TridiagQR (ConstGenericMatrix &mat, const Scalar &shift=Scalar(0)) | |
TridiagQR (Index size) | |
Public Member Functions inherited from Spectra::UpperHessenbergQR< double > | |
void | apply_QtY (GenericMatrix Y) const |
void | apply_QtY (Vector &Y) const |
void | apply_QY (GenericMatrix Y) const |
void | apply_QY (Vector &Y) const |
void | apply_YQ (GenericMatrix Y) const |
void | apply_YQt (GenericMatrix Y) const |
virtual void | compute (ConstGenericMatrix &mat, const double &shift=double(0)) |
virtual void | matrix_QtHQ (Matrix &dest) const |
virtual Matrix | matrix_R () const |
UpperHessenbergQR (ConstGenericMatrix &mat, const double &shift=double(0)) | |
UpperHessenbergQR (Index size) | |
virtual | ~UpperHessenbergQR () |
Private Types | |
typedef Matrix::Index | Index |
typedef Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > | Matrix |
typedef Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > | Vector |
Private Attributes | |
const typedef Eigen::Ref< const Matrix > | ConstGenericMatrix |
Vector | m_T_diag |
Vector | m_T_lsub |
Vector | m_T_usub |
Vector | m_T_usub2 |
Additional Inherited Members | |
Static Protected Member Functions inherited from Spectra::UpperHessenbergQR< double > | |
static void | compute_rotation (const double &x, const double &y, double &r, double &c, double &s) |
Protected Attributes inherited from Spectra::UpperHessenbergQR< double > | |
bool | m_computed |
Index | m_n |
Array | m_rot_cos |
Array | m_rot_sin |
double | m_shift |
Perform the QR decomposition of a tridiagonal matrix, a special case of upper Hessenberg matrices.
Scalar | The element type of the matrix. Currently supported types are float , double and long double . |
Definition at line 475 of file UpperHessenbergQR.h.
|
private |
Definition at line 482 of file UpperHessenbergQR.h.
|
private |
Definition at line 478 of file UpperHessenbergQR.h.
|
private |
Definition at line 479 of file UpperHessenbergQR.h.
|
inline |
Constructor to preallocate memory. Computation can be performed later by calling the compute() method.
Definition at line 494 of file UpperHessenbergQR.h.
|
inline |
Constructor to create an object that performs and stores the QR decomposition of an upper Hessenberg matrix mat
, with an optional shift: . Here stands for the matrix mat
, and is the shift.
mat | Matrix type can be Eigen::Matrix<Scalar, ...> (e.g. Eigen::MatrixXd and Eigen::MatrixXf ), or its mapped version (e.g. Eigen::Map<Eigen::MatrixXd> ). Only the major- and sub- diagonal parts of the matrix are used. |
Definition at line 510 of file UpperHessenbergQR.h.
|
inline |
Conduct the QR factorization of a tridiagonal matrix with an optional shift.
mat | Matrix type can be Eigen::Matrix<Scalar, ...> (e.g. Eigen::MatrixXd and Eigen::MatrixXf ), or its mapped version (e.g. Eigen::Map<Eigen::MatrixXd> ). Only the major- and sub- diagonal parts of the matrix are used. |
Definition at line 526 of file UpperHessenbergQR.h.
|
inline |
Overwrite dest
with , where is the input matrix mat
, and is the shift. The result is a tridiagonal matrix.
mat | The matrix to be overwritten, whose type should be Eigen::Matrix<Scalar, ...> , depending on the template parameter Scalar defined. |
Definition at line 623 of file UpperHessenbergQR.h.
|
inline |
Return the matrix in the QR decomposition, which is an upper triangular matrix.
Eigen::Matrix<Scalar, ...>
, depending on the template parameter Scalar
defined. Definition at line 603 of file UpperHessenbergQR.h.
|
private |
Definition at line 480 of file UpperHessenbergQR.h.
|
private |
Definition at line 484 of file UpperHessenbergQR.h.
|
private |
Definition at line 485 of file UpperHessenbergQR.h.
|
private |
Definition at line 486 of file UpperHessenbergQR.h.
|
private |
Definition at line 487 of file UpperHessenbergQR.h.