Lines Matching refs:suboffsets

42 /* Check for the presence of suboffsets in the first dimension. */
43 #define HAVE_PTR(suboffsets) (suboffsets && suboffsets[0] >= 0)
44 /* Adjust ptr if suboffsets are present. */
45 #define ADJUST_PTR(ptr, suboffsets) \
46 (HAVE_PTR(suboffsets) ? *((char**)ptr) + suboffsets[0] : ptr)
56 #define ND_PIL 0x010 /* convert to PIL-style array (suboffsets) */
157 base->suboffsets = NULL;
172 PyMem_XFree(base->suboffsets);
230 PyMem_XFree(base->suboffsets);
269 if (ndbuf->base.suboffsets)
549 if ((dest->suboffsets && dest->suboffsets[dest->ndim-1] >= 0) ||
550 (src->suboffsets && src->suboffsets[src->ndim-1] >= 0) ||
561 dest->buf, dest->strides, dest->suboffsets,
562 src->buf, src->strides, src->suboffsets,
612 const Py_ssize_t *suboffsets, Py_ssize_t ndim, Py_ssize_t itemsize)
640 char *nextptr = ADJUST_PTR(ptr, suboffsets);
643 shape+1, strides+1, suboffsets ? suboffsets+1 : NULL,
719 shape, strides, base->suboffsets,
778 | base.suboffsets | NULL | NULL | OK |
972 Convert a NumPy-style array to an array using suboffsets to stride in
982 suboffsets = NULL;
990 suboffsets = {0, -1, -1};
1011 suboffsets = NULL;
1018 suboffsets = {2, -1, -1};
1021 `---'---' | | `- p2+suboffsets[0]
1022 | `-----------|--- p1+suboffsets[0]
1026 suboffsets[0] is the same as the offset that one would specify if
1040 assert(base->suboffsets == NULL);
1082 /* Initialize suboffsets. */
1083 base->suboffsets = PyMem_Malloc(base->ndim * (sizeof *base->suboffsets));
1084 if (base->suboffsets == NULL) {
1088 base->suboffsets[0] = suboffset0;
1090 base->suboffsets[n] = -1;
1169 /* modifies base->buf, base->strides and base->suboffsets **/
1486 "ndarray cannot be represented without suboffsets");
1582 ptr = ADJUST_PTR(ptr, base->suboffsets);
1627 if (subview->suboffsets) subview->suboffsets++;
1685 Adjust suboffsets:
1694 This constant is added to suboffsets[0]. suboffsets[0] in turn is
1702 Multiple levels of suboffsets
1708 suboffsets[0] = start[1] * strides[1]
1709 suboffsets[1] = start[2] * strides[2] + ...
1722 if (base->suboffsets == NULL || dim == 0) {
1728 while (n >= 0 && base->suboffsets[n] < 0)
1731 goto adjust_buf; /* all suboffsets are negative */
1732 base->suboffsets[n] = base->suboffsets[n] + base->strides[dim] * start;
1743 Py_ssize_t *shape = NULL, *strides = NULL, *suboffsets = NULL;
1751 suboffsets = NULL;
1752 if (base->suboffsets) {
1753 suboffsets = PyMem_Malloc(base->ndim * (sizeof *suboffsets));
1754 if (suboffsets == NULL)
1761 if (suboffsets)
1762 suboffsets[i] = base->suboffsets[i];
1767 base->suboffsets = suboffsets;
1775 PyMem_XFree(suboffsets);
1816 /* copy shape, strides and suboffsets */
2082 return ssize_array_as_tuple(base->suboffsets, base->ndim);
2142 { "suboffsets", (getter)ndarray_get_suboffsets, NULL, NULL, NULL},
2179 dest.suboffsets = NULL;
2194 /* add redundant (negative) suboffsets for testing */
2202 if (base->suboffsets != NULL) {
2204 "cannot add suboffsets to PIL-style array");
2209 "cannot add suboffsets to array without strides");
2213 base->suboffsets = PyMem_Malloc(base->ndim * (sizeof *base->suboffsets));
2214 if (base->suboffsets == NULL) {
2220 base->suboffsets[i] = -1;
2240 static Py_ssize_t suboffsets[ND_MAX_NDIM];
2294 if (view->suboffsets) {
2295 memcpy(suboffsets, view->suboffsets, view->ndim * sizeof(Py_ssize_t));
2296 info.suboffsets = suboffsets;
2540 !!v1.suboffsets != !!v2.suboffsets) {
2546 (v1.suboffsets && !arraycmp(v1.suboffsets, v2.suboffsets, NULL,
2708 NULL, /* suboffsets */