minres.cpp File Reference
#include <cmath>
#include "../../test/sparse_solver.h"
#include <Eigen/IterativeSolvers>

Functions

template<typename T >
void test_minres_T ()
 
 EIGEN_DECLARE_TEST (minres)
 

Function Documentation

◆ EIGEN_DECLARE_TEST()

EIGEN_DECLARE_TEST ( minres  )
38  {
39  CALL_SUBTEST_1(test_minres_T<double>());
40  // CALL_SUBTEST_2(test_minres_T<std::complex<double> >());
41 }
#define CALL_SUBTEST_1(FUNC)
Definition: split_test_helper.h:4

References CALL_SUBTEST_1.

◆ test_minres_T()

template<typename T >
void test_minres_T ( )
16  {
17  // Identity preconditioner
18  MINRES<SparseMatrix<T>, Lower, IdentityPreconditioner> minres_colmajor_lower_I;
19  MINRES<SparseMatrix<T>, Upper, IdentityPreconditioner> minres_colmajor_upper_I;
20 
21  // Diagonal preconditioner
22  MINRES<SparseMatrix<T>, Lower, DiagonalPreconditioner<T> > minres_colmajor_lower_diag;
23  MINRES<SparseMatrix<T>, Upper, DiagonalPreconditioner<T> > minres_colmajor_upper_diag;
24  MINRES<SparseMatrix<T>, Lower | Upper, DiagonalPreconditioner<T> > minres_colmajor_uplo_diag;
25 
26  // call tests for SPD matrix
27  CALL_SUBTEST(check_sparse_spd_solving(minres_colmajor_lower_I));
28  CALL_SUBTEST(check_sparse_spd_solving(minres_colmajor_upper_I));
29 
30  CALL_SUBTEST(check_sparse_spd_solving(minres_colmajor_lower_diag));
31  CALL_SUBTEST(check_sparse_spd_solving(minres_colmajor_upper_diag));
32  CALL_SUBTEST(check_sparse_spd_solving(minres_colmajor_uplo_diag));
33 
34  // TO DO: symmetric semi-definite matrix
35  // TO DO: symmetric indefinite matrix
36 }
A preconditioner based on the digonal entries.
Definition: BasicPreconditioners.h:39
A naive preconditioner which approximates any matrix as the identity matrix.
Definition: BasicPreconditioners.h:181
A minimal residual solver for sparse symmetric problems.
Definition: MINRES.h:188
@ Lower
Definition: Constants.h:211
@ Upper
Definition: Constants.h:213
#define CALL_SUBTEST(FUNC)
Definition: main.h:382
void check_sparse_spd_solving(Solver &solver, int maxSize=(std::min)(300, EIGEN_TEST_MAX_SIZE), int maxRealWorldSize=100000)
Definition: sparse_solver.h:392

References CALL_SUBTEST, check_sparse_spd_solving(), Eigen::Lower, and Eigen::Upper.