Version 21.0 March 13, 2002 Fixed bugs: [ #482603 ] Memory leak in MA/Numeric/Python Reported by Reggie Dugard. Turned out to be *two* memory leaks in one case in a routine in Numeric, array_objectype. (Dubois) [ none ] if vals was a null-array array([]) putmask and put would crash. Fixed with check. [ #469951 ] n = n1[0] gives array which shares dimension of n1 array. This causes bugs if shape of n1 is changed (n didn't used to have it's own dimensions array (Travis Oliphant) [ #514588 ] MLab.cov(x,x) != MLab.cov(x) (Travis Oliphant) [ #518702 ] segfault when invalid typecode for asarray (Travis Oliphant) [ #497530 ] MA __getitem__ prevents 0 len arrays (Reggie Duggard) [ #508363 ] outerproduct of noncontiguous arrays (Martin Wiechert) [ #513010 ] memory leak in comparisons (Byran Nollett) [ #512223 ] Character typecode not defined (Jochen Kupper) [ #500784 ] MLab.py diff error (anonymous, fixed by Dubois) [ #503741 ] accuracy of MLab.std(x) (Katsunori Waragai) [ #507568 ] overlapping copy a[2:5] = a[3:6] Change uses of memcpy to memmove which allows overlaps. [ numpy-Patches-499722 ] size of buffer created from array is bad (Michel Sanner). [ #502186 ] a BUG in RandomArray.normal (introduced by last bug fix in 20.3) (Katsunori Waragai). Fixed errors for Mac (Jack Jensen). Make rpm's properly, better Windows installers. (Gerard Vermeulen) Added files setup.cfg; setup calculates rpm_install.sh to use current Python. New setup.py, eliminate setup_all.py. Use os.path.join everywhere. Revision in b6 added file README.RPM, further improvements. Implement true division operations for Python 2.2. (Bruce Sherwood) Note: true division of all integer types results in an array of floats, not doubles. This decision is arbitrary and there are arguments either way, so users of this new feature should be aware that the decision may change in the future. New functions in Numeric; they work on any sequence a that can be converted to a Numeric array. Similar change to average in MA. (Dubois) def rank (a): "Get the rank of a (the number of dimensions, not a matrix rank)" def shape (a): "Get the shape of a" def size (a, axis=None): "Get the number of elements in a, or along a certain axis." def average (a, axis=0, weights=None, returned = 0): """average(a, axis=0, weights=None) Computes average along indicated axis. If axis is None, average over the entire array. Inputs can be integer or floating types; result is type Float. If weights are given, result is: sum(a*weights)/(sum(weights)) weights must have a's shape or be the 1-d with length the size of a in the given axis. Integer weights are converted to Float. Not supplying weights is equivalent to supply weights that are all 1. If returned, return a tuple: the result and the sum of the weights or count of values. The shape of these two results will be the same. raises ZeroDivisionError if appropriate when result is scalar. (The version in MA does not -- it returns masked values). """ Version 20.3 Please note that the __future__ options wrt integer division in Python 2.2 are NOT available in Numeric at this time. Incompatible change to functions sum and product in MA. See Packages/MA/changes.txt. Fixed memory leak in divmod [#470058] thanks Reggie Dugard. Added argmax, argmin for byte, unsigned byte [#474241] Fixed bug in RandomArray.normal for default shape. [#482046] To fix bug and correctly accept keyword args, changed fromstring interface to: fromstring(string, typecode="l", count=-1) Applied patch #[ #468068 ] Speedups for small matrices by Gary Bishop. Removed newlines in comment in multiarray. Fixed uninitalized variable in asinh on Windows. Optimization: Moved array_range to C (T. Oliphant) Add coding to setup.py for the BeOs5. (patch #466187, not applied as given) Removed a couple of warning errors in the sea of same produced by gcc's warnall. Fixed bug in arrayfns.histogram (bug #462813) Optional Package Properties 2.2 Allow external handlers in Properties. No check is made any more that the handler is an unbound method of the class. Must have the correct signature, however. Version 20.2.1 Fix bug introduced by recent changes in complex eigenvector routine. Patch #462353 by Alessandro MIRONE Version 20.2 The LinearAlgebra module uses Lapack 1.0 and Lapack 2.0 routines. New routines available in Lapack 3.0 are dramatically faster for SVD, linear-least squares and symmetric eigenvalue problems. This patch replaces the old calls to dgesvd, dgelss and dsyev with calls to the newer, faster routines dgesdd, dgelsd and dsyevd. (Jeff Whitaker) The LinearAlgebra patch fixes bug #424753 wrt linear least squares. Implemented equality and inequality testing for arrays of characters, complex numbers, and objects (T. Oliphant) Allow Mac to use setup_all.py (Jack Jansen, patch 401657) Fixed bug in RandomArray multivariate_normal. (Aureli Soria Frisch). Fixed sinc in MLab.py. (Chuck Harris) In RandomArray.py, fixed randint, made random_integers use randint. (Chuck Harris, Bug #448303) In RandomArray.py, improved implementation of internal routine _build_random_array, but not as Harris suggested exactly. (Dubois) Removed tabs from MLab.py and RandomArray.py Improved test in RandomArray Version 20.1 MA and kinds rebased on new package Properties (which grew out of the old activeattr.py file previously in MA). Masked arrays can now be pickled. Optional package Properties provides a easy-to-use method to have a name act as if it is a attribute of the class but be able to control reading, writing, and deleting of that attribute via methods of the class. Applied patch that fixes errors when Python is pymalloc-enabled (dmcooke). Applied patch to add new support in LinearAlgebra for symmetrical eigenvalue problems. (Allesandro Mirone) Applied patch to fix comparisons to None in MLab.py (jbmoody). Found and fixed another one in RandomArray.py. Applied suggested fix by Mark Hadfield to let setup_all.py work on systems where Python is installed in a directory path that contains a space. Added DL_EXPORT macro to RNG, FFT, kinds packages for Windows. Version 20.0 Redo setup.py so that binary windows installers for Numeric, FFT, MA, etc. can be made automatically. Packages LALITE and RANLIB merged back to top level. Adjustment for BLAS in setup.py. Documentation of Numeric module made more compatible with pydoc. argmin/argmax/argsort/sort errors with axis specs fixed (bug #233805) -- also made them capable of handling args that can be converted to arrays by adding an array(a, copy=0) at the start. Fixes sum, product, cumsum, cumproduct, alltrue, sometrue to deal with zero shape and to take arguments that can be converted to arrays. MA: See changes.txt file in MA for bug fixes and improvements. New option for average to return sum of weights. Fix bug in putmask so that it handles targets of type object. Because of reference counting issues this is done in Python, not C, and would not be more efficient than doing your own loop, but we include it for completeness. In Packages add draft implementation for PEP 0242, Numerical Kinds. Add PyArray_CopyArray to the API (Thanks to Dave Grote). Add defines for cygwin. In arrayobject.h, add static declaration to importing API pointer. May solve OS X problems. Fix bug in FFT packages, added new test. (Thanks to Warren Focke) Added __deepcopy__ method equal to __copy__ method. Throws an exception if the target is an array of type 'O'. But this at least allows non-object type arrays to be copy.deepcopied. If someone has time they can do this case. Version 19.0.0 Fixed incompatibilities with 2.0 Version 18 Compatible with Python 2.1 ONLY Adds support for rich comparisons and in-place operators. (Travis Oliphant and students) Fix bug in array_getcharbuf() (--Jack Jensen) Fix bug in setup.py for Windows related to -lm library. LALITE Package: MLab.py fix off-by-one errors reported by J. Gilligan in bug report #230061. MA Package: Upgrade with API change to filled function. See Packages/MA/changes.txt Fixed two one-time memory leaks of one word each reported by T. Epperly in bug report #404993 Replace uses of == None and != None with is None and is not None.