55template<
typename MatrixType,
typename Rhs,
typename Dest,
typename Preconditioner>
63 typedef typename Dest::Scalar
Scalar;
101 std::vector < JacobiRotation < Scalar > >
G(restart);
112 for (
Index k = 1; k <= restart; ++k)
116 v = VectorType::Unit(
m, k - 1);
120 for (
Index i = k - 1;
i >= 0; --
i) {
121 v.tail(
m -
i).applyHouseholderOnTheLeft(
H.col(
i).tail(
m -
i - 1),
tau.coeffRef(
i),
workspace.data());
125 t.noalias() =
mat *
v;
131 v.tail(
m -
i).applyHouseholderOnTheLeft(
H.col(
i).tail(
m -
i - 1),
tau.coeffRef(
i),
workspace.data());
134 if (
v.tail(
m - k).norm() != 0.0)
140 v.tail(
m - k).makeHouseholder(
Hk_tail,
tau.coeffRef(k), beta);
159 G[k - 1].makeGivens(
v(k - 1),
v(k));
162 v.applyOnTheLeft(k - 1, k,
G[k - 1].
adjoint());
163 w.applyOnTheLeft(k - 1, k,
G[k - 1].
adjoint());
167 H.col(k-1).head(k) =
v.head(k);
172 if (stop || k == restart)
198 p0.noalias() = rhs -
mat*
x;
219template<
typename _MatrixType,
220 typename _Preconditioner = DiagonalPreconditioner<typename _MatrixType::Scalar> >
225template<
typename _MatrixType,
typename _Preconditioner>
268template<
typename _MatrixType,
typename _Preconditioner>
284 typedef typename MatrixType::Scalar
Scalar;
303 template<
typename MatrixDerived>
318 template<
typename Rhs,
typename Dest>
Matrix3f m
Definition AngleAxis_mimic_euler.cpp:1
Array< int, Dynamic, 1 > v
Definition Array_initializer_list_vector_cxx11.cpp:1
int i
Definition BiCGSTAB_step_by_step.cpp:9
JacobiRotation< float > G
Definition Jacobi_makeGivens.cpp:2
Vector3f p0
Definition MatrixBase_all.cpp:2
RowVector3d w
Definition Matrix_resize_int.cpp:3
MatrixXf mat
Definition Tutorial_AdvancedInitialization_CommaTemporary.cpp:1
void adjoint(const MatrixType &m)
Definition adjoint.cpp:67
Scalar * b
Definition benchVecAdd.cpp:17
SCALAR Scalar
Definition bench_gemm.cpp:46
NumTraits< Scalar >::Real RealScalar
Definition bench_gemm.cpp:47
MatrixXf MatrixType
Definition benchmark-blocking-sizes.cpp:52
A GMRES solver for sparse square problems.
Definition GMRES.h:270
_MatrixType MatrixType
Definition GMRES.h:283
GMRES()
Definition GMRES.h:291
GMRES(const EigenBase< MatrixDerived > &A)
Definition GMRES.h:304
MatrixType::RealScalar RealScalar
Definition GMRES.h:285
_Preconditioner Preconditioner
Definition GMRES.h:286
~GMRES()
Definition GMRES.h:306
MatrixType::Scalar Scalar
Definition GMRES.h:284
void set_restart(const Index restart)
Definition GMRES.h:315
void _solve_vector_with_guess_impl(const Rhs &b, Dest &x) const
Definition GMRES.h:319
Index get_restart()
Definition GMRES.h:310
Base class for linear iterative solvers.
Definition IterativeSolverBase.h:144
Index maxIterations() const
Definition IterativeSolverBase.h:281
ComputationInfo m_info
Definition IterativeSolverBase.h:438
RealScalar m_error
Definition IterativeSolverBase.h:436
void _solve_impl(const Rhs &b, Dest &x) const
Definition IterativeSolverBase.h:400
Preconditioner m_preconditioner
Definition IterativeSolverBase.h:431
Index m_iterations
Definition IterativeSolverBase.h:437
bool m_isInitialized
Definition SparseSolverBase.h:119
GMRES< _MatrixType, _Preconditioner > & derived()
Definition SparseSolverBase.h:79
RealScalar m_tolerance
Definition IterativeSolverBase.h:434
const ActualMatrixType & matrix() const
Definition IterativeSolverBase.h:419
The matrix class, also used for vectors and row-vectors.
Definition Matrix.h:180
#define abs(x)
Definition datatypes.h:17
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy y set format x g set format y g set format x2 g set format y2 g set format z g set angles radians set nogrid set key title set key left top Right noreverse box linetype linewidth samplen spacing width set nolabel set noarrow set nologscale set logscale x set set pointsize set encoding default set nopolar set noparametric set set set set surface set nocontour set clabel set mapping cartesian set nohidden3d set cntrparam order set cntrparam linear set cntrparam levels auto set cntrparam points set size set set xzeroaxis lt lw set x2zeroaxis lt lw set yzeroaxis lt lw set y2zeroaxis lt lw set tics in set ticslevel set tics set mxtics default set mytics default set mx2tics default set my2tics default set xtics border mirror norotate autofreq set ytics border mirror norotate autofreq set ztics border nomirror norotate autofreq set nox2tics set noy2tics set timestamp bottom norotate set rrange[*:*] noreverse nowriteback set trange[*:*] noreverse nowriteback set urange[*:*] noreverse nowriteback set vrange[*:*] noreverse nowriteback set xlabel matrix size set x2label set timefmt d m y n H
Definition gnuplot_common_settings.hh:74
set noclip points set clip one set noclip two set bar set border lt lw set xdata set ydata set zdata set x2data set y2data set boxwidth set dummy x
Definition gnuplot_common_settings.hh:12
@ NumericalIssue
Definition Constants.h:444
@ Success
Definition Constants.h:442
@ NoConvergence
Definition Constants.h:446
DenseIndex ret
Definition level1_cplx_impl.h:44
const Scalar & y
Definition MathFunctions.h:821
bool gmres(const MatrixType &mat, const Rhs &rhs, Dest &x, const Preconditioner &precond, Index &iters, const Index &restart, typename Dest::RealScalar &tol_error)
Definition GMRES.h:56
@ Rhs
Definition TensorContractionMapper.h:18
Namespace containing all symbols from the Eigen library.
Definition bench_norm.cpp:85
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition Meta.h:74
Definition BandTriangularSolver.h:13
Definition EigenBase.h:30
_Preconditioner Preconditioner
Definition GMRES.h:229
_MatrixType MatrixType
Definition GMRES.h:228
Definition ForwardDeclarations.h:17