static void one_step(size_t li, size_t si, size_t & lo, size_t & so, size_t & offset, range R){ _check_BC <BoundCheck> (N, R.first(),li); _check_BC <BoundCheck> (N, (R.last()==-1 ? li : R.last()) -1 ,li); lo = ((R.last()==-1 ? li : R.last()) - R.first() + R.step()-1 )/R.step() ; // python behaviour so = R.step(); offset = R.first() ; }