Repository URL to install this package:
|
Version:
1.10.0 ▾
|
#ifndef _NPY_ARRAYMAPPING_H_
#define _NPY_ARRAYMAPPING_H_
#ifdef NPY_ENABLE_SEPARATE_COMPILATION
extern NPY_NO_EXPORT PyMappingMethods array_as_mapping;
#else
NPY_NO_EXPORT PyMappingMethods array_as_mapping;
#endif
/*
* Struct into which indices are parsed.
* I.e. integer ones should only be parsed once, slices and arrays
* need to be validated later and for the ellipsis we need to find how
* many slices it represents.
*/
typedef struct {
/*
* Object of index: slice, array, or NULL. Owns a reference.
*/
PyObject *object;
/*
* Value of an integer index, number of slices an Ellipsis is worth,
* -1 if input was an integer array and the original size of the
* boolean array if it is a converted boolean array.
*/
npy_intp value;
/* kind of index, see constants in mapping.c */
int type;
} npy_index_info;
NPY_NO_EXPORT Py_ssize_t
array_length(PyArrayObject *self);
NPY_NO_EXPORT PyObject *
array_item_asarray(PyArrayObject *self, npy_intp i);
NPY_NO_EXPORT PyObject *
array_item_asscalar(PyArrayObject *self, npy_intp i);
NPY_NO_EXPORT PyObject *
array_item(PyArrayObject *self, Py_ssize_t i);
NPY_NO_EXPORT PyObject *
array_subscript_asarray(PyArrayObject *self, PyObject *op);
NPY_NO_EXPORT PyObject *
array_subscript(PyArrayObject *self, PyObject *op);
NPY_NO_EXPORT int
array_assign_item(PyArrayObject *self, Py_ssize_t i, PyObject *v);
/*
* Prototypes for Mapping calls --- not part of the C-API
* because only useful as part of a getitem call.
*/
NPY_NO_EXPORT void
PyArray_MapIterReset(PyArrayMapIterObject *mit);
NPY_NO_EXPORT void
PyArray_MapIterNext(PyArrayMapIterObject *mit);
NPY_NO_EXPORT int
PyArray_MapIterCheckIndices(PyArrayMapIterObject *mit);
NPY_NO_EXPORT void
PyArray_MapIterSwapAxes(PyArrayMapIterObject *mit, PyArrayObject **ret, int getmap);
NPY_NO_EXPORT PyObject*
PyArray_MapIterNew(npy_index_info *indices , int index_num, int index_type,
int ndim, int fancy_ndim,
PyArrayObject *arr, PyArrayObject *subspace,
npy_uint32 subspace_iter_flags, npy_uint32 subspace_flags,
npy_uint32 extra_op_flags, PyArrayObject *extra_op,
PyArray_Descr *extra_op_dtype);
#endif