27 #ifndef MLN_MORPHO_MINUS_HH
28 # define MLN_MORPHO_MINUS_HH
37 # include <mln/data/compare.hh>
38 # include <mln/logical/and_not.hh>
39 # include <mln/arith/minus.hh>
54 template <
typename I,
typename J>
55 mln_concrete(I)
minus(const Image<I>& lhs, const Image<J>&
rhs);
58 # ifndef MLN_INCLUDE_ONLY
65 template <
typename I,
typename J>
67 mln_concrete(I) minus_(trait::image::kind::logic,
68 const I& lhs, const J& rhs)
75 template <
typename I,
typename J>
77 mln_concrete(I) minus_(trait::image::kind::any,
78 const I& lhs, const J& rhs)
80 return arith::minus<mln_value(I)>(lhs,
rhs);
88 template <
typename I,
typename J>
91 minus(const Image<I>& lhs, const Image<J>& rhs)
93 mln_trace(
"morpho::minus");
96 mln_concrete(I) output = impl::minus_(mln_trait_image_kind(I)(),
102 # endif // ! MLN_INCLUDE_ONLY
109 #endif // ! MLN_MORPHO_MINUS_HH