Implementations of the generalized minimum residual method are in this file. More...
#include <vector>#include <cmath>#include <limits>#include "viennacl/forwards.h"#include "viennacl/tools/tools.hpp"#include "viennacl/linalg/norm_2.hpp"#include "viennacl/linalg/prod.hpp"#include "viennacl/linalg/inner_prod.hpp"#include "viennacl/traits/clear.hpp"#include "viennacl/traits/size.hpp"#include "viennacl/traits/context.hpp"#include "viennacl/meta/result_of.hpp"#include "viennacl/linalg/iterative_operations.hpp"#include "viennacl/vector_proxy.hpp"Go to the source code of this file.
Classes | |
| class | viennacl::linalg::gmres_tag |
| A tag for the solver GMRES. Used for supplying solver parameters and for dispatching the solve() function. More... | |
Namespaces | |
| viennacl | |
| Main namespace in ViennaCL. Holds all the basic types such as vector, matrix, etc. and defines operations upon them. | |
| viennacl::linalg | |
| Provides all linear algebra operations which are not covered by operator overloads. | |
| viennacl::linalg::detail | |
| Namespace holding implementation details for linear algebra routines. Usually not of interest for a library user. | |
Functions | |
| template<typename SrcVectorT , typename DestVectorT > | |
| void | viennacl::linalg::detail::gmres_copy_helper (SrcVectorT const &src, DestVectorT &dest, vcl_size_t len, vcl_size_t start=0) |
| template<typename NumericT , typename DestVectorT > | |
| void | viennacl::linalg::detail::gmres_copy_helper (viennacl::vector< NumericT > const &src, DestVectorT &dest, vcl_size_t len, vcl_size_t start=0) |
| template<typename VectorT , typename NumericT > | |
| void | viennacl::linalg::detail::gmres_setup_householder_vector (VectorT const &input_vec, VectorT &hh_vec, NumericT &beta, NumericT &mu, vcl_size_t j) |
| Computes the householder vector 'hh_vec' which rotates 'input_vec' such that all entries below the j-th entry of 'v' become zero. More... | |
| template<typename VectorT , typename NumericT > | |
| void | viennacl::linalg::detail::gmres_householder_reflect (VectorT &x, VectorT const &h, NumericT beta) |
| template<typename MatrixType , typename ScalarType > | |
| viennacl::vector< ScalarType > | viennacl::linalg::detail::pipelined_solve (MatrixType const &A, viennacl::vector< ScalarType > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Implementation of a pipelined GMRES solver without preconditioner. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::compressed_matrix< NumericT > const &A, viennacl::vector_base< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::compressed_matrix< NumericT > const &A, viennacl::vector< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::compressed_matrix< NumericT > const &A, viennacl::vector_range< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::compressed_matrix< NumericT > const &A, viennacl::vector_slice< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::coordinate_matrix< NumericT > const &A, viennacl::vector_base< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::coordinate_matrix< NumericT > const &A, viennacl::vector< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::coordinate_matrix< NumericT > const &A, viennacl::vector_range< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::coordinate_matrix< NumericT > const &A, viennacl::vector_slice< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::ell_matrix< NumericT > const &A, viennacl::vector_base< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::ell_matrix< NumericT > const &A, viennacl::vector< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::ell_matrix< NumericT > const &A, viennacl::vector_range< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::ell_matrix< NumericT > const &A, viennacl::vector_slice< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::sliced_ell_matrix< NumericT > const &A, viennacl::vector_base< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::sliced_ell_matrix< NumericT > const &A, viennacl::vector< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::sliced_ell_matrix< NumericT > const &A, viennacl::vector_range< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::sliced_ell_matrix< NumericT > const &A, viennacl::vector_slice< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::hyb_matrix< NumericT > const &A, viennacl::vector_base< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::hyb_matrix< NumericT > const &A, viennacl::vector< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::hyb_matrix< NumericT > const &A, viennacl::vector_range< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename NumericT > | |
| viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::hyb_matrix< NumericT > const &A, viennacl::vector_slice< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond) |
| Overload for the pipelined BiCGStab implementation for the ViennaCL sparse matrix types. More... | |
| template<typename MatrixT , typename VectorT , typename PreconditionerT > | |
| VectorT | viennacl::linalg::solve (MatrixT const &matrix, VectorT const &rhs, gmres_tag const &tag, PreconditionerT const &precond) |
| Implementation of the GMRES solver. More... | |
| template<typename MatrixT , typename VectorT > | |
| VectorT | viennacl::linalg::solve (MatrixT const &A, VectorT const &rhs, gmres_tag const &tag) |
| Convenience overload of the solve() function using GMRES. Per default, no preconditioner is used. More... | |
Implementations of the generalized minimum residual method are in this file.
Definition in file gmres.hpp.