27 #ifndef MLN_DATA_COMPUTE_HH
28 # define MLN_DATA_COMPUTE_HH
34 # include <mln/data/update.hh>
35 # include <mln/core/concept/meta_accumulator.hh>
57 template <
typename A,
typename I>
59 compute(const Accumulator<A>& a, const Image<I>& input);
73 template <typename A, typename I>
75 compute(Accumulator<A>& a, const Image<I>& input);
87 template <typename A, typename I>
88 mln_meta_accu_result(A, mln_value(I))
89 compute(const Meta_Accumulator<A>& a, const Image<I>& input);
93 # ifndef MLN_INCLUDE_ONLY
98 template <
typename A,
typename I>
101 compute(const Accumulator<A>& a_, const Image<I>& input)
109 template <
typename A,
typename I>
112 compute(Accumulator<A>& a_, const Image<I>& input)
114 mln_trace(
"data::compute");
117 data::internal::update_tests(a, input);
120 data::internal::update_dispatch(a, input);
126 template <
typename A,
typename I>
128 mln_meta_accu_result(A, mln_value(I))
129 compute(const Meta_Accumulator<A>& a, const Image<I>& input)
131 typedef mln_accu_with(A, mln_value(I)) A_;
132 A_ a_ = accu::unmeta(
exact(a), mln_value(I)());
137 # endif // ! MLN_INCLUDE_ONLY
144 #endif // ! MLN_DATA_COMPUTE_HH