26 #ifndef MLN_PW_IMAGE_HH
27 # define MLN_PW_IMAGE_HH
33 # include <mln/pw/internal/image_base.hh>
34 # include <mln/core/concept/function.hh>
35 # include <mln/value/set.hh>
42 namespace pw {
template <
typename F,
typename S>
class image; }
50 template <
typename F,
typename S>
51 struct image_< pw::image<F,S> >
52 : pw_image_<F,S, pw::image<F,S> >
63 template <
typename F,
typename S>
64 struct data< mln::pw::image<F,S> >
66 data(
const F& f,
const S& ps);
76 template <
typename F,
typename S>
78 operator | (
const Function_v2v<F>& f,
const Site_Set<S>& ps);
91 template <
typename F,
typename S>
93 public pw::internal::image_base< F, S, image<F,S> >
95 typedef pw::internal::image_base< F, S, image<F,S> > super_;
114 template <
typename F,
typename S,
typename E,
typename J>
118 # ifndef MLN_INCLUDE_ONLY
122 template <
typename F,
typename S,
typename E,
typename J>
126 init_(tag::function, f, exact(model));
128 init_(tag::domain, s, exact(model));
135 template <
typename F,
typename S>
138 operator | (
const Function_v2v<F>& f,
const Site_Set<S>& ps)
140 pw::image<F,S> tmp(f, ps);
150 template <
typename F,
typename S>
167 template <
typename F,
typename S>
173 template <
typename F,
typename S>
177 this->data_ =
new mln::internal::data< image<F,S> >(exact(f), exact(ps));
183 # endif // ! MLN_INCLUDE_ONLY
188 #endif // ! MLN_PW_IMAGE_HH