[Numpy-discussion] isfortran compatibility in numpy 1.10.
Travis Oliphant
travis at continuum.io
Fri Oct 30 20:03:19 EDT 2015
As I posted to the github issue, I support #2 as it is the original
meaning. The most common case of isfortran that I recall was to support
transpositions that needed to occur before calling Fortran-compiled linear
algebra routines.
However, with that said, you could also reasonably do #1 and likely have no
real problem --- because transposing a 1-d array doesn't have any effect.
In NumPy 1.0.1, isfortran was intended to be True only for arrays with
a.ndim > 1. Thus, it would have been possible for someone to rely on that
invariant for some other reason.
With relaxed stride checking, this invariant changed because isfortran was
implemented by returning True if the F_Contiguous flag was set but the
C_Contiguous flag was not (this was only ever previously possible for
a.ndim > 1).
If you choose to go with #1, please emphasize in the release notes that
isfortran now does not assume a.ndim > 1 but is simply short-hand for
a.flags.f_contiguous.
-Travis
On Fri, Oct 30, 2015 at 5:12 PM, Charles R Harris <charlesr.harris at gmail.com
> wrote:
> Hi All,
>
> The isfortran function calls a.fnc (Fortran-Not-C), which is implemented
> as F_CONTIGUOUS && !C_CONTIGUOUS. Before relaxed stride checking
> contiguous multidimensional arrays could not be both and continguous 1-D
> arrays were always CONTIGUOUS, but this is not longer the case.
> Consequently current isfortran breaks backward compatiblity. There are two
> suggested solutions
>
> 1. Return `a.flags.f_contiguous`. This differs for 1-D arrays, but is
> most consistent with the name isfortran.
> 2. Return `a.flags.f_contiguous and a.ndim > 1`, which would be
> backward compatible.
>
> It is also possible to start with 2. but add a FutureWarning and later
> move to 1, which it my preferred solution. See gh-6590
> <https://github.com/numpy/numpy/issues/6590> for the issue.
>
> Thoughts?
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> https://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
--
*Travis Oliphant*
*Co-founder and CEO*
@teoliphant
512-222-5440
http://www.continuum.io
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20151030/7be4bc1d/attachment.html>
More information about the NumPy-Discussion
mailing list