27 #ifndef MLN_DATA_APPLY_HH
28 # define MLN_DATA_APPLY_HH
35 # include <mln/core/concept/image.hh>
36 # include <mln/core/concept/function.hh>
39 # include <mln/data/apply.spe.hh>
63 template <
typename I,
typename F>
64 void apply(Image<I>& input,
const Function_v2v<F>& f);
68 # ifndef MLN_INCLUDE_ONLY
76 template <
typename I,
typename F>
78 void apply_(I& input,
const F& f)
80 mln_trace(
"data::impl::generic::apply_");
82 mln_piter(I)
p(input.domain());
84 input(
p) = f(input(
p));
95 template <typename I, typename F>
97 void apply(Image<I>& input, const Function_v2v<F>& f)
99 mln_trace(
"data::apply");
101 mln_precondition(
exact(input).is_valid());
102 impl::apply_(mln_trait_image_speed(I)(),
exact(input),
107 # endif // ! MLN_INCLUDE_ONLY
114 #endif // ! MLN_DATA_APPLY_HH