26 #ifndef MLN_LOGICAL_AND_HH
27 # define MLN_LOGICAL_AND_HH
33 # include <mln/logical/includes.hh>
34 # include <mln/fun/vv2v/land.hh>
51 template <
typename L,
typename R>
52 mln_ch_fun_vv2v(land, L, R)
53 and_(const Image<L>& lhs, const Image<R>& rhs);
67 template <typename L, typename R>
68 void and_inplace(Image<L>& lhs, const Image<R>& rhs);
71 # ifndef MLN_INCLUDE_ONLY
73 template <
typename L,
typename R>
75 mln_ch_fun_vv2v(land, L, R)
76 and_(const Image<L>& lhs, const Image<R>& rhs)
78 trace::entering(
"logical::and_");
80 internal::tests(lhs, rhs);
82 mln_fun_vv2v(land, L, R) f;
83 mln_ch_fun_vv2v(land, L, R) output =
data::transform(lhs, rhs, f);
85 trace::exiting("logical::and_");
89 template <typename L, typename R>
93 trace::entering(
"logical::and_inplace");
95 mlc_converts_to(mln_fun_vv2v_result(land, L, R),
96 mln_value(L))::check();
98 internal::tests(lhs, rhs);
100 mln_fun_vv2v(land, L, R) f;
103 trace::exiting(
"logical::and_inplace");
106 # endif // ! MLN_INCLUDE_ONLY
113 #endif // ! MLN_LOGICAL_AND_HH