On Wed, Jan 25, 2012 at 12:03 AM, Charles R Harris <charlesr.har...@gmail.com> wrote: > > > On Tue, Jan 24, 2012 at 4:21 PM, Kathleen M Tacina > <kathleen.m.tac...@nasa.gov> wrote: >> >> I found something similar, with a very simple example. >> >> On 64-bit linux, python 2.7.2, numpy development version: >> >> In [22]: a = 4000*np.ones((1024,1024),dtype=np.float32) >> >> In [23]: a.mean() >> Out[23]: 4034.16357421875 >> >> In [24]: np.version.full_version >> Out[24]: '2.0.0.dev-55472ca' >> >> >> But, a Windows XP machine running python 2.7.2 with numpy 1.6.1 gives: >> >>>a = np.ones((1024,1024),dtype=np.float32) >> >>>a.mean() >> 4000.0 >> >>>np.version.full_version >> '1.6.1' >> >> > > Yes, the results are platform/compiler dependent. The 32 bit platforms tend > to use extended precision accumulators and the x87 instruction set. The 64 > bit platforms tend to use sse2+. Different precisions, even though you might > think they are the same.
just to confirm, same computer as before but the python 3.2 version is 64 bit, now I get the "Linux" result Python 3.2 (r32:88445, Feb 20 2011, 21:30:00) [MSC v.1500 64 bit (AMD64)] on win32 >>> import numpy as np >>> np.__version__ '1.5.1' >>> a = 4000*np.ones((1024,1024),dtype=np.float32) >>> a.mean() 4034.16357421875 >>> a.mean(0).mean(0) 4000.0 >>> a.mean(dtype=np.float64) 4000.0 Josef > > <snip> > > Chuck > > _______________________________________________ > 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