[Numpy-discussion] Numpy 1.9.1, zeros and alignement

David Cournapeau cournape at gmail.com
Tue Nov 18 13:56:06 EST 2014


On Tue, Nov 18, 2014 at 6:40 PM, Julian Taylor <
jtaylor.debian at googlemail.com> wrote:

> < 1.9 lies about alignment it doesn't actually check for new arrays.
>

When I do the following on 1.8.1 with win 32 bits:

x = np.zeros(12, "D")
print x.aligned.flags  == (x.__array_interface__["data"][0] % 16 == 0) #
always true
print x.aligned.flags # always true

but on 1.9.1:

x = np.zeros(12, "D")
print x.aligned.flags == (x.__array_interface__["data"][0] % 16 == 0) #
always true
print x.aligned.flags # not always true

I wonder why numpy 1.8.1 always returned 16 bytes aligned arrays in this
case (unlikely to be a coincidence, as I try quite a few times with
different sizes).


>
> is the array aligned?
>
> On 18.11.2014 19:37, David Cournapeau wrote:
> > Additional point: it seems to always return aligned data on 1.8.1 (same
> > platform/compiler/everything).
> >
> > On Tue, Nov 18, 2014 at 6:35 PM, David Cournapeau <cournape at gmail.com
> > <mailto:cournape at gmail.com>> wrote:
> >
> >     It is on windows 32 bits, but I would need to make this work for
> >     complex (pair of double) as well.
> >
> >     Is this a bug (I  assumed array creation methods would always create
> >     aligned arrays for their type) ? Seems like quite a bit of code out
> >     there would assume this (scipy itself does for example).
> >
> >     (the context is > 100 test failures on scipy 0.14.x on top of numpy
> >     1.9., because f2py intent(inout) fails on work arrays created by
> >     zeros, this is a windows-32 only failure).
> >
> >     David
> >
> >     On Tue, Nov 18, 2014 at 6:26 PM, Julian Taylor
> >     <jtaylor.debian at googlemail.com
> >     <mailto:jtaylor.debian at googlemail.com>> wrote:
> >
> >         On 18.11.2014 19:20, David Cournapeau wrote:
> >         > Hi,
> >         >
> >         > I have not followed closely the changes that happen in 1.9.1,
> >         but was
> >         > surprised by the following:
> >         >
> >         > x = np.zeros(12, "d")
> >         > assert x.flags.aligned # fails
> >         >
> >         > This is running numpy 1.9.1 built on windows with VS 2008. Is
> it
> >         > expected that zeros may return a non-aligned array ?
> >         >
> >
> >         what is the real alignment of the array? Are you on 32 bit or 64
> >         bit?
> >         What is the alignment of doubles in windows (linux its 4 byte on
> >         32 bit
> >         8 byte on 64 bit (% special compiler flags)?
> >         print x.__array_interface__["data"]
> >
> >         there are problems with complex types but doubles should be
> >         aligned even
> >         on 32 bit.
> >         _______________________________________________
> >         NumPy-Discussion mailing list
> >         NumPy-Discussion at scipy.org <mailto:NumPy-Discussion at scipy.org>
> >         http://mail.scipy.org/mailman/listinfo/numpy-discussion
> >
> >
> >
> >
> >
> > _______________________________________________
> > NumPy-Discussion mailing list
> > NumPy-Discussion at scipy.org
> > http://mail.scipy.org/mailman/listinfo/numpy-discussion
> >
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20141118/06ab7d70/attachment.html>


More information about the NumPy-Discussion mailing list