Lines Matching refs:ndbuf

68 /* ndbuf->flags properties */
88 struct ndbuf;
89 typedef struct ndbuf {
90 struct ndbuf *next;
91 struct ndbuf *prev;
111 ndbuf_t *ndbuf;
126 ndbuf = PyMem_Malloc(sizeof *ndbuf);
127 if (ndbuf == NULL) {
132 ndbuf->next = NULL;
133 ndbuf->prev = NULL;
134 ndbuf->len = len;
135 ndbuf->offset= offset;
137 ndbuf->data = PyMem_Malloc(len);
138 if (ndbuf->data == NULL) {
140 PyMem_Free(ndbuf);
144 ndbuf->flags = flags;
145 ndbuf->exports = 0;
147 base = &ndbuf->base;
149 base->buf = ndbuf->data;
158 base->internal = ndbuf;
160 return ndbuf;
164 ndbuf_free(ndbuf_t *ndbuf)
166 Py_buffer *base = &ndbuf->base;
168 PyMem_XFree(ndbuf->data);
174 PyMem_Free(ndbuf);
265 init_flags(ndbuf_t *ndbuf)
267 if (ndbuf->base.ndim == 0)
268 ndbuf->flags |= ND_SCALAR;
269 if (ndbuf->base.suboffsets)
270 ndbuf->flags |= ND_PIL;
271 if (PyBuffer_IsContiguous(&ndbuf->base, 'C'))
272 ndbuf->flags |= ND_C;
273 if (PyBuffer_IsContiguous(&ndbuf->base, 'F'))
274 ndbuf->flags |= ND_FORTRAN;
735 /* Initialize ndbuf */
739 State of a new ndbuf during initialization. 'OK' means that initialization
741 state of the memory is still undefined and ndbuf->offset is disregarded.
822 init_simple(ndbuf_t *ndbuf, PyObject *items, PyObject *format,
826 Py_buffer *base = &ndbuf->base;
838 base->readonly = !(ndbuf->flags & ND_WRITABLE);
887 strides_from_shape(const ndbuf_t *ndbuf, int flags)
889 const Py_buffer *base = &ndbuf->base;
1030 init_suboffsets(ndbuf_t *ndbuf)
1032 Py_buffer *base = &ndbuf->base;
1048 data = PyMem_Malloc(ndbuf->len + addsize);
1054 memcpy(data + addsize, ndbuf->data, ndbuf->len);
1056 PyMem_Free(ndbuf->data);
1057 ndbuf->data = data;
1058 ndbuf->len += addsize;
1059 base->buf = ndbuf->data;
1061 /* imin: minimum index of the input array relative to ndbuf->offset.
1076 start = addsize + ndbuf->offset + imin;
1103 ndbuf->flags &= ~(ND_C|ND_FORTRAN);
1104 ndbuf->offset = 0;
1120 init_structure(ndbuf_t *ndbuf, PyObject *shape, PyObject *strides,
1123 Py_buffer *base = &ndbuf->base;
1127 if (ndbuf->flags & ND_PIL) {
1132 ndbuf->flags |= (ND_SCALAR|ND_C|ND_FORTRAN);
1146 base->strides = strides_from_shape(ndbuf, ndbuf->flags);
1150 if (verify_structure(base->len, base->itemsize, ndbuf->offset,
1155 base->buf = ndbuf->data + ndbuf->offset;
1160 /* ndbuf->flags */
1162 ndbuf->flags |= ND_C;
1164 ndbuf->flags |= ND_FORTRAN;
1168 if (ndbuf->flags & ND_PIL) {
1170 return init_suboffsets(ndbuf);
1180 ndbuf_t *ndbuf;
1241 ndbuf = ndbuf_new(nitems, itemsize, offset, flags);
1242 if (ndbuf == NULL) {
1248 if (init_simple(ndbuf, items, format, itemsize) < 0)
1250 if (init_structure(ndbuf, shape, strides, ndim) < 0)
1254 return ndbuf;
1258 ndbuf_free(ndbuf);
1268 ndbuf_t *ndbuf;
1270 ndbuf = init_ndbuf(items, shape, strides, offset, format, flags);
1271 if (ndbuf == NULL)
1274 ndbuf_push(nd, ndbuf);
1419 ndbuf_t *ndbuf = self->head;
1420 Py_buffer *base = &ndbuf->base;
1421 int baseflags = ndbuf->flags;
1499 so base->buf = ndbuf->data. */
1538 ndbuf_t *ndbuf = view->internal;
1539 if (--ndbuf->exports == 0 && ndbuf != self->head)
1540 ndbuf_delete(self, ndbuf);
1590 ndbuf_t *ndbuf = self->head;
1591 Py_buffer *base = &ndbuf->base;
1783 ndbuf_t *ndbuf;
1817 ndbuf = nd->head;
1818 base = &ndbuf->base;
1823 ndbuf->flags |= ND_OWN_ARRAYS;
1849 init_flags(ndbuf);
2012 ndbuf_t *ndbuf = self->head;
2013 return PyLong_FromSsize_t(ndbuf->offset);
2130 /* ndbuf */
2133 /* ndbuf.base */
2158 ndbuf_t *ndbuf = ((NDArrayObject *)self)->head;
2159 Py_buffer *src = &ndbuf->base;
2164 if (ND_C_CONTIGUOUS(ndbuf->flags))
2180 dest.strides = strides_from_shape(ndbuf, 0);
2236 const ndbuf_t *ndbuf;
2245 ndbuf = nd->head; /* self is ndarray/original exporter */
2248 ndbuf = ((NDArrayObject *)view->obj)->head;
2257 p = PyMem_Realloc(infobuf, ndbuf->len);
2268 memcpy(infobuf, ndbuf->data, ndbuf->len);
2269 info.buf = infobuf + ((char *)view->buf - ndbuf->data);