summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Berg <sebastian@sipsolutions.net>2012-10-21 18:34:04 +0200
committerSebastian Berg <sebastian@sipsolutions.net>2012-10-21 18:37:38 +0200
commit4b281479db093a55c010610ad287c75beb6da13b (patch)
tree5dbf562060839089603db307e3d96ed4da240abf
parentfb64bbf12f2405b3dc97f7736ae3dc35daf615dc (diff)
downloadnumpy-4b281479db093a55c010610ad287c75beb6da13b.tar.gz
API: Change isfortran to f-contig and not c-contig
This was a check for 1-d arrays, this is the generalization to higher dimension if we allow higher dimensioal arrays to be both f- and c-contiguous.
-rw-r--r--numpy/core/include/numpy/ndarraytypes.h7
-rw-r--r--numpy/core/numeric.py4
2 files changed, 6 insertions, 5 deletions
diff --git a/numpy/core/include/numpy/ndarraytypes.h b/numpy/core/include/numpy/ndarraytypes.h
index 93d561c7c..919ef55e0 100644
--- a/numpy/core/include/numpy/ndarraytypes.h
+++ b/numpy/core/include/numpy/ndarraytypes.h
@@ -756,8 +756,9 @@ typedef int (PyArray_FinalizeFunc)(PyArrayObject *, PyObject *);
#define NPY_ARRAY_F_CONTIGUOUS 0x0002
/*
- * Note: all 0-d arrays are C_CONTIGUOUS and F_CONTIGUOUS. If a
- * 1-d array is C_CONTIGUOUS it is also F_CONTIGUOUS
+ * Note: all 0-d arrays are C_CONTIGUOUS and F_CONTIGUOUS. An N-d
+ * array that is C_CONTIGUOUS may also be F_CONTIGUOUS if only
+ * one axis has a dimension different from one (ie. a 1x3x1 array).
*/
/*
@@ -1370,7 +1371,7 @@ PyArrayNeighborhoodIter_Next2D(PyArrayNeighborhoodIterObject* iter);
PyArray_CHKFLAGS(m, NPY_ARRAY_F_CONTIGUOUS))
#define PyArray_ISFORTRAN(m) (PyArray_CHKFLAGS(m, NPY_ARRAY_F_CONTIGUOUS) && \
- (PyArray_NDIM(m) > 1))
+ (!PyArray_CHKFLAGS(m, NPY_ARRAY_C_CONTIGUOUS)))
#define PyArray_FORTRAN_IF(m) ((PyArray_CHKFLAGS(m, NPY_ARRAY_F_CONTIGUOUS) ? \
NPY_ARRAY_F_CONTIGUOUS : 0))
diff --git a/numpy/core/numeric.py b/numpy/core/numeric.py
index 5f0474d3e..0d0babbac 100644
--- a/numpy/core/numeric.py
+++ b/numpy/core/numeric.py
@@ -538,7 +538,7 @@ def require(a, dtype=None, requirements=None):
def isfortran(a):
"""
Returns True if array is arranged in Fortran-order in memory
- and dimension > 1.
+ and not C-order.
Parameters
----------
@@ -584,7 +584,7 @@ def isfortran(a):
>>> np.isfortran(b)
True
- 1-D arrays always evaluate as False.
+ C-ordered arrays evaluate as False even if they are also FORTRAN-ordered.
>>> np.isfortran(np.array([1, 2], order='FORTRAN'))
False