class CAWindow
Public Instance Methods
addr2addr0(p1)
click to toggle source
yard:
class CAWindow
def addr2addr0 (addr) end
end
static VALUE rb_ca_window_addr2addr0 (VALUE self, VALUE raddr) { CAWindow *cw; ca_size_t addr = NUM2SIZE(raddr); ca_size_t idx[CA_RANK_MAX]; int8_t i; Data_Get_Struct(self, CAWindow, cw); ca_addr2index((CArray*)cw, addr, idx); addr = 0; for (i=0; i<cw->ndim; i++) { addr *= cw->size0[i]; addr += cw->start[i] + idx[i]; } return SIZE2NUM(addr); }
bounds()
click to toggle source
static VALUE rb_ca_window_get_bounds (VALUE self) { CAWindow *cw; Data_Get_Struct(self, CAWindow, cw); return SIZE2NUM(cw->bounds); }
fill_value()
click to toggle source
static VALUE rb_ca_window_get_fill_value (VALUE self) { CAWindow *cw; Data_Get_Struct(self, CAWindow, cw); return rb_ca_ptr2obj(self, cw->fill); }
fill_value=(p1)
click to toggle source
yard:
class CAWindow
def fill_value end def fill_value= (val) end
end
static VALUE rb_ca_window_set_fill_value (VALUE self, VALUE rfval) { CAWindow *cw; Data_Get_Struct(self, CAWindow, cw); rb_ca_obj2ptr(self, rfval, cw->fill); return Qnil; }
index2addr0(*args)
click to toggle source
yard:
class CAWindow
def index2addr0 (idx) end
end
static VALUE rb_ca_window_idx2addr0 (int argc, VALUE *argv, VALUE self) { CAWindow *cw; ca_size_t addr; int8_t i; ca_size_t idxi; Data_Get_Struct(self, CAWindow, cw); if ( argc != cw->ndim ) { rb_raise(rb_eArgError, "invalid # of arguments (should be <%i>)", cw->ndim); } addr = 0; for (i=0; i<cw->ndim; i++) { idxi = NUM2SIZE(argv[i]); CA_CHECK_INDEX(idxi, cw->dim[i]); addr = cw->size0[i] * addr + cw->start[i] + idxi; } if ( addr < 0 || addr >= cw->parent->elements ) { return Qnil; } else { return SIZE2NUM(addr); } }
initialize_copy(p1)
click to toggle source
static VALUE rb_ca_window_initialize_copy (VALUE self, VALUE other) { CAWindow *ca, *cs; Data_Get_Struct(self, CAWindow, ca); Data_Get_Struct(other, CAWindow, cs); ca_window_setup(ca, cs->parent, cs->start, cs->count, cs->bounds, cs->fill); return self; }
move(*args)
click to toggle source
static VALUE rb_ca_window_move (int argc, VALUE *argv, VALUE self) { CAWindow *cw; ca_size_t start; int8_t i; Data_Get_Struct(self, CAWindow, cw); if ( argc != cw->ndim ) { rb_raise(rb_eArgError, "invalid # of arguments"); } ca_update_mask(cw); for (i=0; i<cw->ndim; i++) { start = NUM2SIZE(argv[i]); cw->start[i] = start; if ( cw->mask ) { ((CAWindow*)(cw->mask))->start[i] = start; } } return self; }