GMRES is one of the most widely used Krylov iterative method for solving sparse
and large linear systems. It has been developed by Saad \emph{et al.}~\cite{Saad86} as a
generalized method to deal with unsymmetric and non-Hermitian problems, and
-indefinite symmetric problems too. In its original version called full GMRES, it
+indefinite symmetric problems too. In its original version called full GMRES, this algorithm
minimizes the residual over the current Krylov subspace until convergence in at
-most $n$ iterations, where $n$ is the size of the sparse matrix. It should be
-noticed that full GMRES is too expensive in the case of large matrices since the
+most $n$ iterations, where $n$ is the size of the sparse matrix.
+Full GMRES is however too much expensive in the case of large matrices, since the
required orthogonalization process per iteration grows quadratically with the
-number of iterations. For that reason, in practice GMRES is restarted after each
+number of iterations. For that reason, GMRES is restarted in practice after each
$m\ll n$ iterations to avoid the storage of a large orthonormal basis. However,
the convergence behavior of the restarted GMRES, called GMRES($m$), in many
cases depends quite critically on the value of $m$~\cite{Huang89}. Therefore in