23#include <cusp/detail/config.h>
25#include <cusp/linear_operator.h>
34template<
typename MatrixType>
struct sa_level;
41template <
typename ValueType,
typename MemorySpace,
typename Orientation>
50 cusp::array2d<ValueType, MemorySpace, Orientation>
residual;
51 cusp::array2d<ValueType, MemorySpace, Orientation>
h;
52 cusp::array2d<ValueType, MemorySpace, Orientation>
y;
56 template <
typename MatrixType,
typename VectorType>
59 template <
typename MemorySpace2>
62 template <
typename MatrixType>
66 template<
typename MatrixType,
typename VectorType1,
typename VectorType2>
67 void presmooth(
const MatrixType& A,
const VectorType1& b, VectorType2& x);
70 template<
typename MatrixType,
typename VectorType1,
typename VectorType2>
71 void postsmooth(
const MatrixType& A,
const VectorType1& b, VectorType2& x);
73 template <
typename MatrixType,
typename VectorType1,
typename VectorType2>
74 void operator()(
const MatrixType& A,
const VectorType1& b, VectorType2& x)
const;
76 template <
typename MatrixType,
typename VectorType1,
typename VectorType2,
typename VectorType3>
77 void operator()(
const MatrixType& A,
const VectorType1& b, VectorType2& x, VectorType3& coeffients);
83#include <cusp/relaxation/block_polynomial.inl>
cusp::array2d< ValueType, MemorySpace, Orientation > y
void postsmooth(const MatrixType &A, const VectorType1 &b, VectorType2 &x)
block_polynomial(const block_polynomial< ValueType, MemorySpace2, Orientation > &A)
void presmooth(const MatrixType &A, const VectorType1 &b, VectorType2 &x)
block_polynomial(const MatrixType &A, const VectorType &coefficients)
block_polynomial(const cusp::precond::aggregation::sa_level< MatrixType > &sa_level)
cusp::array1d< ValueType, cusp::host_memory > default_coefficients
void operator()(const MatrixType &A, const VectorType1 &b, VectorType2 &x) const
cusp::array2d< ValueType, MemorySpace, Orientation > h
void operator()(const MatrixType &A, const VectorType1 &b, VectorType2 &x, VectorType3 &coeffients)
cusp::array2d< ValueType, MemorySpace, Orientation > residual