diff options
author | giacomo po <giacomopo@gmail.com> | 2014-03-17 16:33:52 -0700 |
---|---|---|
committer | giacomo po <giacomopo@gmail.com> | 2014-03-17 16:33:52 -0700 |
commit | 3e42b775ead02a2b389840b1b8fd7c28121fb387 (patch) | |
tree | 7c319c488680a7d99617f7e83f957b219f1c7631 /unsupported/test/minres.cpp | |
parent | dead9085c084327e62c208ae4b4718a2f1f36cb9 (diff) |
MINRES, bug #715: add support for zero rhs, and remove square test.
Diffstat (limited to 'unsupported/test/minres.cpp')
-rw-r--r-- | unsupported/test/minres.cpp | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/unsupported/test/minres.cpp b/unsupported/test/minres.cpp index fd12da548..81b762c37 100644 --- a/unsupported/test/minres.cpp +++ b/unsupported/test/minres.cpp @@ -1,8 +1,8 @@ // This file is part of Eigen, a lightweight C++ template library // for linear algebra. // -// Copyright (C) 2011 Gael Guennebaud <g.gael@free.fr> // Copyright (C) 2012 Giacomo Po <gpo@ucla.edu> +// Copyright (C) 2011 Gael Guennebaud <g.gael@free.fr> // // This Source Code Form is subject to the terms of the Mozilla // Public License v. 2.0. If a copy of the MPL was not distributed @@ -14,19 +14,29 @@ template<typename T> void test_minres_T() { - MINRES<SparseMatrix<T>, Lower, DiagonalPreconditioner<T> > minres_colmajor_diag; - MINRES<SparseMatrix<T>, Lower, IdentityPreconditioner > minres_colmajor_I; -// MINRES<SparseMatrix<T>, Lower, IncompleteLUT<T> > minres_colmajor_ilut; - //minres<SparseMatrix<T>, SSORPreconditioner<T> > minres_colmajor_ssor; + // Identity preconditioner + MINRES<SparseMatrix<T>, Lower, IdentityPreconditioner > minres_colmajor_lower_I; + MINRES<SparseMatrix<T>, Upper, IdentityPreconditioner > minres_colmajor_upper_I; + + // Diagonal preconditioner + MINRES<SparseMatrix<T>, Lower, DiagonalPreconditioner<T> > minres_colmajor_lower_diag; + MINRES<SparseMatrix<T>, Upper, DiagonalPreconditioner<T> > minres_colmajor_upper_diag; + + // call tests for SPD matrix + CALL_SUBTEST( check_sparse_spd_solving(minres_colmajor_lower_I) ); + CALL_SUBTEST( check_sparse_spd_solving(minres_colmajor_upper_I) ); + + CALL_SUBTEST( check_sparse_spd_solving(minres_colmajor_lower_diag) ); + CALL_SUBTEST( check_sparse_spd_solving(minres_colmajor_upper_diag) ); + + // TO DO: symmetric semi-definite matrix + // TO DO: symmetric indefinite matrix - CALL_SUBTEST( check_sparse_square_solving(minres_colmajor_diag) ); - CALL_SUBTEST( check_sparse_spd_solving(minres_colmajor_I) ); - // CALL_SUBTEST( check_sparse_square_solving(minres_colmajor_ilut) ); - //CALL_SUBTEST( check_sparse_square_solving(minres_colmajor_ssor) ); } void test_minres() { CALL_SUBTEST_1(test_minres_T<double>()); -// CALL_SUBTEST_2(test_minres_T<std::complex<double> >()); +// CALL_SUBTEST_2(test_minres_T<std::compex<double> >()); + } |