33 #include <cusp/detail/config.h>
34 #include <cusp/detail/lu.h>
35 #include <cusp/array2d.h>
36 #include <cusp/array1d.h>
37 #include <cusp/linear_operator.h>
42 template <
typename MatrixType,
typename SmootherType,
typename SolverType>
44 public cusp::linear_operator<typename MatrixType::value_type,
45 typename MatrixType::memory_space>
59 cusp::array2d<ValueType,MemorySpace,Orientation>
x;
60 cusp::array2d<ValueType,MemorySpace,Orientation>
b;
61 cusp::array2d<ValueType,MemorySpace,Orientation>
residual;
67 template<
typename Level_Type>
77 template <
typename MatrixType2,
typename SmootherType2,
typename SolverType2>
80 template <
typename Array1,
typename Array2>
83 template <
typename Array1,
typename Array2>
84 void solve(
const Array1& b, Array2& x);
86 template <
typename Array1,
typename Array2,
typename Monitor>
87 void solve(
const Array1& b, Array2& x, Monitor& monitor);
97 template <
typename Array1,
typename Array2>
98 void _solve(
const Array1& b, Array2& x,
const size_t i);
105 #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