26 #ifndef MLN_LINEAR_CONVOLVE_DIRECTIONAL_HH
27 # define MLN_LINEAR_CONVOLVE_DIRECTIONAL_HH
33 # include <mln/linear/convolve.hh>
34 # include <mln/make/w_window_directional.hh>
35 # include <mln/literal/zero.hh>
57 template <
typename I,
typename W,
unsigned S>
59 convolve_directional(const Image<I>& input,
unsigned dir, W (&weights)[S]);
62 # ifndef MLN_INCLUDE_ONLY
64 template <
typename I,
typename W,
unsigned S>
67 convolve_directional(const Image<I>& input,
unsigned dir, W (&weights)[S])
69 trace::entering(
"linear::convolve_directional");
71 mlc_bool(S % 2 == 1)::check();
73 mln_precondition(exact(input).is_valid());
74 typedef mln_site(I) P;
75 mln_precondition(dir < P::dim);
77 typedef mln_delta(P) D;
80 w_window<D,W> w_win = make::w_window_directional(dp, weights);
83 trace::exiting("linear::convolve_directional");
87 # endif // ! MLN_INCLUDE_ONLY
94 #endif // ! MLN_LINEAR_CONVOLVE_DIRECTIONAL_HH