Commit graph

3581 commits

Author SHA1 Message Date
adam
4606c07235 Revbump after updating devel/boost-libs 2015-04-17 15:52:56 +00:00
wen
ef56467b5b Update to 0.15.1
Upstream changes:
SciPy 0.15.1 is a bug-fix release with no new features compared to 0.15.0.

Issues fixed
- ------------

* `#4413 <https://github.com/scipy/scipy/pull/4413>`__: BUG: Tests too strict, f2py doesn't have to overwrite this array
* `#4417 <https://github.com/scipy/scipy/pull/4417>`__: BLD: avoid using NPY_API_VERSION to check not using deprecated...
* `#4418 <https://github.com/scipy/scipy/pull/4418>`__: Restore and deprecate scipy.linalg.calc_work

SciPy 0.15.0 Release Notes
==========================

.. contents::

SciPy 0.15.0 is the culmination of 6 months of hard work. It contains
several new features, numerous bug-fixes, improved test coverage and
better documentation.  There have been a number of deprecations and
API changes in this release, which are documented below.  All users
are encouraged to upgrade to this release, as there are a large number
of bug-fixes and optimizations.  Moreover, our development attention
will now shift to bug-fix releases on the 0.16.x branch, and on adding
new features on the master branch.

This release requires Python 2.6, 2.7 or 3.2-3.4 and NumPy 1.5.1 or greater.


New features
============

Linear Programming Interface
- ----------------------------

The new function `scipy.optimize.linprog` provides a generic
linear programming similar to the way `scipy.optimize.minimize`
provides a generic interface to nonlinear programming optimizers.
Currently the only method supported is *simplex* which provides
a two-phase, dense-matrix-based simplex algorithm. Callbacks
functions are supported, allowing the user to monitor the progress
of the algorithm.

Differential evolution, a global optimizer
- ------------------------------------------

A new `scipy.optimize.differential_evolution` function has been added to the
``optimize`` module.  Differential Evolution is an algorithm used for finding
the global minimum of multivariate functions. It is stochastic in nature (does
not use gradient methods), and can search large areas of candidate space, but
often requires larger numbers of function evaluations than conventional
gradient based techniques.

``scipy.signal`` improvements
- -----------------------------

The function `scipy.signal.max_len_seq` was added, which computes a Maximum
Length Sequence (MLS) signal.

``scipy.integrate`` improvements
- --------------------------------

It is now possible to use `scipy.integrate` routines to integrate
multivariate ctypes functions, thus avoiding callbacks to Python and
providing better performance.

``scipy.linalg`` improvements
- -----------------------------

The function `scipy.linalg.orthogonal_procrustes` for solving the procrustes
linear algebra problem was added.

BLAS level 2 functions ``her``, ``syr``, ``her2`` and ``syr2`` are now wrapped
in ``scipy.linalg``.

``scipy.sparse`` improvements
- -----------------------------

`scipy.sparse.linalg.svds` can now take a ``LinearOperator`` as its main input.

``scipy.special`` improvements
- ------------------------------

Values of ellipsoidal harmonic (i.e. Lame) functions and associated
normalization constants can be now computed using ``ellip_harm``,
``ellip_harm_2``, and ``ellip_normal``.

New convenience functions ``entr``, ``rel_entr`` ``kl_div``,
``huber``, and ``pseudo_huber`` were added.

``scipy.sparse.csgraph`` improvements
- -------------------------------------

Routines ``reverse_cuthill_mckee`` and ``maximum_bipartite_matching``
for computing reorderings of sparse graphs were added.

``scipy.stats`` improvements
- ----------------------------

Added a Dirichlet multivariate distribution, `scipy.stats.dirichlet`.

The new function `scipy.stats.median_test` computes Mood's median test.

The new function `scipy.stats.combine_pvalues` implements Fisher's
and Stouffer's methods for combining p-values.

`scipy.stats.describe` returns a namedtuple rather than a tuple, allowing
users to access results by index or by name.


Deprecated features
===================

The `scipy.weave` module is deprecated.  It was the only module never ported
to Python 3.x, and is not recommended to be used for new code - use Cython
instead.  In order to support existing code, ``scipy.weave`` has been packaged
separately: https://github.com/scipy/weave.  It is a pure Python package, and
can easily be installed with ``pip install weave``.

`scipy.special.bessel_diff_formula` is deprecated.  It is a private function,
and therefore will be removed from the public API in a following release.

``scipy.stats.nanmean``, ``nanmedian`` and ``nanstd`` functions are deprecated
in favor of their numpy equivalents.


Backwards incompatible changes
==============================

scipy.ndimage
- -------------

