Lines Matching defs:dest
253 (view->suboffsets && view->suboffsets[dest->ndim-1] >= 0)
256 last_dim_is_contiguous(const Py_buffer *dest, const Py_buffer *src)
258 assert(dest->ndim > 0 && src->ndim > 0);
259 return (!HAVE_SUBOFFSETS_IN_LAST_DIM(dest) &&
261 dest->strides[dest->ndim-1] == dest->itemsize &&
272 equiv_format(const Py_buffer *dest, const Py_buffer *src)
276 assert(dest->format && src->format);
277 dfmt = dest->format[0] == '@' ? dest->format+1 : dest->format;
281 dest->itemsize != src->itemsize) {
292 equiv_shape(const Py_buffer *dest, const Py_buffer *src)
296 if (dest->ndim != src->ndim)
299 for (i = 0; i < dest->ndim; i++) {
300 if (dest->shape[i] != src->shape[i])
302 if (dest->shape[i] == 0)
312 equiv_structure(const Py_buffer *dest, const Py_buffer *src)
314 if (!equiv_format(dest, src) ||
315 !equiv_shape(dest, src)) {
389 copy_single(PyMemoryViewObject *self, const Py_buffer *dest, const Py_buffer *src)
394 assert(dest->ndim == 1);
396 if (!equiv_structure(dest, src))
399 if (!last_dim_is_contiguous(dest, src)) {
400 mem = PyMem_Malloc(dest->shape[0] * dest->itemsize);
407 copy_base(dest->shape, dest->itemsize,
408 dest->buf, dest->strides, dest->suboffsets,
418 /* Recursively copy src to dest. Both buffers must have the same basic
422 copy_buffer(const Py_buffer *dest, const Py_buffer *src)
426 assert(dest->ndim > 0);
428 if (!equiv_structure(dest, src))
431 if (!last_dim_is_contiguous(dest, src)) {
432 mem = PyMem_Malloc(dest->shape[dest->ndim-1] * dest->itemsize);
439 copy_rec(dest->shape, dest->ndim, dest->itemsize,
440 dest->buf, dest->strides, dest->suboffsets,
482 Py_buffer dest;
496 /* initialize dest */
497 dest = *src;
498 dest.buf = mem;
504 dest.strides = strides;
506 init_strides_from_shape(&dest);
509 init_fortran_strides_from_shape(&dest);
512 dest.suboffsets = NULL;
514 ret = copy_buffer(&dest, src);
527 init_shared_values(Py_buffer *dest, const Py_buffer *src)
529 dest->obj = src->obj;
530 dest->buf = src->buf;
531 dest->len = src->len;
532 dest->itemsize = src->itemsize;
533 dest->readonly = src->readonly;
534 dest->format = src->format ? src->format : "B";
535 dest->internal = src->internal;
540 init_shape_strides(Py_buffer *dest, const Py_buffer *src)
545 dest->shape = NULL;
546 dest->strides = NULL;
550 dest->shape[0] = src->shape ? src->shape[0] : src->len / src->itemsize;
551 dest->strides[0] = src->strides ? src->strides[0] : src->itemsize;
556 dest->shape[i] = src->shape[i];
559 dest->strides[i] = src->strides[i];
562 init_strides_from_shape(dest);
567 init_suboffsets(Py_buffer *dest, const Py_buffer *src)
572 dest->suboffsets = NULL;
576 dest->suboffsets[i] = src->suboffsets[i];
663 Py_buffer *dest;
679 dest = &mv->view;
680 init_shared_values(dest, src);
681 init_shape_strides(dest, src);
682 init_suboffsets(dest, src);
702 Py_buffer *dest;
713 dest = &mv->view;
714 init_shared_values(dest, src);
846 Py_buffer *dest;
871 dest = &mv->view;
874 dest->itemsize = src->itemsize;
878 dest->shape[i] = src->shape[i];
881 init_strides_from_shape(dest);
884 init_fortran_strides_from_shape(dest);
887 dest->suboffsets = NULL;
892 if (copy_buffer(dest, src) < 0) {
1675 #define UNPACK_SINGLE(dest, ptr, type) \
1679 dest = x; \
2584 Py_buffer dest; /* sliced view */
2592 dest = *view;
2593 dest.shape = &arrays[0]; dest.shape[0] = view->shape[0];
2594 dest.strides = &arrays[1]; dest.strides[0] = view->strides[0];
2596 dest.suboffsets = &arrays[2]; dest.suboffsets[0] = view->suboffsets[0];
2599 if (init_slice(&dest, key, 0) < 0)
2601 dest.len = dest.shape[0] * dest.itemsize;
2603 ret = copy_single(self, &dest, &src);