either because they themselves are not ready or because a
dependency isn't. This is annotated by
PYTHON_VERSIONS_INCOMPATIBLE= 33 # not yet ported as of x.y.z
or
PYTHON_VERSIONS_INCOMPATIBLE= 33 # py-foo, py-bar
respectively, please use the same style for other packages,
and check during updates.
Use versioned_dependencies.mk where applicable.
Use REPLACE_PYTHON instead of handcoded alternatives, where applicable.
Reorder Makefile sections into standard order, where applicable.
Remove PYTHON_VERSIONS_INCLUDE_3X lines since that will be default
with the next commit.
Whitespace cleanups and other nits corrected, where necessary.
into options.mk.
Changes from 2.4 to 3.0
=======================
New features
------------
- Since this release PyTables provides full support to Python_ 3
(closes :issue:`188`).
- The entire code base is now more compliant with coding style guidelines
describe in the PEP8_ (closes :issue:`103` and :issue:`224`).
See `API changes`_ for more details.
- Basic support for HDF5 drivers. Now it is possible to open/create an
HDF5 file using one of the SEC2, DIRECT, LOG, WINDOWS, STDIO or CORE
drivers. Users can also set the main driver parameters (closes
:issue:`166`).
Thanks to Michal Slonina.
- Basic support for in-memory image files. An HDF5 file can be set from or
copied into a memory buffer (thanks to Michal Slonina). This feature is
only available if PyTables is built against HDF5 1.8.9 or newer.
Closes :issue:`165` and :issue:`173`.
- New :meth:`File.get_filesize` method for retrieving the HDF5 file size.
- Implemented methods to get/set the user block size in a HDF5 file
(closes :issue:`123`)
- Improved support for PyInstaller_. Now it is easier to pack frozen
applications that use the PyTables package (closes: :issue:`177`).
Thanks to Stuart Mentzer and Christoph Gohlke.
- All read methods now have an optional *out* argument that allows to pass a
pre-allocated array to store data (closes :issue:`192`)
- Added support for the floating point data types with extended precision
(Float96, Float128, Complex192 and Complex256). This feature is only
available if numpy_ provides it as well.
Closes :issue:`51` and :issue:`214`. Many thanks to Andrea Bedini.
- Consistent ``create_xxx()`` signatures. Now it is possible to create all
data sets :class:`Array`, :class:`CArray`, :class:`EArray`,
:class:`VLArray`, and :class:`Table` from existing Python objects (closes
:issue:`61` and :issue:`249`). See also the `API changes`_ section.
- Complete rewrite of the :mod:`nodes.filenode` module. Now it is fully
compliant with the interfaces defined in the standard :mod:`io` module.
Only non-buffered binary I/O is supported currently.
See also the `API changes`_ section. Closes :issue:`244`.
- New :program:`pt2to3` tool is provided to help users to port their
applications to the new API (see `API changes`_ section).
Improvements
------------
- Improved runtime checks on dynamic loading of libraries: meaningful error
messages are generated in case of failure.
Also, now PyTables no more alters the system PATH.
Closes :issue:`178` and :issue:`179` (thanks to Christoph Gohlke).
- Improved list of search paths for libraries as suggested by Nicholaus
Halecky (see :issue:`219`).
- Removed deprecated Cython_ include (.pxi) files. Contents of
:file:`convtypetables.pxi` have been moved in :file:`utilsextension.pyx`.
Closes :issue:`217`.
- The internal Blosc_ library has been upgraded to version 1.2.3.
- Pre-load the bzip2_ library on windows (closes :issue:`205`)
- The :meth:`File.get_node` method now accepts unicode paths
(closes :issue:`203`)
- Improved compatibility with Cython_ 0.19 (see :issue:`220` and
:issue:`221`)
- Improved compatibility with numexpr_ 2.1 (see also :issue:`199` and
:issue:`241`)
- Improved compatibility with development versions of numpy_
(see :issue:`193`)
- Packaging: since this release the standard tar-ball package no more includes
the PDF version of the "PyTables User Guide", so it is a little bit smaller
now. The complete and pre-build version of the documentation both in HTML
and PDF format is available on the file `download area`_ on SourceForge.net.
Closes: :issue:`172`.
- Now PyTables also uses `Travis-CI`_ as continuous integration service.
All branches and all pull requests are automatically tested with different
Python_ versions. Closes :issue:`212`.
Other changes
-------------
- PyTables now requires Python 2.6 or newer.
- Minimum supported version of Numexpr_ is now 2.0.
API changes
-----------
The entire PyTables API as been made more PEP8_ compliant (see :issue:`224`).
This means that many methods, attributes, module global variables and also
keyword parameters have been renamed to be compliant with PEP8_ style
guidelines (e.g. the ``tables.hdf5Version`` constant has been renamed into
``tables.hdf5_version``).
We made the best effort to maintain compatibility to the old API for existing
applications. In most cases, the old 2.x API is still available and usable
even if it is now deprecated (see the Deprecations_ section).
The only important backwards incompatible API changes are for names of
function/methods arguments. All uses of keyword arguments should be
checked and fixed to use the new naming convention.
The new :program:`pt2to3` tool can be used to port PyTables based applications
to the new API.
Many deprecated features and support for obsolete modules has been dropped:
- The deprecated :data:`is_pro` module constant has been removed
- The nra module and support for the obsolete numarray module has been removed.
The *numarray* flavor is no more supported as well (closes :issue:`107`).
- Support for the obsolete Numeric module has been removed.
The *numeric* flavor is no longer available (closes :issue:`108`).
- The tables.netcdf3 module has been removed (closes :issue:`68`).
- The deprecated :exc:`exceptions.Incompat16Warning` exception has been
removed
- The :meth:`File.create_external_link` method no longer has a keyword
parameter named *warn16incompat*. It was deprecated in PyTables 2.4.
Moreover:
- The :meth:`File.create_array`, :meth:`File.create_carray`,
:meth:`File.create_earray`, :meth:`File.create_vlarray`, and
:meth:`File.create_table` methods of the :class:`File` objects gained a
new (optional) keyword argument named ``obj``. It can be used to initialize
the newly created dataset with an existing Python object, though normally
these are numpy_ arrays.
The *atom*/*descriptor* and *shape* parameters are now optional if the
*obj* argument is provided.
- The :mod:`nodes.filenode` has been completely rewritten to be fully
compliant with the interfaces defined in the :mod:`io` module.
The FileNode classes currently implemented are intended for binary I/O.
Main changes:
* the FileNode base class is no more available,
* the new version of :class:`nodes.filenode.ROFileNode` and
:class:`nodes.filenode.RAFileNode` objects no more expose the *offset*
attribute (the *seek* and *tell* methods can be used instead),
* the *lineSeparator* property is no more available end the ``\n``
character is always used as line separator.
- The `__version__` module constants has been removed from almost all the
modules (it was not used after the switch to Git). Of course the package
level constant (:data:`tables.__version__`) still remains.
Closes :issue:`112`.
- The :func:`lrange` has been dropped in favor of xrange (:issue:`181`)
- The :data:`parameters.MAX_THREADS` configuration parameter has been dropped
in favor of :data:`parameters.MAX_BLOSC_THREADS` and
:data:`parameters.MAX_NUMEXPR_THREADS` (closes :issue:`147`).
- The :func:`conditions.compile_condition` function no more has a *copycols*
argument, it was no more necessary since Numexpr_ 1.3.1.
Closes :issue:`117`.
- The *expectedsizeinMB* parameter of the :meth:`File.create_vlarray` and of
the :meth:`VLArrsy.__init__` methods has been replaced by *expectedrows*.
See also (:issue:`35`).
- The :meth:`Table.whereAppend` method has been renamed into
:meth:`Table.append_where` (closes :issue:`248`).
Please refer to the :doc:`../MIGRATING_TO_3.x` document for more details about
API changes and for some useful hint about the migration process from the 2.X
API to the new one.
Other possibly incompatible changes
-----------------------------------
- All methods of the :class:`Table` class that take *start*, *stop* and
*step* parameters (including :meth:`Table.read`, :meth:`Table.where`,
:meth:`Table.iterrows`, etc) have been redesigned to have a consistent
behaviour. The meaning of the *start*, *stop* and *step* and their default
values now always work exactly like in the standard :class:`slice` objects.
Closes :issue:`44` and :issue:`255`.
- Unicode attributes are not stored in the HDF5 file as pickled string.
They are now saved on the HDF5 file as UTF-8 encoded strings.
Although this does not introduce any API breakage, files produced are
different (for unicode attributes) from the ones produced by earlier
versions of PyTables.
- System attributes are now stored in the HDF5 file using the character set
that reflects the native string behaviour: ASCII for Python 2 and UTF8 for
Python 3. In any case, system attributes are represented as Python string.
- The :meth:`iterrows` method of :class:`*Array` and :class:`Table` as well
as the :meth:`Table.itersorted` now behave like functions in the standard
:mod:`itertools` module.
If the *start* parameter is provided and *stop* is None then the
array/table is iterated from *start* to the last line.
In PyTables < 3.0 only one element was returned.
Deprecations
------------
- As described in `API changes`_, all functions, methods and attribute names
that was not compliant with the PEP8_ guidelines have been changed.
Old names are still available but they are deprecated.
- The use of upper-case keyword arguments in the :func:`open_file` function
and the :class:`File` class initializer is now deprecated. All parameters
defined in the :file:`tables/parameters.py` module can still be passed as
keyword argument to the :func:`open_file` function just using a lower-case
version of the parameter name.
Bugs fixed
----------
- Better check access on closed files (closes :issue:`62`)
- Fix for :meth:`File.renameNode` where in certain cases
:meth:`File._g_updateLocation` was wrongly called (closes :issue:`208`).
Thanks to Michka Popoff.
- Fixed ptdump failure on data with nested columns (closes :issue:`213`).
Thanks to Alexander Ford.
- Fixed an error in :func:`open_file` when *filename* is a :class:`numpy.str_`
(closes :issue:`204`)
- Fixed :issue:`119`, :issue:`230` and :issue:`232`, where an index on
:class:`Time64Col` (only, :class:`Time32Col` was ok) hides the data on
selection from a Tables. Thanks to Jeff Reback.
- Fixed ``tables.tests.test_nestedtypes.ColsTestCase.test_00a_repr`` test
method. Now the ``repr`` of of cols on big-endian platforms is correctly
handled (closes :issue:`237`).
- Fixes bug with completely sorted indexes where *nrowsinbuf* must be equal
to or greater than the *chunksize* (thanks to Thadeus Burgess).
Closes :issue:`206` and :issue:`238`.
- Fixed an issue of the :meth:`Table.itersorted` with reverse iteration
(closes :issue:`252` and :issue:`253`).
Changes from 2.2.1 to 2.2.2
===========================
* The `copy_args` argument of `NumExpr` function has been brought
back. This has been mainly necessary for compatibility with
PyTables < 3.0, which I decided to continue to support. Fixed#115.
* The `__nonzero__` method in `ExpressionNode` class has been
commented out. This is also for compatibility with PyTables < 3.0.
See #24 for details.
* Fixed the type of some parameters in the C extension so that s390
architecture compiles. Fixes#116. Thank to Antonio Valentino for
reporting and the patch.
Changes from 2.2 to 2.2.1
=========================
* Fixes a secondary effect of "from numpy.testing import `*`", where
division is imported now too, so only then necessary functions from
there are imported now. Thanks to Christoph Gohlke for the patch.
Changes from 2.1 to 2.2
=======================
* [LICENSE] Fixed a problem with the license of the
numexpr/win32/pthread.{c,h} files emulating pthreads on Windows
platforms. After persmission from the original authors is granted,
these files adopt the MIT license and can be redistributed without
problems. See issue #109 for details
(https://code.google.com/p/numexpr/issues/detail?id=110).
* [ENH] Improved the algorithm to decide the initial number of threads
to be used. This was necessary because by default, numexpr was
using a number of threads equal to the detected number of cores, and
this can be just too much for moder systems where this number can be
too high (and counterporductive for performance in many cases).
Now, the 'NUMEXPR_NUM_THREADS' environment variable is honored, and
in case this is not present, a maximum number of *8* threads are
setup initially. The new algorithm is fully described in the Users
Guide now in the note of 'General routines' section:
https://code.google.com/p/numexpr/wiki/UsersGuide#General_routines.
Closes#110.
* [ENH] numexpr.test() returns `TestResult` instead of None now.
Closes#111.
* [FIX] Modulus with zero with integers no longer crashes the
interpreter. It nows puts a zero in the result. Fixes#107.
* [API CLEAN] Removed `copy_args` argument of `evaluate`. This should
only be used by old versions of PyTables (< 3.0).
* [DOC] Documented the `optimization` and `truediv` flags of
`evaluate` in Users Guide
(https://code.google.com/p/numexpr/wiki/UsersGuide).
Changes from 2.0.1 to 2.1
===========================
* Dropped compatibility with Python < 2.6.
* Improve compatibiity with Python 3:
- switch from PyString to PyBytes API (requires Python >= 2.6).
- fixed incompatibilities regarding the int/long API
- use the Py_TYPE macro
- use the PyVarObject_HEAD_INIT macro instead of PyObject_HEAD_INIT
* Fixed several issues with different platforms not supporting
multithreading or subprocess properly (see tickets #75 and #77).
* Now, when trying to use pure Python boolean operators, 'and',
'or' and 'not', an error is issued suggesting that '&', '|' and
'~' should be used instead (fixes#24).
Changes from 2.0 to 2.0.1
=========================
* Added compatibility with Python 2.5 (2.4 is definitely not supported
anymore).
* `numexpr.evaluate` is fully documented now, in particular the new
`out`, `order` and `casting` parameters.
* Reduction operations are fully documented now.
* Negative axis in reductions are not supported (they have never been
actually), and a `ValueError` will be raised if they are used.
Changes from 1.x series to 2.0
==============================
- Added support for the new iterator object in NumPy 1.6 and later.
This allows for better performance with operations that implies
broadcast operations, fortran-ordered or non-native byte orderings.
Performance for other scenarios is preserved (except for very small
arrays).
- Division in numexpr is consistent now with Python/NumPy. Fixes#22
and #58.
- Constants like "2." or "2.0" must be evaluated as float, not
integer. Fixes#59.
- `evaluate()` function has received a new parameter `out` for storing
the result in already allocated arrays. This is very useful when
dealing with large arrays, and a allocating new space for keeping
the result is not acceptable. Closes#56.
- Maximum number of threads raised from 256 to 4096. Machines with a
higher number of cores will still be able to import numexpr, but
limited to 4096 (which is an absurdly high number already).
0.7.4.1
These are the release notes for SymPy 0.7.4.1, which was released
on December 15, 2013.
This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3,
and PyPy.
This was a small bugfix release to fix an import issue on Windows
(https://github.com/sympy/sympy/issues/2681).
0.7.4
These are the release notes for SymPy 0.7.4, which was released on
December 9, 2013.
This version of SymPy has been tested on Python 2.6, 2.7, 3.2, 3.3,
and PyPy.
Major changes
Python 3
SymPy now uses a single code-base for Python 2 and Python 3.
Geometric Algebra
The internal representation of a multivector has been changes to
more fully use the inherent capabilities of SymPy. A multivector
is now represented by a linear combination of real commutative
SymPy expressions and a collection of non-commutative SymPy symbols.
Each non-commutative symbol represents a base in the geometric
algebra of an N-dimensional vector space. The total number of
non-commutative bases is 2**N - 1 (N of which are a basis for the
vector space) which when including scalars give a dimension for
the geometric algebra of 2**N. The different products of geometric
algebra are implemented as functions that take pairs of bases
symbols and return a multivector for each pair of bases.
The LaTeX printing module for multivectors has been rewritten to
simply extend the existing sympy LaTeX printing module and the
sympy LaTeX module is now used to print the bases coefficients in
the multivector representation instead of writing an entire LaTeX
printing module from scratch.
The main change in the geometric algebra module from the viewpoint
of the user is the inteface for the gradient operator and the
implementation of vector manifolds:
The gradient operator is now implemented as a special vector (the
user can name it grad if they wish) so the if F is a multivector
field all the operations of grad on F can be written grad*F, F*grad,
grad^F, F^grad, grad|F, F|grad, grad<F, F<grad, grad>F, and F>grad
where **, ^, |, <, and > are the geometric product, outer product,
inner product, left contraction, and right contraction, respectively.
The vector manifold is defined as a parametric vector field in an
embedding vector space. For example a surface in a 3-dimensional
space would be a vector field as a function of two parameters. Then
multivector fields can be defined on the manifold. The operations
available to be performed on these fields are directional derivative,
gradient, and projection. The weak point of the current manifold
representation is that all fields on the manifold are represented
in terms of the bases of the embedding vector space.
Classical Cryptography
Implements:
Affine ciphers
Vigenere ciphers
Bifid ciphers
Hill ciphers
RSA and "kid RSA"
linear feedback shift registers.
Common Subexpression Elimination (CSE)
Major changes have been done in cse internals resulting in a big
speedup for larger expressions. Some changes reflect on the user
side:
Adds and Muls are now recursively matched ([w*x, w*x*y, w*x*y*z]
ǹow turns into [(x0, w*x), (x1, x0*y)], [x0, x1, x1*z])
CSE is now not performed on the non-commutative parts of
multiplications (it avoids some bugs).
Pre and post optimizations are not performed by default anymore.
The optimizations parameter still exists and optimizations='basic'
can be used to apply previous default optimizations. These
optimizations could really slow down cse on larger expressions
and are no guarantee of better results.
An order parameter has been introduced to control whether Adds
and Muls terms are ordered independently of hashing implementation.
The default order='canonical' will independently order the
terms. order='none' will not do any ordering (hashes order is
used) and will represent a major performance improvement for
really huge expressions.
In general, the output of cse will be slightly different from
the previous implementation.
Diophantine Equation Module
This is a new addition to SymPy as a result of a GSoC project. With
the current release, following five types of equations are supported.
Linear Diophantine equation, a_{1}x_{1} + a_{2}x_{2} + . . .
+ a_{n}x_{n} = b
General binary quadratic equation, ax^2 + bxy + cy^2 + dx + ey
+ f = 0
Homogeneous ternary quadratic equation, ax^2 + by^2 + cz^2 +
dxy + eyz + fzx = 0
Extended Pythagorean equation, a_{1}x_{1}^2 + a_{2}x_{2}^2 +
. . . + a_{n}x_{n}^2 = a_{n+1}x_{n+1}^2
General sum of squares, x_{1}^2 + x_{2}^2 + . . . + x_{n}^2 =
k
Unification of Sum, Product, and Integral classes
A new superclass has been introduced to unify the treatments of
indexed expressions, such as Sum, Product, and Integral. This
enforced common behavior accross the objects, and provides more
robust support for a number of operations. For example, Sums and
Integrals can now be factored or expanded. S.subs() can be used to
substitute for expressions inside a Sum/Integral/Product that are
independent of the index variables, including unknown functions,
for instance, Integral(f(x), (x, 1, 3)).subs(f(x), x**2), while
Sum.change_index() or Integral.transform are now used for other
changes of summation or integration variables. Support for finite
and infinite sequence products has also been restored.
In addition there were a number of fixes to the evaluation of nested
sums and sums involving Kronecker delta functions, see issue 3924
and issue 3987.
Series
The Order object used to represent the growth of a function in
series expansions as a variable tend to zero can now also
represent growth as a variable tend to infinity. This also
fixed a number of issues with limits. See issue 234 and issue
2670.
Division by Order is disallowed, see issue 1756.
Addition of Order object is now commutative, see issue 1180.
Physics
Initial work on gamma matrices, depending on the tensor module.
Logic
New objects true and false which are Basic versions of the
Python builtins True and False.
Other
Arbitrary comparisons between expressions (like x < y) no longer
have a boolean truth value. This means code like if x < y or
sorted(exprs) will raise TypeError if x < y is symbolic. A
typical fix of the former is if (x < y) is True (assuming the
if block should be skipped if x < y is symbolic), and of the
latter is sorted(exprs, key=default_sort_key), which will order
the expressions in an arbitrary, but consistent way, even across
platforms and Python versions. See issue 2832.
Arbitrary comparisons between complex numbers (for example, I
> 1) now raise TypeError as well (see PR #2510).
minpoly now works with algebraic functions, like minpoly(sqrt(x)
+ sqrt(x + 1), y).
exp can now act on any matrix, even those which are not
diagonalizable. It is also more comfortable to call it, exp(m)
instead of just m.exp(), as was required previously.
sympify now has an option evaluate=False that will not
automatically simplify expressions like x+x.
Deep processing of cancel and simplify functions. simplify is
now recursive through the expression tree. See e.g. issue 3923.
Improved the modularity of the codebase for potential subclasses,
see issue 3652.
The SymPy cheatsheet was cleaned up.
Backwards compatibility breaks and deprecations
Removed deprecated Real class and is_Real property of Basic,
see issue 1721.
Removed deprecated 'each_char' option for symbols(), see issue
1919.
The viewer="StringIO" option to preview() has been deprecated.
Use viewer="BytesIO" instead. See issue 3984.
TransformationSet has been renamed to ImageSet. Added public
facing imageset function.
0.7.3
These are the release notes for SymPy 0.7.3, which was released on
July 13, 2013. It can be downloaded from
https://github.com/sympy/sympy/releases/tag/sympy-0.7.3.
This version of SymPy has been tested on Python 2.5, 2.6, 2.7, 3.2,
3.3, and PyPy.
Major changes
Integration
This release includes Risch integration algorithm from Aaron Meurer's
2010 Google Summer of Code project. This makes integrate much more
powerful and much faster for the supported functions. The algorithm
is called automatically from integrate(). For now, only transcendental
elementary functions containing exp or log are supported. To access
the algorithm directly, use integrate(expr, x, risch=True). The
algorithm has the ability to prove that integrals are nonelementary.
To determine if a function is nonelementary, integrate using
risch=True. If the resulting Integral class is an instance of
NonElementaryIntegral, then it is not elementary (otherwise, that
part of the algorithm has just not been implemented yet).
Here is an example integral that could not be computed before:
>>> f = x*(x + 1)*(2*x*(x - (2*x**3 + 2*x**2 + x + 1)*log(x +
1))*exp(3*x**2) + (x**2*exp(2*x**2) - log(x + 1)**2)**2)/((x +
1)*log(x + 1)**2 - (x**3 + x**2)*exp(2*x**2))**2
>>> integrate(f, x)
x + x*exp(x**2)*log(x + 1)/(x**2*exp(2*x**2) - log(x + 1)**2) -
log(x + 1) - log(exp(x**2) - log(x + 1)/x)/2 + log(exp(x**2) +
log(x + 1)/x)/2
ODE
Built basic infrastructure of the PDE module (PR #1970)
Theano Interaction
SymPy expressions can now be translated into Theano expressions
for numeric evaluation. This includes most standard scalar operations
(e.g. sin, exp, gamma, but not beta or MeijerG) and matrices. This
system generally outperforms lambdify and autowrap but does require
Theano to be installed.
Matrix Expressions
Assumptions
Matrix expressions now support inference using the new assumptions
system. New predicates include invertible, symmetric, positive_definite,
orthogonal, ....
New Operators
New operators include Adjoint, HadamardProduct, Determinant,
MatrixSlice, DFT. Also, preliminary support exists for factorizations
like SVD and LU.
Context manager for New Assumptions
Added the with assuming(*facts) context manager for new assumptions.
See blogpost
Backwards compatibility breaks and deprecations
This is the last version of SymPy to support Python 2.5.
The IPython extension, i.e., %load_ext
sympy.interactive.ipythonprinting is deprecated. Use from sympy
import init_printing; init_printing() instead. See issue 3914.
The viewer='file' option to preview without a file name is
deprecated. Use filename='name' in addition to viewer='file'.
See issue 3919.
The deprecated syntax Symbol('x', dummy=True), which had been
deprecated since 0.7.0, has been removed. Use Dummy('x') or
symbols('x', cls=Dummy) instead. See issue 3378.
The deprecated Expr methods as_coeff_terms and as_coeff_factors,
which have been deprecated in favor of as_coeff_mul and
as_coeff_add, respectively (see also as_coeff_Mul and as_coeff_Add),
were removed. The methods had been deprecated since SymPy 0.7.0.
See issue 3377.
The spherical harmonics have been completely rewritten. See PR
#1510.
Minor changes
Solvers
Added enhancements and improved the methods of solving exact
differential equation ((PR #1955)) and ((PR #1823))
Support for differential equations with linear coefficients
and those that can be reduced to separable and linear form ((PR
#1940), (PR #1864), (PR #1883))
Support for first order linear general PDE's with constant
coefficients ((PR #2109))
Return all found independent solutions for underdetermined
systems.
Handle recursive problems for which y(0) = 0.
Handle matrix equations.
Integration
integrate will split out integrals into Piecewise expressions
when conditions must hold for the answer to be true. For example,
integrate(x**n, x) now gives Piecewise((log(x), Eq(n, -1),
(x**(n + 1)/(n + 1), True)) (previously it just gave x**(n +
1)/(n + 1))
Calculate Gauss-Legendre and Gauss-Laguerre points and weights
(PR #1497)
Various new error and inverse error functions (PR #1703)
Use in heurisch for more symmetric and nicer results
Gruntz for expintegrals and all new erf*
Li, li logarithmic integrals (PR #1708)
Integration of li/Li by heurisch (PR #1712)
elliptic integrals, complete and incomplete
Integration of complete elliptic integrals by meijerg
Integration of Piecewise with symbolic conditions.
Fixed many wrong results of DiracDelta integrals.
Logic
Addition of SOPform and POSform functions to sympy.logic to
generate boolean expressions from truth tables.
Addition of simplify_logic function and enabling simplify() to
reduce logic expressions to their simplest forms.
Addition of bool_equals function to check equality of boolean
expressions and return a mapping of variables from one expr to
other that leads to the equality.
Addition of disjunctive normal form methods - to_dnf, is_dnf
Others
gmpy version 2 is now supported
Added is_algebraic_expr() method (PR #2176)
Many improvements to the handling of noncommutative symbols:
Better support in simplification functions, e.g. factor,
trigsimp
Better integration with Order()
Better pattern matching
Improved pattern matching including matching the identity.
normalizes Jacobi polynomials
Quadrature rules for orthogonal polynomials in arbitrary
precision (hermite, laguerre, legendre, gen_legendre, jacobi)
summation of harmonic numbers
Many improvements of the polygamma functions
evaluation at special arguments
Connections to harmonic numbers
structured full partial fraction decomposition (mainly interesting
for developers)
besselsimp improvements
Karr summation convention
New spherical harmonics
improved minimal_polynomial using composition of algebraic
numbers (PR #2038)
faster integer polynomial factorization (PR #2148)
Euler-Descartes method for quartic equations (PR #1947)
algebraic operations on tensors (PR #1700)
tensor canonicalization (PR #1644)
Handle the simplification of summations and products over a
KroneckerDelta.
Implemented LaTeX printing of DiracDelta, Heaviside, KroneckerDelta
and LeviCivita, also many Matrix expressions.
Improved LaTeX printing of fractions, Mul in general.
IPython integration and printing issues have been ironed out.
Stats now supports discrete distributions (e.g. Poisson) by
relying on Summation objects
Added DOT printing for visualization of expression trees
Added information about solvability and nilpotency of named
groups.
PyEphem provides scientific-grade astronomical computations for the Python
programming language. Given a date and location on the Earth's surface, it can
compute the positions of the Sun and Moon, of the planets and their moons, and
of any asteroids, comets, or earth satellites whose orbital elements the user
can provide. Additional functions are provided to compute the angular
separation between two objects in the sky, to determine the constellation in
which an object lies, and to find the times at which an object rises, transits,
and sets on a particular day.
Release 2.3.0
=============
New Features
------------
:mod:`rpy2.rinterface`:
- C-level API, allowing other C-level modules to make use of utilities
without going through the Python level. The exact definition of
the API is not yet fixed. For now there is
PyRinteractive_IsInitialized() to assess whether R was initialized
(through :mod:`rpy2.rinterface` or not).
- C-module _rpy_device, allowing one to implement R graphical devices
in Python [(very) experimental]
- Tracking of R objects kept protected from garbage collection by rpy2
is now possible.
- New method :meth:`Sexp.rid` to return the identifier of the R object
represented by a Python/rpy2 object
:mod:`rpy2.rinteractive`:
- Dynamic build of Python docstrings out of the R manual pages
:mod:`rpy2.robjects.help`:
- Build dynamic help
:mod:`rpy2.robjects.packages:
- Build anonymous R packages from strings
- When using :func:`importr`, the datasets are added as an attribute
:attr:`data`, itself an instance of a new class :class:`PackageData`.
It no longer possible to access datasets are regular objects from
a code package (because of changes in R), and the new system is
more robust against quirks.
Changes
-------
:mod:`rpy2.rinterface`:
- :attr:`SexpClosure.env` to replace the method `closureenv`.
Release 2.2.6
=============
Bugs fixed
----------
- Newest R-2.15 and ggplot2 0.9 broke the ggplot2 interaface
in :mod:`rpy2.robjects.lib.ggplot2`
Release 2.2.5
=============
Bugs fixed
----------
- install process: Library location for some of the R installations
- should compile on win32 (thanks to a patch from Evgeny Cherkashin),
a work to a limited extend
Release 2.2.4
=============
Bugs fixed
----------
- Memory leak when creating R vectors from Python (issue #82)
Release 2.2.3
=============
Bugs fixed
----------
- Dynamic construction of S4 classes was looking for R help as 'class.<class>'
rather than '<class>-class'
- The cleanup of temporary directories created by R was not happening if
the Python process terminated without calline :func:`rpy2.rinterface.endr()`
(issue #68, and proof-of-principle fix by chrish42)
Release 2.2.2
=============
Bugs fixed
----------
- With the robjects layer, repr() on a list containing non-vector elements
was failing
Release 2.2.1
=============
Bugs fixed
----------
- MANIFEST.in was missing from MANIFEST.in, required with Python 3
Release 2.2.0
=============
New Features
------------
- Support for Python 3, and for some of its features ported to Python 2.7
:mod:`rpy2.robjects`:
- :meth:`Environment.keys` to list the keys
- classes :class:`robjects.vectors.POSIXlt` and
:class:`robjects.vectors.POSIXlt` to represent vectors of R
dates/time
- :func:`packages.get_packagepath` to get the path to an R package
- module :mod:`rpy2.robjects.help` to expose the R help system to Python
- Metaclass utilities in :mod:`rpy2.robjects.methods`, allowing to reflect
automatically R S4 classes as Python classes.
- :meth:`rpy2.robjects.vectors.FactorVector.iter_labels` to iterate over the labels
- :class:`rpy2.robjects.vectors.ListVector` to represent R lists.
- Constructor for :class:`rpy2.robjects.vectors.ListVector` and
:class:`rpy2.robjects.vectors.DataFrame` accept any iterable at the condition
that the elements iterated through also valid subscripts for it (e.g., given
an iterable v, the following is valid:
.. code-block:: python
x[k] for x in v
:mod:`rpy2.rinterface`:
- :data:`NA_Complex` and :class:`NAComplexType` for missing complex values.
- :class:`SexpExtPtr` to represent R objects of type EXTPTR (external pointers).
- :func:`rpy2.rinterface.parse` to parse a string a R code
- :func:`rpy2.rinterface.rternalise` to wrap Python function as :class:`SexpClosure` that can
be called by R just as it was a function of its own.
- :class:`rpy2.rinterface.RNULLType` for R's C-level NULL value and
:class:`rpy2.rinterface.UnboundValueType` for R's C-level R_UnboundValue
(both singletons).
- :meth:`rinterface.SexpVector.index`, of similar behaviour to :meth:`list.index`.
- :meth:`rpy2.rinterface.Sexp.list_attrs` to list the names of all R attributes
for a given object.
- :class:`rpy2.rinterface.ByteSexpVector` to represent R 'raw' vectors.
- constant `R_LEN_T_MAX` to store what is the maximum length for a vector in R.
- tuple `R_VERSION_BUILD` to store the version of R rpy2 was built against
- getter :attr:`Sexp.rclass` to return the R class associated with an object
:mod:`rpy2.rlike`:
- :class:`container.OrdDict` get proper methods :meth:`keys` and `get`
:mod:`rpy2.interactive`:
- A new sub-package to provide utilities for interactive work, either for
handling R interactive events or use Python for interactive programming
(as often done with the R console)
Changes
-------
:mod:`rpy2.robjects`:
- NA_bool, NA_real, NA_integer, NA_character and NA_complex are now
deprecated (and removed).
NA_Logical, NA_Real, NA_Integer, NA_Character, NA_Complex should be used.
- :class:`rpy2.robjects.packages.Package` now inherits from :class:`types.ModuleType`
- classes representing R vector also inherit their type-specific
rinterface-level counterpart.
- Importing the :class:`rpy2.robjects.numpy2ri` is no longer sufficient
to active the conversion. Explicit activation is now needed; the function
`activate` can do that.
:mod:`rpy2.rinterface`:
- :class:`IntSexpVector`, :class:`FloatSexpVector`,
:class:`StrSexpVector`, :class:`BoolSexpVector`, :class:`ComplexSexpVector`
are now defined at the C level, improving performances
and memory footprint whenever a lot of instances are created.
Bugs fixed
----------
- Better and more explicit detection system for needed libraries when
compiling rpy2 (ported to release 2.1.6)
- Long-standing issue with readline fixed (issue #10)
Release 2.1.9
=============
Bugs fixed
----------
- The R class in rpy2.robjects is now truly a singleton
- When using numpy 1.5 and Python >= 2.7, the exposed buffer for R numerical (double)
vectors or arrays was wrong.
Release 2.1.8
=============
Bugs fixed
----------
- Fixed issue with R arrays with more than 2 dimensions and numpy arrays
(issue #47 - backported from the branch 2.2.x).
Release 2.1.7
=============
Bugs fixed
----------
- More fixes for the automated detection of include and libraries at build time.
Release 2.1.6
=============
Bugs fixed
----------
- Further fixes in the automatic detection of includes and libraries
needed to compile rpy2 against R. The detection code has
been refactored (backport from the 2.2.x branch)
Release 2.1.5
=============
Bugs fixed
----------
- fixes the automatic detection of R_HOME/lib during building/compiling
when R_HOME/lib is not in lib/ (issue #54)
Release 2.1.4
=============
New features
------------
- :mod:`rpy2.robjects.lib.ggplot2` now has the functions :func:`limits`,
:func:`xlim`, :func:`ylim` exposed (patch contributed anonymously)
Bugs fixed
----------
- Install script when the BLAS library used by R is specified as a library
file (patch by Michael Kuhn)
libraries when previously preferring libraries from pkgsrc causes conflicts.
Fixes build on SmartOS where the platform /usr/lib/libgcc_s.so.1 for legacy
applications conflicts with GCC libraries from pkgsrc.
Gnumeric 1.12.9
Jean
* Implement double click for graph sheets. [#712216]
Morten:
* Minor improvement to history dialog.
* Fix drop-down sizing (gtk+ regression). [#710749]
* Improve accuracy of R.QCAUCHY.
* Acquire more special function test cases.
* Improve accuracy of R.QGAMMA and thus R.QCHISQ.
* Improve accuracy of R.QBETA, R.QF, R.QTUKEY, R.QSNORM, and R.QST.
* Improve accuracy of COMBIN, PERMUT, POCHHAMMER, FACT, GAMMA.
* Improve accuracy of bessel functions with large non-integer alpha.
* Improve accuracy of ACOTH.
* Fix fuzzed file problems. [#708091] [#712662] [#712685] [#712700]
[#712708] [#712772] [#712788] [#712731] [#715003]
* Restore sheet reordering by drag.
* Fix BETA on win32.
* Fix win32 registry initialization.
* Fix win32 gdk-pixbuf install heisen-crash.
* Incorporate new tests from crlibm.
* New functions SINPI and COSPI.
* Improve accuracy of SIN/COS/TAN on win32.
* Work around GTK+ ABI break. [Redhat #1033827]
Xabier Rodríguez Calvar:
* Fix dialog button order. [#710378]
This is a major release from 0.11.0 and includes several new features
and enhancements along with a large number of bug fixes.
Highlites include a consistent I/O API naming scheme, routines to read
html, write multi-indexes to csv files, read & write STATA data files,
read & write JSON format files, Python 3 support for HDFStore, filtering
of groupby expressions via filter, and a revamped replace routine that
accepts regular expressions.
For detailed changes see:
http://pandas.pydata.org/pandas-docs/stable/whatsnew.html
### 0.9.5 / 20.11.2013
Author: Malcolm Blyth <trashbat@co.ck>
Date: Tue Nov 19 15:14:31 2013 +0000
* Bumped revision
* Fixed author stringname error (damn this 1 based counting)
* Updating integration test to check for comments contained within the cells.
* Checking also for multiple comments in a sheet
Ipopt (Interior Point OPTimizer, pronounced eye-pea-Opt)
is a software package for large-scale nonlinear optimization.
It is designed to find (local) solutions of mathematical
optimization problems of the form
min_{x in R^n} f(x)
s.t. g_L <= g(x) <= g_U
x_L <= x <= x_U
where f(x): R^n --> R is the objective function,
and g(x): R^n --> R^m are the constraint functions.
The vectors g_L and g_U denote the lower and upper bounds on the
constraints, and the vectors x_L and x_U are the bounds on the
variables x. The functions f(x) and g(x) can be nonlinear and
nonconvex, but should be twice continuously differentiable.
Note that equality constraints can be formulated in the above
formulation by setting the corresponding components of g_L and
g_U to the same value.
Ipopt is part of the COIN-OR Initiative.
### 0.9.2 / 11.11.2013
commit e70dc0dbbc966ce312b45b0d44d0c3b1dc10aad6
Author: Malcolm Blyth <trashbat@co.ck>
Date: Mon Nov 11 15:53:58 2013 +0000
*Corrected compressed string formatting - *U (UTF-8) should have been *S (16-bit
string)
*Completed addition of notes hash to worksheet
*Bumped revision
*Updated reader and note
Note class no longer extends string for simplicity and debug of class (pp now
works a bit more easily)
Reader has had loads of changes (still WIP) to allow objects of class
Note and NoteObject to be created and combined in the postread_worksheet function
*Adding noteObject to deal with the Object (and ultimately text comment field)
created by excel's madness
SciPy 0.12.1 is a bug-fix release with no new features compared to
0.12.0. The single issue fixed by this release is a security issue in
``scipy.weave``, which was previously using temporary directories in
an insecure manner under certain circumstances.
Changes since 3.1.3:
Bug 620: Fix robustness and performance issues in JacobiSVD::solve.
Bug 613: Fix accuracy of SSE sqrt for very small numbers.
Bug 608: Fix sign computation in LDLT.
Fix write access to CwiseUnaryView expressions.
Fix compilation of transposeInPlace() for Array expressions.
Fix non const data() member in Array and Matrix wrappers.
Fix a few warnings and compilation issues with recent compiler versions.
Documentation fixes.
o The vignette hwde.Rnw has been modified to add missing text and to
conform to current Sweave markup conventions
o Code for the functions hwde() and make.contrasts() has been modified
so that R CMD check no longer reports "No visible binding for global
variable 'oset'."
=== 0.8.9 / 24.08.2013
Author: Doug Renn <renn@nestegg.com>
Date: Fri Aug 23 17:10:24 2013 -0600
* Work around to handle number formats that are being mistaken time formats
Add missing BUILD_DEPENDS
Upstream changes:
1.07 Thu Jan 19 2012
- synchronised the autoseeding mechanism with that of Math::Random::MT
1.08 Mon May 28 2012
- synchronised the autoseeding mechanism with that of Math::Random::MT that
is more elegant and portable
1.09 Mon Jun 4 2012
- added the irand() function to draw random integers, as in Math::Random::MT
1.10 Mon Aug 6 2012
- made set_seed() return the seed, as does Math::Random::MT
- migrated test suite to Test::More and Test::Number::Delta
1.11
- Improvement of unit tests
Upstream changes:
6.22 Tue Sep 4 14:06:20 2012
- Enhancement to shuffle() to return an array
6.21 Mon Aug 6 17:27:37 2012
- Haiku does not support non-blocking IO
6.19 Fri Jul 27 00:48:20 2012
- Prevent use of incompatible state vectors
6.18 Thu Jan 26 14:58:57 2012
- Ignore warnings from other modules during tests
6.17 Wed Jan 11 05:55:09 2012
- Require OIO 3.85 to fix some 'used only once' warnings
Upstream changes:
0.31 2013-08-07
- Change proof certificate documentation to reflect the new text format.
- Some platforms were using __int128 when it wasn't supported. Only
x86_64 and Power64 use it now.
- Small speedup for ranged totient internals.
- Patch MPU::GMP 0.13 giving us not quite what we expected from a small
certificate. Fixed in MPU::GMP 0.14, worked around here regardless.
0.30 2013-08-06
[API Changes]
- Primality proofs now use the new "MPU Certificate" format, which is
text rather than a nested Perl data structure. This is much better
for external interaction, especially with non-Perl tools. It is
not quite as convenient for all-Perl manipulation.
[Functions Added]
- is_frobenius_underwood_pseudoprime
- is_almost_extra_strong_lucas_pseudoprime
- lucas_sequence
- pplus1_factor
[Enhancements]
- Documentation and PP is_prime changed to use extra strong Lucas test
from the strong test. This matches what the newest MPU::GMP does.
This has no effect at all for numbers < 2^64. No counter-example is
known for the standard, strong, extra strong, or almost extra strong
(increment 1 or 2) tests. The extra strong test is faster than the
strong test and produces fewer pseudoprimes. It retains the residue
class properties of the strong Lucas test (where the SPSP-2
pseudoprimes favor residue class 1 and the Lucas pseudoprimes favor
residue class -1), hence should retain the BPSW test strength.
- XS code for all 4 Lucas tests.
- Clean up is_prob_prime, also ~10% faster for n >= 885594169.
- Small mulmod speedup for non-gcc/x86_64 platforms, and for any platform
with gcc 4.4 or newer.
[Bug Fixes]
- Fixed a rare refcount / bignum / callback issue in next_prime.
========
The cdecimal package is a fast drop-in replacement for the decimal module
in Python's standard library. Both modules provide complete implementations
of Mike Cowlishaw/IBM's General Decimal Arithmetic Specification.
This archive is identical to the mpdecimal package, except that library
tests and documentation have been removed.
For documentation, visit:
http://www.bytereef.org/mpdecimal/index.htmlhttp://www.bytereef.org/mpdecimal/doc/index.html
Contact: Stefan Krah <skrah@bytereef.org>
Upstream changes:
Changes in version 1.6-1
write.matrix.csr() now accepts a fac argument similar to read.matrix.csr(), writing factor levels instead of the numeric codes.
naiveBayes() uses a numerically more stable formula for calculating the a-posterior probabilities.
predict.naiveBayes() now accepts data with predictors in an order different from the training data, and also ignores variables not in the model (especially the response variable).
svm() checks whether parameters which are passed to the C-code are set to NULL to avoid segfaults.
plyr is a set of tools that solves a common set of problems: you
need to break a big problem down into manageable pieces, operate
on each pieces and then put all the pieces back together. For example,
you might want to fit a model to each spatial location or time point
in your study, summarise data by panels or collapse high-dimensional
arrays to simpler summary statistics. The development of plyr has
been generously supported by BD (Becton Dickinson).
Upstream changes:
Version 0.2-7
* Trivial changes (updated package fields, daj)
Version 0.2-6
* Removed deprecated \synopsis in some Rd files (thanks to Prof. Ripley)
Upstream changes:
Changes to Version 2.0-18
o Bug fix to boot with type="residual"
o Added densityPlot() function.
Changes to Version 2.0-17
o Add a variable to AMSsurvey.
o Fix to residualPlots to compute lack of fit tests with missing values and glms.
o Fix to residualPlots with a 0/1 variable not declared a factor.
o Boxplot() now works properly with at argument passed to boxplot() via ... (contribution of Steve Ellison).
o qqPlot.lm() now works with "aov" objects (fixing problem reported by Thomas Burk).
o Small fixes to code and docs.
Changes to Version 2.0-16
o Fixed bug in printing of hypotheses by linearHypothesis(), where numeric
constants of the form 1.* or -1.* were printed incorrectly (reported by Johannes Kutsam).
o Fixed a bug in showLabels() with multiple groups in the scatterplot() and scatterplotMatrix() function.
o linearHypothesisTest() now tolerates newlines and tabs in hypotheses (suggestion of David Hugh-Jones).
o two bugs fixed in Boot() (found by David Pain) changed argument f to f. in bootCase().
o summary.Boot(), confint.Boot() and hist.Boot() handle aliases correctly.
o Boxplot.formula() now accepts more than one conditioning variable (suggestion of Christina Yassouridis).
O Boxplot() now properly handles at argument passed through via ... to boxplot() (contribution of Steve Ellison).
o Small fixes.
Changes to Version 2.0-15
o Added an argument coef. to linearHypothesis so tests of the linear hypohtesis form can be computed without reference to a fitted model
o Added a linearHypothesis.nlsList method
o Added an nls method for Boot
o Recode() introduced as alias for recode() to avoid name clash with Hmisc.
o residualPlots for glms now ignore starting values for the computing algorithm when computing lack of fit tests; starting values previously caused an error.
o Marginal Model Plots now allow conditioning on a categorical variable.
Changes to Version 2.0-14
o Smoothers now given as arguments to scatterplot(), scatterplotMatrix(), residualPlots() and other functions; gamLine(), loessLine() (default), and quantregLine() smoothers provided.
o linearHypothesis.mer() and Anova.mer() now consistent with pbkrtest version 0.3-2.
o Small changes and fixes.
Changes to Version 2.0-13
o Added point marking (id.n, etc.) to dataEllipse
o Changed the default for id.method with the invTranPlot to "x".
o The ncvTest has been rewritten for stability, and unneeded 'data', 'subset' and 'na.action' argument have been removed
o Added new function 'Boot' that is a simple front-end to boot::boot that will be useful when bootstrapping regression models. Implemented for lm and glm, but this is likely to work for many other S3 regression models with and 'update' method, 'subset' argument.
o Fixed bug in 'compareCoefs' with non-full rank models
o Modified 'bootCase' to return a matrix of class c("bootCase", "matrix") so generic functions can be written to summarize these objects.
o Minor changes to the returned value of showLabels to give both the label and the corresponding row number. showLabels documentation tweaked.
o Improved handling of center.pch argument to ellipse() (suggestion of Rob Kushler).
o New test argument for linearHypothesis.mer() and test.statistic argument for Anova.mer() for F-tests with Kenward/Roger df, provided by pbkrtest package.
o Anova.mlm() now will do univariate repeated-measures ANOVA even if the error SSP matrix is singular.
o hccm() will now accept a weighted linear models (suggestion of Stefan Holst Bache).
o deltaMethod.default() now applies coef() and vcov() to a model for which these are supported (generalizing a suggestion by Scott Kostyshak).
o Fixed handling of labels argument in scatterplot.formula() and scatterplotMatrix.formula().
o Fixed qqPlot.default() so that it honors line="none" (bug reported by Rob Kushler).
o Added new default method for confidenceEllipse(), which now can construct confidence ellipses for linear functions of coefficients.
o globalVariables() called for R 2.15.1 or later.
o Fixed bug in logit() when percents=TRUE and largest percent is 1 (reported by Eric Goodwin).
o Added radius argument to scatter3d() (suggestion of Antonino Messina).
o Fixed spurious errors message in scatter3d() when groups present but surface=FALSE (reported by David L. Carlson).
=== 0.8.8 / 02.08.2013
Author: Nathan Colgate <nathancolgate@gmail.com>
Date: Thu Aug 1 15:01:57 2013 -0500
* Update excel/internals.rb to reference a valid Encoding type
* Encoding.find("MACINTOSH") was throwing an error. Encoding.find("MACROMAN") does not.
=== 0.8.7 / 24.07.2013
Author: Yasuhiro Asaka <yasaka@ywesee.com>
Date: Wed Jul 24 11:31:12 2013 +0900
* Remove warnings for test suite
* warning: mismatched indentations at 'end' with 'class' at xxx
* warning: method redefined; discarding old xxx
* warning: assigned but unused variable xxx
* warning: previous definition of xxx was here
* The source :rubygems is deprecated because HTTP
* requests are insecure. (Gemfile)
This is a bug-fix release.
A version information bug in Makefile.am was fixed. Thanks to
Sebastien Villemot <sebastien@debian.org> for bug report.
GLPK 4.52 (release date: Jul 18, 2013)
The clique cut generator was essentially reimplemented, and now
it is able to process very large and/or dense conflict graphs.
A simple rounding heuristic was added to the MIP optimizer.
Some bugs were fixed in the proximity search heuristic routine.
Thanks to Giorgio Sartor <0gioker0@gmail.com>.
New command-line option '--proxy [nnn]' was added to glpsol to
enable using the proximity search heuristic.
A bug (incorrect processing of LI column indicator) was fixed
in the mps format reading routine. Thanks to Charles Brixko for
bug report.
changes:
-Plotting uses cairo (and is antialised) by using updated GtkExtra
-Improvements to line plots including autoscaling the y axis by default
-PDF export
-Lots of of fixes and other minor improvements all over
* What is new in gsl-1.16:
** fixed error in gsl_rng_fwrite where uninitialized padding
bytes were being written (bug #39104)
** fixed error in gsl_block_alloc where padding bytes were not
properly initialized (bugs #39101,#39102,#39103)
** fixed error in ntuple/test.c where padding bytes were not
properly initialized (bug #39105)
** fixed triangle selection bug in gsl_sf_coupling_6j_e and
gsl_sf_coupling_9j_e (bugs #39466 and #29606) (Håkan Johansson and
Alexey Illarionov)
** added higher level wrapper routine gsl_multifit_fdfsolver_driver
** converted gsl_multifit_linear_residuals to use dgemv to improve
efficiency (bug #39153)
** added functions gsl_stats_spearman and gsl_sort_vector2 to compute
Spearman rank correlation
** added function gsl_poly_dd_hermite_init for Hermite interpolation
** Added support for robust linear least squares
** Added function gsl_linalg_SV_leverage for computing statistical
leverages from SVD decomposition
** Added support for approximating the Jacobian of nonlinear least
squares fits using forward finite differences
** Extended gsl_sf_coupling_3j to allow larger range and to handle
the special case (ja jb jc; 0 0 0)=0 when ja+jb+jc is odd
** Fixed gsl_sf_mathieu_se_array to return zero when the order is zero
[bug #33679].
** Fixed overflow in gsl_sf_lncosh for large negative x (x<-354).
** Improved gsl_ran_negative_binomial_pdf to avoid underflow/overflow
for large arguments.
** Multisets now allow k strictly greater than n.
** Fixed gsl_matrix_complex_fwrite/fread failure for noncontiguous
matrices (Matthias Sitte).
are replaced with .include "../../devel/readline/buildlink3.mk", and
USE_GNU_READLINE are removed,
* .include "../../devel/readline/buildlink3.mk" without USE_GNU_READLINE
are replaced with .include "../../mk/readline.buildlink3.mk".
Add missing DEPENDS
Upstream changes:
0.29 30 May 2013
- Fix a signed vs. unsigned char issue in ranged moebius. Thanks to the
Debian testers for finding this.
- XS is_prob_prime / is_prime now use a BPSW-style test (SPRP2 plus
extra strong Lucas test) for values over 2^32. This results in up
to 2.5x faster performance for large 64-bit values on most machines.
All PSP2s have been verified with Jan Feitsma's database.
- forprimes now uses a segmented sieve. This (1) allows arbitrary 64-bit
ranges with good memory use, and (2) allows nesting on threaded perls.
- prime_count_approx for very large values (> 10^36) was very slow without
Math::MPFR. Switch to Li+correction for large values if Math::MPFR is
not available.
- Workaround for MSVC compiler.
- Added:
is_pseudoprime (Fermat probable prime test)
is_lucas_pseudoprime (standard Lucas-Selfridge test)
is_extra_strong_lucas_pseudoprime (Mo/Jones/Grantham E.S. Lucas test)
0.28 23 May 2013
- An optimization to nth_prime caused occasional threaded Win32 faults.
Adjust so this is avoided.
- Yet another XS micro-speedup (PERL_NO_GET_CONTEXT)
- forprimes { block } [begin,]end. e.g.
forprimes { say } 100;
$sum = 0; forprimes { $sum += $_ } 1000,50000; say $sum;
forprimes { say if is_prime($_+2) } 10000; # print twin primes
- my $it = prime_iterator(10000); say $it->();
This is experimental (that is, the interface may change).
0.27 20 May 2013
- is_prime, is_prob_prime, next_prime, and prev_prime now all go straight
to XS if possible. This makes them much faster for small inputs without
having to use the -nobigint flag.
- XS simple number validation to lower function call overhead. Still a
lot more overhead compared to directly calling the XS functions, but
it shaves a little bit of time off every call.
- Speedup pure Perl factoring of small numbers.
- is_prob_prime / is_prime about 10% faster for composites.
- Allow '+N' as the second parameter to primes.pl. This allows:
primes.pl 100 +30
to return the primes between 100 and 130. Or:
primes.pl 'nth_prime(1000000000)' +2**8
- Use EXTENDED_TESTING to turn on extra tests.
0.26 21 April 2013
- Pure Perl factoring:
- real p-1 -- much faster and more effective
- Fermat (no better than HOLF)
- speedup for pbrent
- simple ECM
- redo factoring mix
- New functions:
prime_certificate produces a certificate of primality.
verify_prime checks a primality certificate.
- Pure perl primality proof now uses BLS75 instead of Lucas, so some
numbers will be much faster [n-1 only needs factoring to (n/2)^1/3].
- Math::Prime::Util::ECAffinePoint and ECProjectivePoint modules for
dealing with elliptic curves.
0.25 19 March 2013
- Speed up p-1 stage 2 factoring. Combined with some minor changes to the
general factoring combination, ~20% faster for 19 digit semiprimes.
- New internal macro to loop over primary sieve starting at 2. Simplifies
code in quite a few places.
- Forgot to skip one of the tests with broken 5.6.2.
0.24 10 March 2013
- Fix compilation with old pre-C99 strict compilers (decl after statement).
- euler_phi on a range wasn't working right with some ranges.
- More XS prime count improvements to speed and space. Add some tables
to the sieve count so it runs a bit faster. Transition from sieve later.
- PP prime count for 10^9 and larger is ~2x faster and uses much less
memory. Similar impact for nth_prime 10^8 or larger.
- Let factor.pl accept expressions just like primes.pl.
0.23 5 March 2013
- Replace XS Zeta for x > 5 with series from Cephes. It is 1 eps more
accurate for a small fraction of inputs. More importantly, it is much
faster in range 5 < x < 10. This only affects non-integer inputs.
- PP Zeta code replaced (for no-MPFR, non-bignums) with new series. The
new code is much more accurate for small values, and *much* faster.
- Add consecutive_integer_lcm function, just like MPU::GMP's (though we
define ci_lcm(0) = 0, which should get propogated).
- Implement binary search on RiemannR for XS nth_prime when n > 2e11.
Runs ~2x faster for 1e12, 3x faster for 1e13. Thanks to Programming
Praxis for the idea and motivation.
- Add the first and second Chebyshev functions (theta and psi).
- put isqrt(n) in util.h, use it everywhere.
put icbrt(n) in lehmer.h, use it there.
- Start on Lagarias-Miller-Odlyzko prime count.
- A new data structure for the phi(x,a) function used by all the fast
prime count routines. Quite a bit faster and most importantly, uses
half the memory of the old structure.
- Performance:
- Divisor sum with no sub is ~10x faster.
- Speed up PP version of exp_mangoldt, create XS version.
- Zeta much faster as mentioned above.
- faster nth_prime as mentioned above.
- AKS about 10% faster.
- Unroll a little more in sieve inner loop. A couple percent faster.
- Faster prime_count and nth_prime due to new phi(x,a) (about 1.25x).
0.22 26 February 2013
- Move main factor loop out of xs and into factor.c.
- Totient and Moebius now have complete XS implementations.
- Ranged totient uses less memory when segmented.
- Switch thread locking to pthreads condition variables.
0.21 22 February 2013
- Switch to using Bytes::Random::Secure for random primes. This is a
big change in that it is the first non-CORE module used. However, it
gets rid of lots of possible stupidness from system rand.
- Spelling fixes in documentation.
- primes.pl: Add circular and Panaitopol primes.
- euler_phi and moebius now will compute over a range.
- Add mertens function: 1000+ times faster than summing moebius($_).
- Add exp_mangoldt function: exponential of von Mangoldt's function.
- divisor_sum defaults to sigma if no sub is given (i.e. it sums).
- Performance:
- Speedup factoring small numbers. With -nobigint factoring from
1 to 10M, it's 1.2x faster. 1.5x faster than Math::Factor::XS.
- Totient and M枚bius over a range are much faster than separate calls.
- divisor_sum is 2x faster.
- primes.pl is much faster with Pillai primes.
- Reduce overhead in euler_phi -- about 2x faster for individual calls.
0.20 3 February 2013
- Speedup for PP AKS, and turn off test on 32-bit machines.
- Replaced fast sqrt detection in PP.pm with a slightly slower version.
The bloom filter doesn't work right in 32-bit Perl. Having a non-working
detector led to really bad performance. Hence this and the AKS change
should speed up testing on some 32-bit machines by a huge amount.
- Fix is_perfect_power in XS AKS.
0.19 1 February 2013
- Update MR bases with newest from http://miller-rabin.appspot.com/.
- Fixed some issues when using bignum and Calc BigInt backend, and bignum
and Perl 5.6.
- Added tests for bigint is_provable_prime.
- Added a few tests to give better coverage.
- Adjust some validation subroutines to cut down on overhead.
0.18 14 January 2013
- Add random_strong_prime.
- Fix builds with Solaris 9 and older.
- Add some debug info to perhaps find out why old ActiveState Perls are
dying in Math::BigInt::Calc, as if they were using really old versions
that run out of memory trying to calculate '2 ** 66'.
http://code.activestate.com/ppm/Math-Prime-Util/
0.17 20 December 2012
- Perl 5.8.1 - 5.8.7 miscalculates 12345 ** 4, which I used in a test.
- Fix (hopefully) for MSC compilation.
- Unroll sieve loop for another 20% or so speedup. It won't have much
practical application now that we use Lehmer's method for counts, but
there are some cases that can still show speedups.
- Changed the rand functionality yet again. Sorry. This should give
better support for plugging in crypto RNG's when used from other
modules.
0.16 11 December 2012
- randbits >= 32 on some 32-bit systems was messing us up. Restrict our
internal randbits to wordsize-1.
Upstream changes:
Version 3.98-1
* Compilation error with clang. Simple declaration of a routine.
Version 3.98-0
* Update for libxml2-2.9.1 and reading from a connection for xmlEventParse().
* xmlIncludes() is a hierarchical version of getXIncludes()
* Modifications to xmlSource(), e.g. verbose = TRUE as default.
Version 3.97-0
* Fix for xmlValue(node) = text. Identified by Lawrence Edwards.
Uses xmlNodeSetContent() now and leaves freeing the original content to that routine.
* Updates for xmlSource()
Version 3.96-1
* readHTMLTable() ignores headers that are over 999 characters.
* Fix a problem in readHTMLTable() with some table headers not having
the correct number of elements to match the columns.
Version 3.96-0
* Introduced readHTMLList(), getHTMLLinks(), getHTMLExternalFiles(), getXIncludes().
* When serializing XMLNode objects, i.e. R representations of nodes, ensure " and <, etc. in attributes
are serialized correctly.
Version 3.95-1
* Allow htmlParse(), xmlParse(), etc. ?
Version 3.95-0
* Moved development version of the source code for the package to github -
https://github.com/omegahat/XML.git
* Changes to the structure of the package to allow installation directly rather than
via a one-step staging into the R package structure.
* Sample XML documents moved from data/ to exampleData, and examples updated.
* getDefaultNamespace() and matchNamespaces() use simplify = TRUE to call
xmlNamespaceDefinitions() to get the namespaces as a character vector rather than
list.
* Documentation updates
Version 3.94-0
* getNodeLocation() now reports the actual line number for text nodes rather than 0,
using the sibling nodes' or parent node's line number.
* xpathApply() and related functions work with builtin type "functions",
e.g. class.
* xpathApply() and related functions (getNodeSet, xpathSApply) allow
the caller to specify multiple queries as a character vector
and these are pasted together as compound location paths by
separating them with a '|'. This makes it easier for the
caller to manage the different queries.
* assigning to a child of a node works, e.g. node[["abc"]] = text/node
and node[[index]] = text/node. We replace a matching name. If the
replacement value is text, we use the name to
* getChildrenStrings() is a function that implements the equivalent of
xmlApply(node, xmlValue) but faster because we avoid the function call
for each element.
* options parameter for xmlParse() and htmlParse() for controlling the parser.
(Currently only used when encoding is explicitly specified.)
* encoding parameter for xmlParse() and xmlTreeParse() now works for XML documents,
not just HTML documents.
* Update for readHTMLTable() method so that we look at just the final <tr> node
in a <thead>.
Version 3.93-1
* Fixed bug in findXInclude() that sometimes got the wrong XMLXIncludeStartNode.
Hence getNodeLocation() might report the wrong file, but correct line number!
* findXInclude() now has a recursive parameter that resolves the chain of XIncludes.
This returns the full path to the file, relative to the base/top-level document,
not just the parent document.
* Change to the default value of the error parameter in htmlParse() and htmlTreeParse()
which will generate a structured R error if there is an IO error.
The set of issues that will raise an error will be broadened in the future.
Version 3.93-0
* Enabled the fixing of <dummy> namespaces by finding the definition o
for that prefix in the ancestor nodes.
Version 3.92-2
* Synchronized compilation flags for Windows with those on OSX & Linux.
Version 3.92-1
* Restore original error handler function for htmlParse() and htmlTreeParse()
* Fixed a reference counting problem caused by not adding a finalizer in the
as() method for coercing an XMLInternalNode to an XMLInternalDocument.
Example from Janko Thyson.
* Fixed up some partial argument names found by R CMD check!
Version 3.92-0
* Added --enable-xml-debug option for the configure script and this activates
the debugging diagnostic reporting, mainly for the garbage collection and node
reference counts.
* Work-around for HTML documents not being freed (but XML documents are!)
* Added an isHTML parameter for xmlTreeParse.
* Merge htmlTreeParse/htmlParse with xmlTreeParse.
* Implemented some diagnostic facilities to determine if an external pointer
is in R's weak references list. This needs support within R. (Ask for code if
you want.)
Version 3.91-0
* Start of implementation to allow nested calls to newXMLNode() to use namespace prefixes
defined in ancestor nodes. Disabled at present.
Update LICENSE
Upstream changes:
2013-02-28 Albrecht Gebhardt <agebhard@uni-klu.ac.at>
* DESCRIPTION, LICENSE: final version of license desription done.
Upstream changes:
Changes in Version 1.7-10
o All methods that had previously been fully exported (merge.zoo,
MATCH.default, ..., and many more) in order to be accessible to
_all_ conceivable generics are now additionally registered as
S3method()s for the standard generics. Exception: as.Date.* are
still only fully exported.
o Added a new mean() method for "zoo" objects that simply does
mean(coredata(obj), ...).
o Added yearmon_trans, scale_x_yearmon and scale_y_yearmon and
yearqtr_trans, scale_x_yearqtr and scale_y_yearqtr to ggplot2 interface.
o Removed the use of the shape and linetype aesthetic by default
in autoplot() method.
o Bug fix in na.fill for univariate series based on 1-column matrices
(provided by Josh Ulrich).
o Added [[ methods for "yearmon" and "yearqtr".
o Constructs like time(obj)[ORDER(time(obj))] are now split up into
two steps in the package code. If zoo is only imported but not
loaded, R can otherwise have problems correctly dispatching to
the new generics ORDER and MATCH.
o as.Date() now also works for yearqtr/yearmon that are all NA
(especially needed for format() and print() method).
This package lets you create and manipulate complex numbers. By default, Perl
limits itself to real numbers, but an extra use statement brings full complex
support, along with a full set of mathematical functions typically associated
with and/or extended to complex numbers.
Gnumeric 1.12.3
Andreas:
* Fix border handling for merged cells in LaTeX export.
* Fix 'Go to First'. [#699631]
* Fix data merges. [#699897]
* Fix editing of hyperlinks. [#700732]
* Fix conditional formatting crash. [#700969]
* Do not include hidden cells in automatic print range. [#700994]
* Make buttons 1 and 2 behave similarly when selecting cells. [#700792]
* Warn when encountering extLst in xlsx import. [#700018]
* Use ctrl-a only to select the whole sheet, if the sheet
has focus. [#699746]
* Add a keyboard shortcut to jump to the current cell indicator.
[#699710]
* Fix placement of hyperlink tooltip. [#701436]
* Adjust cell comment display. [#698519]
* Make reference display in paste/define names dialog consistent with
sheet preferences. [Debian #699054]
* Write/read pagesetup settings to/from xlsx. [#701834]
* Fix in-cell-combos attached to merged cells. [#702146]
* Use the pagesetup setting to determine the landscape option in LaTeX
export [#702169]
* Fix ODF crash. [#702197]
* In ODF import ignored mentioned but not included sheets. [#698388]
* Fix crash on corrupted files. [#702205] [#702219] [#702285]
[#702288] [#702364] [#702409] [#702486] [#702485] [#702498] [#702322]
[#702689]
* Some documentation improvements. [Debian #621735] [Debian #530462]
* Fix crash on xlsx import due to external references. [#702407]
* Fix reading of conditional formats from xls files. [#702612]
* Fix reading of solid fill conditional formats from xlsx files.
[#702615]
* Improve xlsx import of new stat function names.
* Fix export of FLOOR(x) to xlsx. [Debian #464732]
* Fix clipboard related crash. [#702868]
Darrell Tangman:
* Update documentation for Edit and Insert menus. [#700596]
* Update documentation for comments and hyperlinks. [#700797]
* Consolidate comment, hyperlinks, names documentation.
* Update documentation for Manage Sheets, R1C1 notation,
sheet ranges. 1.12 updates, typo corrections, misc. cleanup.
Dmitry Smirnov:
* Fixes to the gnumeric and ssconvert manual pages.
Jean:
* Adjust labels vertical alignment in document properties
dialog. [#700156]
* Don't crash when exchanging missing axes. [#702126]
* Don't accept GNM_SHEET_PATTERNS as a valid pattern. [#702833]
Morten:
* Improve xlsx import of style-only cells.
* Don't write empty cells to .gnumeric.
* Add MPSEUDOINVERSE function.
* Add ctrl-shift-z as extra accelerator for redo. [#699579]
* Fix conditional format problem. [#699647]
* Remove gobject property strings from translation corpus.
* Improve LINEST. [#551457]
* Improve statfuns tests. [#700294]
* Improve mathfuns tests. [#700295]
* Add new R.PTUKEY function. [#700132]
* Add new Q.PTUKEY function. [#700132]
* Fix missing translation of certain function examples.
* Add new SNORM.DIST.RANGE function.
* Fix critical when last row deleted.
* Fix criticals in about dialog.
* Introspection fixes.
* Fix xls/biff5 link export. [#701604]
* Workaround problems with automake 1.13.
* Fix crashes on corrupted files. [#702101] [#702182] [#702218]
[#702267] [#702277] [#702379] [#702658] [#703006]
* Improve xls import of new stat function names.
* Plug leaks.
math/p5-Math-Random-ISAAC.
As with other Pseudo-Random Number Generator (PRNG) algorithms like the
Mersenne Twister (see Math::Random::MT), this algorithm is designed to
take some seed information and produce seemingly random results as output.
However, ISAAC (Indirection, Shift, Accumulate, Add, and Count) has
different goals than these commonly used algorithms. In particular, it's
really fast - on average, it requires only 18.75 machine cycles to generate
a 32-bit value. This makes it suitable for applications where a significant
amount of random data needs to be produced quickly, such solving using the
Monte Carlo method or for games.
The results are uniformly distributed, unbiased, and unpredictable unless
you know the seed. The algorithm was published by Bob Jenkins in the late
90s and despite the best efforts of many security researchers, no feasible
attacks have been found to date.
math/Math-Random-ISAAC-XS.
This module implements the same interface as Math::Random::ISAAC and can
be used as a drop-in replacement. This is the recommended implementation
of the module, based on Bob Jenkins' reference implementation in C.
Selecting the backend to use manually really only has two uses:
* If you are trying to avoid the small overhead incurred with
dispatching method calls to the appropriate backend modules.
* If you are testing the module for performance and wish to
explicitly decide which module you would like to use.
devel/p5-Algorithm-Cluster.
This module is an interface to the C Clustering Library, a general purpose
library implementing functions for hierarchical clustering (pairwise simple,
complete, average, and centroid linkage), along with k-means and k-medians
clustering, and 2D self-organizing maps. This library was developed at the
Human Genome Center of the University of Tokyo. The C Clustering Library
is distributed along with Cluster 3.0, an enhanced version of the famous
Cluster program originally written by Michael Eisen while at Stanford
University.
math/p5-Number-Tolerant.
Number::Tolerant creates a number-like object whose value refers to a
range of possible values, each equally acceptable. It overloads
comparison operations to reflect this.
I use this module to simplify the comparison of measurement results to
specified tolerances.
reject $product unless $measurement == $specification;
Singleton and dense phases were implemented on computing
LU-factorization with Gaussian elimination. The singleton phase
is a feature that allows processing row and column singletons
on initial elimination steps more efficiently. The dense phase
is a feature used on final elimination steps when the active
submatrix becomes relatively dense. It significantly reduces
the time needed, especially if the active submatrix fits in CPU
cache, and improves numerical accuracy due to full pivoting.
The API routine glp_adv_basis that constructs advanced initial
LP basis was replaced by an improved version, which (unlike the
old version) takes into account numerical values of constraint
coefficients.
The proximity search heuristic for MIP was included in the GLPK
integer optimizer glp_intopt. On API level the heuristic can be
enabled by setting the parameter ps_heur in glp_iocp to GLP_ON.
This feature is also available in the solver glpsol through
command-line option '--proxy'.
A bug was fixed that caused numerical instability in the FPUMP
heuristic.