The functions `scipy.ndimage.minimum_positions`,
`scipy.ndimage.maximum_positions`` and `scipy.ndimage.extrema` return
positions as ints instead of floats.

scipy.integrate
- ---------------

The format of banded Jacobians in `scipy.integrate.ode` solvers is
changed. Note that the previous documentation of this feature was
erroneous.

SciPy 0.14.1 Release Notes
==========================

SciPy 0.14.1 is a bug-fix release with no new features compared to 0.14.0.


Issues closed
- -------------

- - `#3630 <https://github.com/scipy/scipy/issues/3630>`__: NetCDF reading results in a segfault
- - `#3631 <https://github.com/scipy/scipy/issues/3631>`__: SuperLU object not working as expected for complex matrices
- - `#3733 <https://github.com/scipy/scipy/issues/3733>`__: segfault from map_coordinates
- - `#3780 <https://github.com/scipy/scipy/issues/3780>`__: Segfault when using CSR/CSC matrix and uint32/uint64
- - `#3781 <https://github.com/scipy/scipy/pull/3781>`__: BUG: sparse: fix omitted types in sparsetools typemaps
- - `#3802 <https://github.com/scipy/scipy/issues/3802>`__: 0.14.0 API breakage: _gen generators are missing from scipy.stats.distributions API
- - `#3805 <https://github.com/scipy/scipy/issues/3805>`__: ndimage test failures with numpy 1.10
- - `#3812 <https://github.com/scipy/scipy/issues/3812>`__: == sometimes wrong on csr_matrix
- - `#3853 <https://github.com/scipy/scipy/issues/3853>`__: Many scipy.sparse test errors/failures with numpy 1.9.0b2
- - `#4084 <https://github.com/scipy/scipy/pull/4084>`__: fix exception declarations for Cython 0.21.1 compatibility
- - `#4093 <https://github.com/scipy/scipy/pull/4093>`__: BUG: fitpack: avoid a memory error in splev(x, tck, der=k)
- - `#4104 <https://github.com/scipy/scipy/pull/4104>`__: BUG: Workaround SGEMV segfault in Accelerate (maintenance 0.14.x)
- - `#4143 <https://github.com/scipy/scipy/pull/4143>`__: BUG: fix ndimage functions for large data
- - `#4149 <https://github.com/scipy/scipy/issues/4149>`__: Bug in expm for integer arrays
- - `#4154 <https://github.com/scipy/scipy/issues/4154>`__: Backport gh-4041 for 0.14.1 (Ensure that the 'size' argument of PIL's 'resize' method is a tuple)
- - `#4163 <https://github.com/scipy/scipy/issues/4163>`__: Backport #4142 (ZeroDivisionError in scipy.sparse.linalg.lsqr)
- - `#4164 <https://github.com/scipy/scipy/issues/4164>`__: Backport gh-4153 (remove use of deprecated numpy API in lib/lapack/ f2py wrapper)
- - `#4180 <https://github.com/scipy/scipy/pull/4180>`__: backport pil resize support tuple fix
- - `#4168 <https://github.com/scipy/scipy/issues/4168>`__: Lots of arpack test failures on windows 32 bits with numpy 1.9.1
- - `#4203 <https://github.com/scipy/scipy/issues/4203>`__: Matrix multiplication in 0.14.x is more than 10x slower compared...
- - `#4218 <https://github.com/scipy/scipy/pull/4218>`__: attempt to make ndimage interpolation compatible with numpy relaxed...
- - `#4225 <https://github.com/scipy/scipy/pull/4225>`__: BUG: off-by-one error in PPoly shape checks
- - `#4248 <https://github.com/scipy/scipy/pull/4248>`__: BUG: optimize: fix issue with incorrect use of closure for slsqp.

SciPy 0.14.0 Release Notes
==========================

.. contents::

SciPy 0.14.0 is the culmination of 8 months of hard work. It contains
many new features, numerous bug-fixes, improved test coverage and
better documentation.  There have been a number of deprecations and
API changes in this release, which are documented below.  All users
are encouraged to upgrade to this release, as there are a large number
of bug-fixes and optimizations.  Moreover, our development attention
will now shift to bug-fix releases on the 0.14.x branch, and on adding
new features on the master branch.

This release requires Python 2.6, 2.7 or 3.2-3.4 and NumPy 1.5.1 or greater.


New features
============

``scipy.interpolate`` improvements
----------------------------------

A new wrapper function `scipy.interpolate.interpn` for interpolation on regular
grids has been added. `interpn` supports linear and nearest-neighbor
interpolation in arbitrary dimensions and spline interpolation in two
dimensions.

Faster implementations of piecewise polynomials in power and Bernstein
polynomial bases have been added as `scipy.interpolate.PPoly` and
`scipy.interpolate.BPoly`. New users should use these in favor of
`scipy.interpolate.PiecewisePolynomial`.

`scipy.interpolate.interp1d` now accepts non-monotonic inputs and sorts them.
If performance is critical, sorting can be turned off by using the new
``assume_sorted`` keyword.

Functionality for evaluation of bivariate spline derivatives in
``scipy.interpolate`` has been added.

The new class `scipy.interpolate.Akima1DInterpolator` implements the piecewise
cubic polynomial interpolation scheme devised by H. Akima.

Functionality for fast interpolation on regular, unevenly spaced grids
in arbitrary dimensions has been added as
`scipy.interpolate.RegularGridInterpolator` .


``scipy.linalg`` improvements
-----------------------------

The new function `scipy.linalg.dft` computes the matrix of the
discrete Fourier transform.

A condition number estimation function for matrix exponential,
`scipy.linalg.expm_cond`, has been added.


``scipy.optimize`` improvements
-------------------------------

A set of benchmarks for optimize, which can be run with ``optimize.bench()``,
has been added.

`scipy.optimize.curve_fit` now has more controllable error estimation via the
``absolute_sigma`` keyword.

Support for passing custom minimization methods to ``optimize.minimize()``
and ``optimize.minimize_scalar()`` has been added, currently useful especially
for combining ``optimize.basinhopping()`` with custom local optimizer routines.


``scipy.stats`` improvements
----------------------------

A new class `scipy.stats.multivariate_normal` with functionality for
multivariate normal random variables has been added.

A lot of work on the ``scipy.stats`` distribution framework has been done.
Moment calculations (skew and kurtosis mainly) are fixed and verified, all
examples are now runnable, and many small accuracy and performance improvements
for individual distributions were merged.

The new function `scipy.stats.anderson_ksamp` computes the k-sample
Anderson-Darling test for the null hypothesis that k samples come from
the same parent population.


``scipy.signal`` improvements
-----------------------------

``scipy.signal.iirfilter`` and related functions to design Butterworth,
Chebyshev, elliptical and Bessel IIR filters now all use pole-zero ("zpk")
format internally instead of using transformations to numerator/denominator
format.  The accuracy of the produced filters, especially high-order ones, is
improved significantly as a result.

The new function `scipy.signal.vectorstrength` computes the vector strength,
a measure of phase synchrony, of a set of events.


``scipy.special`` improvements
------------------------------

The functions `scipy.special.boxcox` and `scipy.special.boxcox1p`, which
compute the Box-Cox transformation, have been added.


``scipy.sparse`` improvements
-----------------------------

- Significant performance improvement in CSR, CSC, and DOK indexing speed.
- When using Numpy >= 1.9 (to be released in MM 2014), sparse matrices function
  correctly when given to arguments of ``np.dot``, ``np.multiply`` and other
  ufuncs.  With earlier Numpy and Scipy versions, the results of such
  operations are undefined and usually unexpected.
- Sparse matrices are no longer limited to ``2^31`` nonzero elements.  They
  automatically switch to using 64-bit index data type for matrices containing
  more elements.  User code written assuming the sparse matrices use int32 as
  the index data type will continue to work, except for such large matrices.
  Code dealing with larger matrices needs to accept either int32 or int64
  indices.


Deprecated features
===================

``anneal``
----------

The global minimization function `scipy.optimize.anneal` is deprecated.
All users should use the `scipy.optimize.basinhopping` function instead.

``scipy.stats``
---------------

``randwcdf`` and ``randwppf`` functions are deprecated. All users should use
distribution-specific ``rvs`` methods instead.

Probability calculation aliases ``zprob``, ``fprob`` and ``ksprob`` are
deprecated. Use instead the ``sf`` methods of the corresponding distributions
or the ``special`` functions directly.

``scipy.interpolate``
---------------------

``PiecewisePolynomial`` class is deprecated.


Backwards incompatible changes
==============================

scipy.special.lpmn
------------------

``lpmn`` no longer accepts complex-valued arguments. A new function
``clpmn`` with uniform complex analytic behavior has been added, and
it should be used instead.

scipy.sparse.linalg
-------------------

Eigenvectors in the case of generalized eigenvalue problem are normalized to
unit vectors in 2-norm, rather than following the LAPACK normalization
convention.

The deprecated UMFPACK wrapper in ``scipy.sparse.linalg`` has been removed due
to license and install issues.  If available, ``scikits.umfpack`` is still used
transparently in the ``spsolve`` and ``factorized`` functions.  Otherwise,
SuperLU is used instead in these functions.

scipy.stats
-----------

The deprecated functions ``glm``, ``oneway`` and ``cmedian`` have been removed
from ``scipy.stats``.

``stats.scoreatpercentile`` now returns an array instead of a list of
percentiles.

scipy.interpolate
-----------------

The API for computing derivatives of a monotone piecewise interpolation has
changed: if `p` is a ``PchipInterpolator`` object, `p.derivative(der)`
returns a callable object representing the derivative of `p`. For in-place
derivatives use the second argument of the `__call__` method:
`p(0.1, der=2)` evaluates the second derivative of `p` at `x=0.1`.

The method `p.derivatives` has been removed.

SciPy 0.13.3 Release Notes

SciPy 0.13.3 is a bug-fix release with no new features compared to 0.13.2. Both the weave and the ndimage.label bugs were severe regressions in 0.13.0, hence this release.
Issues fixed

    3148: fix a memory leak in ndimage.label.
    3216: fix weave issue with too long file names for MSVC.

Other changes

    Update Sphinx theme used for html docs so >>> in examples can be toggled.

SciPy 0.13.2 Release Notes

SciPy 0.13.2 is a bug-fix release with no new features compared to 0.13.1.
Issues fixed

    3096: require Cython 0.19, earlier versions have memory leaks in fused types
    3079: ndimage.label fix swapped 64-bitness test
    3108: optimize.fmin_slsqp constraint violation

SciPy 0.13.1 Release Notes

SciPy 0.13.1 is a bug-fix release with no new features compared to 0.13.0. The only changes are several fixes in ndimage, one of which was a serious regression in ndimage.label (Github issue 3025), which gave incorrect results in 0.13.0.
Issues fixed

    3025: ndimage.label returns incorrect results in scipy 0.13.0
    1992: ndimage.label return type changed from int32 to uint32
    1992: ndimage.find_objects doesn't work with int32 input in some cases

SciPy 0.13.0 Release Notes
==========================

.. contents::

SciPy 0.13.0 is the culmination of 7 months of hard work. It contains
many new features, numerous bug-fixes, improved test coverage and
better documentation.  There have been a number of deprecations and
API changes in this release, which are documented below.  All users
are encouraged to upgrade to this release, as there are a large number
of bug-fixes and optimizations.  Moreover, our development attention
will now shift to bug-fix releases on the 0.13.x branch, and on adding
new features on the master branch.

This release requires Python 2.6, 2.7 or 3.1-3.3 and NumPy 1.5.1 or greater.
Highlights of this release are:

  - support for fancy indexing and boolean comparisons with sparse matrices
  - interpolative decompositions and matrix functions in the linalg module
  - two new trust-region solvers for unconstrained minimization


New features
============

``scipy.integrate`` improvements
--------------------------------

N-dimensional numerical integration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

A new function `scipy.integrate.nquad`, which provides N-dimensional
integration functionality with a more flexible interface than ``dblquad`` and
``tplquad``, has been added.

``dopri*`` improvements
^^^^^^^^^^^^^^^^^^^^^^^

The intermediate results from the ``dopri`` family of ODE solvers can now be
accessed by a *solout* callback function.


``scipy.linalg`` improvements
-----------------------------

Interpolative decompositions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Scipy now includes a new module `scipy.linalg.interpolative`
containing routines for computing interpolative matrix decompositions
(ID). This feature is based on the ID software package by
P.G. Martinsson, V. Rokhlin, Y. Shkolnisky, and M. Tygert, previously
adapted for Python in the PymatrixId package by K.L. Ho.

Polar decomposition
^^^^^^^^^^^^^^^^^^^

A new function `scipy.linalg.polar`, to compute the polar decomposition
of a matrix, was added.

BLAS level 3 functions
^^^^^^^^^^^^^^^^^^^^^^

The BLAS functions ``symm``, ``syrk``, ``syr2k``, ``hemm``, ``herk`` and
``her2k`` are now wrapped in `scipy.linalg`.

Matrix functions
^^^^^^^^^^^^^^^^

Several matrix function algorithms have been implemented or updated following
detailed descriptions in recent papers of Nick Higham and his co-authors.
These include the matrix square root (``sqrtm``), the matrix logarithm
(``logm``), the matrix exponential (``expm``) and its Frechet derivative
(``expm_frechet``), and fractional matrix powers (``fractional_matrix_power``).


``scipy.optimize`` improvements
-------------------------------

Trust-region unconstrained minimization algorithms
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The ``minimize`` function gained two trust-region solvers for unconstrained
minimization: ``dogleg`` and ``trust-ncg``.


``scipy.sparse`` improvements
-----------------------------

Boolean comparisons and sparse matrices
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

All sparse matrix types now support boolean data, and boolean operations.  Two
sparse matrices `A` and `B` can be compared in all the expected ways `A < B`,
`A >= B`, `A != B`, producing similar results as dense Numpy arrays.
Comparisons with dense matrices and scalars are also supported.

CSR and CSC fancy indexing
^^^^^^^^^^^^^^^^^^^^^^^^^^

Compressed sparse row and column sparse matrix types now support fancy indexing
with boolean matrices, slices, and lists. So where A is a (CSC or CSR) sparse
matrix, you can do things like::

    >>> A[A > 0.5] = 1  # since Boolean sparse matrices work
    >>> A[:2, :3] = 2
    >>> A[[1,2], 2] = 3


``scipy.sparse.linalg`` improvements
------------------------------------

The new function ``onenormest`` provides a lower bound of the 1-norm of a
linear operator and has been implemented according to Higham and Tisseur
(2000).  This function is not only useful for sparse matrices, but can also be
used to estimate the norm of products or powers of dense matrices without
explictly building the intermediate matrix.

The multiplicative action of the matrix exponential of a linear operator
(``expm_multiply``) has been implemented following the description in Al-Mohy
and Higham (2011).

Abstract linear operators (`scipy.sparse.linalg.LinearOperator`) can now be
multiplied, added to each other, and exponentiated, producing new linear
operators. This enables easier construction of composite linear operations.


``scipy.spatial`` improvements
------------------------------

The vertices of a `ConvexHull` can now be accessed via the `vertices` attribute,
which gives proper orientation in 2-D.


``scipy.signal`` improvements
-----------------------------

The cosine window function `scipy.signal.cosine` was added.


``scipy.special`` improvements
------------------------------

New functions `scipy.special.xlogy` and `scipy.special.xlog1py` were added.
These functions can simplify and speed up code that has to calculate
``x * log(y)`` and give 0 when ``x == 0``.


``scipy.io`` improvements
-------------------------

Unformatted Fortran file reader
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The new class `scipy.io.FortranFile` facilitates reading unformatted
sequential files written by Fortran code.

``scipy.io.wavfile`` enhancements
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

`scipy.io.wavfile.write` now accepts a file buffer. Previously it only
accepted a filename.

`scipy.io.wavfile.read` and `scipy.io.wavfile.write` can now handle floating
point WAV files.


``scipy.interpolate`` improvements
----------------------------------

B-spline derivatives and antiderivatives
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

`scipy.interpolate.splder` and `scipy.interpolate.splantider` functions
for computing B-splines that represent derivatives and antiderivatives
of B-splines were added.  These functions are also available in the
class-based FITPACK interface as ``UnivariateSpline.derivative`` and
``UnivariateSpline.antiderivative``.


``scipy.stats`` improvements
----------------------------

Distributions now allow using keyword parameters in addition to
positional parameters in all methods.

The function `scipy.stats.power_divergence` has been added for the
Cressie-Read power divergence statistic and goodness of fit test.
Included in this family of statistics is the "G-test"
(http://en.wikipedia.org/wiki/G-test).

`scipy.stats.mood` now accepts multidimensional input.

An option was added to `scipy.stats.wilcoxon` for continuity correction.

`scipy.stats.chisquare` now has an `axis` argument.

`scipy.stats.mstats.chisquare` now has `axis` and `ddof` arguments.


Deprecated features
===================

``expm2`` and ``expm3``
-----------------------

The matrix exponential functions `scipy.linalg.expm2` and `scipy.linalg.expm3`
are deprecated. All users should use the numerically more robust
`scipy.linalg.expm` function instead.

``scipy.stats`` functions
-------------------------

`scipy.stats.oneway` is deprecated; `scipy.stats.f_oneway` should be used
instead.

`scipy.stats.glm` is deprecated.  `scipy.stats.ttest_ind` is an equivalent
function; more full-featured general (and generalized) linear model
implementations can be found in statsmodels.

`scipy.stats.cmedian` is deprecated; ``numpy.median`` should be used instead.


Backwards incompatible changes
==============================

LIL matrix assignment
---------------------
Assigning values to LIL matrices with two index arrays now works similarly as
assigning into ndarrays::

    >>> x = lil_matrix((3, 3))
    >>> x[[0,1,2],[0,1,2]]=[0,1,2]
    >>> x.todense()
    matrix([[ 0.,  0.,  0.],
            [ 0.,  1.,  0.],
            [ 0.,  0.,  2.]])

rather than giving the result::

    >>> x.todense()
    matrix([[ 0.,  1.,  2.],
            [ 0.,  1.,  2.],
            [ 0.,  1.,  2.]])

Users relying on the previous behavior will need to revisit their code.
The previous behavior is obtained by ``x[numpy.ix_([0,1,2],[0,1,2])] = ...`.


Deprecated ``radon`` function removed
-------------------------------------

The ``misc.radon`` function, which was deprecated in scipy 0.11.0, has been
removed.  Users can find a more full-featured ``radon`` function in
scikit-image.


Removed deprecated keywords ``xa`` and ``xb`` from ``stats.distributions``
--------------------------------------------------------------------------

The keywords ``xa`` and ``xb``, which were deprecated since 0.11.0, have
been removed from the distributions in ``scipy.stats``.

Changes to MATLAB file readers / writers
----------------------------------------

The major change is that 1D arrays in numpy now become row vectors (shape 1, N)
when saved to a MATLAB 5 format file.  Previously 1D arrays saved as column
vectors (N, 1).  This is to harmonize the behavior of writing MATLAB 4 and 5
formats, and adapt to the defaults of numpy and MATLAB - for example
``np.atleast_2d`` returns 1D arrays as row vectors.

Trying to save arrays of greater than 2 dimensions in MATLAB 4 format now raises
an error instead of silently reshaping the array as 2D.

``scipy.io.loadmat('afile')`` used to look for `afile` on the Python system path
(``sys.path``); now ``loadmat`` only looks in the current directory for a
relative path filename.


Other changes
=============

Security fix: ``scipy.weave`` previously used temporary directories in an
insecure manner under certain circumstances.

Cython is now required to build *unreleased* versions of scipy.
The C files generated from Cython sources are not included in the git repo
anymore.  They are however still shipped in source releases.

The code base received a fairly large PEP8 cleanup.  A ``tox pep8``
command has been added; new code should pass this test command.

Scipy cannot be compiled with gfortran 4.1 anymore (at least on RH5), likely
due to that compiler version not supporting entry constructs well.
2015-04-17 00:49:50 +00:00
wen
f78044fd07 Update to 1.9.2
Reviewed by:	wiz@

Upstream changes:
NumPy 1.9.2 Release Notes
*************************

This is a bugfix only release in the 1.9.x series.

Issues fixed
============

* `#5316 <https://github.com/numpy/numpy/issues/5316>`__: fix too large dtype alignment of strings and complex types
* `#5424 <https://github.com/numpy/numpy/issues/5424>`__: fix ma.median when used on ndarrays
* `#5481 <https://github.com/numpy/numpy/issues/5481>`__: Fix astype for structured array fields of different byte order
* `#5354 <https://github.com/numpy/numpy/issues/5354>`__: fix segfault when clipping complex arrays
* `#5524 <https://github.com/numpy/numpy/issues/5524>`__: allow np.argpartition on non ndarrays
* `#5612 <https://github.com/numpy/numpy/issues/5612>`__: Fixes ndarray.fill to accept full range of uint64
* `#5155 <https://github.com/numpy/numpy/issues/5155>`__: Fix loadtxt with comments=None and a string None data
* `#4476 <https://github.com/numpy/numpy/issues/4476>`__: Masked array view fails if structured dtype has datetime component
* `#5388 <https://github.com/numpy/numpy/issues/5388>`__: Make RandomState.set_state and RandomState.get_state threadsafe
* `#5390 <https://github.com/numpy/numpy/issues/5390>`__: make seed, randint and shuffle threadsafe
* `#5374 <https://github.com/numpy/numpy/issues/5374>`__: Fixed incorrect assert_array_almost_equal_nulp documentation
* `#5393 <https://github.com/numpy/numpy/issues/5393>`__: Add support for ATLAS > 3.9.33.
* `#5313 <https://github.com/numpy/numpy/issues/5313>`__: PyArray_AsCArray caused segfault for 3d arrays
* `#5492 <https://github.com/numpy/numpy/issues/5492>`__: handle out of memory in rfftf
* `#4181 <https://github.com/numpy/numpy/issues/4181>`__: fix a few bugs in the random.pareto docstring
* `#5359 <https://github.com/numpy/numpy/issues/5359>`__: minor changes to linspace docstring
* `#4723 <https://github.com/numpy/numpy/issues/4723>`__: fix a compile issues on AIX

NumPy 1.9.1 Release Notes
*************************

This is a bugfix only release in the 1.9.x series.

Issues fixed
============

* gh-5184: restore linear edge behaviour of gradient to as it was in < 1.9.
  The second order behaviour is available via the `edge_order` keyword
* gh-4007: workaround Accelerate sgemv crash on OSX 10.9
* gh-5100: restore object dtype inference from iterable objects without `len()`
* gh-5163: avoid gcc-4.1.2 (red hat 5) miscompilation causing a crash
* gh-5138: fix nanmedian on arrays containing inf
* gh-5240: fix not returning out array from ufuncs with subok=False set
* gh-5203: copy inherited masks in MaskedArray.__array_finalize__
* gh-2317: genfromtxt did not handle filling_values=0 correctly
* gh-5067: restore api of npy_PyFile_DupClose in python2
* gh-5063: cannot convert invalid sequence index to tuple
* gh-5082: Segmentation fault with argmin() on unicode arrays
* gh-5095: don't propagate subtypes from np.where
* gh-5104: np.inner segfaults with SciPy's sparse matrices
* gh-5251: Issue with fromarrays not using correct format for unicode arrays
* gh-5136: Import dummy_threading if importing threading fails
* gh-5148: Make numpy import when run with Python flag '-OO'
* gh-5147: Einsum double contraction in particular order causes ValueError
* gh-479: Make f2py work with intent(in out)
* gh-5170: Make python2 .npy files readable in python3
* gh-5027: Use 'll' as the default length specifier for long long
* gh-4896: fix build error with MSVC 2013 caused by C99 complex support
* gh-4465: Make PyArray_PutTo respect writeable flag
* gh-5225: fix crash when using arange on datetime without dtype set
* gh-5231: fix build in c99 mode

NumPy 1.9.0 Release Notes
*************************

This release supports Python 2.6 - 2.7 and 3.2 - 3.4.


Highlights
==========
* Numerous performance improvements in various areas, most notably indexing and
  operations on small arrays are significantly faster.
  Indexing operations now also release the GIL.
* Addition of `nanmedian` and `nanpercentile` rounds out the nanfunction set.


Dropped Support
===============

* The oldnumeric and numarray modules have been removed.
* The doc/pyrex and doc/cython directories have been removed.
* The doc/numpybook directory has been removed.
* The numpy/testing/numpytest.py file has been removed together with
  the importall function it contained.


Future Changes
==============

* The numpy/polynomial/polytemplate.py file will be removed in NumPy 1.10.0.
* Default casting for inplace operations will change to 'same_kind' in
  Numpy 1.10.0. This will certainly break some code that is currently
  ignoring the warning.
* Relaxed stride checking will be the default in 1.10.0
* String version checks will break because, e.g., '1.9' > '1.10' is True. A
  NumpyVersion class has been added that can be used for such comparisons.
* The diagonal and diag functions will return writeable views in 1.10.0
* The `S` and/or `a` dtypes may be changed to represent Python strings
  instead of bytes, in Python 3 these two types are very different.


Compatibility notes
===================

The diagonal and diag functions return readonly views.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In NumPy 1.8, the diagonal and diag functions returned readonly copies, in
NumPy 1.9 they return readonly views, and in 1.10 they will return writeable
views.

Special scalar float values don't cause upcast to double anymore
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In previous numpy versions operations involving floating point scalars
containing special values ``NaN``, ``Inf`` and ``-Inf`` caused the result
type to be at least ``float64``.  As the special values can be represented
in the smallest available floating point type, the upcast is not performed
anymore.

For example the dtype of:

    ``np.array([1.], dtype=np.float32) * float('nan')``

now remains ``float32`` instead of being cast to ``float64``.
Operations involving non-special values have not been changed.

Percentile output changes
~~~~~~~~~~~~~~~~~~~~~~~~~
If given more than one percentile to compute numpy.percentile returns an
array instead of a list. A single percentile still returns a scalar.  The
array is equivalent to converting the list returned in older versions
to an array via ``np.array``.

If the ``overwrite_input`` option is used the input is only partially
instead of fully sorted.

ndarray.tofile exception type
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
All ``tofile`` exceptions are now ``IOError``, some were previously
``ValueError``.

Invalid fill value exceptions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Two changes to numpy.ma.core._check_fill_value:

* When the fill value is a string and the array type is not one of
  'OSUV', TypeError is raised instead of the default fill value being used.

* When the fill value overflows the array type, TypeError is raised instead
  of OverflowError.

Polynomial Classes no longer derived from PolyBase
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This may cause problems with folks who depended on the polynomial classes
being derived from PolyBase. They are now all derived from the abstract
base class ABCPolyBase. Strictly speaking, there should be a deprecation
involved, but no external code making use of the old baseclass could be
found.

Using numpy.random.binomial may change the RNG state vs. numpy < 1.9
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A bug in one of the algorithms to generate a binomial random variate has
been fixed. This change will likely alter the number of random draws
performed, and hence the sequence location will be different after a
call to distribution.c::rk_binomial_btpe. Any tests which rely on the RNG
being in a known state should be checked and/or updated as a result.

Random seed enforced to be a 32 bit unsigned integer
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``np.random.seed`` and ``np.random.RandomState`` now throw a ``ValueError``
if the seed cannot safely be converted to 32 bit unsigned integers.
Applications that now fail can be fixed by masking the higher 32 bit values to
zero: ``seed = seed & 0xFFFFFFFF``. This is what is done silently in older
versions so the random stream remains the same.

Argmin and argmax out argument
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The ``out`` argument to ``np.argmin`` and ``np.argmax`` and their
equivalent C-API functions is now checked to match the desired output shape
exactly.  If the check fails a ``ValueError`` instead of ``TypeError`` is
raised.

Einsum
~~~~~~
Remove unnecessary broadcasting notation restrictions.
``np.einsum('ijk,j->ijk', A, B)`` can also be written as
``np.einsum('ij...,j->ij...', A, B)`` (ellipsis is no longer required on 'j')

Indexing
~~~~~~~~

The NumPy indexing has seen a complete rewrite in this version. This makes
most advanced integer indexing operations much faster and should have no
other implications.  However some subtle changes and deprecations were
introduced in advanced indexing operations:

* Boolean indexing into scalar arrays will always return a new 1-d array.
  This means that ``array(1)[array(True)]`` gives ``array([1])`` and
  not the original array.

* Advanced indexing into one dimensional arrays used to have
  (undocumented) special handling regarding repeating the value array in
  assignments when the shape of the value array was too small or did not
  match.  Code using this will raise an error. For compatibility you can
  use ``arr.flat[index] = values``, which uses the old code branch.  (for
  example ``a = np.ones(10); a[np.arange(10)] = [1, 2, 3]``)

* The iteration order over advanced indexes used to be always C-order.
  In NumPy 1.9. the iteration order adapts to the inputs and is not
  guaranteed (with the exception of a *single* advanced index which is
  never reversed for compatibility reasons). This means that the result
  is undefined if multiple values are assigned to the same element.  An
  example for this is ``arr[[0, 0], [1, 1]] = [1, 2]``, which may set
  ``arr[0, 1]`` to either 1 or 2.

* Equivalent to the iteration order, the memory layout of the advanced
  indexing result is adapted for faster indexing and cannot be predicted.

* All indexing operations return a view or a copy. No indexing operation
  will return the original array object. (For example ``arr[...]``)

* In the future Boolean array-likes (such as lists of python bools) will
  always be treated as Boolean indexes and Boolean scalars (including
  python ``True``) will be a legal *boolean* index. At this time, this is
  already the case for scalar arrays to allow the general
  ``positive = a[a > 0]`` to work when ``a`` is zero dimensional.

* In NumPy 1.8 it was possible to use ``array(True)`` and
  ``array(False)`` equivalent to 1 and 0 if the result of the operation
  was a scalar.  This will raise an error in NumPy 1.9 and, as noted
  above, treated as a boolean index in the future.

* All non-integer array-likes are deprecated, object arrays of custom
  integer like objects may have to be cast explicitly.

* The error reporting for advanced indexing is more informative, however
  the error type has changed in some cases. (Broadcasting errors of
  indexing arrays are reported as ``IndexError``)

* Indexing with more then one ellipsis (``...``) is deprecated.

Non-integer reduction axis indexes are deprecated
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Non-integer axis indexes to reduction ufuncs like `add.reduce` or `sum` are
deprecated.

``promote_types`` and string dtype
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``promote_types`` function now returns a valid string length when given an
integer or float dtype as one argument and a string dtype as another
argument.  Previously it always returned the input string dtype, even if it
wasn't long enough to store the max integer/float value converted to a
string.

``can_cast`` and string dtype
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``can_cast`` function now returns False in "safe" casting mode for
integer/float dtype and string dtype if the string dtype length is not long
enough to store the max integer/float value converted to a string.
Previously ``can_cast`` in "safe" mode returned True for integer/float
dtype and a string dtype of any length.

astype and string dtype
~~~~~~~~~~~~~~~~~~~~~~~
The ``astype`` method now returns an error if the string dtype to cast to
is not long enough in "safe" casting mode to hold the max value of
integer/float array that is being casted. Previously the casting was
allowed even if the result was truncated.

`npyio.recfromcsv` keyword arguments change
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`npyio.recfromcsv` no longer accepts the undocumented `update` keyword,
which used to override the `dtype` keyword.

The ``doc/swig`` directory moved
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The ``doc/swig`` directory has been moved to ``tools/swig``.

The ``npy_3kcompat.h`` header changed
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The unused ``simple_capsule_dtor`` function has been removed from
``npy_3kcompat.h``.  Note that this header is not meant to be used outside
of numpy; other projects should be using their own copy of this file when
needed.

Negative indices in C-Api ``sq_item`` and ``sq_ass_item`` sequence methods
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
When directly accessing the ``sq_item`` or ``sq_ass_item`` PyObject slots
for item getting, negative indices will not be supported anymore.
``PySequence_GetItem`` and ``PySequence_SetItem`` however fix negative
indices so that they can be used there.

NDIter
~~~~~~
When ``NpyIter_RemoveAxis`` is now called, the iterator range will be reset.

When a multi index is being tracked and an iterator is not buffered, it is
possible to use ``NpyIter_RemoveAxis``. In this case an iterator can shrink
in size. Because the total size of an iterator is limited, the iterator
may be too large before these calls. In this case its size will be set to ``-1``
and an error issued not at construction time but when removing the multi
index, setting the iterator range, or getting the next function.

This has no effect on currently working code, but highlights the necessity
of checking for an error return if these conditions can occur. In most
cases the arrays being iterated are as large as the iterator so that such
a problem cannot occur.

This change was already applied to the 1.8.1 release.

``zeros_like`` for string dtypes now returns empty strings
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To match the `zeros` function `zeros_like` now returns an array initialized
with empty strings instead of an array filled with `'0'`.


New Features
============

Percentile supports more interpolation options
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``np.percentile`` now has the interpolation keyword argument to specify in
which way points should be interpolated if the percentiles fall between two
values.  See the documentation for the available options.

Generalized axis support for median and percentile
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``np.median`` and ``np.percentile`` now support generalized axis arguments like
ufunc reductions do since 1.7. One can now say axis=(index, index) to pick a
list of axes for the reduction. The ``keepdims`` keyword argument was also
added to allow convenient broadcasting to arrays of the original shape.

Dtype parameter added to ``np.linspace`` and ``np.logspace``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The returned data type from the ``linspace`` and ``logspace`` functions can
now be specified using the dtype parameter.

More general ``np.triu`` and ``np.tril`` broadcasting
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For arrays with ``ndim`` exceeding 2, these functions will now apply to the
final two axes instead of raising an exception.

``tobytes`` alias for ``tostring`` method
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``ndarray.tobytes`` and ``MaskedArray.tobytes`` have been added as aliases
for ``tostring`` which exports arrays as ``bytes``. This is more consistent
in Python 3 where ``str`` and ``bytes`` are not the same.

Build system
~~~~~~~~~~~~
Added experimental support for the ppc64le and OpenRISC architecture.

Compatibility to python ``numbers`` module
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
All numerical numpy types are now registered with the type hierarchy in
the python ``numbers`` module.

``increasing`` parameter added to ``np.vander``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The ordering of the columns of the Vandermonde matrix can be specified with
this new boolean argument.

``unique_counts`` parameter added to ``np.unique``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The number of times each unique item comes up in the input can now be
obtained as an optional return value.

Support for median and percentile in nanfunctions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The ``np.nanmedian`` and ``np.nanpercentile`` functions behave like
the median and percentile functions except that NaNs are ignored.

NumpyVersion class added
~~~~~~~~~~~~~~~~~~~~~~~~
The class may be imported from numpy.lib and can be used for version
comparison when the numpy version goes to 1.10.devel. For example::

    >>> from numpy.lib import NumpyVersion
    >>> if NumpyVersion(np.__version__) < '1.10.0'):
    ...     print('Wow, that is an old NumPy version!')

Allow saving arrays with large number of named columns
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The numpy storage format 1.0 only allowed the array header to have a total size
of 65535 bytes. This can be exceeded by structured arrays with a large number
of columns. A new format 2.0 has been added which extends the header size to 4
GiB. `np.save` will automatically save in 2.0 format if the data requires it,
else it will always use the more compatible 1.0 format.

Full broadcasting support for ``np.cross``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``np.cross`` now properly broadcasts its two input arrays, even if they
have different number of dimensions. In earlier versions this would result
in either an error being raised, or wrong results computed.


Improvements
============

Better numerical stability for sum in some cases
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Pairwise summation is now used in the sum method, but only along the fast
axis and for groups of the values <= 8192 in length. This should also
improve the accuracy of var and std in some common cases.

Percentile implemented in terms of ``np.partition``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``np.percentile`` has been implemented in terms of ``np.partition`` which
only partially sorts the data via a selection algorithm. This improves the
time complexity from ``O(nlog(n))`` to ``O(n)``.

Performance improvement for ``np.array``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The performance of converting lists containing arrays to arrays using
``np.array`` has been improved. It is now equivalent in speed to
``np.vstack(list)``.

Performance improvement for ``np.searchsorted``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For the built-in numeric types, ``np.searchsorted`` no longer relies on the
data type's ``compare`` function to perform the search, but is now
implemented by type specific functions. Depending on the size of the
inputs, this can result in performance improvements over 2x.

Optional reduced verbosity for np.distutils
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Set ``numpy.distutils.system_info.system_info.verbosity = 0`` and then
calls to ``numpy.distutils.system_info.get_info('blas_opt')`` will not
print anything on the output. This is mostly for other packages using
numpy.distutils.

Covariance check in ``np.random.multivariate_normal``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A ``RuntimeWarning`` warning is raised when the covariance matrix is not
positive-semidefinite.

Polynomial Classes no longer template based
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The polynomial classes have been refactored to use an abstract base class
rather than a template in order to implement a common interface. This makes
importing the polynomial package faster as the classes do not need to be
compiled on import.

More GIL releases
~~~~~~~~~~~~~~~~~
Several more functions now release the Global Interpreter Lock allowing more
efficient parallization using the ``threading`` module. Most notably the GIL is
now released for fancy indexing, ``np.where`` and the ``random`` module now
uses a per-state lock instead of the GIL.

MaskedArray support for more complicated base classes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Built-in assumptions that the baseclass behaved like a plain array are being
removed. In particalur, ``repr`` and ``str`` should now work more reliably.


C-API
~~~~~


Deprecations
============

Non-integer scalars for sequence repetition
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Using non-integer numpy scalars to repeat python sequences is deprecated.
For example ``np.float_(2) * [1]`` will be an error in the future.

``select`` input deprecations
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The integer and empty input to ``select`` is deprecated. In the future only
boolean arrays will be valid conditions and an empty ``condlist`` will be
considered an input error instead of returning the default.

``rank`` function
~~~~~~~~~~~~~~~~~
The ``rank`` function has been deprecated to avoid confusion with
``numpy.linalg.matrix_rank``.

Object array equality comparisons
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In the future object array comparisons both `==` and `np.equal` will not
make use of identity checks anymore. For example:

>>> a = np.array([np.array([1, 2, 3]), 1])
>>> b = np.array([np.array([1, 2, 3]), 1])
>>> a == b

will consistently return False (and in the future an error) even if the array
in `a` and `b` was the same object.

The equality operator `==` will in the future raise errors like `np.equal`
if broadcasting or element comparisons, etc. fails.

Comparison with `arr == None` will in the future do an elementwise comparison
instead of just returning False. Code should be using `arr is None`.

All of these changes will give Deprecation- or FutureWarnings at this time.

C-API
~~~~~

The utility function npy_PyFile_Dup and npy_PyFile_DupClose are broken by the
internal buffering python 3 applies to its file objects.
To fix this two new functions npy_PyFile_Dup2 and npy_PyFile_DupClose2 are
declared in npy_3kcompat.h and the old functions are deprecated.
Due to the fragile nature of these functions it is recommended to instead use
the python API when possible.

This change was already applied to the 1.8.1 release.

NumPy 1.8.2 Release Notes
*************************

This is a bugfix only release in the 1.8.x series.

Issues fixed
============

* gh-4836: partition produces wrong results for multiple selections in equal ranges
* gh-4656: Make fftpack._raw_fft threadsafe
* gh-4628: incorrect argument order to _copyto in in np.nanmax, np.nanmin
* gh-4642: Hold GIL for converting dtypes types with fields
* gh-4733: fix np.linalg.svd(b, compute_uv=False)
* gh-4853: avoid unaligned simd load on reductions on i386
* gh-4722: Fix seg fault converting empty string to object
* gh-4613: Fix lack of NULL check in array_richcompare
* gh-4774: avoid unaligned access for strided byteswap
* gh-650: Prevent division by zero when creating arrays from some buffers
* gh-4602: ifort has issues with optimization flag O2, use O1
NumPy 1.8.1 Release Notes
*************************

This is a bugfix only release in the 1.8.x series.


Issues fixed
============

* gh-4276: Fix mean, var, std methods for object arrays
* gh-4262: remove insecure mktemp usage
* gh-2385: absolute(complex(inf)) raises invalid warning in python3
* gh-4024: Sequence assignment doesn't raise exception on shape mismatch
* gh-4027: Fix chunked reading of strings longer than BUFFERSIZE
* gh-4109: Fix object scalar return type of 0-d array indices
* gh-4018: fix missing check for memory allocation failure in ufuncs
* gh-4156: high order linalg.norm discards imaginary elements of complex arrays
* gh-4144: linalg: norm fails on longdouble, signed int
* gh-4094: fix NaT handling in _strided_to_strided_string_to_datetime
* gh-4051: fix uninitialized use in _strided_to_strided_string_to_datetime
* gh-4093: Loading compressed .npz file fails under Python 2.6.6
* gh-4138: segfault with non-native endian memoryview in python 3.4
* gh-4123: Fix missing NULL check in lexsort
* gh-4170: fix native-only long long check in memoryviews
* gh-4187: Fix large file support on 32 bit
* gh-4152: fromfile: ensure file handle positions are in sync in python3
* gh-4176: clang compatibility: Typos in conversion_utils
* gh-4223: Fetching a non-integer item caused array return
* gh-4197: fix minor memory leak in memoryview failure case
* gh-4206: fix build with single-threaded python
* gh-4220: add versionadded:: 1.8.0 to ufunc.at docstring
* gh-4267: improve handling of memory allocation failure
* gh-4267: fix use of capi without gil in ufunc.at
* gh-4261: Detect vendor versions of GNU Compilers
* gh-4253: IRR was returning nan instead of valid negative answer
* gh-4254: fix unnecessary byte order flag change for byte arrays
* gh-3263: numpy.random.shuffle clobbers mask of a MaskedArray
* gh-4270: np.random.shuffle not work with flexible dtypes
* gh-3173: Segmentation fault when 'size' argument to random.multinomial
* gh-2799: allow using unique with lists of complex
* gh-3504: fix linspace truncation for integer array scalar
* gh-4191: get_info('openblas') does not read libraries key
* gh-3348: Access violation in _descriptor_from_pep3118_format
* gh-3175: segmentation fault with numpy.array() from bytearray
* gh-4266: histogramdd - wrong result for entries very close to last boundary
* gh-4408: Fix stride_stricks.as_strided function for object arrays
* gh-4225: fix log1p and exmp1 return for np.inf on windows compiler builds
* gh-4359: Fix infinite recursion in str.format of flex arrays
* gh-4145: Incorrect shape of broadcast result with the exponent operator
* gh-4483: Fix commutativity of {dot,multiply,inner}(scalar, matrix_of_objs)
* gh-4466: Delay npyiter size check when size may change
* gh-4485: Buffered stride was erroneously marked fixed
* gh-4354: byte_bounds fails with datetime dtypes
* gh-4486: segfault/error converting from/to high-precision datetime64 objects
* gh-4428: einsum(None, None, None, None) causes segfault
* gh-4134: uninitialized use for for size 1 object reductions

Changes
=======

NDIter
~~~~~~
When ``NpyIter_RemoveAxis`` is now called, the iterator range will be reset.

When a multi index is being tracked and an iterator is not buffered, it is
possible to use ``NpyIter_RemoveAxis``. In this case an iterator can shrink
in size. Because the total size of an iterator is limited, the iterator
may be too large before these calls. In this case its size will be set to ``-1``
and an error issued not at construction time but when removing the multi
index, setting the iterator range, or getting the next function.

This has no effect on currently working code, but highlights the necessity
of checking for an error return if these conditions can occur. In most
cases the arrays being iterated are as large as the iterator so that such
a problem cannot occur.

Optional reduced verbosity for np.distutils
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Set ``numpy.distutils.system_info.system_info.verbosity = 0`` and then
calls to ``numpy.distutils.system_info.get_info('blas_opt')`` will not
print anything on the output. This is mostly for other packages using
numpy.distutils.

Deprecations
============

C-API
~~~~~

The utility function npy_PyFile_Dup and npy_PyFile_DupClose are broken by the
internal buffering python 3 applies to its file objects.
To fix this two new functions npy_PyFile_Dup2 and npy_PyFile_DupClose2 are
declared in npy_3kcompat.h and the old functions are deprecated.
Due to the fragile nature of these functions it is recommended to instead use
the python API when possible.
2015-04-17 00:41:38 +00:00
wiz
fe0d9a87aa Remove more references to python-2.6. 2015-04-14 11:40:31 +00:00
rodent
a7b568d574 Removing python26. EOL'd quite some ago and discussed a couple times on
tech-pkg@ and pkgsrc-users@.
2015-04-13 23:12:40 +00:00
wiz
2d0e9c4efb Update to 1.8.1, changes not found.
libreoffice4 still builds for me after this update.
2015-04-13 08:17:41 +00:00
wiz
014528bc99 Add py-sqlite3 dependency. Fixes last issue from PR 49817.
Bump PKGREVISION.
2015-04-12 10:04:08 +00:00
rodent
28d0ed5a09 Needs gmake to process Makefile correctly. Likely fixes build on Darwin.
Light cleanup of pkgsrc Makefile.

From website:
Version 3.20 released on November 15, 2014. It conducts some minor fixes.
2015-04-11 03:25:43 +00:00
wiz
962549f0d0 Fix interpreter path in installed file.
Bump PKGREVISION.
2015-04-10 08:41:42 +00:00
wiz
7f4ebada0d Fix packaging with py33. Disable for py26. 2015-04-10 08:36:30 +00:00
wiz
cea11831a3 Fix PLIST for python-2.x. 2015-04-10 06:17:19 +00:00
mef
02085a5847 Update 0.14 to 0.14.1
---------------------
version: 0.14.1
date: Thu Apr  9 12:57:23 CEST 2015
changes:
        - fix bug in affine expression normalization
        - fix handling of conditional validity constraints
2015-04-10 01:54:45 +00:00
wiz
5d5edec070 Update to 2.5.6, in the hope it addresses PR 49817.
Release 2.5.6
=============

Bugs fixed
----------

- Detection of the R version during setup on Win8 (issues #255 and #258)

- Segmentation fault when converting :mod:`pandas` :class:`Series` with
  elements of type object (issue #264)

- The default converter from Python (non-rpy2) objects to rinterface-level
  objects was producing robjects-level objects whenever the input was of
  type :class:`list` (discovered while fixing issue #264)

- Implemented suggested fix for issue with unlinking files on Windows
  (issue #191)

- Testing rpy2 in the absence of ipython no longer stops with an error
  (issue #266)


Release 2.5.5
=============

Bugs fixed
----------

- Crash (segfault) when querying an R object in an R environment triggers an
  error (symbol exists, but associated values resolves to an error - issue #251)

- Change in the signature of `rcall` was not updated in the documentation
  (issue #259)

- Minor update to the documentation (issue #257)


Release 2.5.4
=============

Bugs fixed
----------

- Filter PNG files on size, preventing empty files causing trouble to be
  ipython notebook rendering of graphics later on (slight modification of
  the pull request #39)

- Fix installation left unresolved with rpy2-2.5.3 (issue #248)

- Possible segfault with Python 3.4 (issue #249)


Release 2.5.3
=============

Changes
-------

- `setup.py` has `install_requires` in addition to `requires` in the hope to
   fix the missing dependency with Python 2 (:mod:`singledispatch` is required
   but not installed).

Bugs fixed
----------

- Extracting configuration information from should now work when R is emitting a warning (issue #247)

- On OS X the library discovery step can yield nothing (see issue #246). A tentative fix is to issue
  a warning and keep moving.


Release 2.5.2
=============

Bugs fixed
----------

- String representation of :class:`robjects.R` (issue #238)

- Check during `build_ext` if unsupported version of R (pull request #32)

- HTMl display of columns of factors in a DataFrame (issue #236)

- HTML display of factors (issue #242)


Release 2.5.1
=============

Bugs fixed
----------

- Require singledispatch if Python 3.3 (issue #232)

- Fixed bug when R spits out a warning when asked configuration information (issue #233)

- Restored printing of compilation information when running `setup.py`

- Fixed installation issue on some systems (issue #234)

- Workaround obscure failure message from unittest if Python < 3.4 and
  :mod:`singledispatch` cannot be imported (issue #235)


Release 2.5.0
=============

New features
------------

- Experimental alternative way to preserve R objects from garbage collection.
  This can be activated with `rinterface.initr(r_preservehash=True)` (default
  is `False`.

- :class:`GGPlot` object getting a method :meth:`save`
  mirroring R's `ggplot2::ggsave()`.

- The conversion system is now using generics/single dispatch.

- New module :mod:`rpy2.ipython.html` with HTML display for rpy2 objects

- [Experimental] New function :func:`robjects.methods.rs4instance_factory`
  to type RS4 objects with more specificity.

Changes
-------

- The script `setup.py` was rewritten for clarity and ease of maintenance.
  Now it only uses `setuptools`.


Release 2.4.4
=============

Bugs fixed
----------

- Use `input` rather than `raw_input` in the default console callback
  with Python 3 (fixes issue #222)

- Issues with conversions, pandas, and rmagic (fixes issue #218 and more)


Release 2.4.3
=============

Bugs fixed
----------

- `geom_raster` was missing from `rpy2.robjects.lib.ggplot2` (pull request #30)

- Fixed issue with SVG rendering in ipython notebook (issue #217)

- Regression with `rx2()` introduced with new conversion (issue #219)

- Fixed documentation (missing `import`) (issue #213)


Release 2.4.2
=============

Bugs fixed
----------

- Assigning an R `DataFrame` into an environment was failing if
  the conversion for Pandas was activated. (Issue #207)


Release 2.4.1
=============

Bugs fixed
----------

- :meth:`rpy2.ipython` fixed spurious output to notebook cells.



Release 2.4.0
=============

Changes
-------

- Conversion system slightly changed, with the optional
  conversions for :mod:`numpy` and :mod:`pandas` modified
  accordingly. The changes should only matter if using
  third-party conversion functions.

- The Python 3 version is now a first class citizen. `2to3`
  is no longer used, and the code base is made directly
  compatible with Python. This lowers significantly the
  installation time with Python 3
  (which matters when developping rpy2).

- The default options to initialize R (`rpy2.rinterface.initoptions') are no longer
  `('rpy2', '--quiet', '--vanilla', '--no-save')` but now
  `('rpy2', '--quiet', '--no-save')`.

- :class:`robjects.vectors.ListVector` can be instanciated from
  any objects with a method `items()` with the expectation that the method
  returns an iterable of (name, value) tuples, or even be an iterable
  of (name, value) tuples.

New features
------------

- For instances of :class:`rpy2.robjects.Function`,
  the `__doc__` is now a property fetching information
  about the parameters in the R signature.

- Convenience function :func:`rpy2.robjects.packages.data`
  to extract the datasets in an R pacakges

- :mod:`ipython`'s `rmagic` is now part of :mod:`rpy`. To use, `%load_ext
  rpy2.ipython` from within IPython.

- new method :meth:`rpy2.rinterface.SexpEnvironment.keys`, returnings
  the names in the environment as a tuple of Python strings.

- convenience class :class:`robjects.packages.InstalledPackages`, with a companion function
  :func:`robjects.packages.isinstalled`.

- new class :class:`rinterface.SexpSymbol` to represent R symbols

Bugs fixed
----------

- :meth:`rpy2.rinterface.Sexp.do_slot` was crashing when
  the parameter was an empty string (PR #155)



Release 2.3.10
==============

Bugs fixed
----------

- `setup.py build` was broken when new R compiled with OpenMP (Issue #183)

Release 2.3.9
=============

- Changes in pandas 0.13.0 broke the rpy2 conversion layer (Issue #173)


Release 2.3.8
=============

Bugs fixed
----------

- Crash with R-3.0.2. Changes in R-3.0.2's C API coupled to a strange behaviour
  with R promises caused the problem. (PR #150)


Release 2.3.7
=============

Bugs fixed
----------

- ggplot2's "guides" were missing

- ggplot2's "theme_classic" was missing (PR #143)

- ggplot2's "element_rect" was missing (PR #144)

- :func:`rpy2.interactive.packages` was broken (PR #142)


Release 2.3.6
=============

Bugs fixed
----------

- Several reports of segfault on OS X (since rpy2-2.3.1 - PR #109)

- More fixes in converting `DataFrames` with dates from `pandas`


Relase 2.3.5
============

Bugs fixed
----------

- Missing mapping to ggplot2's `scale_shape_discrete` function

- Better handling of dates in Pandas

- Constructor for POSIXct improved (and fixed)

Changes
-------

- The attribute :attr:`rclass` is no longer read-only and can be set
  (since R allows it)

- Importing the module :mod:`rpy2.interactive` no longer activates
  event processing by default (triggering concurrency errors
  when used with ipython).

New features
------------

- New module :mod:`rpy2.interactive.ipython` (so far plotting
  automatically a ggplot2 figure in the iPython's console)

- It is now possible to set the :attr:`rclass`.


Relase 2.3.4
============

Bugs fixed
----------

- Spurious error when running unit tests with Python 3 and numpy
  installed

- Missing mapping to ggplot2's `geom_dotplot` function

- Warnings are not longer printed (see Changes below)

Changes
-------

- Bumped target version of ggplot2 to 0.9.3.1

- Warnings are not longer printed. The C-level function in R became
  hidden in R-3.0, and the cost of an R-level check/print is relatively
  high if the R code called is very short. This might evolve into
  printing warnings only if interactive mode in Python (if this can
  be checked reliably).


Release 2.3.3
=============

Bugs fixed
----------

- Some of the data.frames converted from :mod:`pandas` were triggering
  a :class:`TypeError` when calling :func:`repr`

- In :mod:`rpy2.robjects.lib.ggplot2`, a mapping to `coord_fixed` was
  missing (PR #120)

- Using the parameter `lib_loc` in a call to
  :func:`rpy2.robjects.packages.importr` was resulting in an error (PR #119)

- Creating a `layer` through the `rpy2.robjects.lib.ggplot2` interface did
  not accept parameters (PR #122)

- Testing the Python version was crashing of a number of unsupported Python
  versions (<= 2.6) (PR #117)

New features
------------

- New module pandas2ri to convert from mod:`pandas` `DataFrame` objects

- New classes :class:`rpy2.robjects.lib.grid.Unit` and
  :class:`rpy2.robjects.lib.grid.Gpar` to model their counterparts in
  R's `grid` package as they were previously missing from rpy2.


Release 2.3.2
=============

Bug fixed
---------

- Building on Win64 (pull request #6)

- Fetching data from an R package through `importr` was masking
  any R object called `data` in that package. The data are now
  under the attribute name `__rdata__`. This is not completely
  safe either, although much less likely, a warning will
  be issued if still masking anything.


Changes
-------

- More informative error message when failing to build because `R CMD config`
  does not return what is expected

Release 2.3.1
=============

Bugs fixed
----------

- default console print callback with Python (issue #112 linked to it)

- deprecation warnings with ggplot2 (issue #111 and contributed patch)
2015-04-07 22:14:18 +00:00
wiz
f61838cd80 Recursive bump for vala-0.28.0 update. 2015-04-03 07:38:34 +00:00
joerg
905f3d4922 SSE2 support only makes sense on X86, but configure doesn't really
check. Use a blunt object to help it.
2015-03-31 15:49:15 +00:00
joerg
85a7e5ff28 Support NetBSD platforms with non-fixed endianess. Remove patch backups
just before install to make patch updates easier.
2015-03-31 15:48:32 +00:00
jperkin
a9505c7ed2 Package requires GCC runtime. 2015-03-17 14:24:43 +00:00
tnn
ef76b0f506 needs curses 2015-03-15 18:51:14 +00:00
hiramatsu
7c6162994d Set MAINTAINER to pkgsrc-users. 2015-03-15 17:20:19 +00:00
hiramatsu
4028688eb8 Set MAINTAINER to pkgsrc-users. 2015-03-15 17:09:00 +00:00
tnn
50bea9a745 needs curses 2015-03-15 14:54:19 +00:00
taca
97d673c539 Update pear-Numbers_Words to 0.18.0.
0.18.0

Release date: 2014-10-24 17:28 UTC
Release state: beta

Changelog:

* Fixed bug #19453: Incorrect spelling of Hungarian numbers [kouber]
* Fixed bug #19543: Better handling of decimal mark and thousands separators [kouber]
* Fixed bug #19855: Do not emit E_NOTICE when calling toWords() statically [cweiske]
* Fixed pl unicode [Jakub Roszkiewicz]
* Fixed ru_RU currency codes [Vital Leshchyk]
* Fixed tr_TR unicode [Shahriyar Imanov]
* Added en_IN - Indian English [Abhinav Nayak]
* Added lv - Latvian [Andrius]
* Added ro_RO - Romanian [Bogdan Stancescu]
* Added ua - Ukrainian [Vital Leshchyk]
* Unify locale loading code [cweiske]
* Use PEAR class-to-filename convention [cweiske]

This release changes class names and locations of locale files.
This is a backwards compatibility break.
2015-03-14 08:17:35 +00:00
taca
8d1c948c0f Update ruby-spreadsheet to 1.0.3.
### 1.0.3 / 10.03.2015

Author: Robert Eshleman <c.robert.eshleman@gmail.com>
Date:   Mon Mar 9 09:47:59 2015 -0400

* Update `ruby-ole` to `1.2.11.8`
** `ruby-ole` <= `1.2.11.7` throws a duplicated key warning in Ruby 2.2.
** This commit updates `ruby-ole` to `1.2.11.8`, which fixes this warning.
** Related discussion: [aquasync/ruby-ole#15] - [aquasync/ruby-ole#15]: https://github.com/aquasync/ruby-ole/issues/15

### 1.0.2 / 05.03.2015

Author: cantin <cantin2010@gmail.com>
Date:   Thu Mar 5 16:13:59 2015 +0800

* add Rational support
* add rational requirement
* use old rational syntax in test
2015-03-13 14:31:38 +00:00
tnn
4d0a8cb61b needs soelim 2015-03-12 17:35:06 +00:00
tnn
9d9f167e71 fix parse error in fftw.texi when makeinfo is provided by gtexinfo 2015-03-12 16:57:52 +00:00
taca
2ffac1bf79 Update ruby-gsl to 1.16.0.4.
* Switch to rb-gsl gem.

Fri Dec 19 2014
  * Ruby/GSL 1.16.0.4
    * Optimize and extract multiplication and division operations on Fixnum
      and Float. Pull request #8 by Veselin Vasilev.
    * Fixed division in GSL::Oper for GSL::Vector::Col. Issue #9.

Tue Oct 21 2014
  * Ruby/GSL 1.16.0.3
    * Fixed RDoc issues. Issue #6 by @bigtunacan.
    * Fixed $LOAD_PATH problem. Pull request #7 by Takahiro SATOH.

Wed Jul  9 2014
  * Ruby/GSL 1.16.0.2
    * Fixed linking problem.

Thu Apr 24 2014
  * Ruby/GSL 1.16.0.1
    * Extensive cleanup.
    * Fixed linking problems.
    * Required Ruby version >= 1.8.7.

Fri Jan 24 2014
  * Ruby/GSL 1.16.0
    * GSL-1.16 support.
2015-03-08 15:19:13 +00:00
taca
17a1a339eb Add ${GEM_EXTSDIR}/gem.build_complete for new rubygems and updated ruby. 2015-03-08 15:17:17 +00:00
joerg
8e50ffaa74 LLVM's correlated value propagation pass is known to require a lot of
memory and CPU time for certain input. Provide a variable
(CLANG_NO_VALUE_PROPAGATION_PASS) for selectively disabling it in those
places known to trigger it.
2015-03-02 19:59:06 +00:00
joerg
51cf1d6575 Always build PIC. Bump revision. 2015-02-28 23:44:27 +00:00
mef
4f8bf05939 Update to 2.07
--------------
2.07  2014-01-26 Hugo
    - Go direct to XS for more speed
    - add lcm/blcm, bsqrt, bmodinv
2015-02-27 00:46:46 +00:00
wiz
48a32fa326 Update to 1.0.3:
Changes in version 1.0.3:
  - Fixed mpc_pow, see
    http://lists.gforge.inria.fr/pipermail/mpc-discuss/2014-October/001315.html
  - #18257: Switched to libtool 2.4.5.
2015-02-21 09:16:37 +00:00
wen
b94897c548 Update to 1.06
Upstream changes:
1.06      2014-11-25 07:09:08-05:00 America/New_York

    [Fixed]

    - Make 0 and 0 compare equal with a relative epsilon

    [Documented]

    - Added SEE ALSO with Number::Tolerant and Test::Deep::NumberTolerant

1.05      2014-11-24 11:08:11-05:00 America/New_York

    [Fixed]

    - relative comparison of array reference elements now works as intended

    - diagnostics of delta_not_ok and delta_not_within clarified under
      relative comparison

1.04      2013-11-20 18:43:32 America/New_York

    - Modernized distribution metadata and licensing

    - Distribution now managed with Dist::Zilla
2015-02-20 12:54:41 +00:00
jperkin
c5845d51b7 Restore variable substitution lost in last update, exposed by cwrappers. 2015-02-17 14:23:50 +00:00
jdc
6d3fb8651c Regenerate for updated `patch-include_cln_types.h'. 2015-02-07 20:18:39 +00:00
jdc
e435652b0e Commit correct version of patch (oops). 2015-02-07 20:18:06 +00:00
jdc
460d7eff5d Regenerate for new `patch-include_cln_types.h'. 2015-02-07 19:55:13 +00:00
jdc
5935745d19 Allow this to compile on sparc64 (sent upstream). 2015-02-07 19:53:41 +00:00
ryoon
0cd02471fb Add coinmp 2015-02-04 17:37:44 +00:00
ryoon
8b8c1d843c Import coinmp-1.7.6 as math/coinmp.
CoinMP is a C-API library that supports most of the functionality
of CLP (Coin LP), CBC (Coin Branch-and-Cut), and CGL (Cut Generation
Library) projects.
2015-02-04 17:36:34 +00:00
mef
ae6e60c22f (pkgsrc)
- Add LICENSE gnu-gpl-v2
(upstream)
  - Update 2.12 to 2.13
##############################################
# 2013-03-13 galculator 2.1.3 released       #
##############################################

2014-03-07 Simon Floery <simon.floery@rechenraum.com>
	* Added Spanish tranlsation (thanks to jcsl, sf.net patch #8)

2014-02-19 Simon Floery <simon.floery@rechenraum.com>
	* Fixed segfault introduced in r134

2014-01-13 Simon Floery <simon.floery@rechenraum.com>
	* Updated Turkish translations (thanks to Volkan, fixes sf.net #103)

2014-01-08 Simon Floery <simon.floery@rechenraum.com>
	* Fixing result string corruption when toggling sign (thanks to Juha
		Kylliaein for reporting)
	* Emitting signal in apply_preferences so that menu gets hidden after a
		restart again (closes sf.net #99)

2013-09-01 Simon Floery <simon.floery@rechenraum.com>
	* added Hungarian translation (thanks to Zoltan)

2013-08-14 Simon Floery <simon.floery@rechenraum.com>
	* rpn_stack_list when pasting (fixes sf.net #98, thanks to  Don Allen for
		reporting).
2015-02-03 15:29:48 +00:00
taca
f19dfc9faf Update ruby-narray to 0.6.1.1.
2013-03-16  Masahiro TANAKA  <masa16.tanaka@gmail.com>

	* narray.c (Init_narray): add map, map!
	Thanks to Michael Macias.
2015-02-03 14:46:01 +00:00
dbj
d5c50d965c specifiy -undefined dynamic-lookup with PKGSRC_FORTRAN=gfortran on Darwin 2015-01-27 06:36:27 +00:00
dbj
036f13cda8 use the Accelerate framework on Darwin instead of the obsolete vecLib 2015-01-27 05:04:06 +00:00
joerg
6708bba9df Rename private strtoi function. Bump revision. 2015-01-23 15:07:53 +00:00
joerg
962855d175 Rename local strtoi function. 2015-01-23 15:06:44 +00:00
obache
b816eece03 Update ruby-spreadsheet to 1.0.1.
### 1.0.1 / 22.01.2015

* Fixing Excel::Worksheet#dimensions
2015-01-23 08:30:45 +00:00
obache
e899de84ae Simplify MASTER_SITES subdirectory. 2015-01-23 06:38:14 +00:00
mef
e4aeb0f615 PLIST was not updated for 'Update 0.13 to 0.14', sorry. Thanks dbj 2015-01-23 01:18:53 +00:00
jaapb
714f854d4d Revbump associated with update of lang/ocaml. 2015-01-20 14:24:34 +00:00
mef
912f531492 Update 0.13 to 0.14
version: 0.14
date: Sat Oct 25 16:08:47 CEST 2014
changes:
        - support IMath as an optional replacement for GMP
        - minor AST generator improvements
2015-01-18 09:20:21 +00:00