27 #ifndef MLN_CORE_SITE_SET_P_TRANSFORMED_HH
28 # define MLN_CORE_SITE_SET_P_TRANSFORMED_HH
35 # include <mln/core/internal/site_set_base.hh>
36 # include <mln/core/concept/function.hh>
37 # include <mln/convert/from_to.hh>
43 template <
typename S,
typename F>
class p_transformed;
44 template <
typename Pi,
typename S,
typename F>
struct p_transformed_piter;
50 template <
typename S,
typename F>
51 struct site_set_< p_transformed<S,F> >
53 typedef trait::site_set::nsites::unknown
nsites;
54 typedef trait::site_set::bbox::unknown
bbox;
55 typedef trait::site_set::contents::fixed
contents;
56 typedef trait::site_set::arity::multiple
arity;
71 template <
typename S,
typename F>
73 ptransform(
const Site_Set<S>& s,
const Function_v2v<F>& f);
84 template <
typename S,
typename F>
87 private mlc_converts_to(mln_result(F), mln_psite(S))::check_t
122 bool has(const psite&
p) const;
142 # ifndef MLN_INCLUDE_ONLY
145 template <
typename S,
typename F>
150 mlc_equal(mln_result(F), mln_psite(S))::check();
158 template <
typename S,
typename F>
164 template <
typename S,
typename F>
172 template <
typename S,
typename F>
179 return s_.has(f_.inverse(arg));
182 template <typename S, typename F>
185 p_transformed<S,F>::is_valid()
const
187 return s_.is_valid();
190 template <
typename S,
typename F>
195 return s_.memory_size() +
sizeof(f_);
198 template <
typename S,
typename F>
206 template <
typename S,
typename F>
214 # endif // ! MLN_INCLUDE_ONLY
220 # include <mln/core/site_set/p_transformed_piter.hh>
224 #endif // ! MLN_CORE_SITE_SET_P_TRANSFORMED_HH