示例#1
0
文件: index.c 项目: kou/narray
static void
na_parse_narray_index(VALUE a, int orig_dim, ssize_t size, na_index_arg_t *q)
{
    VALUE idx;
    narray_t *na;
    narray_data_t *nidx;
    size_t k, n;
    ssize_t *nidxp;

    GetNArray(a,na);
    if (NA_NDIM(na) != 1) {
        rb_raise(rb_eIndexError, "should be 1-d NArray");
    }
    n = NA_SIZE(na);
    idx = nary_new(cIndex,1,&n);
    na_store(idx,a);

    GetNArrayData(idx,nidx);
    nidxp   = (ssize_t*)nidx->ptr;
    q->idx  = ALLOC_N(size_t, n);
    for (k=0; k<n; k++) {
        q->idx[k] = na_range_check(nidxp[k], size, orig_dim);
    }
    q->n    = n;
    q->beg  = 0;
    q->step = 1;
    q->reduce = 0;
    q->orig_dim = orig_dim;
}
示例#2
0
文件: narray.c 项目: yui-knk/narray
static void
rb_narray_debug_info_nadata(VALUE self)
{
    narray_data_t *na;
    GetNArrayData(self,na);

    printf("  ptr    = 0x%"SZF"x\n", (size_t)(na->ptr));
}