ViennaCL - The Vienna Computing Library  1.7.1
Free open-source GPU-accelerated linear algebra and solver library.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
gmres.hpp File Reference

Implementations of the generalized minimum residual method are in this file. More...

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...
 
class  viennacl::linalg::gmres_solver< VectorT >
 

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< ScalarTypeviennacl::linalg::detail::pipelined_solve (MatrixType const &A, viennacl::vector< ScalarType > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond, bool(*monitor)(viennacl::vector< ScalarType > const &, ScalarType, void *)=NULL, void *monitor_data=NULL)
 Implementation of a pipelined GMRES solver without preconditioner. More...
 
template<typename NumericT >
viennacl::vector< NumericTviennacl::linalg::detail::solve_impl (viennacl::compressed_matrix< NumericT > const &A, viennacl::vector< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond, bool(*monitor)(viennacl::vector< NumericT > const &, NumericT, void *)=NULL, void *monitor_data=NULL)
 Overload for the pipelined CG implementation for the ViennaCL sparse matrix types. More...
 
template<typename NumericT >
viennacl::vector< NumericTviennacl::linalg::detail::solve_impl (viennacl::coordinate_matrix< NumericT > const &A, viennacl::vector< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond, bool(*monitor)(viennacl::vector< NumericT > const &, NumericT, void *)=NULL, void *monitor_data=NULL)
 Overload for the pipelined CG implementation for the ViennaCL sparse matrix types. More...
 
template<typename NumericT >
viennacl::vector< NumericTviennacl::linalg::detail::solve_impl (viennacl::ell_matrix< NumericT > const &A, viennacl::vector< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond, bool(*monitor)(viennacl::vector< NumericT > const &, NumericT, void *)=NULL, void *monitor_data=NULL)
 Overload for the pipelined CG implementation for the ViennaCL sparse matrix types. More...
 
template<typename NumericT >
viennacl::vector< NumericTviennacl::linalg::detail::solve_impl (viennacl::sliced_ell_matrix< NumericT > const &A, viennacl::vector< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond, bool(*monitor)(viennacl::vector< NumericT > const &, NumericT, void *)=NULL, void *monitor_data=NULL)
 Overload for the pipelined CG implementation for the ViennaCL sparse matrix types. More...
 
template<typename NumericT >
viennacl::vector< NumericTviennacl::linalg::detail::solve_impl (viennacl::hyb_matrix< NumericT > const &A, viennacl::vector< NumericT > const &rhs, gmres_tag const &tag, viennacl::linalg::no_precond, bool(*monitor)(viennacl::vector< NumericT > const &, NumericT, void *)=NULL, void *monitor_data=NULL)
 Overload for the pipelined CG implementation for the ViennaCL sparse matrix types. More...
 
template<typename MatrixT , typename VectorT , typename PreconditionerT >
VectorT viennacl::linalg::detail::solve_impl (MatrixT const &matrix, VectorT const &rhs, gmres_tag const &tag, PreconditionerT const &precond, bool(*monitor)(VectorT const &, typename viennacl::result_of::cpu_value_type< typename viennacl::result_of::value_type< VectorT >::type >::type, void *)=NULL, void *monitor_data=NULL)
 Implementation of the GMRES solver. 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)
 
template<typename IndexT , typename NumericT , typename PreconditionerT >
std::vector< NumericTviennacl::linalg::solve (std::vector< std::map< IndexT, NumericT > > const &A, std::vector< NumericT > const &rhs, gmres_tag const &tag, PreconditionerT const &precond)
 Convenience overload for calling the preconditioned BiCGStab solver using types from the C++ STL. More...
 
template<typename MatrixT , typename VectorT >
VectorT viennacl::linalg::solve (MatrixT const &A, VectorT const &rhs, gmres_tag const &tag)
 Entry point for the unpreconditioned GMRES method. More...
 

Detailed Description

Implementations of the generalized minimum residual method are in this file.

Definition in file gmres.hpp.