24 #include <cusp/detail/config.h>
25 #include <cusp/detail/lu.h>
26 #include <cusp/array2d.h>
27 #include <cusp/array1d.h>
28 #include <cusp/linear_operator.h>
33 template <
typename MatrixType,
typename SmootherType,
typename SolverType>
35 public cusp::linear_operator<typename MatrixType::value_type,
36 typename MatrixType::memory_space>
50 cusp::array2d<ValueType,MemorySpace,Orientation>
x;
51 cusp::array2d<ValueType,MemorySpace,Orientation>
b;
52 cusp::array2d<ValueType,MemorySpace,Orientation>
residual;
58 template<
typename Level_Type>
68 template <
typename MatrixType2,
typename SmootherType2,
typename SolverType2>
71 template <
typename Array1,
typename Array2>
74 template <
typename Array1,
typename Array2>
75 void solve(
const Array1& b, Array2& x);
77 template <
typename Array1,
typename Array2,
typename Monitor>
78 void solve(
const Array1& b, Array2& x, Monitor& monitor);
88 template <
typename Array1,
typename Array2>
89 void _solve(
const Array1& b, Array2& x,
const size_t i);
96 #include <cusp/block_multilevel.inl>
void operator()(const Array1 &x, Array2 &y)
std::vector< level > levels
void _solve(const Array1 &b, Array2 &x, const size_t i)
cusp::array2d< ValueType, MemorySpace, Orientation > b
level(const Level_Type &level)
void solve(const Array1 &b, Array2 &x)
MatrixType::index_type IndexType
double operator_complexity(void)
MatrixType::value_type ValueType
MatrixType::memory_space MemorySpace
cusp::array2d< ValueType, MemorySpace, Orientation > residual
cusp::array2d< ValueType, MemorySpace, Orientation > x
double grid_complexity(void)
SmootherType::orientation Orientation