diff options
author | Chen-Pang He <jdh8@ms63.hinet.net> | 2013-07-15 00:43:14 +0800 |
---|---|---|
committer | Chen-Pang He <jdh8@ms63.hinet.net> | 2013-07-15 00:43:14 +0800 |
commit | 9be658f7015161989b7ecccd70fd050ce563cad9 (patch) | |
tree | 070c28b551973bffe3452d40d8a6b727559dfc71 /unsupported/test/matrix_power.cpp | |
parent | b8f0364a1c56784fa666c783e21c4bd1b218b9b0 (diff) |
generateTestMatrix can use processTriangularMatrix
Diffstat (limited to 'unsupported/test/matrix_power.cpp')
-rw-r--r-- | unsupported/test/matrix_power.cpp | 27 |
1 files changed, 0 insertions, 27 deletions
diff --git a/unsupported/test/matrix_power.cpp b/unsupported/test/matrix_power.cpp index 3ee19fc56..849e4287b 100644 --- a/unsupported/test/matrix_power.cpp +++ b/unsupported/test/matrix_power.cpp @@ -96,33 +96,6 @@ void testGeneral(const MatrixType& m, double tol) } } -// For complex matrices, any matrix is fine. -template<typename MatrixType, int IsComplex = NumTraits<typename internal::traits<MatrixType>::Scalar>::IsComplex> -struct processTriangularMatrix -{ - static void run(MatrixType&, MatrixType&, const MatrixType&) - { } -}; - -// For real matrices, make sure none of the eigenvalues are negative. -template<typename MatrixType> -struct processTriangularMatrix<MatrixType,0> -{ - static void run(MatrixType& m, MatrixType& T, const MatrixType& U) - { - typedef typename MatrixType::Index Index; - const Index size = m.cols(); - - for (Index i=0; i < size; ++i) { - if (i == size - 1 || T.coeff(i+1,i) == 0) - T.coeffRef(i,i) = std::abs(T.coeff(i,i)); - else - ++i; - } - m = U * T * U.adjoint(); - } -}; - template<typename MatrixType> void testSingular(MatrixType m, double tol) { |