26 #ifndef MLN_WIN_SHIFT_HH
27 # define MLN_WIN_SHIFT_HH
33 # include <mln/core/window.hh>
46 shift(const
Window<W>& win, const mln_dpsite(W)&
dp);
49 # ifndef MLN_INCLUDE_ONLY
57 shift_(trait::window::definition::unique,
58 const W& win,
const mln_dpsite(W)& dp)
60 mlc_is(mln_trait_window_size(W),
61 trait::window::size::fixed)::check();
63 unsigned n = win.size();
64 for (
unsigned i = 0; i < n; ++i)
65 tmp.insert(win.dp(i) +
dp);
72 shift_(trait::window::definition::multiple,
73 const W& win,
const mln_dpsite(W)& dp)
76 const unsigned nw = win.nwindows();
77 for (
unsigned w = 0; w < nw; ++w)
78 tmp.set_window(w, win::shift(win.window(w),
dp));
89 shift(const
Window<W>& win, const mln_dpsite(W)& dp)
91 mln_trace(
"win::shift");
93 mlc_is(mln_trait_window_support(W),
94 trait::window::support::regular)::check();
95 mlc_is_not(mln_trait_window_definition(W),
96 trait::window::definition::varying)::check();
98 mln_regular(W) tmp = impl::shift_(mln_trait_window_definition(W)(),
104 # endif // ! MLN_INCLUDE_ONLY
111 #endif // ! MLN_WIN_SHIFT_HH