On 5/24/13, Peter Cock <p.j.a.c...@googlemail.com> wrote: > On Fri, May 24, 2013 at 2:15 PM, Robert Kern <robert.k...@gmail.com> wrote: >> On Fri, May 24, 2013 at 9:12 AM, Peter Cock <p.j.a.c...@googlemail.com> >> wrote: >>> On Fri, May 24, 2013 at 1:59 PM, Emanuele Olivetti >>> <emanu...@relativita.com> wrote: >>>> Interesting. Anyone able to reproduce what I observe? >>>> >>>> Emanuele >>> >>> >>> Yes, I can reproduce this IndexError under Mac OS X: >>> >>> $ which python2.7 >>> /usr/bin/python2.7 >>> $ python2.7 >>> Python 2.7.2 (default, Oct 11 2012, 20:14:37) >>> [GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on >>> darwin >>> Type "help", "copyright", "credits" or "license" for more information. >> >> Can everyone please report whether they have a 32-bit build of Python >> or a 64-bit build? That's probably the most relevant factor. > > It seems to affect all of 32 bit Windows XP, 64 bit Mac, 32 bit Linux, > and 64 bit Linux > for some versions of NumPy... Thus far the only non-failure I've seen > is 64 bit Linux, > Python 2.6.6 with NumPy 1.6.2 (other Python/NumPy installs on this > machine do fail). > > Its a bit strange - I don't see any obvious pattern. > > Peter > > ------------------------------------------- > > Failures: > > My Python installs on this Mac all seem to be 64bit (and fail), > > $ python3.3 > Python 3.3.1 (default, Apr 8 2013, 17:54:08) > [GCC 4.2.1 Compatible Apple Clang 4.0 ((tags/Apple/clang-421.0.57))] on > darwin > Type "help", "copyright", "credits" or "license" for more information. >>>> import sys;print("%x" % sys.maxsize, sys.maxsize > 2**32) > 7fffffffffffffff True >>>> import numpy as np >>>> print(np.random.multivariate_normal(mean=np.zeros(2), cov=np.eye(2), >>>> size=1)) > [[ 1.80932387 0.85894164]] >>>> print(np.random.multivariate_normal(mean=np.zeros(2), cov=np.eye(2), >>>> size=np.int64(1))) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "mtrand.pyx", line 4161, in > mtrand.RandomState.multivariate_normal > (numpy/random/mtrand/mtrand.c:19140) > IndexError: invalid index to scalar variable. >>>> np.__version__ > '1.7.1' >>>> quit() > > This also affects NumPy 1.5 so this isn't a recent regression: > > $ python3.2 > Python 3.2 (r32:88445, Feb 28 2011, 17:04:33) > [GCC 4.2.1 (Apple Inc. build 5664)] on darwin > Type "help", "copyright", "credits" or "license" for more information. >>>> import sys;print("%x" % sys.maxsize, sys.maxsize > 2**32) > 7fffffffffffffff True >>>> import numpy as np >>>> print(np.random.multivariate_normal(mean=np.zeros(2), cov=np.eye(2), >>>> size=1)) > [[ 1.11403341 -1.67856405]] >>>> print(np.random.multivariate_normal(mean=np.zeros(2), cov=np.eye(2), >>>> size=np.int64(1))) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "mtrand.pyx", line 3954, in > mtrand.RandomState.multivariate_normal > (numpy/random/mtrand/mtrand.c:17234) > IndexError: invalid index to scalar variable. >>>> np.__version__ > '1.5.0' > > $ python3.1 > Python 3.1.2 (r312:79147, Nov 15 2010, 16:28:52) > [GCC 4.2.1 (Apple Inc. build 5664)] on darwin > Type "help", "copyright", "credits" or "license" for more information. >>>> import sys;print("%x" % sys.maxsize, sys.maxsize > 2**32) > 7fffffffffffffff True >>>> import numpy as np >>>> print(np.random.multivariate_normal(mean=np.zeros(2), cov=np.eye(2), >>>> size=1)) > [[ 0.3834108 -0.31124203]] >>>> print(np.random.multivariate_normal(mean=np.zeros(2), cov=np.eye(2), >>>> size=np.int64(1))) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "mtrand.pyx", line 3954, in > mtrand.RandomState.multivariate_normal > (numpy/random/mtrand/mtrand.c:17234) > IndexError: invalid index to scalar variable. >>>> np.__version__ > '1.5.0' >>>> quit() > > And on my 32 bit Windows XP box, > > Python 2.7 (r27:82525, Jul 4 2010, 09:01:59) [MSC v.1500 32 bit > (Intel)] on win32 > Type "help", "copyright", "credits" or "license" for more information. >>>> import sys;print("%x" % sys.maxsize, sys.maxsize > 2**32) > ('7fffffff', False) >>>> import numpy as np >>>> print(np.random.multivariate_normal(mean=np.zeros(2), cov=np.eye(2), >>>> size=1)) > [[-0.35072523 -0.58046885]] >>>> print(np.random.multivariate_normal(mean=np.zeros(2), cov=np.eye(2), >>>> size=np.int64(1))) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "mtrand.pyx", line 3954, in > mtrand.RandomState.multivariate_normal > (numpy\random\mtrand\mtrand.c:17234) > IndexError: invalid index to scalar variable. >>>> np.__version__ > '1.5.0' >>>> > > Python 3.3.0 (v3.3.0:bd8afb90ebf2, Sep 29 2012, 10:55:48) [MSC v.1600 > 32 bit (Intel)] on win32 > Type "help", "copyright", "credits" or "license" for more information. >>>> import numpy as np >>>> print(np.random.multivariate_normal(mean=np.zeros(2), cov=np.eye(2), >>>> size=1)) > [[-0.00453374 0.2210342 ]] >>>> print(np.random.multivariate_normal(mean=np.zeros(2), cov=np.eye(2), >>>> size=np.int64(1))) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "mtrand.pyx", line 4142, in > mtrand.RandomState.multivariate_normal > (numpy\random\mtrand\mtrand.c:19128) > IndexError: invalid index to scalar variable. >>>> >>>> np.__version__ > '1.7.0rc2' > > Here's a couple of runs from an old 32 bit Linux machine which also > shows the problem: > > $ python2.7 > Python 2.7 (r27:82500, Nov 12 2010, 14:19:08) > [GCC 4.1.2 20070626 (Red Hat 4.1.2-13)] on linux2 > Type "help", "copyright", "credits" or "license" for more information. >>>> import sys;print("%x" % sys.maxsize, sys.maxsize > 2**32) > ('7fffffff', False) >>>> import numpy as np >>>> print(np.random.multivariate_normal(mean=np.zeros(2), cov=np.eye(2), >>>> size=1)) > [[ 0.40887932 -0.09872295]] >>>> print(np.random.multivariate_normal(mean=np.zeros(2), cov=np.eye(2), >>>> size=np.int64(1))) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "mtrand.pyx", line 3952, in > mtrand.RandomState.multivariate_normal > (numpy/random/mtrand/mtrand.c:17027) > IndexError: invalid index to scalar variable. >>>> np.__version__ > '1.4.1' >>>> quit() > > $ python3.3 > Python 3.3.0 (default, Oct 31 2012, 13:19:08) > [GCC 4.1.2 20070626 (Red Hat 4.1.2-13)] on linux > Type "help", "copyright", "credits" or "license" for more information. >>>> import sys;print("%x" % sys.maxsize, sys.maxsize > 2**32) > 7fffffff False >>>> import numpy as np >>>> print(np.random.multivariate_normal(mean=np.zeros(2), cov=np.eye(2), >>>> size=1)) > [[-0.16796654 -1.71312415]] >>>> print(np.random.multivariate_normal(mean=np.zeros(2), cov=np.eye(2), >>>> size=np.int64(1))) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "mtrand.pyx", line 4127, in > mtrand.RandomState.multivariate_normal > (numpy/random/mtrand/mtrand.c:18657) > IndexError: invalid index to scalar variable. >>>> np.__version__ > '1.7.0b2' >>>> quit() > > And a more up to date 64 bit Linux machine where this fails on > some versions of NumPy: > > $ python3.3 > Python 3.3.1 (default, Apr 8 2013, 14:38:06) > [GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux > Type "help", "copyright", "credits" or "license" for more information. >>>> import sys;print("%x" % sys.maxsize, sys.maxsize > 2**32) > 7fffffffffffffff True >>>> import numpy as np >>>> print(np.random.multivariate_normal(mean=np.zeros(2), cov=np.eye(2), >>>> size=1)) > [[-0.18862683 -0.92177665]] >>>> print(np.random.multivariate_normal(mean=np.zeros(2), cov=np.eye(2), >>>> size=np.int64(1))) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > File "mtrand.pyx", line 4127, in > mtrand.RandomState.multivariate_normal > (numpy/random/mtrand/mtrand.c:18657) > IndexError: invalid index to scalar variable. >>>> np.__version__ > '1.7.0b2' >>>> quit() > > ------------------------------------------- > Successes > ------------------------------------------- > > 64 bit Linux: > > $ python2.6 > Python 2.6.6 (r266:84292, Sep 11 2012, 08:34:23) > [GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2 > Type "help", "copyright", "credits" or "license" for more information. >>>> import sys;print("%x" % sys.maxsize, sys.maxsize > 2**32) > ('7fffffffffffffff', True) >>>> import numpy as np >>>> print(np.random.multivariate_normal(mean=np.zeros(2), cov=np.eye(2), >>>> size=1)) > [[-0.27469218 -2.12911784]] >>>> print(np.random.multivariate_normal(mean=np.zeros(2), cov=np.eye(2), >>>> size=np.int64(1))) > [[ 0.02609307 0.32485211]] >>>> np.__version__ > '1.6.2' >>>> quit() > >
Peter: wow, that's a lot of tests! Two more data points: On Ubuntu 12.04, using 64 bit builds of Python 2.7.4 (from Anaconda 1.5.0), and numpy built from source: numpy 1.6.1 gives the error, but 1.6.2 does not. Warren > > Peter > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion > _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion