/* method: shape() -- returns an array of shape of each rank */ static VALUE na_shape(VALUE self) { struct NARRAY *ary; VALUE *shape; int i; GetNArray(self,ary); shape = ALLOCA_N(VALUE,ary->rank); for (i = 0; i < ary->rank; ++i) shape[i] = INT2FIX(ary->shape[i]); return rb_ary_new4(ary->rank,shape); }