The stabilized bi-conjugate gradient method is implemented here. More...
#include <vector>
#include <cmath>
#include <numeric>
#include "viennacl/forwards.h"
#include "viennacl/tools/tools.hpp"
#include "viennacl/linalg/prod.hpp"
#include "viennacl/linalg/inner_prod.hpp"
#include "viennacl/linalg/norm_2.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"
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... | |
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< NumericT > | viennacl::linalg::detail::pipelined_solve (MatrixT const &A, viennacl::vector_base< NumericT > const &rhs, bicgstab_tag const &tag, viennacl::linalg::no_precond) |
Implementation of a pipelined stabilized Bi-conjugate gradient solver. More... | |
template<typename NumericT > | |
viennacl::vector< NumericT > | viennacl::linalg::solve (viennacl::compressed_matrix< NumericT > const &A, viennacl::vector_base< NumericT > const &rhs, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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, bicgstab_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 > | |
VectorT | viennacl::linalg::solve (MatrixT const &matrix, VectorT const &rhs, bicgstab_tag const &tag) |
Implementation of the stabilized Bi-conjugate gradient solver. More... | |
template<typename MatrixT , typename VectorT > | |
VectorT | viennacl::linalg::solve (MatrixT const &matrix, VectorT const &rhs, bicgstab_tag const &tag, viennacl::linalg::no_precond) |
template<typename MatrixT , typename VectorT , typename PreconditionerT > | |
VectorT | viennacl::linalg::solve (MatrixT const &matrix, VectorT const &rhs, bicgstab_tag const &tag, PreconditionerT const &precond) |
Implementation of the preconditioned stabilized Bi-conjugate gradient solver. More... | |
The stabilized bi-conjugate gradient method is implemented here.
Definition in file bicgstab.hpp.