26 #ifndef MLN_MORPHO_ATTRIBUTE_SUM_HH
27 # define MLN_MORPHO_ATTRIBUTE_SUM_HH
33 # include <mln/accu/internal/base.hh>
35 # include <mln/trait/value_.hh>
36 # include <mln/value/builtin/all.hh>
37 # include <mln/literal/zero.hh>
39 # include <mln/util/pix.hh>
49 template <
typename I,
typename S>
class sum;
59 template <
typename I,
typename S>
62 typedef accumulator::has_untake::yes
has_untake;
64 typedef accumulator::has_stop::no
has_stop;
65 typedef accumulator::when_pix::use_v
when_pix;
79 template <
typename I,
typename S = mln_sum(mln_value(I))>
93 void take(const argument& v);
94 void take(const util::pix<I>& px);
95 void take(const
sum<I,S>& other);
109 void untake(const argument& v);
110 void untake(const util::pix<I>& px);
125 # ifndef MLN_INCLUDE_ONLY
127 template <
typename I,
typename S>
134 template <
typename I,
typename S>
144 template <
typename I,
typename S>
152 template <
typename I,
typename S>
160 template <
typename I,
typename S>
170 template <
typename I,
typename S>
178 template <
typename I,
typename S>
186 template <
typename I,
typename S>
194 template <
typename I,
typename S>
202 template <
typename I,
typename S>
210 template <
typename I,
typename S>
218 template <
typename I,
typename S>
226 template <
typename I,
typename S>
234 # endif // ! MLN_INCLUDE_ONLY
243 #endif // ! MLN_MORPHO_ATTRIBUTE_SUM_HH