23 #include <cusp/detail/config.h>
24 #include <cusp/linear_operator.h>
33 template<
typename MatrixType>
struct sa_level;
40 template <
typename ValueType,
typename MemorySpace>
41 class block_jacobi :
public cusp::linear_operator<ValueType, MemorySpace>
46 cusp::array2d<ValueType,MemorySpace>
temp;
50 template <
typename MatrixType>
53 template <
typename MemorySpace2>
56 template <
typename MatrixType>
60 template<
typename MatrixType,
typename VectorType1,
typename VectorType2>
61 void presmooth(
const MatrixType&
A,
const VectorType1& b, VectorType2& x);
64 template<
typename MatrixType,
typename VectorType1,
typename VectorType2>
65 void postsmooth(
const MatrixType&
A,
const VectorType1& b, VectorType2& x);
67 template <
typename MatrixType,
typename VectorType1,
typename VectorType2>
68 void operator()(
const MatrixType&
A,
const VectorType1& b, VectorType2& x);
70 template <
typename MatrixType,
typename VectorType1,
typename VectorType2>
71 void operator()(
const MatrixType&
A,
const VectorType1& b, VectorType2& x, ValueType omega);
77 #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