32 #include <cusp/detail/config.h>
33 #include <cusp/linear_operator.h>
42 template<
typename MatrixType>
struct sa_level;
49 template <
typename ValueType,
typename MemorySpace>
50 class block_jacobi :
public cusp::linear_operator<ValueType, MemorySpace>
55 cusp::array2d<ValueType,MemorySpace>
temp;
59 template <
typename MatrixType>
62 template <
typename MemorySpace2>
65 template <
typename MatrixType>
69 template<
typename MatrixType,
typename VectorType1,
typename VectorType2>
70 void presmooth(
const MatrixType&
A,
const VectorType1& b, VectorType2& x);
73 template<
typename MatrixType,
typename VectorType1,
typename VectorType2>
74 void postsmooth(
const MatrixType&
A,
const VectorType1& b, VectorType2& x);
76 template <
typename MatrixType,
typename VectorType1,
typename VectorType2>
77 void operator()(
const MatrixType&
A,
const VectorType1& b, VectorType2& x);
79 template <
typename MatrixType,
typename VectorType1,
typename VectorType2>
80 void operator()(
const MatrixType&
A,
const VectorType1& b, VectorType2& x, ValueType omega);
86 #include <cusp/relaxation/block_jacobi.inl>
void presmooth(const MatrixType &A, const VectorType1 &b, VectorType2 &x)
cusp::array1d< ValueType, MemorySpace > diagonal
void postsmooth(const MatrixType &A, const VectorType1 &b, VectorType2 &x)
void operator()(const MatrixType &A, const VectorType1 &b, VectorType2 &x)
cusp::array2d< ValueType, MemorySpace > temp