ViennaCL - The Vienna Computing Library  1.7.0
Free open-source GPU-accelerated linear algebra and solver library.
bicgstab.hpp File Reference

The stabilized bi-conjugate gradient method is implemented here. More...

Go to the source code of this file.

Classes

class  viennacl::linalg::bicgstab_tag
 A tag for the stabilized Bi-conjugate gradient solver. Used for supplying solver parameters and for dispatching the solve() function. More...
 
class  viennacl::linalg::bicgstab_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 MatrixT , typename NumericT >
viennacl::vector< NumericTviennacl::linalg::detail::pipelined_solve (MatrixT const &A, viennacl::vector_base< NumericT > const &rhs, bicgstab_tag const &tag, viennacl::linalg::no_precond, bool(*monitor)(viennacl::vector< NumericT > const &, NumericT, void *)=NULL, void *monitor_data=NULL)
 Implementation of a pipelined stabilized Bi-conjugate gradient solver. More...
 
template<typename NumericT >
viennacl::vector< NumericTviennacl::linalg::detail::solve_impl (viennacl::compressed_matrix< NumericT > const &A, viennacl::vector< NumericT > const &rhs, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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 >
VectorT viennacl::linalg::detail::solve_impl (MatrixT const &matrix, VectorT const &rhs, bicgstab_tag const &tag, viennacl::linalg::no_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 unpreconditioned stabilized Bi-conjugate gradient solver. More...
 
template<typename MatrixT , typename VectorT , typename PreconditionerT >
VectorT viennacl::linalg::detail::solve_impl (MatrixT const &matrix, VectorT const &rhs, bicgstab_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 preconditioned stabilized Bi-conjugate gradient solver. More...
 
template<typename MatrixT , typename VectorT , typename PreconditionerT >
VectorT viennacl::linalg::solve (MatrixT const &matrix, VectorT const &rhs, bicgstab_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, bicgstab_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 &matrix, VectorT const &rhs, bicgstab_tag const &tag)
 Entry point for the unpreconditioned BiCGStab method. More...
 

Detailed Description

The stabilized bi-conjugate gradient method is implemented here.

Definition in file bicgstab.hpp.