moved MINRES to unsupported. Made unit test.

This commit is contained in:
giacomo po 2012-09-24 07:47:38 -07:00
parent 8c5e4fae61
commit dd7ff3f493
5 changed files with 35 additions and 2 deletions

View File

@ -34,7 +34,6 @@
#include "src/IterativeLinearSolvers/ConjugateGradient.h"
#include "src/IterativeLinearSolvers/BiCGSTAB.h"
#include "src/IterativeLinearSolvers/IncompleteLUT.h"
#include "src/IterativeLinearSolvers/MINRES.h"
#include "src/Core/util/ReenableStupidWarnings.h"

View File

@ -34,6 +34,7 @@
#include "../../Eigen/Householder"
#include "src/IterativeSolvers/GMRES.h"
//#include "src/IterativeSolvers/SSORPreconditioner.h"
#include "src/IterativeSolvers/MINRES.h"
//@}

View File

@ -85,4 +85,4 @@ ei_add_test(polynomialutils)
ei_add_test(kronecker_product)
ei_add_test(splines)
ei_add_test(gmres)
ei_add_test(minres)

View File

@ -0,0 +1,33 @@
// 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>
//
// 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
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
#include "../../test/sparse_solver.h"
#include <Eigen/IterativeSolvers>
template<typename T> void test_minres_T()
{
minres<SparseMatrix<T>, DiagonalPreconditioner<T> > minres_colmajor_diag;
minres<SparseMatrix<T>, IdentityPreconditioner > minres_colmajor_I;
minres<SparseMatrix<T>, IncompleteLUT<T> > minres_colmajor_ilut;
//minres<SparseMatrix<T>, SSORPreconditioner<T> > minres_colmajor_ssor;
CALL_SUBTEST( check_sparse_square_solving(minres_colmajor_diag) );
// CALL_SUBTEST( check_sparse_square_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()
{
for(int i = 0; i < g_repeat; i++) {
CALL_SUBTEST_1(test_minres_T<double>());
CALL_SUBTEST_2(test_minres_T<std::complex<double> >());
}
}