27 #ifndef MLN_CORE_DPSITES_PITER_HH
28 # define MLN_CORE_DPSITES_PITER_HH
36 # include <mln/core/internal/site_relative_iterator_base.hh>
67 void init_(
const V& v,
const P& c);
105 template <
typename V>
115 template <
typename P>
124 template <
typename P>
125 void init_(
const V& v,
const P& c);
128 bool is_valid_()
const;
140 mln_psite(V) compute_p_()
const;
151 # ifndef MLN_INCLUDE_ONLY
156 template <
typename V>
162 template <
typename V>
163 template <
typename P>
170 template <
typename V>
171 template <
typename P>
181 template <
typename V>
186 return i_ != this->s_->std_vector().size();
189 template <
typename V>
194 i_ = this->s_->std_vector().size();
197 template <
typename V>
205 template <
typename V>
213 template <
typename V>
216 dpsites_fwd_piter<V>::compute_p_()
const
218 return *this->c_ + this->s_->std_vector()[i_];
224 template <
typename V>
230 template <
typename V>
231 template <
typename P>
238 template <
typename V>
239 template <
typename P>
249 template <
typename V>
252 dpsites_bkd_piter<V>::is_valid_()
const
257 template <
typename V>
260 dpsites_bkd_piter<V>::invalidate_()
265 template <
typename V>
268 dpsites_bkd_piter<V>::do_start_()
270 i_ = this->s_->std_vector().size() - 1;
273 template <
typename V>
276 dpsites_bkd_piter<V>::do_next_()
281 template <
typename V>
284 dpsites_bkd_piter<V>::compute_p_()
const
286 return *this->c_ + this->s_->std_vector()[i_];
289 # endif // ! MLN_INCLUDE_ONLY
294 #endif // ! MLN_CORE_DPSITES_PITER_HH