def array_copy__Array(space, self): w_a = mytype.w_class(self.space) w_a.setlen(self.len) rffi.c_memcpy(rffi.cast(rffi.VOIDP, w_a.buffer), rffi.cast(rffi.VOIDP, self.buffer), self.len * mytype.bytes) return w_a
def copy(self): array = NDimArray(self.size, self.shape[:], self.dtype, self.order) rffi.c_memcpy( rffi.cast(rffi.VOIDP, array.storage), rffi.cast(rffi.VOIDP, self.storage), self.size * self.dtype.num_bytes ) return array
def array_copy__Array(space, self): w_a = mytype.w_class(self.space) w_a.setlen(self.len) rffi.c_memcpy( rffi.cast(rffi.VOIDP, w_a.buffer), rffi.cast(rffi.VOIDP, self.buffer), self.len * mytype.bytes ) return w_a
def _fast_setslice(self, space, w_value): assert isinstance(w_value, ConcreteArray) itemsize = self.dtype.itemtype.get_element_size() shapelen = len(self.shape) if shapelen == 1: rffi.c_memcpy( rffi.ptradd(self.storage, self.start * itemsize), rffi.ptradd(w_value.storage, w_value.start * itemsize), self.size * itemsize) else: dest = SkipLastAxisIterator(self) source = SkipLastAxisIterator(w_value) while not dest.done: rffi.c_memcpy( rffi.ptradd(self.storage, dest.offset * itemsize), rffi.ptradd(w_value.storage, source.offset * itemsize), self.shape[-1] * itemsize) source.next() dest.next()
def _fast_setslice(self, space, w_value): assert isinstance(w_value, ConcreteArray) itemsize = self.dtype.itemtype.get_element_size() shapelen = len(self.shape) if shapelen == 1: rffi.c_memcpy( rffi.ptradd(self.storage, self.start * itemsize), rffi.ptradd(w_value.storage, w_value.start * itemsize), self.size * itemsize ) else: dest = SkipLastAxisIterator(self) source = SkipLastAxisIterator(w_value) while not dest.done: rffi.c_memcpy( rffi.ptradd(self.storage, dest.offset * itemsize), rffi.ptradd(w_value.storage, source.offset * itemsize), self.shape[-1] * itemsize ) source.next() dest.next()
def handle_struct(self, w_ffitype, w_structinstance): rawmem = rffi.cast(rffi.CCHARP, self.rawmem) dst = rffi.cast(rffi.VOIDP, rffi.ptradd(rawmem, self.offset)) src = w_structinstance.rawmem length = w_ffitype.sizeof() rffi.c_memcpy(dst, src, length)