/* Last edited on 2011-09-24 02:08:59 by stolfilocal */ /* ---------------------------------------------------------------------- */ /* indexing_descr.c */ bool_t ix_descr_next ( ix_descr_t *D, ix_index_t ix[], ix_axis_t i, ix_dim_t n, ix_pos_t *p ) { demand((i >= 0) && (i + n <= NA), "invalid axes"); return ix_next(n, &(ix[i]), &(D->sz[i]), &(D->st[i]), p); } bool_t ix_descr_prev ( ix_descr_t *D, ix_index_t ix[], ix_axis_t i, ix_dim_t n, ix_pos_t *p ) { demand((i >= 0) && (i + n <= NA), "invalid axes"); return ix_prev(n, &(ix[i]), &(D->sz[i]), &(D->st[i]), p); } assert(ix_descr_MAX_POS == ix_MAX_POS); assert(ix_descr_MAX_ABS_STEP == ix_MAX_ABS_STEP); assert(ix_descr_MAX_SIZE == ix_MAX_SIZE); void ix_descr_slice( ix_descr_t *D, ix_axis_t i, ix_dim_t n, ix_index_t ix[] ) { ix_slice( D->na, D->sz, &(D->bp), D->st, i, n, ix ); D->na = D->na - n; }