summaryrefslogtreecommitdiff
path: root/doc/source/reference
diff options
context:
space:
mode:
Diffstat (limited to 'doc/source/reference')
-rw-r--r--doc/source/reference/arrays.dtypes.rst12
-rw-r--r--doc/source/reference/c-api.array.rst6
-rw-r--r--doc/source/reference/c-api.iterator.rst24
-rw-r--r--doc/source/reference/c-api.types-and-structures.rst12
-rw-r--r--doc/source/reference/routines.testing.rst1
5 files changed, 38 insertions, 17 deletions
diff --git a/doc/source/reference/arrays.dtypes.rst b/doc/source/reference/arrays.dtypes.rst
index 2fc1add99..797f1f6f8 100644
--- a/doc/source/reference/arrays.dtypes.rst
+++ b/doc/source/reference/arrays.dtypes.rst
@@ -220,16 +220,20 @@ One-character strings
Array-protocol type strings (see :ref:`arrays.interface`)
The first character specifies the kind of data and the remaining
- characters specify how many bytes of data. The supported kinds are
+ characters specify the number of bytes per item. The item size may
+ be ignored for some kinds (i.e., boolean, object), rounded to the
+ next supported size (float, complex), or interpreted as the number
+ of characters (Unicode). The supported kinds are
================ ========================
- ``'b'`` Boolean
+ ``'b'`` boolean
``'i'`` (signed) integer
``'u'`` unsigned integer
``'f'`` floating-point
``'c'`` complex-floating point
- ``'S'``, ``'a'`` string
- ``'U'`` unicode
+ ``'O'`` (Python) objects
+ ``'S'``, ``'a'`` (byte-)string
+ ``'U'`` Unicode
``'V'`` raw data (:class:`void`)
================ ========================
diff --git a/doc/source/reference/c-api.array.rst b/doc/source/reference/c-api.array.rst
index 3ce49cb85..2ce43b2be 100644
--- a/doc/source/reference/c-api.array.rst
+++ b/doc/source/reference/c-api.array.rst
@@ -2899,10 +2899,14 @@ the C-API is needed then some additional steps must be taken.
.. code-block:: c
- #define PY_ARRAY_UNIQUE_SYMBOL cool_ARRAY_API
#define NO_IMPORT_ARRAY
+ #define PY_ARRAY_UNIQUE_SYMBOL cool_ARRAY_API
#include numpy/arrayobject.h
+ You can also put the common two last lines into an extension-local
+ header file as long as you make sure that NO_IMPORT_ARRAY is
+ #defined before #including that file.
+
Checking the API Version
^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/doc/source/reference/c-api.iterator.rst b/doc/source/reference/c-api.iterator.rst
index b26845434..084fdcbce 100644
--- a/doc/source/reference/c-api.iterator.rst
+++ b/doc/source/reference/c-api.iterator.rst
@@ -229,7 +229,7 @@ is used to control the memory layout of the allocated result, typically
npy_intp i;
do {
npy_intp size = *innersizeptr;
- char *src = dataaddr[0], *dst = dataaddr[1];
+ char *src = dataptrarray[0], *dst = dataptrarray[1];
for(i = 0; i < size; i++, src += innerstride, dst += itemsize) {
memcpy(dst, src, itemsize);
}
@@ -369,7 +369,14 @@ Construction and Destruction
Causes the iterator to track a multi-index.
This prevents the iterator from coalescing axes to
- produce bigger inner loops.
+ produce bigger inner loops. If the loop is also not buffered
+ and no index is being tracked (`NpyIter_RemoveAxis` can be called),
+ then the iterator size can be ``-1`` to indicate that the iterator
+ is too large. This can happen due to complex broadcasting and
+ will result in errors being created when the setting the iterator
+ range, removing the multi index, or getting the next function.
+ However, it is possible to remove axes again and use the iterator
+ normally if the size is small enough after removal.
.. cvar:: NPY_ITER_EXTERNAL_LOOP
@@ -412,8 +419,9 @@ Construction and Destruction
Indicates that arrays with a size of zero should be permitted.
Since the typical iteration loop does not naturally work with
- zero-sized arrays, you must check that the IterSize is non-zero
- before entering the iteration loop.
+ zero-sized arrays, you must check that the IterSize is larger
+ than zero before entering the iteration loop.
+ Currently only the operands are checked, not a forced shape.
.. cvar:: NPY_ITER_REDUCE_OK
@@ -721,7 +729,7 @@ Construction and Destruction
**WARNING**: This function may change the internal memory layout of
the iterator. Any cached functions or pointers from the iterator
- must be retrieved again!
+ must be retrieved again! The iterator range will be reset as well.
Returns ``NPY_SUCCEED`` or ``NPY_FAIL``.
@@ -887,7 +895,11 @@ Construction and Destruction
.. cfunction:: npy_intp NpyIter_GetIterSize(NpyIter* iter)
Returns the number of elements being iterated. This is the product
- of all the dimensions in the shape.
+ of all the dimensions in the shape. When a multi index is being tracked
+ (and `NpyIter_RemoveAxis` may be called) the size may be ``-1`` to
+ indicate an iterator is too large. Such an iterator is invalid, but
+ may become valid after `NpyIter_RemoveAxis` is called. It is not
+ necessary to check for this case.
.. cfunction:: npy_intp NpyIter_GetIterIndex(NpyIter* iter)
diff --git a/doc/source/reference/c-api.types-and-structures.rst b/doc/source/reference/c-api.types-and-structures.rst
index 79a888912..f1e216a5c 100644
--- a/doc/source/reference/c-api.types-and-structures.rst
+++ b/doc/source/reference/c-api.types-and-structures.rst
@@ -466,10 +466,10 @@ PyArrayDescr_Type
A pointer to a function that compares two elements of the
array, ``arr``, pointed to by ``d1`` and ``d2``. This
- function requires behaved arrays. The return value is 1 if *
- ``d1`` > * ``d2``, 0 if * ``d1`` == * ``d2``, and -1 if *
- ``d1`` < * ``d2``. The array object arr is used to retrieve
- itemsize and field information for flexible arrays.
+ function requires behaved (aligned and not swapped) arrays.
+ The return value is 1 if * ``d1`` > * ``d2``, 0 if * ``d1`` == *
+ ``d2``, and -1 if * ``d1`` < * ``d2``. The array object ``arr`` is
+ used to retrieve itemsize and field information for flexible arrays.
.. cmember:: int argmax(void* data, npy_intp n, npy_intp* max_ind,
void* arr)
@@ -1119,8 +1119,8 @@ PyArrayInterface
A character indicating what kind of array is present according to the
typestring convention with 't' -> bitfield, 'b' -> Boolean, 'i' ->
signed integer, 'u' -> unsigned integer, 'f' -> floating point, 'c' ->
- complex floating point, 'O' -> object, 'S' -> string, 'U' -> unicode,
- 'V' -> void.
+ complex floating point, 'O' -> object, 'S' -> (byte-)string, 'U' ->
+ unicode, 'V' -> void.
.. cmember:: int PyArrayInterface.itemsize
diff --git a/doc/source/reference/routines.testing.rst b/doc/source/reference/routines.testing.rst
index c0bcdaaeb..834d8bbe3 100644
--- a/doc/source/reference/routines.testing.rst
+++ b/doc/source/reference/routines.testing.rst
@@ -25,6 +25,7 @@ Asserts
assert_array_less
assert_equal
assert_raises
+ assert_raises_regex
assert_warns
assert_string_equal