template<typename D, typename F>
struct TiledArray::ConjugateGradientSolver< D, F >
Solves linear system a(x) = b
using conjugate gradient solver where a
is a linear function of x
.
- Template Parameters
-
D | type of x and b , as well as the preconditioner; |
F | type that evaluates the LHS, will call F::operator()(x,result) , D must implement operator()(const D&, D&) const D::element_type must be defined and D must provide the following stand-alone functions:
std::size_t size(const D&)
D clone(const D&)
D copy(const D&)
value_type minabs_value(const D&)
value_type maxabs_value(const D&)
void vec_multiply(D& a, const D& b) (element-wise multiply of a by b )
value_type dot_product(const D& a, const D& b)
void scale(D&, value_type)
void axpy(D& y, value_type a, const D& x)
void assign(D&, const D&)
double norm2(const D&)
|
Definition at line 56 of file conjgrad.h.