33 #ifndef __H__LIB_ALGEBRA__OPERATOR__INTERFACE__MATRIX_OPERATOR__
34 #define __H__LIB_ALGEBRA__OPERATOR__INTERFACE__MATRIX_OPERATOR__
46 template <
typename M,
typename X,
typename Y = X>
62 virtual void init(
const X& u) {}
68 virtual void apply(Y& f,
const X& u) {matrix_type::apply(f,u);}
71 virtual void apply_sub(Y& f,
const X& u) {matrix_type::matmul_minus(f,u);}
77 template<
typename M,
typename X,
typename Y>
describes a linear mapping X->Y
Definition: linear_operator.h:80
Definition: matrix_operator.h:49
virtual void init(const X &u)
init operator depending on a function u
Definition: matrix_operator.h:62
virtual void init()
init operator
Definition: matrix_operator.h:65
M matrix_type
Definition: matrix_operator.h:58
virtual void apply(Y &f, const X &u)
Definition: matrix_operator.h:68
virtual M & get_matrix()
Definition: matrix_operator.h:74
X domain_function_type
Definition: matrix_operator.h:52
Y codomain_function_type
Definition: matrix_operator.h:55
virtual void apply_sub(Y &f, const X &u)
Definition: matrix_operator.h:71
Definition: matrix_algebra_types.h:79
static const int type
Definition: matrix_algebra_types.h:80