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
viennacl::linalg::cg_solver< VectorT > Class Template Reference

#include <cg.hpp>

Public Types

typedef
viennacl::result_of::cpu_value_type
< VectorT >::type 
numeric_type
 

Public Member Functions

 cg_solver (cg_tag const &tag)
 
template<typename MatrixT , typename PreconditionerT >
VectorT operator() (MatrixT const &A, VectorT const &b, PreconditionerT const &precond) const
 
template<typename MatrixT >
VectorT operator() (MatrixT const &A, VectorT const &b) const
 
void set_initial_guess (VectorT const &x)
 Specifies an initial guess for the iterative solver. More...
 
void set_monitor (bool(*monitor_fun)(VectorT const &, numeric_type, void *), void *user_data)
 Sets a monitor function pointer to be called in each iteration. Set to NULL to run without monitor. More...
 
cg_tag const & tag () const
 Returns the solver tag containing basic configuration such as tolerances, etc. More...
 

Detailed Description

template<typename VectorT>
class viennacl::linalg::cg_solver< VectorT >

Examples:
iterative-custom.cpp.

Definition at line 380 of file cg.hpp.

Member Typedef Documentation

template<typename VectorT >
typedef viennacl::result_of::cpu_value_type<VectorT>::type viennacl::linalg::cg_solver< VectorT >::numeric_type

Definition at line 383 of file cg.hpp.

Constructor & Destructor Documentation

template<typename VectorT >
viennacl::linalg::cg_solver< VectorT >::cg_solver ( cg_tag const &  tag)
inline

Definition at line 385 of file cg.hpp.

Member Function Documentation

template<typename VectorT >
template<typename MatrixT , typename PreconditionerT >
VectorT viennacl::linalg::cg_solver< VectorT >::operator() ( MatrixT const &  A,
VectorT const &  b,
PreconditionerT const &  precond 
) const
inline

Definition at line 388 of file cg.hpp.

template<typename VectorT >
template<typename MatrixT >
VectorT viennacl::linalg::cg_solver< VectorT >::operator() ( MatrixT const &  A,
VectorT const &  b 
) const
inline

Definition at line 402 of file cg.hpp.

template<typename VectorT >
void viennacl::linalg::cg_solver< VectorT >::set_initial_guess ( VectorT const &  x)
inline

Specifies an initial guess for the iterative solver.

An iterative solver for Ax = b with initial guess x_0 is equivalent to an iterative solver for Ay = b' := b - Ax_0, where x = x_0 + y.

Definition at line 411 of file cg.hpp.

template<typename VectorT >
void viennacl::linalg::cg_solver< VectorT >::set_monitor ( bool(*)(VectorT const &, numeric_type, void *)  monitor_fun,
void *  user_data 
)
inline

Sets a monitor function pointer to be called in each iteration. Set to NULL to run without monitor.

The monitor function is called with the current guess for the result as first argument and the current relative residual estimate as second argument. The third argument is a pointer to user-defined data, through which additional information can be passed. This pointer needs to be set with set_monitor_data. If not set, NULL is passed. If the montior function returns true, the solver terminates (either convergence or divergence).

Definition at line 420 of file cg.hpp.

template<typename VectorT >
cg_tag const& viennacl::linalg::cg_solver< VectorT >::tag ( ) const
inline

Returns the solver tag containing basic configuration such as tolerances, etc.

Definition at line 427 of file cg.hpp.


The documentation for this class was generated from the following file: