30 #ifndef _OPERATOR_HPP_
31 #define _OPERATOR_HPP_
43 template<
class DomainSpace,
class DualImageSpace>
49 typedef DomainSpace domain_space_type;
50 typedef DualImageSpace dual_image_space_type;
52 typedef typename domain_space_type::value_type value_type;
54 typedef boost::shared_ptr<backend_type> backend_ptrtype;
56 typedef boost::shared_ptr<domain_space_type> domain_space_ptrtype;
57 typedef boost::shared_ptr<dual_image_space_type>
58 dual_image_space_ptrtype;
59 typedef typename domain_space_type::element_type domain_element_type;
60 typedef FsFunctionalLinear<dual_image_space_type> image_element_type;
68 Operator( domain_space_ptrtype domainSpace,
69 dual_image_space_ptrtype dualImageSpace ) :
70 M_domainSpace( domainSpace ),
71 M_dualImageSpace( dualImageSpace )
76 void setDomainSpace( domain_space_ptrtype
const& domainspace )
78 M_domainSpace = domainspace;
81 void setDualImageSpace( dual_image_space_ptrtype
const& dualImageSpace )
83 M_dualImageSpace = dualImageSpace;
88 apply(
const domain_element_type& de,
89 image_element_type& ie )
const = 0;
94 image_element_type operator()(
const domain_element_type& de )
const
96 image_element_type ie( M_dualImageSpace );
101 domain_space_ptrtype domainSpace()
103 return M_domainSpace;
106 dual_image_space_ptrtype dualImageSpace()
108 return M_dualImageSpace;
111 const domain_space_ptrtype domainSpace()
const
113 return M_domainSpace;
116 const dual_image_space_ptrtype dualImageSpace()
const
118 return M_dualImageSpace;
123 domain_space_ptrtype M_domainSpace;
124 dual_image_space_ptrtype M_dualImageSpace;