This commit is contained in:
Daniel Lowengrub 2010-06-14 14:17:19 +03:00
commit 8673f68fd8
2 changed files with 2 additions and 5 deletions

View File

@ -129,7 +129,7 @@ template<typename _MatrixType> class Tridiagonalization
m_hCoeffs(matrix.cols() > 1 ? matrix.cols()-1 : 1), m_hCoeffs(matrix.cols() > 1 ? matrix.cols()-1 : 1),
m_isInitialized(false) m_isInitialized(false)
{ {
_compute(m_matrix, m_hCoeffs); ei_tridiagonalization_inplace(m_matrix, m_hCoeffs);
m_isInitialized = true; m_isInitialized = true;
} }
@ -287,9 +287,6 @@ template<typename _MatrixType> class Tridiagonalization
protected: protected:
static void _compute(MatrixType& matA, CoeffVectorType& hCoeffs);
static void _decomposeInPlace3x3(MatrixType& mat, DiagonalType& diag, SubDiagonalType& subdiag, bool extractQ = true);
MatrixType m_matrix; MatrixType m_matrix;
CoeffVectorType m_hCoeffs; CoeffVectorType m_hCoeffs;
bool m_isInitialized; bool m_isInitialized;

View File

@ -4,7 +4,7 @@ cout << "Here is a random symmetric 5x5 matrix:" << endl << A << endl << endl;
VectorXd diag(5); VectorXd diag(5);
VectorXd subdiag(4); VectorXd subdiag(4);
Tridiagonalization<MatrixXd>::decomposeInPlace(A, diag, subdiag); ei_tridiagonalization_inplace(A, diag, subdiag, true);
cout << "The orthogonal matrix Q is:" << endl << A << endl; cout << "The orthogonal matrix Q is:" << endl << A << endl;
cout << "The diagonal of the tridiagonal matrix T is:" << endl << diag << endl; cout << "The diagonal of the tridiagonal matrix T is:" << endl << diag << endl;
cout << "The subdiagonal of the tridiagonal matrix T is:" << endl << subdiag << endl; cout << "The subdiagonal of the tridiagonal matrix T is:" << endl << subdiag << endl;