Update DEPENDS
Upstream changes:
2017-01-11 v1.3003 pjacklam
* Fix syntax for required version of Math::BigInt::Lib.
* Better checking of POD coverage.
* Sync test files with Math-BigInt-1.999808.
* _from_hex() now accepts input without a "0x" prefix.
* _from_bin() is more now efficient as it utilises the fact that
Math::Pari::_hex_cvt() assumes the input is binary if the strings is
prefixed by "0b".
* Implement _to_hex(), _to_oct(), and _to_bin() for conversion to hexadecimal,
octal, and binary without prefix.
* Fix _nok() to work around a bug in Math::Pari::binomial(). It doesn't
correctly handle cases where both n and k are very large.
* Correct a few cases where non-OO syntax was used, e.g., "$x = _one();"
should be "$x = $class -> _one();".
* _inc() and _dec() now uses post-increment and post-decrement, respectively,
rather than adding or subtracting one.
* In test file t/01load.t, display the PARI library version number.
2016-12-03 v1.3002 pjacklam
* Use ExtUtils::MakeMaker rather than Module::Install in Makefile.PL
* Remove author information in LICENSE file.
2016-11-23 v1.3001 pjacklam
* Sync test files with Math-BigInt-1.999801. Add t/mbi_rand.t, t/mbimbf.t,
and t/mbimbf.inc since these are included in the test suite for the other
backend libraries (GMP and Pari).
* Add _nok() by using Pari's binomial() function.
* Add _lcm() by using Pari's lcm() function.
2016-11-15 v1.3000 pjacklam
* Sync test files with Math-BigInt-1.999800.
* Math::BigInt::Pari is now a subclass of Math::BigInt::Lib, so remove pure
Perl methods from Math::BigInt::Pari that are implemented in the superclass
Math::BigInt::Lib. The methods removed are _modinv() and _log_int(). The
version of _log_int() implemented in Math::BigInt::GMP was buggy anyway.
* Add methods _str() and _set(), and correct _num() method.
Upstream changes:
2017-01-11 v1.999808 pjacklam
* In Math::BigInt and Math::BigFloat, add methods bdfac() for double
factorial. Add tests for this method.
* In Math::BigInt and Math::BigFloat, add methods to_hex(), to_oct(), and
to_bin() for hexadecimal, octal, and binary string output without prefix.
Even for Math::BigFloat there is still only support for integer output. Add
tests for these methods.
* Add test for as_oct() corresponding to the old tests for as_hex() and
as_bin().
* In Math::BigInt::Lib, add method _dfac() for double factorial. Add
corresponding tests.
* In Math::BigInt::Lib, fix bug in overloaded "int".
* In Math::BigInt::Lib, implement much faster versions of _from_hex(),
_from_oct(), and _from_bin().
* In Makefile.PL, improve the wording in the message displayed if some of
the installed backend libraries are not a subclass of Math::BigInt::Lib (and
hence will not provide
* Fix minor bugs in some of the author library test files (t/author-lib*.t).
* Allow leading and trailing whitespace in the input to from_hex(),
from_oct(), and from_bin(). Add tests to verify. This is a regressions
(CPAN RT #119805).
2016-12-23 v1.999807 pjacklam
* Add a message to Makefile.PL recommending upgrade if old libraries are
installed. This message is more or less equivalent to the one appearing in
Math-BigInt up until v1.997.
* Improve the documentation (POD) in Math::BigInt::Lib.
* Speed up _sqrt() and _root() in Math::BigInt::Lib.
* Remove checking for exception cases (cases that would return +Inf, -Inf, or
NaN) in Math::BigInt::Lib. It has been documented for a long time that such
checking should be done by the caller.
* Add library methods _to_bin(), _to_oct(), _to_hex(), which are equivalent to
the _as_bin(), _as_oct(), and _as_hex() methods respectively, except that
the _to_*() methods don't use a prefix in the output. This removes the need
for the frequent removal of the various prefixes. Now each _as_*() method
calls the equivalent _to_*() method, adds a prefix, and returns the output.
The _to_*() methods are faster than the equivalent _as_*() methods were.
* Add author test files for the methods _to_bin(), _to_oct(), and _to_hex().
* Add library method _to_bytes(). The method _as_bytes() would have been
called _to_bytes() if I had thought of it earlier. The method _as_bytes() is
now just an alias to _to_bytes(). The _to_bytes() method also fixes a bug
that was present in the _as_bytes() method. (CPAN RT #119346).
* Add author test files for the method _to_bytes().
* Add more tests for library methods _inc() and _dec(). When trying to bring
the Math::BigInt::BitVect library back to life I realized that the test
suite didn't catch certain errors in _inc() and _dec().
* Die if trying to use as_bytes() or from_bytes() with a backend library that
doesn't support the corresponding library methods.
* Correct minor errors in the output messages in the test files.
* Improve/correct various comments in the source code.
* More diagnostic output is displayed by the author test files if the
AUTHOR_DEBUGGING environment variable is set.
2016-12-13 v1.999806 pjacklam
* Add more logic to Makefile.PL regarding INSTALLDIRS (CPAN RT #119199
and #119225).
* In the TODO file, remove stuff that has been implemented.
2016-12-11 v1.999805 pjacklam
* Fix Makefile.PL so that this module installs over the core version.
* Add more tests for _nok() (binomial coefficient "n over k"). These new tests
revealed some problems with some of the backend libraries when _nok() was
given very large arguments.
* Remove t/Math/BigFloat/#Subclass.pm#, which is an Emacs temporary file
included by accident.
2016-12-07 v1.999804 pjacklam
* Implement as_bytes(), as requested (CPAN RT 119096). Also implement the
inverse conversion from_bytes(). This applies to Math::BigInt only. (Alas,
these methods will be inherited from Math::BigInt into Math::BigFloat,
Math::BigRat etc. where the methods won't work. Fixing this class
relationship is an issue of its own.)
* Implement _as_bytes() and _from_bytes() in Math::BigInt::Lib. Preferably,
the various backend libraries will implement faster versions of their
own. Add author test files for testing these methods thorougly.
* Fix from_hex(), from_oct(), and from_bin().
- When called as instance methods, the new value should be assigned to the
invocand unless the invocand is read-only (a constant).
- When called as instance methods, the assigned value was incorrect, if the
invocand was inf or NaN.
- Add tests to t/from_hex-mbf.t, t/from_oct-mbf.t, and t/from_bin-mbf.t
to confirm the fix.
- Add new test files t/from_hex-mbi.t, t/from_oct-mbi.t, and
t/from_bin-mbi.t for better testing of these methods with Math::BigInt.
* Correct typo in Math/BigInt/Lib.pm (otherise -> otherwise) (CPAN RT 118829).
* Add POD coverage testing of Math::BigInt::Lib to t/03podcov.t.
2016-12-03 v1.999803 pjacklam
* Remove BENCHMARK file. The information was obsolete.
* Use ExtUtils::MakeMaker rather than Module::Install in Makefile.PL
* Reorder CHANGES file (this file) so the newest entries appear at the top.
* Fix error in test information text in various author test files.
* Remove author information in LICENSE file.
* Inform that the TODO file is not up to date.
2016-11-28 v1.999802 pjacklam
* When bzero(), bone(), binf(), and bnan() are used as constructors, don't
check whether the class allows the object to be modified. A constructor
isn't modifying any existing object. This applies to both Math::BigInt and
Math::BigFloat.
* Improve bgcd() and blcm(). This applies to both Math::BigInt and
Math::BigFloat.
Change bl3 to pdflib-lite to fix binary package distribution.
Grace-5.1.25
- killing set data from GUI and scripts now clears set comments
- undid "always overwrite set comments when reading data in" from 5.1.24
- fixed Fourier transform DC-term amplitude (rep. #630)
- newer versions of "make" tried to regenerate documentation (rep. #2240)
Grace-5.1.24
- fixed detection of dynamic loading libraries (rep. # 2238)
- install PDF docs instead of the DVI ones
- added cephes/COPYING (from Debian)
- a workaround for broken input of non-ASCII text under UTF8 locales
- always overwrite set comments when reading data in
==========================
NumPy 1.11.3 Release Notes
==========================
Numpy 1.11.3 fixes a bug that leads to file corruption when very large files
opened in append mode are used in ``ndarray.tofile``. It supports Python
versions 2.6 - 2.7 and 3.2 - 3.5. Wheels for Linux, Windows, and OS X can be
found on PyPI.
Contributors to maintenance/1.11.3
==================================
A total of 2 people contributed to this release. People with a "+" by their
names contributed a patch for the first time.
- Charles Harris
- Pavel Potocek +
Pull Requests Merged
====================
- `#8341 <https://github.com/numpy/numpy/pull/8341>`__: BUG: Fix ndarray.tofile large file corruption in append mode.
- `#8346 <https://github.com/numpy/numpy/pull/8346>`__: TST: Fix tests in PR #8341 for NumPy 1.11.x
Upstream changes:
gtools 3.5.0 - 2015-04-28
-------------------------
New Functions:
- New roman2int() functon to convert roman numerals to integers
without the range restriction of utils::as.roman().
- New asc() and chr() functions to convert between ASCII codes and
characters. (Based on the 'Data Debrief' blog entry for 2011-03-09
at http://datadebrief.blogspot.com/2011/03/ascii-code-table-in-r.html).
- New unByteCode() and unByteCodeAssign() functions to convert a
byte-code functon to an interpeted code function.
- New assignEdgewise() function for making assignments into locked
environments. (Used by unByteCodeAssign().)
Enhacements:
- mixedsort() and mixedorder() now have arguments 'decreasing',
'na.last', and 'blank.last' arguments to control sort ordering.
- mixedsort() and mixedirdeR() now support Roman numerals via the
arguments 'numeric.type', and 'roman.case'. (Request by David
Winsemius, suggested code changes by Henrik Bengtsson.)
- speed up mixedorder() (and hence mixedsort()) by moving
suppressWarnings() outside of lapply loops. (Suggestion by Henrik
Bengtsson.)
- The 'q' argument to quantcut() now accept an integer
indicating the number of equally spaced quantile groups to
create. (Suggestion and patch submitted by Ryan C. Thompson.)
Bug fixes:
- Removed stray browser() call in smartbind().
- ddirichlet(x, alpha) was incorrectly returning NA when for any i,
x[i]=0 and alpha[i]=1. (Bug report by John Nolan.)
Other changes:
- Correct typographical errors in package description.
gtools 3.4.2 - 2015-04-06
-------------------------
New features:
- New function loadedPackages() to display name, version, and path of
loaded packages (package namespaces).
- New function: na.replace() to replace missing values within a
vector with a specified value.`
Bug fixes:
- Modify keywords() to work properly in R 3.4.X and later.
gtools 3.4.1 - 2014-05-27
-------------------------
Bug fixes:
- smartbind() now converts all non-atomic type columns (except factor)
to type character instead of generating an opaque error message.
Other changes:
- the argument to ASCIIfy() is now named 'x' instead of 'string'.
- minor formatting changes to ASCIIfy() man page.
gtools 3.4.0 - 2014-04-14
-------------------------
New features:
- New ASCIIfy() function to converts character vectors to ASCII
representation by escaping them as \x00 or \u0000 codes.
Contributed by Arni Magnusson.
gtools 3.3.1 - 2014-03-01
-------------------------
Bug fixes:
- 'mixedorder' (and hence 'mixedsort') not properly handling
single-character strings between numbers, so that '1a2' was being
handled as a single string rather than being properly handled as
c('1', 'a', '2').
gtools 3.3.0 - 2014-02-11
-------------------------
New features:
- Add the getDependencies() function to return a list of dependencies
for the specified package(s). Includes arguments to control whether
these dependencies should be constructed using information from
locally installed packages ('installed', default is TRUE), avilable
CRAN packages ('available', default is TRUE) and whether to include
base ('base', default=FALSE) and recommended ('recommended', default
is FALSE) packages.
Bug fixes:
- binsearch() was returning the wrong endpoint & value when the found
value was at the upper endpoint.
gtools 3.2.1 - 2014-01-13
-------------------------
Bug fixes:
- Resolve circular dependency with gdata
gtools 3.2.0 - 2014-01-11
-------------------------
New features:
- The keywords() function now accepts a function or function name as
an argument and will return the list of keywords associated with the
named function.
- New function stars.pval() which will generate p-value significance
symbols ('***', '**', etc.)
Bug fixes:
- R/mixedsort.R: mixedorder() was failing to correctly handle numbers
including decimals due to a faulty regular expression.
Other changes:
- capture() and sprint() are now defunct.
gtools 3.1.1 - 2013-11-06
-------------------------
Bug fixes:
- Fix problem with mixedorder/mixedsort when there is zero or one
elements in the argument vector.
gtools 3.1.0 - 2013-09-22
-------------------------
Major changes:
- The function 'addLast()' (deprecated since gtools 3.0.0) is no
longer available, and has been marked defunct.
Bug fixes:
- Modified 'mixedorder()' to use Use 'suppressWarnings() instead of
'options(warn=-1)'. This will avoid egregious warning messages when
called from within a nested environment, such as when run from
within 'knitr'
gtools 3.0.0 - 2013-07-06
-------------------------
Major changes:
- The function 'addLast()' has been deprecated because it directly
manipulates the global environment, which is expressly prohibited by
the CRAN policies.
- A new function, 'lastAdd()' has been created to replace 'addLast()'.
The name has been changed because the two functions require
different syntax. 'addLast()' was used like this:
byeWorld <- function() cat("\nGoodbye World!\n")
addLast(byeWorld)
The new 'lastAdd()' function is used like this:
byeWorld <- function() cat("\nGoodbye World!\n")
.Last <- lastAdd(byeWorld)
Bug fixes:
- Update checkRVersion() to work with R version 3.0.0 and later.
Other changes:
- Remove cross-reference to (obsolete?) moc package
- The function 'assert()' (deprecated since gtools 2.5.0) is no longer
available and has been marked defunct.
gtools 2.7.1 - 2013-03-17
-------------------------
Bug fixes:
- smartbind() was not properly handling factor columns when the first
data frame did not include the relevant column.
gtools 2.7.0 - 2012-06-19
-------------------------
New features:
- smartbind() has a new 'sep' argument to allow specification of the
character(s) used to separate components of constructed column names
- smartbind() has a new 'verbose' argument to provide details on how
coluumns are being processed
Bug fixes:
- smartbind() has been enhanced to improve handling of factor and
ordered factor columns.
* What is new in gsl-2.3:
** bug fix in documentation for gsl_linalg_LU_refine
(bug #49728, Joey De Pauw)
** added gsl_multifit_linear_tsvd and gsl_multifit_wlinear_tsvd
to give user more control over cutoff for truncated SVD
** added routines for Generalized Cross Validation for
regularized linear least squares
** improved rstat example program and added documentation for
gsl_rstat_sd_mean (Jonathan Leto)
** added function gsl_multifit_linear_rank
** bug fix in nonlinear least squares when using data weights with
finite-difference Jacobian
** add 2D subspace method for large systems (multilarge_nlinear)
** bug fix in gsl_ran_beta for small parameters
(bug #47646, Yu Liu)
** bug fix in gsl_complex_tan for negative imaginary arguments
(bug #47347, Yu Liu)
** doc bug fix: value of golden ratio
** fixed scaling issue in 2D subspace nonlinear least squares
method
** optimize dogleg methods to calculate Gauss-Newton point
only when needed
Linking lapack with the gold linker fails with this error:
fatal error: --sysroot=: must take a non-empty argument
Similar to recent fixes to math/blas and math/lapack
Linking lapack with the gold linker fails with this error:
fatal error: --sysroot=: must take a non-empty argument
DragonFly has been using the gold linker by default for a while now.
Since I don't have time to track down this linking problem, I'm going
to restore the build on DragonFly by setting an environment variable
that forces DF to use the classic GNU linker instead.
This was already fixed on math/blas which uses the lapack common
makefile, so just relocate the fix to lapack.
Linking blas with the gold linker fails with this error:
fatal error: --sysroot=: must take a non-empty argument
DragonFly has been using the gold linker by default for a while now.
Since I don't have time to track down this linking problem, I'm going
to restore the build on DragonFly by setting an environment variable
that forces DF to use the classic GNU linker instead.
At this point in time, I don't know if BLAS is unique or if LAPACK
and others need the same workaround. If the latter, this variable
may need to be moved to the common LAPACK makefile.
Upstream changes:
0.60 2016-10-09
[ADDED]
- vecfirstidx { expr } @n returns first index with expr true
[FUNCTIONALITY AND PERFORMANCE]
- Expanded and modified prime count sparse tables. Prime counts from 30k
to 90M are 1.2x to 2.5x faster. It has no appreciable effect on the
speed of prime counts larger than this size.
- fromdigits works with bigint first arg, no need to stringify.
Slightly faster for bigints, but slower than desired.
- Various speedups and changes for fromdigits, todigits, todigitstring.
- vecprod in PP for negative high-bit would return double not bigint.
- Lah numbers added as Stirling numbers of the third kind. They've been
in the GMP code for almost 2 years now. Also for big results, directly
call the GMP code and objectify the result.
- Small performance change to AKS (r,s) selection tuning.
- On x86_64, use Montgomery math for Pollard/Brent Rho. This speeds up
factoring significantly for large native inputs (e.g. 10-20 digits).
- Use new GMP zeta and riemannr functions if possible, making some of
our operations much faster without Math::MPFR.
- print_primes with large args will try GMP sieve for big speedup. E.g.
use bigint; print_primes(2e19,2e19+1e7);
goes from 37 minutes to 7 seconds. This also removes a mistaken blank
line at the end for certain ranges.
- PP primes tries to use GMP. Only for calls from other PP code.
- Slightly more accuracy in native ExponentialIntegral.
- Slightly more accuracy in twin_prime_count_approx.
- nth_twin_prime_approx was incorrect over 1e10 and over 2e16 would
infinite loop due to Perl double conversion.
- nth_twin_prime_approx a little faster and more accurate.
Upstream changes:
2016-11-23 v1.999801 pjacklam
* Fix, hopefully once and for all, the longstanding problem of handling undef
as an operand to mathematical methods. The only method that accepts undef as
an operand is blog(), where the second operand might be undef, as in
$x->blog() or $x->blog($b), where $b is undef. The undef signifies that
Euler's number should be used as the base. With this fix, we should be able
to get Math::BigInt::Lite working again.
* Add least common multiple method _lcm() to Math::BigInt::Lib, and add
corresponding test file t/author-lib-arithmetic-binary-_lcm.t and test data
file t/author-lib-arithmetic-binary-_lcm.dat.
* Remove internal function __lcm() which has become redundant now that _lcm()
is in the library.
* Make it possible to use bgcd() and blcm() as class methods, since other
methods can be used as class methods. This applies to both Math::BigInt and
Math::BigFloat.
* Fix blcm() with negative input. The LCM should always be non-negative. This
applies to both Math::BigInt and Math::BigFloat.
* Add tests for bgcd() and blcm() in t/bigintpm.t and t/bigfltpm.t.
* Fix tests for blcm() assuming that LCM(0,0) should be a NaN. LCM(0,0) is 0
by convention.
* Prefer Class->config('option') over Class->config()->{option}. However, this
does not seem to be working for all options. It seems that this won't work
properly until we move the global variables into the OO interface.
* Explicitly specify the library in all test files that are shared between
Math-BigInt and the library distributions (FaatCalc, GMP, Pari, ...) with,
e.g., "use Math::BigInt only => 'Calc';". This way, it will fail immediately
if the specified library can't be loaded rather than using the fallback
library.
pkgsrc changes: removed all patches to do with qt5 support, upstream
code does it now. blindly moved some patches that were replacing
INSTALL_PROGRAM to INSTALL_LIB as the build changed. added patch
replacing struct tm_zone with timezone_t to accommodate for missing
type in NetBSD - same as libgnu does.
ok adam
Summary of important user-visible changes for version 4.2:
---------------------------------------------------------
** The parser has been extended to accept, but ignore, underscore
characters in numbers. This facilitates writing more legible code
by using '_' as a thousands separator or to group nibbles into bytes
in hex constants.
Examples: 1_000_000 == 1e6 or 0xDE_AD_BE_EF
** The parser has been extended to understand binary numbers which
begin with the prefix '0b' or '0B'. The value returned is Octave's
default numeric class of double, not at unsigned integer class.
Therefore numbers greater than flintmax, i.e., 2^53, will lose some
precision.
Examples: 0b101 == 5 or 0B1100_0001 == 0xC1
** gnuplot 4.4 is now the minimum version supported by Octave.
** The default set of colors used to plot lines has been updated to be
compatible with Matlab's new default color scheme. The line plot
color scheme can be set with the axes property "ColorOrder".
** The default colormap is now set to "viridis" which is also the
default colormap in matplotlib. This new colormap fixes some of the
main issues with the old default colormap "jet" such as its bad
"luminance profile" and is also more similar to Matlab's new default
colormap "parula".
** The colormap function no longer supports the input argument "list"
to show built-in colormaps. Use "help colormap" to find the
built-in colormaps.
** The graphics command "hold on" now ensures that each new plot added
to an existing plot has a different color or linestyle according to
the "ColorOrder" and/or "LineStyleOrder" properties. This is
equivalent to the old command "hold all" and was made for Matlab
compatibility. Existing code *may* produce differently colored
plots if it did not specify the color for a plot and relied on each
new plot having the default first color in the "ColorOrder"
property.
** When starting, Octave now looks in the function path for a file
startup.m and executes any commands found there. This change was
made to accommodate Matlab users. Octave has it's own configuration
system based on the file .octaverc which is preferred.
** Octal ('\NNN') and hex ('\xNN') escape sequences in single quoted
strings are now interpreted by the function do_string_escapes().
The *printf family of functions now supports octal and hex escape
sequences in single-quoted strings for Matlab compatibility.
** Special octal and hex escape sequences for the pattern and
replacement strings in regular expressions are now interpreted for
Matlab compatibility.
octal: '\oNNN' or '\o{NNN}'
hex : '\xNN' or '\x{NN}'
** Unknown escape sequences in the replacement string for regexprep are
now substituted with their unescaped version and no warning is
emitted. This change was made for Matlab compatibility.
Example: regexprep ('a', 'a', 'x\yz')
=> 'xyz'
** mkfifo now interprets the MODE argument as an octal, not decimal,
integer. This is consistent with the equivalent shell command.
** linspace now returns an empty matrix if the number of requested
points is 0 or a negative number. This change was made to be
compatible with Matlab releases newer than 2011. In addition,
Octave no longer supports matrix inputs for A or B.
** The cov function now returns the complex conjugate of the result
from previous versions of Octave. This change was made for
compatibility with Matlab.
** condest now works with a normest1 compatible syntax.
** The griddata function no longer plots the interpolated mesh if no
output argument is requested, instead the vector or array of
interpolated values is always returned for Matlab compatibility.
** The new function "light" and the corresponding graphics object
provide light and shadow effects for patch and surface objects.
** The surfnorm function now returns unnormalized (magnitude != 1)
normal vectors for compatibility with Matlab.
** The normal vectors returned from isonormals have been reversed to
point towards smaller values for compatibility with Matlab.
** The quadl function now uses an absolute, rather than relative,
tolerance for Matlab compatibility. The default tolerance is 1e-6
which may result in lower precision results than previous versions
of Octave which used eps as the relative tolerance. The quadl
function has also been extended to return a second output with the
total number of function evaluations.
** The textscan function is now built-in and is much faster and much
more Matlab-compatible than the previous m-file version.
** Dialog boxes--errordlg, helpdlg, inputdlg, listdlg, msgbox,
questdlg, and warndlg--now exclusively use Qt for rendering.
Java based versions have been removed.
** The axes properties "TitleFontSizeMultiplier" and "TitleFontWeight"
are now implemented which control the default appearance of text
created with title().
The axes property "LabelFontSizeMultiplier" is now implemented
which controls the default appearance of text created with
xlabel(), ylabel(), or zlabel().
** The graphics property "box" for axes now defaults to "off".
To obtain equivalent plots to previous versions of Octave use
set (0, "DefaultAxesBox", "on");
in your .octaverc file.
** The graphics property "boxstyle" has been implemented. The default
is "back" which draws only the back planes in a 3-D view. If the
option is "full" then all planes are drawn.
** The graphics property "erasemode" has been hidden, and will
eventually be removed. This property has also been removed
from Matlab, and was never implemented in Octave.
** The graphics property "graphicssmoothing" for figures now controls
whether anti-aliasing will be used for lines. The default is "on".
** The value "zero" for the axes properties "xaxislocation" and
"yaxislocation" has been deprecated and will be removed from
Octave 4.6. Use "origin" instead.
** The publish function allows easy publication of Octave script files
in HTML or other formats, including figures and output created by
this script. It comes with its counterpart grabcode, which lets one
literally grab the HTML published code from a remote website, for
example.
** The value of the MEX variable TrapFlag now defaults to 0, which will
cause Octave to abort execution of a MEX file and return to the
prompt if an error is encountered in mexCallMATLAB.
** The MEX API now includes the function mexCallMATLABWithTrap. This
function will not abort if an error occurs during mexCallMATLAB, but
instead will return execution to the MEX function for error
handling.
** The MEX API functions for input validation that begin with "mxIs"
(e.g., mxIsDouble, mxIsEmpty, etc.) now return type bool rather than
type int.
** The functions mxAssert and mxAssertS for checking assertions have
been added. In order to avoid a performance penalty they are only
compiled in to debug versions of a MEX file, i.e., that are produced
when the '-g' option is given to mex or mkoctfile.
** Other new MEX API functions include mexEvalStringWithTrap,
mxIsScalar, mxCreateUninitNumericArray, mxCreateUninitNumericMatrix.
** Other new functions added in 4.2:
audioformats
camlight
condeig
deg2rad
dialog
evalc
hash
im2double
isocaps
lighting
localfunctions
material
normest1
ode23
ode45
odeget
odeplot
odeset
padecoef
profexport
psi
rad2deg
reducepatch
reducevolume
smooth3
uibuttongroup
** Deprecated functions.
The following functions have been deprecated in Octave 4.2 and will
be removed from Octave 4.6 (or whatever version is the second major
release after 4.2):
Function | Replacement
---------------------|------------------
bitmax | flintmax
mahalanobis | mahal in Octave-Forge statistics pkg
md5sum | hash
octve_config_info | __octave_config_info__
onenormest | normest1
sleep | pause
usleep | pause
wavread | audioread
wavwrite | audiowrite
** The following functions were deprecated in Octave 3.8 and have been
removed from Octave 4.2.
default_save_options java_new
gen_doc_cache java_unsigned_conversion
interp1q javafields
isequalwithequalnans javamethods
java_convert_matrix re_read_readline_init_file
java_debug read_readline_init_file
java_invoke saving_history
** The global error_state variable in Octave's C++ API has been
deprecated and will be removed in a future version. Now the error
and print_usage functions throw an exception
(octave::execution_exception) after displaying the error message.
This makes the error and print_usage functions in C++ work more like
the corresponding functions in the scripting language.
** The default error handlers in liboctave have been updated to use
exceptions. After displaying an error message they no longer return
control to the calling program. The error handler function can be
customized through the global variables
"current_liboctave_error_handler" and
"current_liboctave_error_with_id_handler". If a programmer has
installed their own custom error handling routines when directly
linking with liboctave then these must be updated to throw an
exception and not return to the calling program.
** The system for common errors and warnings has been renamed from
gripe_XXX to either err_XXX if error is called or warn_XXX if
warning is called. The gripe_XXX functions are deprecated and will
be removed in version 4.6.
** New configure option, --enable-address-sanitizer-flags, to build
Octave with memory allocator checks (similar to those in valgrind)
built in.
Upstream changes:
2016-11-04 v1.999727 pjacklam
* Skip test exceeding the range of VAX floating point number in t/bigintpm.inc
(CPAN RT 118468).
* Fix typo in lib/Math/BigInt.pm (CPAN RT 118550).
2016-11-15 v1.999800 pjacklam
* Upgrade bundled Module::Install from version 1.16 to version 1.17.
* Add Math::BigInt::Lib (lib/Math/BigInt/Lib.pm), a parent class for
Math::BigInt backend libraries.
* Use objects in Math::BigInt::Calc, not just array refs. Also use OO-style,
i.e., use $class->_add($x, $y) rather than _add($class, $x, $y).
* Not all library methods modify the invocand, so call library methods as,
e.g, $x = $LIB->method($x, $y) rather than just $LIB->method($x, $y).
* Math::BigInt::Calc is now a subclass of Math::BigInt::Lib.
* Add Math::BigInt::Lib::Minimal (t/Math/BigInt/Lib/Minimal.pm) for testing
inheritance from Math::BigInt::Lib.
* Minor simplification in Math::BigInt::Calc->_str().
* Speed up Math::BigInt::Calc->_root().
* Remove test files that were included in the previous release by accident.
* Add more tests and use more verbose output in some tests.
* Fix typo in lib/Math/BigFloat.pm
* Fix documentation error in lib/Math/Calc.pm
* Use Config::Tiny and an .ini file to handle the library specific
configuration for the author-lib*.t test files.
Prompted by beta.repology.org.
Changes from 2.6.0 to 2.6.1
* Fixed a performance regression in some situations as consequence of
increasing too much the BLOCK_SIZE1 constant. After more careful
benchmarks (both in VML and non-VML modes), the value has been set
again to 1024 (down from 8192). The benchmarks have been made with
a relatively new processor (Intel Xeon E3-1245 v5 @ 3.50GHz), so
they should work well for a good range of processors again.
* Added NetBSD support to CPU detection. Thanks to Thomas Klausner.
Upstream changes:
28 August 2016: statmod 1.4.26
- Fortran function gaussq2 updated to Fortran 77.
5 August 2016: statmod 1.4.25
- Add CITATION file.
- pinvgauss() now uses an asymptotic approximation to compute right
tail probabilities for extreme large quantiles. This allows it to
give correct right tail probabilities for virtually any quantile.
- Fix to qinvgauss() to avoid NA values when computing extreme tail
quantiles where the inverse Gaussian density is subject to floating
underflow.
- Bug fix to qresiduals() and qresid.invgauss() for the inverse
Guassian distribution.
Upstream changes:
Changes in Version 1.7-13
o The window() method erroneously dropped the dimension in case of
1-column zoo series. Fixed now.
o Bug fix in NA handling of rollmax() pointed out by Cory Fletcher.
o A few as.yearmon/as.yearqtr methods were not registered in
the NAMESPACE but are now.
o If there are less then two non-NAs in na.approx() then approx()
cannot be applied. Instead of throwing an error (as up to version
1.7-12) simply no NAs are replaced now.
o Bug fix for lag(z, k = k, na.pad = TRUE) which ignored na.pad = TRUE
if 'k' was a vector of lags.
Upstream changes:
CHANGES IN R 3.3.2:
NEW FEATURES:
* extSoftVersion() now reports the version (if any) of the readline
library in use.
* The version of LAPACK included in the sources has been updated to
3.6.1, a bug-fix release including a speedup for the
non-symmetric case of eigen().
* Use options(deparse.max.lines=) to limit the number of lines
recorded in .Traceback and other deparsing activities.
* format(<AsIs>) looks more regular, also for non-character atomic
matrices.
* abbreviate() gains an option named = TRUE.
* The online documentation for package methods is extensively
rewritten. The goals are to simplify documentation for basic
use, to note old features not recommended and to correct
out-of-date information.
* Calls to setMethod() no longer print a message when creating a
generic function in those cases where that is natural: S3
generics and primitives.
INSTALLATION and INCLUDED SOFTWARE:
* Versions of the readline library >= 6.3 had been changed so that
terminal window resizes were not signalled to readline: code has
been added using a explicit signal handler to work around that
(when R is compiled against readline >= 6.3). (PR#16604)
* configure works better with Oracle Developer Studio 12.5.
UTILITIES:
* R CMD check reports more dubious flags in files
src/Makevars[.in], including -w and -g.
* R CMD check has been set up to filter important warnings from
recent versions of gfortran with -Wall -pedantic: this now
reports non-portable GNU extensions such as out-of-order
declarations.
* R CMD config works better with paths containing spaces, even
those of home directories (as reported by Ken Beath).
DEPRECATED AND DEFUNCT:
* Use of the C/C++ macro NO_C_HEADERS is deprecated (no C headers
are included by R headers from C++ as from R 3.3.0, so it should
no longer be needed).
BUG FIXES:
* The check for non-portable flags in R CMD check could be stymied
by src/Makevars files which contained targets.
* (Windows only) When using certain desktop themes in Windows 7 or
higher, Alt-Tab could cause Rterm to stop accepting input.
(PR#14406; patch submitted by Jan Gleixner.)
* pretty(d, ..) behaves better for date-time d (PR#16923).
* When an S4 class name matches multiple classes in the S4 cache,
perform a dynamic search in order to obey namespace imports.
This should eliminate annoying messages about multiple hits in
the class cache. Also, pass along the package from the
ClassExtends object when looking up superclasses in the cache.
* sample(NA_real_) now works.
* Packages using non-ASCII encodings in their code did not install
data properly on systems using different encodings.
* merge(df1, df2) now also works for data frames with column names
"na.last", "decreasing", or "method". (PR#17119)
* contour() caused a segfault if the labels argument had length
zero. (Reported by Bill Dunlap.)
* unique(warnings()) works more correctly, thanks to a new
duplicated.warnings() method.
* findInterval(x, vec = numeric(), all.inside = TRUE) now returns
0s as documented. (Reported by Bill Dunlap.)
* (Windows only) R CMD SHLIB failed when a symbol in the resulting
library had the same name as a keyword in the .def file.
(PR#17130)
* pmax() and pmin() now work with (more ?) classed objects, such
as "Matrix" from the Matrix package, as documented for a long
time.
* axis(side, x = D) and hence Axis() and plot() now work correctly
for "Date" and time objects D, even when "time goes backward",
e.g., with decreasing xlim. (Reported by William May.)
* str(I(matrix(..))) now looks as always intended.
* plot.ts(), the plot() method for time series, now respects cex,
lwd and lty. (Reported by Greg Werbin.)
* parallel::mccollect() now returns a named list (as documented)
when called with wait = FALSE. (Reported by Michel Lang.)
* If a package added a class to a class union in another package,
loading the first package gave erroneous warnings about
"undefined subclass".
* c()'s argument use.names is documented now, as belonging to the
(C internal) default method. In "parallel", argument recursive
is also moved from the generic to the default method, such that
the formal argument list of base generic c() is just (...).
* rbeta(4, NA) and similarly rgamma() and rnbinom() now return
NaN's with a warning, as other r<dist>(), and as documented.
(PR#17155)
* Using options(checkPackageLicense = TRUE) no longer requires
acceptance of the licence for non-default standard packages such
as compiler. (Reported by Mikko Korpela.)
* split(<very_long>, *) now works even when the split off parts are
long. (PR#17139)
* min() and max() now also work correctly when the argument list
starts with character(0). (PR#17160)
* Subsetting very large matrices (prod(dim(.)) >= 2^31) now works
thanks to Michael Schubmehl's PR#17158.
* bartlett.test() used residual sums of squares instead of
variances, when the argument was a list of lm objects. (Reported
by Jens Ledet Jensen).
* plot(<lm>, which = *) now correctly labels the contour lines for
the standardized residuals for which = 6. It also takes the
correct p in case of singularities (also for which = 5).
(PR#17161)
* xtabs(~ exclude) no longer fails from wrong scope, thanks to
Suharto Anggono's PR#17147.
* Reference class calls to methods() did not re-analyse previously
defined methods, meaning that calls to methods defined later
would fail. (Reported by Charles Tilford).
* findInterval(x, vec, left.open = TRUE) misbehaved in some cases.
(Reported by Dmitriy Chernykh.)
NumPy 1.11.2 Release Notes
**************************
Numpy 1.11.2 supports Python 2.6 - 2.7 and 3.2 - 3.5. It fixes bugs and
regressions found in Numpy 1.11.1 and includes several build related
improvements. Wheels for Linux, Windows, and OS X can be found on PyPI.
Pull Requests Merged
====================
Fixes overridden by later merges and release notes updates are omitted.
- #7736 BUG: Many functions silently drop 'keepdims' kwarg.
- #7738 ENH: Add extra kwargs and update doc of many MA methods.
- #7778 DOC: Update Numpy 1.11.1 release notes.
- #7793 BUG: MaskedArray.count treats negative axes incorrectly.
- #7816 BUG: Fix array too big error for wide dtypes.
- #7821 BUG: Make sure npy_mul_with_overflow_<type> detects overflow.
- #7824 MAINT: Allocate fewer bytes for empty arrays.
- #7847 MAINT,DOC: Fix some imp module uses and update f2py.compile docstring.
- #7849 MAINT: Fix remaining uses of deprecated Python imp module.
- #7851 BLD: Fix ATLAS version detection.
- #7896 BUG: Construct ma.array from np.array which contains padding.
- #7904 BUG: Fix float16 type not being called due to wrong ordering.
- #7917 BUG: Production install of numpy should not require nose.
- #7919 BLD: Fixed MKL detection for recent versions of this library.
- #7920 BUG: Fix for issue #7835 (ma.median of 1d).
- #7932 BUG: Monkey-patch _msvccompile.gen_lib_option like other compilers.
- #7939 BUG: Check for HAVE_LDOUBLE_DOUBLE_DOUBLE_LE in npy_math_complex.
- #7953 BUG: Guard against buggy comparisons in generic quicksort.
- #7954 BUG: Use keyword arguments to initialize Extension base class.
- #7955 BUG: Make sure numpy globals keep identity after reload.
- #7972 BUG: MSVCCompiler grows 'lib' & 'include' env strings exponentially.
- #8005 BLD: Remove __NUMPY_SETUP__ from builtins at end of setup.py.
- #8010 MAINT: Remove leftover imp module imports.
- #8020 BUG: Fix return of np.ma.count if keepdims is True and axis is None.
- #8024 BUG: Fix numpy.ma.median.
- #8031 BUG: Fix np.ma.median with only one non-masked value.
- #8044 BUG: Fix bug in NpyIter buffering with discontinuous arrays.
LAPACK 3.6.1: What’s new
[Mark Gates, UTK] blocked back-transformation for the non-symmetric eigenvalue problem
It blocks NB gemv calls into one gemm call inside trevc. To do
that, it needs a new routine, trevc3, because unfortunately the
lwork was not passed into trevc. Attached is the performance speedup
for dgeev. It gives a nice 1.5x speedup for N=20000, and that
appears to still be increasing with N. This is not the improvements
that Greg Henry recently provided for doing the triangular solves
as BLAS-3 instead of BLAS-1. That will take a while to process,
but we expect another, even larger increase in performance when
those changes are applied. This also does not include doing multiple
(BLAS-1) triangular solves in parallel, which is available in MAGMA,
since that requires OpenMP or pthreads.
### 1.1.3 / 06.08.2016
Author: Alexandre Balon-Perin <abalonperin@gilt.jp>
Date: Fri Aug 5 17:19:29 2016 +0900
* Fix issue with iconv on Ubuntu 12.04
* This fix is related to a bug in the iconv implementation packaged in libc6 on Ubuntu 12.04
* For some reasons, the encoding options //TRANSLIT//IGNORE are improperly applied.
* When //TRANSLIT is specified, instead of rescuing errors related to //TRANSLIT and checking if the //IGNORE is set, the code simply crashes.
### 1.1.2 / 29.03.2016
Author: Aleksandr Boykov <aleksandr.boykov@parelio.com>
Date: Mon Mar 28 14:07:35 2016 -0400
fixes compact! method when the excel document has dates
AFAIR, pkgsrc's ruby23-base dose not met below problem but here is changes:
* Gem was not compiling on Ruby 2.3.0 due to non-availability of
correct headers. This minor release fixes that problem.
A Python Approximate Bayesian Computing (ABC) Population Monte Carlo
(PMC) implementation based on Sequential Monte Carlo (SMC) with Particle
Filtering techniques.
Provided by Kai-Uwe Eckhardt in private mail.
version: 0.17.1
date: Fri May 6 12:02:48 CEST 2016
changes:
- fix bug in coalescing treatment
---
version: 0.17
date: Tue May 3 14:26:43 CEST 2016
changes:
- optionally combine SCCs incrementally in scheduler
- optionally maximize coincidence in scheduler
- optionally avoid loop coalescing in scheduler
- fix handling of nested integer divisions
- optionally detect min/max expressions during AST generation
- minor AST generator improvements
- simplify stride constraints
- improve support for expansions in schedule trees
---
version: 0.16.1
date: Thu Jan 14 18:08:06 CET 2016
changes:
- fix bug in simplification
---
version: 0.16
date: Tue Jan 12 09:56:16 CET 2016
changes:
- add 32 bit integer optimization for IMath
- minor AST generator improvements
- add isl_union_flow_get_full_{may,must}_dependence
- minor improvements to Python bindings
- minor improvements to set and map printing
---
version: 0.15
date: Thu Jun 11 12:45:33 CEST 2015
changes:
- improve coalescing
- add isl_union_access_info_compute_flow
- add mark nodes in AST
- add isl_union_pw_aff and isl_multi_union_pw_aff
- add schedule trees
- deprecate band forests
- deprecate separation_class AST generation option
- introduce isl_bool and isl_stat types
Feb 5th, 2016
v1.0
-- Bump to 1.0
-- Dirkjan Bussink provided a faster version of mp_expt_d()
-- Moritz Lenz contributed a fix to mp_mod()
and provided mp_get_long() and mp_set_long()
-- Fixed bugs in mp_read_radix(), mp_radix_size
Thanks to shameister, Gerhard R,
-- Christopher Brown provided mp_export() and mp_import()
-- Improvements in the code of mp_init_copy()
Thanks to ramkumarkoppu,
-- lomereiter provided mp_balance_mul()
-- Alexander Boström from the heimdal project contributed patches to
mp_prime_next_prime() and mp_invmod() and added a mp_isneg() macro
-- Fix build issues for Linux x32 ABI
-- Added mp_get_long_long() and mp_set_long_long()
-- Carlin provided a patch to use arc4random() instead of rand()
on platforms where it is supported
-- Karel Miko provided mp_sqrtmod_prime()
Changes from version 3.1.4 to version 3.1.5:
- C++11 compatibility.
- Bug fixes (see <http://www.mpfr.org/mpfr-3.1.4/#fixed> and ChangeLog file).
- More tests.
we pass and assume a given MACHINE_GNU_PLATFORM, but this package did not
use this value due to an error.
the guess it had for linux (x86_64-unknown-linux-gnu) is different, and
this seems to trample over our own tools, see:
https://mail-index.netbsd.org/pkgsrc-users/2014/03/26/msg019464.html
add this patch to the original m4 script too, not just the resulting configure
file, so it won't be accidentially forgotten (and can be upstreamed).
patch originally by Iain Morgan
reminded by Dr. Thomas Orgis
Ixion is a general purpose formula parser & interpreter that can
calculate multiple named targets, or "cells".
The goal of this project is to create a library for calculating
the results of formula expressions stored in multiple named targets,
or "cells". The cells can be referenced from each other, and the
library takes care of resolving their dependencies automatically
upon calculation. The caller can run the calculation routine either
in a single-threaded mode, or a multi-threaded mode. The library
also supports re-calculations where the contents of one or more
cells have been modified since the last calculation, and a partial
calculation of only the affected cells need to be calculated.
Set LICENSE.
Still does not build with guile20, so leave it at 1.8.
Version 1.1.11
* Fixed issue with linking Lex library.
Version 1.1.10
* Fixed memory leak in evaluator_create function implementation.
Version 1.1.9
* Fixed bug in math_step function implementation.
* Updated manual.
Eigen 3.2.9
Released on July 18, 2016
Changes since 3.2.8:
* Main fixes and improvements:
+ Improve numerical robustness of JacobiSVD (backported from 3.3)
+ Bug 1017: prevents underflows in makeHouseholder
+ Fix numerical accuracy issue in the extraction of complex
eigenvalue pairs in real generalized eigenvalue problems.
+ Fix support for vector.homogeneous().asDiagonal()
+ Bug 1238: fix SparseMatrix::sum() overload for un-compressed mode
+ Bug 1213: workaround gcc linking issue with anonymous enums.
+ Bug 1236: fix possible integer overflow in sparse-sparse product
+ Improve detection of identical matrices when applying a
permutation (e.g., mat = perm * mat)
+ Fix usage of nesting type in blas_traits. In practice, this
fixes compilation of expressions such as A*(A*A)^T
+ CMake: fixes support of Ninja generator
+ Add a StorageIndex typedef to sparse matrices and expressions
to ease porting code to 3.3 (see
http://eigen.tuxfamily.org/index.php?title=3.3#Index_typedef)
+ Bug 1200: make aligned_allocator c++11 compatible (backported from 3.3)
+ Bug 1182: improve generality of abs2 (backported from 3.3)
+ Bug 537: fix compilation of Quaternion with Apples's compiler
+ Bug 1176: allow products between compatible scalar types
+ Bug 1172: make valuePtr and innerIndexPtr properly return null
for empty sparse matrices.
+ Bug 1170: skip calls to memcpy/memmove for empty inputs.
* Others:
+ Bug 1242: fix comma initializer with empty matrices.
+ Improves support for MKL's PARDISO solver.
+ Fix a compilation issue with Pastix solver.
+ Add some missing explicit scalar conversions
+ Fix a compilation issue with matrix exponential (unsupported
MatrixFunctions module).
+ Bug 734: fix a storage order issue in unsupported Spline module
+ Bug 1222: fix a compilation issue in AutoDiffScalar
+ Bug 1221: shutdown some GCC6's warnings.
+ Bug 1175: fix index type conversion warnings in sparse to
dense conversion.
Eigen 3.2.8
Released on February 16, 2016
Changes since 3.2.7:
* Main fixes and improvements:
+ Make FullPivLU::solve use rank() instead of nonzeroPivots().
+ Add EIGEN_MAPBASE_PLUGIN
+ Bug 1166: fix issue in matrix-vector products when the
destination is not a vector at compile-time.
+ Bug 1100: Improve cmake/pkg-config support.
+ Bug 1113: fix name conflict with C99's "I".
+ Add missing delete operator overloads in
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
+ Fix (A*B).maxCoeff(i) and similar.
+ Workaround an ICE with VC2015 Update1 x64.
+ Bug 1156: fix several function declarations whose arguments
were passed by value instead of being passed by reference
+ Bug 1164: fix std::list and std::deque specializations such
that our aligned allocator is automatically activatived only
when the user did not specified an allocator (or specified the
default std::allocator).
* Others:
+ Fix BLAS backend (aka MKL) for empty matrix products.
+ Bug 1134: fix JacobiSVD pre-allocation.
+ Bug 1111: fix infinite recursion in
sparse-column-major.row(i).nonZeros() (it now produces a
compilation error)
+ Bug 1106: workaround a compilation issue in Sparse module for
msvc-icc combo
+ Bug 1153: remove the usage of __GXX_EXPERIMENTAL_CXX0X__ to
detect C++11 support
+ Bug 1143: work-around gcc bug in COLAMD
+ Improve support for matrix products with empty factors.
+ Fix and clarify documentation of Transform wrt
operator*(MatrixBase)
+ Add a matrix-free conjugate gradient example.
+ Fix cost computation in CwiseUnaryView (internal)
+ Remove custom unaligned loads for SSE.
+ Some warning fixes.
+ Several other documentation clarifications.
Fix isnan() checks to declare main() returning 'int' and use floating
argument to isnan() avoiding recent (gcc 5) compiler noise.
Since last update:
../../.. version 5.5.2.1
- fixed a small error in new and improved MIP_stepOF function to find integer solutions.
../../.. version 5.5.2.2
- For integer models with semi-cont variables it happened sometimes that a message
"fillbranches_BB: Inconsistent equal-valued bounds for ..." occured and that the semi-cont condition
was not respected.
- New functions added: get_accuracy to get the numeric accuracy after solve.
- New functions added: set_break_numeric_accuracy, get_break_numeric_accuracy to let lp_solve return ACCURACYERROR
instead of FEASIBLE when numerical accuracy if worse then the provided values.
In the past, lp_solve only returned a non-optimal status in case of very severe numerical instability.
Now it will return already ACCURACYERROR when it finds a relative inaccuracy of 5e-7
- When reading a model from the lp-format and important issues are detected such as already bounds on variables being overruled
later with for example a bin keyword, this is now reported in the default verbose level such that this is seen easier.
08/05/16 version 5.5.2.3
- For some models with integer variables, lp_solve did not find the most optimal solution.
* What is new in gsl-2.2.1:
** reverted gsl_linalg_cholesky_decomp to its previous behavior
so it is backward compatible; new cholesky routine is
gsl_linalg_cholesky_decomp1
* What is new in gsl-2.2:
** updated gsl_linalg_cholesky_invert to use Level-2 BLAS
and added function gsl_linalg_pcholesky_invert
** added function gsl_linalg_invtri for inverting
triangular matrices
** fix GSL_EIGEN_SORT_VAL_{ASC,DESC} for nonsymmetric
eigensystems (Victor Zverovich)
** added complete orthogonal decomposition routines
(gsl_linalg_COD)
** bug fix where median calculation wasn't reset in
gsl_rstat_reset(); added gsl_rstat_quantile_reset() function
(reported by Pedro Donato)
** added multivariate Gaussian random distribution
gsl_ran_multivariate_gaussian (Timothée Flutre)
** added functions to estimate the 1-norm reciprocal condition
number for various matrix factorizations:
* gsl_linalg_cholesky_rcond
* gsl_linalg_QRPT_rcond
** added functions gsl_linalg_QRPT_{lssolve,lssolve2} to
compute least squares solutions with the QRPT decomposition
** added function gsl_permute_matrix()
** added modified Cholesky factorization (gsl_linalg_mcholesky)
to handle symmetric indefinite matrices
** added pivoted Cholesky factorization (gsl_linalg_pcholesky)
for ill-conditioned matrices
** rewrote (real) Cholesky decomposition to use
a Level-2 blas algorithm instead of Level-1. Flop
count is about the same but the code is much simpler
and easier to follow
** completely rewritten nonlinear least squares module,
including support for large problems; the user may
now control the linear solver used, the trust region
updating strategy, and the scaling method. In addition,
support has been added for the geodesic acceleration
step (Transtrum 2011) which can speed up convergence
on a wide class of problems.
** added gsl_rstat_rms() for root mean square
** optimized lmniel nonlinear least squares solver
(bug #46369)
** improved precision in Bessel K0/K1 near x = 2
(Pavel Holoborodko, bug #47401)
** added support for compressed row storage sparse
matrices (Alexis Tantet)
** bug fix in convergence check of hypergeometric 2F1
function (bug #45926)
** added gsl_multilarge_linear_lcurve() to compute
the L-curve for large linear systems
** updated multilarge normal equations method to use
new Cholesky scaling for better numerical stability
** added scaling to Cholesky routines to reduce the
condition number prior to factorization
Autograd can automatically differentiate native Python and Numpy
code. It can handle a large subset of Python's features, including
loops, ifs, recursion and closures, and it can even take derivatives
of derivatives of derivatives. It uses reverse-mode differentiation
(a.k.a. backpropagation), which means it can efficiently take
gradients of scalar-valued functions with respect to array-valued
arguments. The main intended application is gradient-based
optimization.
Apart from translation updates, this is the same as the "stable"
3.20.2, but with history-view.ui and history-entry.ui now included
in the tarball. Since glib fixed
673101 resource compiler dependency generation not working for generated files
gnome-calculator will not compile without the missing files.
Overview of changes in gnome-calculator 3.21.90
* Updated Hebrew translation (Yosef Or Boczko)
* Added 'period' keypress when the delete key on the numpad is
pressed. (Myridium)
* Updated Spanish translation (Daniel Mustieles)
* also in 3.20.2: lib: prevents segfault when elements of
division to zero have null assigned tokens (fixes#769364)
(Alberto Ruiz)
* Add Language headers to po files (Piotr Drg)
* Updated Swedish translation (Anders Jonsson)
* Updated Friulian translation (Fabio Tomat)
* Updated Indonesian translation (cherry picked from commit
da3a093148c5f9340c6566fe35d5a38b5aa04e6b) (Andika Triwidada)
* Updated Occitan translation (Cédric Valmary)
Overview of changes in gnome-calculator 3.21.2
* Updated Norwegian bokmål translation. (Kjartan Maraas)
* Updated Friulian translation (Fabio Tomat)
* Updated Friulian translation (Fabio Tomat)
* Updated Friulian translation (Fabio Tomat)
* Added Friulian translation (Fabio Tomat)
* Distribute history-view.ui (Robert Ancell)
* Distribute history-entry.ui (Robert Ancell)
* Updated Occitan translation (Cédric Valmary)
Perlin noise is ubiquitous in modern CGI. Used for procedural
texturing, animation, and enhancing realism, Perlin noise has been
called the "salt" of procedural content. Perlin noise is a type of
gradient noise, smoothly interpolating across a pseudo-random matrix
of values.
The noise library includes native-code implementations of Perlin
"improved" noise and Perlin simplex noise. It also includes a fast
implementation of Perlin noise in GLSL, for use in OpenGL shaders.
Ranger is a fast implementation of random forest (Breiman 2001) or
recursive partitioning, particularly suited for high dimensional
data. Classification, regression, probability estimation and survival
forests are supported. Classification and regression forests are
implemented as in the original Random Forest (Breiman 2001), survival
forests as in Random Survival Forests (Ishwaran et al. 2008). For
probability estimation forests see Malley et al. (2012).
FFTW 3.3.5:
* New SIMD support:
- Power8 VSX instructions in single and double precision.
To use, add --enable-vsx to configure.
- Support for AVX2 (256-bit FMA instructions).
To use, add --enable-avx2 to configure.
- Experimental support for AVX512 and KCVI. (--enable-avx512, --enable-kcvi)
This code is expected to work but the FFTW maintainers do not have
hardware to test it.
- Support for AVX128/FMA (for some AMD machines) (--enable-avx128-fma)
- Double precision Neon SIMD for aarch64.
This code is expected to work but the FFTW maintainers do not have
hardware to test it.
- generic SIMD support using gcc vector intrinsics
* Add fftw_make_planner_thread_safe() API
* fix#18 (disable float128 for CUDACC)
* fix#19: missing Fortran interface for fftwq_alloc_real
* fix#21 (don't use float128 on Portland compilers, which pretend to be gcc)
* fix: Avoid segfaults due to double free in MPI transpose
* Special note for distribution maintainers: Although FFTW supports a
zillion SIMD instruction sets, enabling them all at the same time is
a bad idea, because it increases the planning time for minimal gain.
We recommend that general-purpose x86 distributions only enable SSE2
and perhaps AVX. Users who care about the last ounce of performance
should recompile FFTW themselves.
Test failures reported upstream.
==========================
SciPy 0.18.0 Release Notes
==========================
.. contents::
SciPy 0.18.0 is the culmination of 6 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.19.x branch, and on adding
new features on the master branch.
This release requires Python 2.7 or 3.4-3.5 and NumPy 1.7.1 or greater.
Highlights of this release include:
- A new ODE solver for two-point boundary value problems,
`scipy.optimize.solve_bvp`.
- A new class, `CubicSpline`, for cubic spline interpolation of data.
- N-dimensional tensor product polynomials, `scipy.interpolate.NdPPoly`.
- Spherical Voronoi diagrams, `scipy.spatial.SphericalVoronoi`.
- Support for discrete-time linear systems, `scipy.signal.dlti`.
New features
============
`scipy.integrate` improvements
------------------------------
A solver of two-point boundary value problems for ODE systems has been
implemented in `scipy.integrate.solve_bvp`. The solver allows for non-separated
boundary conditions, unknown parameters and certain singular terms. It finds
a C1 continious solution using a fourth-order collocation algorithm.
`scipy.interpolate` improvements
--------------------------------
Cubic spline interpolation is now available via `scipy.interpolate.CubicSpline`.
This class represents a piecewise cubic polynomial passing through given points
and C2 continuous. It is represented in the standard polynomial basis on each
segment.
A representation of n-dimensional tensor product piecewise polynomials is
available as the `scipy.interpolate.NdPPoly` class.
Univariate piecewise polynomial classes, `PPoly` and `Bpoly`, can now be
evaluated on periodic domains. Use ``extrapolate="periodic"`` keyword
argument for this.
`scipy.fftpack` improvements
----------------------------
`scipy.fftpack.next_fast_len` function computes the next "regular" number for
FFTPACK. Padding the input to this length can give significant performance
increase for `scipy.fftpack.fft`.
`scipy.signal` improvements
---------------------------
Resampling using polyphase filtering has been implemented in the function
`scipy.signal.resample_poly`. This method upsamples a signal, applies a
zero-phase low-pass FIR filter, and downsamples using `scipy.signal.upfirdn`
(which is also new in 0.18.0). This method can be faster than FFT-based
filtering provided by `scipy.signal.resample` for some signals.
`scipy.signal.firls`, which constructs FIR filters using least-squares error
minimization, was added.
`scipy.signal.sosfiltfilt`, which does forward-backward filtering like
`scipy.signal.filtfilt` but for second-order sections, was added.
Discrete-time linear systems
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`scipy.signal.dlti` provides an implementation of discrete-time linear systems.
Accordingly, the `StateSpace`, `TransferFunction` and `ZerosPolesGain` classes
have learned a the new keyword, `dt`, which can be used to create discrete-time
instances of the corresponding system representation.
`scipy.sparse` improvements
---------------------------
The functions `sum`, `max`, `mean`, `min`, `transpose`, and `reshape` in
`scipy.sparse` have had their signatures augmented with additional arguments
and functionality so as to improve compatibility with analogously defined
functions in `numpy`.
Sparse matrices now have a `count_nonzero` method, which counts the number of
nonzero elements in the matrix. Unlike `getnnz()` and ``nnz`` propety,
which return the number of stored entries (the length of the data attribute),
this method counts the actual number of non-zero entries in data.
`scipy.optimize` improvements
-----------------------------
The implementation of Nelder-Mead minimization,
`scipy.minimize(..., method="Nelder-Mead")`, obtained a new keyword,
`initial_simplex`, which can be used to specify the initial simplex for the
optimization process.
Initial step size selection in CG and BFGS minimizers has been improved. We
expect that this change will improve numeric stability of optimization in some
cases. See pull request gh-5536 for details.
Handling of infinite bounds in SLSQP optimization has been improved. We expect
that this change will improve numeric stability of optimization in the some
cases. See pull request gh-6024 for details.
A large suite of global optimization benchmarks has been added to
``scipy/benchmarks/go_benchmark_functions``. See pull request gh-4191 for details.
Nelder-Mead and Powell minimization will now only set defaults for
maximum iterations or function evaluations if neither limit is set by
the caller. In some cases with a slow converging function and only 1
limit set, the minimization may continue for longer than with previous
versions and so is more likely to reach convergence. See issue gh-5966.
`scipy.stats` improvements
--------------------------
Trapezoidal distribution has been implemented as `scipy.stats.trapz`.
Skew normal distribution has been implemented as `scipy.stats.skewnorm`.
Burr type XII distribution has been implemented as `scipy.stats.burr12`.
Three- and four-parameter kappa distributions have been implemented as
`scipy.stats.kappa3` and `scipy.stats.kappa4`, respectively.
New `scipy.stats.iqr` function computes the interquartile region of a
distribution.
Random matrices
~~~~~~~~~~~~~~~
`scipy.stats.special_ortho_group` and `scipy.stats.ortho_group` provide
generators of random matrices in the SO(N) and O(N) groups, respectively. They
generate matrices in the Haar distribution, the only uniform distribution on
these group manifolds.
`scipy.stats.random_correlation` provides a generator for random
correlation matrices, given specified eigenvalues.
`scipy.linalg` improvements
---------------------------
`scipy.linalg.svd` gained a new keyword argument, ``lapack_driver``. Available
drivers are ``gesdd`` (default) and ``gesvd``.
`scipy.linalg.lapack.ilaver` returns the version of the LAPACK library SciPy
links to.
`scipy.spatial` improvements
----------------------------
Boolean distances, `scipy.spatial.pdist`, have been sped up. Improvements vary
by the function and the input size. In many cases, one can expect a speed-up
of x2--x10.
New class `scipy.spatial.SphericalVoronoi` constructs Voronoi diagrams on the
surface of a sphere. See pull request gh-5232 for details.
`scipy.cluster` improvements
----------------------------
A new clustering algorithm, the nearest neighbor chain algorithm, has been
implemented for `scipy.cluster.hierarchy.linkage`. As a result, one can expect
a significant algorithmic improvement (:math:`O(N^2)` instead of :math:`O(N^3)`)
for several linkage methods.
`scipy.special` improvements
----------------------------
The new function `scipy.special.loggamma` computes the principal branch of the
logarithm of the Gamma function. For real input, ``loggamma`` is compatible
with `scipy.special.gammaln`. For complex input, it has more consistent
behavior in the complex plane and should be preferred over ``gammaln``.
Vectorized forms of spherical Bessel functions have been implemented as
`scipy.special.spherical_jn`, `scipy.special.spherical_kn`,
`scipy.special.spherical_in` and `scipy.special.spherical_yn`.
They are recommended for use over ``sph_*`` functions, which are now deprecated.
Several special functions have been extended to the complex domain and/or
have seen domain/stability improvements. This includes `spence`, `digamma`,
`log1p` and several others.
Deprecated features
===================
The cross-class properties of `lti` systems have been deprecated. The
following properties/setters will raise a `DeprecationWarning`:
Name - (accessing/setting raises warning) - (setting raises warning)
* StateSpace - (`num`, `den`, `gain`) - (`zeros`, `poles`)
* TransferFunction (`A`, `B`, `C`, `D`, `gain`) - (`zeros`, `poles`)
* ZerosPolesGain (`A`, `B`, `C`, `D`, `num`, `den`) - ()
Spherical Bessel functions, ``sph_in``, ``sph_jn``, ``sph_kn``, ``sph_yn``,
``sph_jnyn`` and ``sph_inkn`` have been deprecated in favor of
`scipy.special.spherical_jn` and ``spherical_kn``, ``spherical_yn``,
``spherical_in``.
The following functions in `scipy.constants` are deprecated: ``C2K``, ``K2C``,
``C2F``, ``F2C``, ``F2K`` and ``K2F``. They are superceded by a new function
`scipy.constants.convert_temperature` that can perform all those conversions
plus to/from the Rankine temperature scale.
Backwards incompatible changes
==============================
`scipy.optimize`
----------------
The convergence criterion for ``optimize.bisect``,
``optimize.brentq``, ``optimize.brenth``, and ``optimize.ridder`` now
works the same as ``numpy.allclose``.
`scipy.ndimage`
---------------
The offset in ``ndimage.iterpolation.affine_transform``
is now consistently added after the matrix is applied,
independent of if the matrix is specified using a one-dimensional
or a two-dimensional array.
`scipy.stats`
-------------
``stats.ks_2samp`` used to return nonsensical values if the input was
not real or contained nans. It now raises an exception for such inputs.
Several deprecated methods of `scipy.stats` distributions have been removed:
``est_loc_scale``, ``vecfunc``, ``veccdf`` and ``vec_generic_moment``.
Deprecated functions ``nanmean``, ``nanstd`` and ``nanmedian`` have been removed
from `scipy.stats`. These functions were deprecated in scipy 0.15.0 in favor
of their `numpy` equivalents.
A bug in the ``rvs()`` method of the distributions in `scipy.stats` has
been fixed. When arguments to ``rvs()`` were given that were shaped for
broadcasting, in many cases the returned random samples were not random.
A simple example of the problem is ``stats.norm.rvs(loc=np.zeros(10))``.
Because of the bug, that call would return 10 identical values. The bug
only affected code that relied on the broadcasting of the shape, location
and scale parameters.
The ``rvs()`` method also accepted some arguments that it should not have.
There is a potential for backwards incompatibility in cases where ``rvs()``
accepted arguments that are not, in fact, compatible with broadcasting.
An example is
stats.gamma.rvs([2, 5, 10, 15], size=(2,2))
The shape of the first argument is not compatible with the requested size,
but the function still returned an array with shape (2, 2). In scipy 0.18,
that call generates a ``ValueError``.
`scipy.io`
----------
`scipy.io.netcdf` masking now gives precedence to the ``_FillValue`` attribute
over the ``missing_value`` attribute, if both are given. Also, data are only
treated as missing if they match one of these attributes exactly: values that
differ by roundoff from ``_FillValue`` or ``missing_value`` are no longer
treated as missing values.
`scipy.interpolate`
-------------------
`scipy.interpolate.PiecewisePolynomial` class has been removed. It has been
deprecated in scipy 0.14.0, and `scipy.interpolate.BPoly.from_derivatives` serves
as a drop-in replacement.
Other changes
=============
Scipy now uses ``setuptools`` for its builds instead of plain distutils. This
fixes usage of ``install_requires='scipy'`` in the ``setup.py`` files of
projects that depend on Scipy (see Numpy issue gh-6551 for details). It
potentially affects the way that build/install methods for Scipy itself behave
though. Please report any unexpected behavior on the Scipy issue tracker.
PR `#6240 <https://github.com/scipy/scipy/pull/6240>`__
changes the interpretation of the `maxfun` option in `L-BFGS-B` based routines
in the `scipy.optimize` module.
An `L-BFGS-B` search consists of multiple iterations,
with each iteration consisting of one or more function evaluations.
Whereas the old search strategy terminated immediately upon reaching `maxfun`
function evaluations, the new strategy allows the current iteration
to finish despite reaching `maxfun`.
The bundled copy of Qhull in the `scipy.spatial` subpackage has been upgraded to
version 2015.2.
The bundled copy of ARPACK in the `scipy.sparse.linalg` subpackage has been
upgraded to arpack-ng 3.3.0.
The bundled copy of SuperLU in the `scipy.sparse` subpackage has been upgraded
to version 5.1.1.
py-sqlite3. Add missing test dependency on py-nose.
Add comments with links to bug reports about test failures.
Bump PKGREVISION for dependency change.
Release Notes for 1.0
Major changes
As a 1.0 release, there are some major changes, many of which are breaking. See also the "backwards compatibility breaks and deprecations" section below.
mpmath is now a hard external dependency for SymPy. sympy.mpmath will no longer work (use import mpmath). See http://docs.sympy.org/latest/install.html#mpmath for more information on how to install mpmath.
The galgebra Geometric Algebra module has been removed. The module is now maintained separately at https://github.com/brombo/galgebra.
The new solveset function is a planned replacement for solve. solve is not yet deprecated, since solveset hasn't yet fully replicated all the functionality of solve. solveset offers an improved interface to solve. See http://docs.sympy.org/latest/modules/solvers/solveset.html for more information on solveset vs. solve.
This will be the last version of SymPy to support Python 2.6 and 3.2. Both of these Python versions have reached end-of-life. Support for other Python versions will continue at least until they have reached end-of-life.
Backwards compatibility breaks and deprecations
In sympy.geometry, Line.equal() has been deprecated in favor of Line.equals().
The dup_inner_subresultants and dmp_inner_subresultants now only return 2 arguments instead of 3. Only those building their own routines from these very low-level functions need to be aware of this.
This release doesn't include copy of the mpmath library, see PR #2192. Please see new installation instructions for SymPy.
The release no longer includes the galgebra subumodule. This module is now maintained separately at https://github.com/brombo/galgebra. See PR #10046.
ClassRegistry is deprecated. It's unlikely that anybody ever used it; it is scheduled for removal for the next version of SymPy after 1.0.
sympy.C is deprecated and scheduled for removal after 1.0, too. For those users who followed some erroneous SymPy documentation and used C as in C.log, just import sympy and use sympy.log instead: this is compatible with SymPy before and after we remove C.
Q.bounded has been deprecated. Use Q.finite instead.
Q.infinity has been deprecated. Use Q.infinite instead.
Q.infinitesimal has been deprecated. Use Q.zero instead.
ask(Q.nonzero(non-real)) now returns False. Note that Q.nonzero is equivalent to ~Q.zero & Q.real. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use ask(~Q.zero(x)).
x.is_nonzero now returns True iff x is real and has a non-zero value. If you intend to find whether x is a non-zero number irrespective of the fact that x is real or not, you should use fuzzy_not(x.is_zero).
isprime(Float) now returns False.
ask(Q.integer(Float)) now returns False.
ask(Q.prime(Float)) now returns False.
ask(Q.composite(Float)) now returns False.
ask(Q.even(Float)) now returns False.
ask(Q.odd(Float)) now returns False.
New features
The module sympy.series.ring_series has been updated. New methods for series inversion, expansion of hyperbolic and inverse functions, etc have been added. PR #9262
New module sympy.series.sequences for generating finite/infinite lazily evaluated lists. [PR #9435]
The string representation function srepr() now displays the assumptions used to create a Symbol. For example, srepr(Symbol('x', real=True)) now returns the string "Symbol('x', real=True)" instead of merely "Symbol('x')".
not_empty_in function added to util.py in calculus module which finds the domain for which the FiniteSet is not-empty for a given Union of Sets. [PR #9779]
A new and fast method rs_series has been added for calculating series expansions. It can handle multivariate Puiseux series with symbolic coefficients. It is especially optimized for large series, with speedup over the older series method being in the range 20-1000 times. PR #9775
In [37]: %timeit rs_series(cos(a+b*a**QQ(3,2)), a, 10)
100 loops, best of 3: 5.59 ms per loop
In [38]: %timeit cos(a+b*a**QQ(3,2)).series(a, 0, 10)
1 loops, best of 3: 997 ms per loop
Complex Sets has been added here: sympy.sets.fancysets, use S.Complexes for singleton ComplexRegion class. PR #9463
GeometryEntity now subclasses from sets.Set, so sets.Intersection and sets.Union can be used with GeometryEntitys. For example Intersection(Line((-1,-1),(1,1)), Line((-1,1), (1,-1))) == FiniteSet(Point2D(0,0)).
New module sympy.series.fourier for computing fourier sine/cosine series. [PR #9523]
Linsolve: General Linear System Solver in sympy.solvers.solveset, use linsolve() for solving all types of linear systems. PR #9438
New assumption system is now able to read the assumptions set over Symbol object. For e.g.:
In [7]: x = Symbol('x', positive=True)
In [8]: ask(Q.positive(x))
Out[8]: True
A new handler system has been added as sympy.assumptions.satask which uses satisfiable to answer queries related to assumptions. In case the legacy ask doesn't know the answer, it falls back on satask.
For e.g.
Earlier
>>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y))
>>> ask(Implies(Q.zero(x), Q.zero(x*y)))
>>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y))
Now
>>> ask(Q.zero(x) | Q.zero(y), Q.zero(x*y))
True
>>> ask(Implies(Q.zero(x), Q.zero(x*y)))
True
>>> ask(Q.zero(x) | Q.zero(y), Q.nonzero(x*y))
False
New module sympy.series.formal for computing formal power series. [PR #9639]
New set class ConditionSet was implemented. [PR #9696]
Differential calculus Methods, like is_increasing, is_monotonic, etc were implemented in sympy.calculus.singularities in [PR #9820]
New module sympy.series.limitseq for finding limits of terms containing sequences. [PR #9836]
New module sympy/polys/subresultants_qq_zz.py :: contains various functions for computing Euclidean, Sturmian and (modified) subresultant polynomial remainder sequences in Q[x] or Z[x]. All methods are based on the recently discovered theorem by Pell and Gordon of 1917 and an extension/generalization of it of 2015. [PR #10374]
Minor changes
limit(sin(x), x, oo) now returns AccumulationBound object instead of un-evaluated sin(oo). Implemented in [PR #10051].
Point is now an n-dimensional point and subclassed to Point2D and Poin3D where appropriate. Point is also now enumerable and can be indexed (e.g., x=Point(1,2,3); x[0])
roots_cubic will no longer raise an error when the sign of certain expressions is unknown. It will return a generally valid solution instead.
Relational.canonical will put a Relational into canonical form which is useful for testing whether two Relationals are trivially the same.
Relational.reversed gives the Relational with lhs and rhs reversed and the symbol updated accordingly (e.g. (x < 1).reversed -> 1 > x
Simplification of Relationals will, if the threshold for simplification is met, also return the Relational in canonical form. One of the criteria of being in canonical form is that the Number will be on the rhs. This makes writing tests a little easier so S(1) > x can be entered as 1 > x or x < 1 (the former being turned into the latter by Python).
boolalg functions And, Or, Implies, Xor, Equivalent are aware of Relational complements and trivial equalities, so, for example, And(x=1) will reduce to False while And(S(1)>x,x<1) reduces to x < 1. This leads to some simplifications in statistical expressions.
Polynomials created using ring now accept negative and fractional exponents. For e.g,
In [1]: R, x, y = ring('x, y', QQ)
In [2]: x**(-2) + y**Rational(2,3)
Out[2]: y**(2/3) + x**(-2)
The function used to test connectivity in Min and Max has been altered to use the weaker form of a relationship since this applies to arguments like floor(x) and x: though, in generally, we cannot say that floor(x) < x, if x is real we do know that floor(x) <= x. This allows Min(x, floor(x)) -> floor(x) without loss of generality when x is real.
Float has changed its default behaviour on string/int/long to use at least 15 digits of precision and to increase the precision automatically. This enables sympify('1.23456789012345678901234567890') to return a high-precision Float. It also means N('1.23456789012345678901234567890', 20) does the right thing (where it previously lost precision because an intermediate calculation had only precision 15). See Issue #8821
The unicode pretty printer now uses a compact single-character square root symbol for simple expressions like sqrt(x) and sqrt(17). You can disable this new behaviour with pprint(sqrt(2), use_unicode_sqrt_char=False).
ask(Q.finite(x), Q.infinite(x)) now returns False.
You can now read the definition of assumption predicates in the docs.
ask(Q.composite(1)) now returns False.
exp(expr) won't simplify automatically based on assumptions on expr. Autosimplification works for numbers and Symbol, though. You'll have to call refine on exp for simplification.
Idx objects can now be summation variables of Sum and Product.
The keyword argument of GramSchmidt was renamed from "orthog" to "orthonormal". This is because GramSchmidt always returns an orthogonal set of vectors but only if that argument is True does it return an orthonormal set of vectors.
RootOf now has a new subclass ComplexRootOf (abbreviated CRootOf). All currently defined functionality is in the subclass. There is a new function rootof with the same call interface as that of RootOf. It will create objects of CRootOf. New code should use rootof instead of RootOf which is planned to become an abstract class.
The vector module has a new function orthogonalize which applies the Gram Schmidt orthogonalization on a sequence of linearly independent vectors and returns a sequence of orthogonal (or orthonormal) vectors. The projection method has been added to compute the vector (or scalar) projection of one vector on another vector. (See https://github.com/sympy/sympy/pull/10474#)
Update by K.I.A.Derouiche in PR pkg/51270
Highlights in changelog:
v0.18.1:
.groupby(...) has been enhanced to provide convenient syntax when working with .rolling(..), .expanding(..) and .resample(..) per group, see here
pd.to_datetime() has gained the ability to assemble dates from a DataFrame, see here
Method chaining improvements, see here.
Custom business hour offset, see here.
Many bug fixes in the handling of sparse, see here
Expanded the Tutorials section with a feature on modern pandas, courtesy of @TomAugsburger. (GH13045).
v0.18.0:
Moving and expanding window functions are now methods on Series and DataFrame, similar to .groupby, see here.
Adding support for a RangeIndex as a specialized form of the Int64Index for memory savings, see here.
API breaking change to the .resample method to make it more .groupby like, see here.
Removal of support for positional indexing with floats, which was deprecated since 0.14.0. This will now raise a TypeError, see here.
The .to_xarray() function has been added for compatibility with the xarray package, see here.
The read_sas function has been enhanced to read sas7bdat files, see here.
Addition of the .str.extractall() method, and API changes to the .str.extract() method and .str.cat() method.
pd.test() top-level nose test runner is available (GH4327).
Update by K.I.A.Derouiche in PR pkg/51272
Slightly modified.
Changes from 3.2.2 to 3.2.3
Improvements
It is now possible to use HDF5 with the new shared library naming scheme (>= 1.8.10, hdf5.dll instead of hdf5dll.dll) on Windows (gh-540). Thanks to Tadeu Manoel.
Now :program: ptdump sorts output by node name and does not print a backtrace if file cannot be opened. Thanks to Zbigniew Jędrzejewski-Szmek.
Bugs fixed
Only run tables.tests.test_basics.UnicodeFilename if the filesystem encoding is utf-8. Closes gh-485.
Add lib64 to posix search path. (closes gh-507) Thanks to Mehdi Sadeghi.
Ensure cache entries are removed if fewer than 10 (closes gh-529). Thanks to Graham Jones.
Fix segmentation fault in a number of test cases that use index.Index (closes gh-532 and gh-533). Thanks to Diane Trout.
Fixed the evaluation of transcendental functions when numexpr is compiled with VML support (closes gh-534, PR #536). Thanks to Tom Kooij.
Make sure that index classes use buffersizes that are a multiple of chunkshape[0] (closes gh-538, PR #538). Thanks to Tom Kooij.
Ensure benchmark paths exist before benchmarks are executed (PR #544). Thanks to rohitjamuar.
Other changes
Minimum Cython version is now v0.21
Changes from 3.2.1.1 to 3.2.2
Bug fixed
Fix AssertionError in Row.__init_loop. See gh-477.
Fix issues with Cython 0.23. See gh-481.
Only run tables.tests.test_basics.UnicodeFilename if the filesystem encoding is utf-8. Closes gh-485.
Fix missing missing PyErr_Clear. See gh-#486.
Fix the C type of some numpy attributes. See gh-494.
Cast selection indices to integer. See gh-496.
Fix indexesextension._keysort_string. Closes gh-497 and gh-498.
Changes from 3.2.1 to 3.2.1.1
Fix permission on distributed source distribution
Other changes
Minimum Cython version is now v0.21
Changes from 3.2.0 to 3.2.1
Bug fixed
Fix indexesextension._keysort. Fixes gh-455. Thanks to Andrew Lin.
Changes from 3.1.1 to 3.2.0
Improvements
The nrowsinbuf is better computed now for EArray/CArray having a small chunkshape in the main dimension. Fixes#285.
PyTables should be installable very friendly via pip, including NumPy being installed automatically in the unlikely case it is not yet installed in the system. Thanks to Andrea Bedini.
setup.py has been largely simplified and now it requires setuptools. Although we think this is a good step, please keep us informed this is breaking some installation in a very bad manner.
setup.py now is able to used pkg-config, if available, to locate required libraries (hdf5, bzip2, etc.). The use of pkg-config can be controlled via setup.py command line flags or via environment variables. Please refer to the installation guide (in the User Manual) for details. Closes gh-442.
It is now possible to create a new node whose parent is a softlink to another group (see gh-422). Thanks to Alistair Muldal.
link.SoftLink objects no longer need to be explicitly dereferenced. Methods and attributes of the linked object are now automatically accessed when the user acts on a soft-link (see gh-399). Thanks to Alistair Muldal.
Now ptrepack recognizes hardlinks and replicates them in the output (repacked) file. This saves disk space and makes repacked files more conformal to the original one. Closes gh-380.
New pttree script for printing HDF5 file contents as a pretty ASCII tree (closes gh-400). Thanks to Alistair Muldal.
The internal Blosc library has been downgraded to version 1.4.4. This is in order to still allow using multiple threads inside Blosc, even on multithreaded applications (see gh-411, gh-412, gh-437 and gh-448).
The print_versions() function now also reports the version of compression libraries used by Blosc.
Now the setup.py tries to use the ‘-march=native’ C flag by default. In falls back on ‘-msse2’ if ‘-march=native’ is not supported by the compiler. Closes gh-379.
Fixed a spurious unicode comparison warning (closes gh-372 and gh-373).
Improved handling of empty string attributes. In previous versions of PyTables empty string were stored as scalar HDF5 attributes having size 1 and value ‘0’ (an empty null terminated string). Now empty string are stored as HDF5 attributes having zero size
Added a new cookbook recipe and a couple of examples for simple threading with PyTables.
The redundant utilsextension.get_indices() function has been eliminated (replaced by slice.indices()). Closes gh-195.
Allow negative indices in point selection (closes gh-360)
Index wasn’t being used if it claimed there were no results. Closes gh-351 (see also gh-353)
Atoms and Col types are no longer generated dynamically so now it is easier for IDEs and static analysis tool to handle them (closes gh-345)
The keysort functions in idx-opt.c have been cythonised using fused types. The perfomance is mostly unchanged, but the code is much more simpler now. Thanks to Andrea Bedini.
Small unit tests re-factoring:
print_versions() and tests.common.print_heavy() functions
moved to the tests.common module
always use print_versions() when test modules are called as scripts
use the unittest2 package in Python 2.6.x
removed internal machinery used to replicate unittest2 features
always use tests.common.PyTablesTestCase as base class for all test cases
code of the old tasts.common.cleanup() function has been moved to tests.common.PyTablesTestCase.tearDown() method
new implementation of tests.common.PyTablesTestCase.assertWarns() compatible with the one provided by the standard unittest module in Python >= 3.2
use tests.common.PyTablesTestCase.assertWarns() as context manager when appropriate
use the unittest.skipIf() decorator when appropriate
new :class:tests.comon.TestFileMixin: class
Bugs fixed
Fixed compatibility problems with numpy 1.9 and 1.10-dev (closes gh-362 and gh-366)
Fixed compatibility with Cython >= 0.20 (closes gh-386 and gh-387)
Fixed support for unicode node names in LRU cache (only Python 2 was affected). Closes gh-367 and gh-369.
Fixed support for unicode node titles (only Python 2 was affected). Closes gh-370 and gh-374.
Fixed a bug that caused the silent truncation of unicode attributes containing the ‘0’ character. Closes gh-371.
Fixed descr_from_dtype() to work as expected with complex types. Closes gh-381.
Fixed the tests.test_basics.ThreadingTestCase test case. Closes gh-359.
Fix incomplete results when performing the same query twice and exhausting the second iterator before the first. The first one writes incomplete results to seqcache (gh-353)
Fix false results potentially going to seqcache if tableextension.Row.update() is used during iteration (see gh-353)
Fix Column.create_csindex() when there’s NaNs
Fixed handling of unicode file names on windows (closes gh-389)
No longer not modify sys.argv at import time (closes gh-405)
Fixed a performance issue on NFS (closes gh-402)
Fixed a nasty problem affecting results of indexed queries. Closes gh-319 and probably gh-419 too.
Fixed another problem affecting results of indexed queries too. Closes gh-441.
Replaced “len(xrange(start, stop, step))” -> “len(xrange(0, stop - start, step))” to fix issues with large row counts with Python 2.x. Fixes#447.
Other changes
Cython is not a hard dependency anymore (although developers will need it so as to generated the C extension code).
The number of threads used by default for numexpr and Blosc operation that was set to the number of available cores have been reduced to 2. This is a much more reasonable setting for not creating too much overhead.
Update DEPENDS
Based on PR/51271 from kamelderouiche@yahoo.com
Upstream changes:
1.11
API changes
[#1930] No longer import nx_agraph and nx_pydot into the top-level namespace. They can be accessed within networkx as e.g. nx.nx_agraph.write_dot or imported as from networkx.drawing.nx_agraph import write_dot.
[#1750] Arguments center and scale are now available for all layout functions. The defaul values revert to the v1.9 values (center is the origin for circular layouts and domain is [0, scale) for others.
[#1924] Replace pydot with pydotplus for drawing with the pydot interface.
[#1888] Replace support for Python3.2 with support for Python 3.5.
Miscellaneous changes
[#1763] Set up appveyor to automatically test installation on Windows machines. Remove symbolic links in examples to help such istallation.
Change many doc_string typos to allow sphinx to build the docs without errors or warnings.
Enable the docs to be automatically built on readthedocs.org by changing requirements.txt
Overview of changes in gnome-calculator 3.20.2
* lib: prevents segfault when elements of division to zero have
null assigned tokens (fixes#769364) (Alberto Ruiz)
* Updated Indonesian translation (Andika Triwidada)
* Updated Norwegian bokmål translation. (Kjartan Maraas)
Add LICENSE
Upstream changes:
1.24 2015-03-01 CHORNY
- Added SEE ALSO section with links to similar modules.
- Reformatted this file as per CPAN::Changes::Spec
- Improved wording of the abstract
Upstream changes:
0.59 2016-08-03
[ADDED]
- is_prime_power Returns k if n=p^k for p a prime.
- logint(n,b) Integer logarithm. Largest e s.t. b^e <= n.
- rootint(n,k) Integer k-th root.
- ramanujan_sum(k,n) Ramanujan's sum
[FUNCTIONALITY AND PERFORMANCE]
- Fixes for quadmath:
+ Fix "infinity" in t/11-primes.t.
+ Fix native Pi to use quads.
+ Trim some threading tests.
- Fix fromdigits memory error with large string.
- Remove 3 threading tests that were causing issues with Perl -DDEBUGGING.
- foroddcomposites with some odd start values could index incorrectly.
- is_primitive_root(1,0) returns 0 instead of fp exception.
- mertens() uses a little less memory.
- 2x speedup for znlog with bigint values.
- is_pseudoprime() and is_euler_pseudoprime() use Montgomery math so are
much faster. They seem to be ~5% faster than Miller-Rabin now.
- is_catalan_pseudoprime 1.1x to 1.4x faster.
- is_perrin_pseudoprime over 10x faster.
Uses Adams/Shanks doubling and Montgomery math.
Single core, odd composites: ~8M range/s.
- Add restricted Perrin pseudoprimes using an optional argument.
- Add bloom filters to reject non-perfect cubes, fifths, and sevenths.
is_power about 2-3x faster for native inputs.
- forcomposites / foroddcomposites about 1.2x faster past 64-bit.
- exp_mangoldt rewritten to use is_prime_power.
- Integer root code rewritten and now exported.
- We've been hacking around the problem of older Perls autovivifying
functions at compile time. This makes functions that don't exist
return true when asked if they're defined, which causes us distress.
Store the available GMP functions before loading the PP code.
XS code knows MPU::GMP version and calls as appropriate. This works
around the auto-vivication, and lets us choose to call the GMP
function based on version instead of just existence.
E.g. GMP's is_power was added in 0.19, but didn't support negative
powers until 0.28.
Upstream changes:
2016-04-25 v1.27 pjacklam
* Sync test files with Math-BigInt-1.999719.
2016-04-22 v1.26 pjacklam
* Sync test files with Math-BigInt-1.999718.
2016-01-03 v1.25 pjacklam
* Sync test files with Math-BigInt-1.999714.
2015-12-31 v1.24 pjacklam
* Sync test files with Math-BigInt-1.999713.
2015-11-22 v1.23 pjacklam
* Sync test files with Math-BigInt-1.999709.
* In v1.22 the required version of Math-BigInt was set to 1.999703, but it
should have been 1.999706. The required version is now 1.999709.
* Correct error in CHANGES file.
2015-11-09 v1.22 pjacklam
* Sync test files with Math-BigInt-1.999709.
* Update the README file.
* Remove the LICENSE file as this information is already covered in the file
README.
* Replace 'use vars ...' with 'our ...'. We require a Perl newer than 5.6.0
anyway.
* Move 'Test::More' from 'build_requires' to 'test_requires' in Makefile.PL.
* Enable 'use warnings'. We require a Perl newer than 5.6.0 anyway.
* Add 'assertlib.*\.exe' to MANIFEST.SKIP, since make generates temporary
files like 'assertlibzxjE4WfG.exe' on Cygwin.
2015-09-21 v1.21 pjacklam
* Sync test files with Math-BigInt-1.999703.
* Required version of Math-BigInt is now 1.999703.
* Update author information.
2015-09-17 v1.20 pjacklam
* Sync test files with Math-BigInt-1.999702.
* Required version of Math-BigInt is now 1.999702.
2015-09-11 v1.19 pjacklam
bigfltpm.inc
* File removed. It was included in the previous release by accident.
bigfltpm.t
* File removed. It was included in the previous release by accident.
bigintpm.inc
* File removed. It was included in the previous release by accident.
bigintpm.t
* File removed. It was included in the previous release by accident.
biglog.t
* File removed. It was included in the previous release by accident.
bigroot.t
* File removed. It was included in the previous release by accident.
inc/Module/Install.pm
* Update bundled Module::Install from v1.08 to v1.16.
lib/Math/BigInt/Pari.pm
* Updated version number.
* Fixed bug in _modpow().
Makefile.PL
* Updated required version of Math::BigInt to 1.999701.
t/01load.t
* Improve formatting of module version information.
t/03podcov.t
* Slight reformatting and better information message.
t/bigfltpm.inc
* Sync tests with the Math-BigInt distribution.
t/bigfltpm.t
* Adjust number of tests.
* Sync tests with the Math-BigInt distribution.
* Make sure we test Math::BigInt::Pari, not Math::BigInt::Calc.
t/bigintpm.inc
* Sync tests with the Math-BigInt distribution.
t/bigintpm.t
* Adjust number of tests.
* Make sure we test Math::BigInt::Pari, not Math::BigInt::Calc.
t/biglog.t
* Adjust number of tests.
* Sync tests with the Math-BigInt distribution.
* Make sure we test Math::BigInt::Pari, not Math::BigInt::Calc.
t/bigroot.t
* Adjust number of tests.
* Make sure we test Math::BigInt::Pari, not Math::BigInt::Calc.
t/*.t
* Add "use warnings" to test scripts, since Perl 5.6.2 is required anyway,
and "use warnings" was introduced in Perl 5.6.1.
* Modified test scripts so the difference between the test files in the
Math-BigInt distribution and the backend distributions are as few and as
small as possible. This makes for easier release management.
2014-04-03 v1.18 pjacklam
* Updated test files from the Math::BigInt distribution (Peter John Acklam).
* Updated POD (Peter John Acklam)
2011-09-04 v1.17 pjacklam
* Upgrade bundled modules in "inc" to latest version. (Peter John Acklam)
* Math::BigInt::GMP now requires Math::BigInt v1.997 (Peter John Acklam).
* Include "^MYMETA\.(yml|json)\z" in MANIFEST.SKIP. Whereas META.* are
generated by the distribution author at packaging time, MYMETA.* are
generated by the end user at configure time after any dynamic
dependencies are known. (Peter John Acklam)
* Updated common test files from the Math::BigInt distribution. (Peter
John Acklam)
Upstream changes:
2016-04-25 v1.51 pjacklam
* Sync test files with Math-BigInt-1.999719.
2016-04-22 v1.50 pjacklam
* Sync test files with Math-BigInt-1.999718.
2016-01-03 v1.49 pjacklam
* Sync test files with Math-BigInt-1.999714.
2015-12-31 v1.48 pjacklam
* Sync test files with Math-BigInt-1.999713.
2015-12-14 v1.47 pjacklam
* Add patch from Gregor Herrmann (GREGOA) based on code by Dana Jacobsen
(DANAJ) to fix problems with the new() method when Perl is compiled with
support for 64-bit integers, but on platforms when the underlying OS is
32-bit (CPAN RT #71548).
2015-12-03 v1.46 pjacklam
* Add patch from Dana Jacobsen (DANAJ) and add new test file
't/mbi-from-big-scalar.t' regarding CPAN RT #103517.
* Fix spelling in GMP.xs ('modifing' -> 'modifying').
* Whitespace/formatting in t/bigintg.t to make it more readble (for me, at
least) and more in accordance with the 'perlstyle' manpage.
2015-11-09 v1.45 pjacklam
* Sync test files with Math-BigInt-1.999709.
* Required version of Test::More is 0.47.
2015-10-29 v1.44 pjacklam
* Sync test files with Math-BigInt-1.999707.
* Update the README file.
* Remove the files INSTALL and LICENSE as this information is already covered
in the file README.
* Replace 'use vars ...' with 'our ...'. We require a Perl newer than 5.6.0
anyway.
* Required version of Math-BigInt is now 1.999706.
* Add 'Test::More' to TEST_REQUIRES in Makefile.PL.
* Enable 'use warnings'. We require a Perl newer than 5.6.0 anyway.
* Add 'assertlib.*\.exe' to MANIFEST.SKIP, since make generates temporary
files like 'assertlibzxjE4WfG.exe' on Cygwin.
2015-09-21 v1.43 pjacklam
* Sync test files with Math-BigInt-1.999703.
* Required version of Math-BigInt is now 1.999703.
* Update author information.
2015-09-17 v1.42 pjacklam
* Sync test files with Math-BigInt-1.999702.
* Required version of Math-BigInt is now 1.999702.
2015-09-11 v1.41 pjacklam
lib/Math/BigInt/GMP.pm
* Updated version number.
Makefile.PL
* Updated required version of Math::BigInt.
t/bigfltpm.inc
* Synced tests with the Math-BigInt distribution.
t/bigfltpm.t
* Updated number of tests.
t/bigintpm.inc
* Synced tests with the Math-BigInt distribution.
t/bigintpm.t
* Updated number of tests.
2015-08-18 v1.40 pjacklam
CHANGES
* Add changes for the newest release.
* Reorder change entries into descending chronological order.
lib/Devel/CheckLib.pm
* Update bundled Devel::CheckLib from v1.01 to v1.03.
Makefile.PL
* Update required version of Math-BigInt to 1.9994.
t/01load.t
* Improve formatting of module version information.
t/bigfltpm.t
* Use the correct backend, in this case Math::BigInt::GMP.
* Skip test specific for the Math::BigInt::Calc backend.
t/bigintpm.inc
* Rather than an early exit(), use skip() to skip tests.
t/bigintpm.t
* Use the correct backend, in this case Math::BigInt::GMP.
t/biglog.t
* Use the correct backend, in this case Math::BigInt::GMP. This was correct
in v1.21, but has been wrong since then.
t/bigroot.t
* Use the correct backend, in this case Math::BigInt::GMP. This was correct
up until v1.32, but has been wrong since then.
lib/Math/BigInt/GMP.pm
* Increment Math::BigInt::GMP version number to 1.40.
2015-08-17 v1.39 pjacklam
* Updated test files with those from Math-BigInt-1.9997.
2014-04-03 v1.38 pjacklam
* Updated test files from the Math::BigInt distribution (Peter John Acklam).
* Updated POD (Peter John Acklam)
* Updated bundled Devel::CheckLib from v0.93 to v1.01 (Peter John Acklam).
XXX installs lib/charset.alias - is this a problem?
Bugs Fixed in GNU Octave 4.0.3
* doc: clarify differences between atan and atan2 (bug #48178)
* doc: delete mention of unsupported syntax for looping over structs
(bug #48064)
* ver.m: return empty struct for unknown package (bug #48235).
* Update gnulib subrepo for texinfo formatting fixes (bug #48001)
* Fix typos in Java conversion of 32 and 64 bit integers (bug #48107)
* Create valid gnuplot commands even for single-entry colormaps
(bug #48083).
* orderfields.m: Remove trailing bracket in docstring (bug #48063).
* Don't overly restrict options passed to Java jvm (bug #39063).
* Write integers with correct byte order on big-endian systems
(bug #47434)
* doc: Document syntax for specifying color when using Tex
interpreter (bug #47907).
* Round quantized pixel values before writing uintN images (bug #47746)
* Fix popen2 error on Windows when child writes to stderr (bug #43036)
* it_IT.ts: Correct Italian translation of "col:" (bug #47857).
* avoid crash in audiowrite argument processing (bug #47875)
* make __magick_read__ a built-in function (bug #41699)
* sortrows.m: Improve docstring (bug #47844).
* doc: Fix typo in exec docstring.
* Use correct URL for Online Documentation (bug #47835).
* Fix autoscale affecting legend axes objects (bug #47765).
* configure.ac: Remove AC_CHECK_FUNC for pipe now that gnulib::pipe used.
* doc: fix on manual the syntax to empty elements from cell array.
* octave.texi: Set document encoding to UTF-8.
* Enable the pipe function on Windows (bug #47614)
* avoid mulitple definitions of static function-scope vars (bug #47372)
* Array-sym.cc: Delete obsolete file.
* Initialize variable to stop unstable results for lgamma (bug #47524).
* call openmp function at initialization (bug #47372)
* macros.texi: Colorized links for PDF files with Texinfo 6.x.
R and Eigen integration using Rcpp. Eigen is a C++ template library
for linear algebra: matrices, vectors, numerical solvers and related
algorithms. It supports dense and sparse matrices on integer,
floating point and complex numbers, decompositions of such matrices,
and solutions of linear systems. Its performance on many algorithms
is comparable with some of the best implementations based on Lapack
and level-3 BLAS. The RcppEigen package includes the header files
from the Eigen C++ template library (currently version 3.2.2).
Upstream changes:
2016-05-14 Tony Plate <tplate@acm.org>
* Version 1.4-4
* add imports to NAMESPACE file
2016-04-16 Tony Plate <tplate@acm.org>
* Version 1.4-3
* add ... args to asub() and adrop() generics
2013-08-18 Tony Plate <tplate@acm.org>
* Version 1.4-1
* add use.dnns= arg to abind() to propagate names on dimnames (i.e., names(dimnames(x)))
* add ability for hier.names= arg to abind() to take values 'before' and 'after' (TRUE and FALSE still work with unchanged meaning)
Upstream changes:
0.58 2016-05-21
[API Changes]
- prev_prime($n) where $n <= 2 now returns undef instead of 0. This
may enable catching range errors, and is technically more correct.
- nth_prime(0) now returns undef instead of 0. This should help catch
cases where the base wasn't understood. The change is similar for
all the nth_* functions (e.g. nth_twin_prime).
- sumdigits(n,base) will interpret n as a number in the given base,
rather than the Pari/GP method of converting decimal n to that base
then summing. This allows sumdigits to easily sum hex strings.
The old behavior is easily done with vecsum(todigits(n, base)).
- binary() was not intended to be released (todigits and todigitstring
are supersets), but the documentation got left in. Remove docs.
[ADDED]
- addmod(a, b, n) a + b mod n
- mulmod(a, b, n) a * b mod n
- divmod(a, b, n) a / b mod n
- powmod(a, b, n) a ^ b mod n
- sqrtmod(a, n) modular square root
- is_euler_pseudoprime(n,a[...]) Euler test to given bases
- is_primitive_root(r, n) is r a primitive root mod n
- is_quasi_carmichael(n) is n a Quasi-Carmichael number
- hclassno(n) Hurwitz class number H(n) * 12
- sieve_range(n, width, depth) sieve to given depth, return offsets
[FUNCTIONALITY AND PERFORMANCE]
- Fixed incorrect table entries for 2^16th Ramanujan prime count and
nth_ramanujan_prime(23744).
- foroddcomposites with certain arguments would start with 10 instead of 9.
- lucasu and lucasv should return bigint types.
- vecsum will handle 128-bit sums internally (performance increase).
- Speedup is_carmichael.
- Speedup znprimroot, 10% for small inputs, 10x for large composites.
- Speedup znlog ~2x. It is now Rho racing an interleaved BSGS.
- Change AKS to Bernstein 2003 theorem 4.1.
5-20x faster than Bornemann, 20000+x faster than V6.
- sum_primes now uses tables for native sizes (performance increase).
- ramanujan_tau uses Cohen's hclassno method instead of the sigma
calculation. This is 3-4x faster than the GMP code for inputs > 300k,
and much faster than the older PP code.
- fromdigits much faster for large base-10 arrays. Timing is better than
split plus join when output is a bigint.
Upstream changes:
1.15 2015-11-27
- Bugfix: should not ignore seed value of 0 (reported by Maxim Tyukov)
- Exclude MYMETA files from tarball (#108108, reported by Alexandr Ciornii)
1.14 2015-10-19
- Stricter Kwalitee directory testing (#107821, reported by Slaven Rezi�)
- Moved some non-essential tests to xt/ (#101282, reported by Slaven Rezi�)
1.13 2013-10-30
- Changes file as per CPAN::Changes::Spec (#88672, patch by Neil Bowers)
1.12 2013-09-14
- Improvement of unit tests, restored some as author-side only (#88637)
Upstream changes:
CHANGES IN R 3.3.1:
BUG FIXES:
* R CMD INSTALL and hence install.packages() gave an internal error
installing a package called description from a tarball on a
case-insensitive file system.
* match(x, t) (and hence x %in% t) failed when x was of length one,
and either character and x and t only differed in their Encoding
or when x and t where complex with NAs or NaNs. (PR#16885.)
* unloadNamespace(ns) also works again when ns is a 'namespace', as
from getNamespace().
* rgamma(1,Inf) or rgamma(1, 0,0) no longer give NaN but the
correct limit.
* length(baseenv()) is correct now.
* pretty(d, ..) for date-time d rarely failed when "halfmonth" time
steps were tried (PR#16923) and on 'inaccurate' platforms such as
32-bit windows or a configuration with --disable-long-double; see
comment #15 of PR#16761.
* In text.default(x, y, labels), the rarely(?) used default for
labels is now correct also for the case of a 2-column matrix x
and missing y.
* as.factor(c(a = 1L)) preserves names() again as in R < 3.1.0.
* strtrim(""[0], 0[0]) now works.
* Use of Ctrl-C to terminate a reverse incremental search started
by Ctrl-R in the readline-based Unix terminal interface is now
supported for readline >= 6.3 (Ctrl-G always worked). (PR#16603)
* diff(<difftime>) now keeps the "units" attribute, as subtraction
already did, PR#16940.
CHANGES IN R 3.3.0:
SIGNIFICANT USER-VISIBLE CHANGES:
* nchar(x, *)'s argument keepNA governing how the result for NAs in
x is determined, gets a new default keepNA = NA which returns NA
where x is NA, except for type = "width" which still returns 2,
the formatting / printing width of NA.
* All builds have support for https: URLs in the default methods
for download.file(), url() and code making use of them.
Unfortunately that cannot guarantee that any particular https:
URL can be accessed. For example, server and client have to
successfully negotiate a cryptographic protocol (TLS/SSL, ...)
and the server's identity has to be verifiable _via_ the
available certificates. Different access methods may allow
different protocols or use private certificate bundles: we
encountered a https: CRAN mirror which could be accessed by one
browser but not by another nor by download.file() on the same
Linux machine.
NEW FEATURES:
* The print method for methods() gains a byclass argument.
* New functions validEnc() and validUTF8() to give access to the
validity checks for inputs used by grep() and friends.
* Experimental new functionality for S3 method checking, notably
isS3method().
Also, the names of the R 'language elements' are exported as
character vector tools::langElts.
* str(x) now displays "Time-Series" also for matrix (multivariate)
time-series, i.e. when is.ts(x) is true.
* (Windows only) The GUI menu item to install local packages now
accepts *.tar.gz files as well as *.zip files (but defaults to
the latter).
* New programmeR's utility function chkDots().
* D() now signals an error when given invalid input, rather than
silently returning NA. (Request of John Nash.)
* formula objects are slightly more "first class": e.g., formula()
or new("formula", y ~ x) are now valid. Similarly, for "table",
"ordered" and "summary.table". Packages defining S4 classes with
the above S3/S4 classes as slots should be reinstalled.
* New function strrep() for repeating the elements of a character
vector.
* rapply() preserves attributes on the list when how = "replace".
* New S3 generic function sigma() with methods for extracting the
estimated standard deviation aka "residual standard deviation"
from a fitted model.
* news() now displays R and package news files within the HTML help
system if it is available. If no news file is found, a visible
NULL is returned to the console.
* as.raster(x) now also accepts raw arrays x assuming values in
0:255.
* Subscripting of matrix/array objects of type "expression" is now
supported.
* type.convert("i") now returns a factor instead of a complex value
with zero real part and missing imaginary part.
* Graphics devices cairo_pdf() and cairo_ps() now allow non-default
values of the cairographics 'fallback resolution' to be set.
This now defaults to 300 on all platforms: that is the default
documented by cairographics, but apparently was not used by all
system installations.
* file() gains an explicit method argument rather than implicitly
using getOption("url.method", "default").
* Thanks to a patch from Tomas Kalibera, x[x != 0] is now typically
faster than x[which(x != 0)] (in the case where x has no NAs, the
two are equivalent).
* read.table() now always uses the names for a named colClasses
argument (previously names were only used when colClasses was too
short). (In part, wish of PR#16478.)
* (Windows only) download.file() with default method = "auto" and a
ftps:// URL chooses "libcurl" if that is available.
* The out-of-the box Bioconductor mirror has been changed to one
using https://: use chooseBioCmirror() to choose a http:// mirror
if required.
* The data frame and formula methods for aggregate() gain a drop
argument.
* available.packages() gains a repos argument.
* The undocumented switching of methods for url() on https: and
ftps: URLs is confined to method = "default" (and documented).
* smoothScatter() gains a ret.selection argument.
* qr() no longer has a ... argument to pass additional arguments to
methods.
* [ has a method for class "table".
* It is now possible (again) to replayPlot() a display list
snapshot that was created by recordPlot() in a different R
session.
It is still not a good idea to use snapshots as a persistent
storage format for R plots, but it is now not completely silly to
use a snapshot as a format for transferring an R plot between two
R sessions.
The underlying changes mean that packages providing graphics
devices (e.g., Cairo, RSvgDevice, cairoDevice, tikzDevice) will
need to be reinstalled.
Code for restoring snapshots was contributed by Jeroen Ooms and
JJ Allaire.
Some testing code is available at <URL:
https://github.com/pmur002/R-display-list>.
* tools::undoc(dir = D) and codoc(dir = D) now also work when D is
a directory whose normalizePath()ed version does not end in the
package name, e.g. from a symlink.
* abbreviate() has more support for multi-byte character sets - it
no longer removes bytes within characters and knows about Latin
vowels with accents. It is still only really suitable for (most)
European languages, and still warns on non-ASCII input.
abbreviate(use.classes = FALSE) is now implemented, and that is
more suitable for non-European languages.
* match(x, table) is faster (sometimes by an order of magnitude)
when x is of length one and incomparables is unchanged, thanks to
Peter Haverty (PR#16491).
* More consistent, partly not back-compatible behavior of NA and
NaN coercion to complex numbers, operations less often resulting
in complex NA (NA_complex_).
* lengths() considers methods for length and [[ on x, so it should
work automatically on any objects for which appropriate methods
on those generics are defined.
* The logic for selecting the default screen device on OS X has
been simplified: it is now quartz() if that is available even if
environment variable DISPLAY has been set by the user.
The choice can easily be overridden _via_ environment variable
R_INTERACTIVE_DEVICE.
* On Unix-like platforms which support the getline C library
function, system(*,intern = TRUE) no longer truncates (output)
lines longer than 8192 characters, thanks to Karl Millar.
(PR#16544)
* rank() gains a ties.method = "last" option, for convenience (and
symmetry).
* regmatches(invert = NA) can now be used to extract both
non-matched and matched substrings.
* data.frame() gains argument fix.empty.names; as.data.frame.list()
gets new cut.names, col.names and fix.empty.names.
* plot(x ~ x, *) now warns that it is the same as plot(x ~ 1, *).
* recordPlot() has new arguments load and attach to allow package
names to be stored as part of a recorded plot. replayPlot() has
new argument reloadPkgs to load/attach any package names that
were stored as part of a recorded plot.
* S4 dispatch works within calls to .Internal(). This means
explicit S4 generics are no longer needed for unlist() and
as.vector().
* Only font family names starting with "Hershey" (and not "Her" as
before) are given special treatment by the graphics engine.
* S4 values are automatically coerced to vector (via as.vector)
when subassigned into atomic vectors.
* findInterval() gets a left.open option.
* The version of LAPACK included in the sources has been updated to
3.6.0, including those 'deprecated' routines which were
previously included. _Ca_ 40 double-complex routines have been
added at the request of a package maintainer.
As before, the details of what is included are in
src/modules/lapack/README and this now gives information on
earlier additions.
* tapply() has been made considerably more efficient without
changing functionality, thanks to proposals from Peter Haverty
and Suharto Anggono. (PR#16640)
* match.arg(arg) (the one-argument case) is faster; so is
sort.int(). (PR#16640)
* The format method for object_size objects now also accepts
"binary" units such as "KiB" and e.g., "Tb". (Partly from
PR#16649.)
* Profiling now records calls of the form foo::bar and some similar
cases directly rather than as calls to <Anonymous>. Contributed
by Winston Chang.
* New string utilities startsWith(x, prefix) and endsWith(x,
suffix). Also provide speedups for some grepl("^...",*) uses
(related to proposals in PR#16490).
* Reference class finalizers run at exit, as well as on garbage
collection.
* Avoid parallel dependency on stats for port choice and random
number seeds. (PR#16668)
* The radix sort algorithm and implementation from data.table
(forder) replaces the previous radix (counting) sort and adds a
new method for order(). Contributed by Matt Dowle and Arun
Srinivasan, the new algorithm supports logical, integer (even
with large values), real, and character vectors. It outperforms
all other methods, but there are some caveats (see ?sort).
* The order() function gains a method argument for choosing between
"shell" and "radix".
* New function grouping() returns a permutation that stably
rearranges data so that identical values are adjacent. The
return value includes extra partitioning information on the
groups. The implementation came included with the new radix
sort.
* rhyper(nn, m, n, k) no longer returns NA when one of the three
parameters exceeds the maximal integer.
* switch() now warns when no alternatives are provided.
* parallel::detectCores() now has default logical = TRUE on all
platforms - as this was the default on Windows, this change only
affects Sparc Solaris.
Option logical = FALSE is now supported on Linux and recent
versions of OS X (for the latter, thanks to a suggestion of Kyaw
Sint).
* hist() for "Date" or "POSIXt" objects would sometimes give
misleading labels on the breaks, as they were set to the day
before the start of the period being displayed. The display
format has been changed, and the shift of the start day has been
made conditional on right = TRUE (the default). (PR#16679)
* R now uses a new version of the logo (donated to the R Foundation
by RStudio). It is defined in .svg format, so will resize
without unnecessary degradation when displayed on HTML
pages-there is also a vector PDF version. Thanks to Dirk
Eddelbuettel for producing the corresponding X11 icon.
* New function .traceback() returns the stack trace which
traceback() prints.
* lengths() dispatches internally.
* dotchart() gains a pt.cex argument to control the size of points
separately from the size of plot labels. Thanks to Michael
Friendly and Milan Bouchet-Valat for ideas and patches.
* as.roman(ch) now correctly deals with more diverse character
vectors ch; also arithmetic with the resulting roman numbers
works in more cases. (PR#16779)
* prcomp() gains a new option rank. allowing to directly aim for
less than min(n,p) PC's. The summary() and its print() method
have been amended, notably for this case.
* gzcon() gains a new option text, which marks the connection as
text-oriented (so e.g. pushBack() works). It is still always
opened in binary mode.
* The import() namespace directive now accepts an argument except
which names symbols to exclude from the imports. The except
expression should evaluate to a character vector (after
substituting symbols for strings). See Writing R Extensions.
* New convenience function Rcmd() in package tools for invoking R
CMD tools from within R.
* New functions makevars_user() and makevars_site() in package
tools to determine the location of the user and site specific
Makevars files for customizing package compilation.
UTILITIES:
* R CMD check has a new option --ignore-vignettes for use with
non-Sweave vignettes whose VignetteBuilder package is not
available.
* R CMD check now by default checks code usage (_via_ codetools)
with only the base package attached. Functions from default
packages other than base which are used in the package code but
not imported are reported as undefined globals, with a suggested
addition to the NAMESPACE file.
* R CMD check --as-cran now also checks DOIs in package CITATION
and Rd files.
* R CMD Rdconv and R CMD Rd2pdf each have a new option
--RdMacros=pkglist which allows Rd macros to be specified before
processing.
DEPRECATED AND DEFUNCT:
* The previously included versions of zlib, bzip2, xz and PCRE have
been removed, so suitable external (usually system) versions are
required (see the 'R Installation and Administration' manual).
* The unexported and undocumented Windows-only devices cairo_bmp(),
cairo_png() and cairo_tiff() have been removed. (These devices
should be used as e.g. bmp(type = "cairo").)
* (Windows only) Function setInternet2() has no effect and will be
removed in due course. The choice between methods "internal" and
"wininet" is now made by the method arguments of url() and
download.file() and their defaults can be set _via_ options. The
out-of-the-box default remains "wininet" (as it has been since R
3.2.2).
* [<- with an S4 value into a list currently embeds the S4 object
into its own list such that the end result is roughly equivalent
to using [[<-. That behavior is deprecated. In the future, the
S4 value will be coerced to a list with as.list().
* Package tools' functions package.dependencies(), pkgDepends(),
etc are deprecated now, mostly in favor of package_dependencies()
which is both more flexible and efficient.
INSTALLATION and INCLUDED SOFTWARE:
* Support for very old versions of valgrind (e.g., 3.3.0) has been
removed.
* The included libtool script (generated by configure) has been
updated to version 2.4.6 (from 2.2.6a).
* libcurl version 7.28.0 or later with support for the https
protocol is required for installation (except on Windows).
* BSD networking is now required (except on Windows) and so
capabilities("http/ftp") is always true.
* configure uses pkg-config for PNG, TIFF and JPEG where this is
available. This should work better with multiple installs and
with those using static libraries.
* The minimum supported version of OS X is 10.6 ('Snow Leopard'):
even that has been unsupported by Apple since 2012.
* The configure default on OS X is --disable-R-framework: enable
this if you intend to install under /Library/Frameworks and use
with R.app.
* The minimum preferred version of PCRE has since R 3.0.0 been 8.32
(released in Nov 2012). Versions 8.10 to 8.31 are now deprecated
(with warnings from configure), but will still be accepted until
R 3.4.0.
* configure looks for C functions __cospi, __sinpi and __tanpi and
uses these if cospi _etc_ are not found. (OS X is the main
instance.)
* (Windows) R is now built using gcc 4.9.3. This build will
require recompilation of at least those packages that include C++
code, and possibly others. A build of R-devel using the older
toolchain will be temporarily available for comparison purposes.
During the transition, the environment variable R_COMPILED_BY has
been defined to indicate which toolchain was used to compile R
(and hence, which should be used to compile code in packages).
The COMPILED_BY variable described below will be a permanent
replacement for this.
* (Windows) A make and R CMD config variable named COMPILED_BY has
been added. This indicates which toolchain was used to compile R
(and hence, which should be used to compile code in packages).
PACKAGE INSTALLATION:
* The make macro AWK which used to be made available to files such
as src/Makefile is no longer set.
C-LEVEL FACILITIES:
* The API call logspace_sum introduced in R 3.2.0 is now remapped
as an entry point to Rf_logspace_sum, and its first argument has
gained a const qualifier. (PR#16470)
Code using it will need to be reinstalled.
Similarly, entry point log1pexp also defined in Rmath.h is
remapped there to Rf_log1pexp
* R_GE_version has been increased to 11.
* New API call R_orderVector1, a faster one-argument version of
R_orderVector.
* When R headers such as R.h and Rmath.h are called from C++ code
in packages they include the C++ versions of system headers such
as <cmath> rather than the legacy headers such as <math.h>.
(Headers Rinternals.h and Rinterface.h already did, and inclusion
of system headers can still be circumvented by defining
NO_C_HEADERS, including as from this version for those two
headers.)
The manual has long said that R headers should *not* be included
within an extern "C" block, and almost all the packages affected
by this change were doing so.
* Including header S.h from C++ code would fail on some platforms,
and so gives a compilation error on all.
* The deprecated header Rdefines.h is now compatible with defining
R_NO_REMAP.
* The connections API now includes a function R_GetConnection()
which allows packages implementing connections to convert R
connection objects to Rconnection handles used in the API. Code
which previously used the low-level R-internal getConnection()
entry point should switch to the official API.
BUG FIXES:
* C-level asChar(x) is fixed for when x is not a vector, and it
returns "TRUE"/"FALSE" instead of "T"/"F" for logical vectors.
* The first arguments of .colSums() etc (with an initial dot) are
now named x rather than X (matching colSums()): thus error
messages are corrected.
* A coef() method for class "maov" has been added to allow vcov()
to work with multivariate results. (PR#16380)
* method = "libcurl" connections signal errors rather than
retrieving HTTP error pages (where the ISP reports the error).
* xpdrows.data.frame() was not checking for unique row names; in
particular, this affected assignment to non-existing rows via
numerical indexing. (PR#16570)
* tail.matrix() did not work for zero rows matrices, and could
produce row "labels" such as "[1e+05,]".
* Data frames with a column named "stringsAsFactors" now format and
print correctly. (PR#16580)
* cor() is now guaranteed to return a value with absolute value
less than or equal to 1. (PR#16638)
* Array subsetting now keeps names(dim(.)).
* Blocking socket connection selection recovers more gracefully on
signal interrupts.
* The data.frame method of rbind() construction row.names works
better in borderline integer cases, but may change the names
assigned. (PR#16666)
* (X11 only) getGraphicsEvent() miscoded buttons and missed mouse
motion events. (PR#16700)
* methods(round) now also lists round.POSIXt.
* tar() now works with the default files = NULL. (PR#16716)
* Jumps to outer contexts, for example in error recovery, now make
intermediate jumps to contexts where on.exit() actions are
established instead of trying to run all on.exit() actions before
jumping to the final target. This unwinds the stack gradually,
releases resources held on the stack, and significantly reduces
the chance of a segfault when running out of C stack space. Error
handlers established using withCallingHandlers() and
options("error") specifications are ignored when handling a C
stack overflow error as attempting one of these would trigger a
cascade of C stack overflow errors. (These changes resolve
PR#16753.)
* The spacing could be wrong when printing a complex array.
(Report and patch by Lukas Stadler.)
* pretty(d, n, min.n, *) for date-time objects d works again in
border cases with large min.n, returns a labels attribute also
for small-range dates and in such cases its returned length is
closer to the desired n. (PR#16761) Additionally, it finally
does cover the range of d, as it always claimed.
* tsp(x) <- NULL did not handle correctly objects inheriting from
both "ts" and "mts". (PR#16769)
* install.packages() could give false errors when
options("pkgType") was "binary". (Reported by Jose Claudio
Faria.)
* A bug fix in R 3.0.2 fixed problems with locator() in X11, but
introduced problems in Windows. Now both should be fixed.
(PR#15700)
* download.file() with method = "wininet" incorrectly warned of
download file length difference when reported length was unknown.
(PR#16805)
* diag(NULL, 1) crashed because of missed type checking.
(PR#16853)
herisvm project is a collection of simple tools implementing
evaluation algorithms for classification (machine learning).
In particular heri-eval implements N-fold cross-validation
where training and testing is run in parallel.
This may be useful if you use multi-CPU computer.
pkgsrc changes:
- swich to the GITHUB framework
- add functional test target
- update local patches
upstream changes:
NumPy 1.11.1 Release Notes
Numpy 1.11.1 supports Python 2.6 - 2.7 and 3.2 - 3.5. It fixes bugs and regressions found in Numpy 1.11.0 and includes several build related improvements. Wheels for Linux, Windows, and OSX can be found on pypi.
Fixes Merged
#7506 BUG: Make sure numpy imports on python 2.6 when nose is unavailable.
#7530 BUG: Floating exception with invalid axis in np.lexsort.
#7535 BUG: Extend glibc complex trig functions blacklist to glibc < 2.18.
#7551 BUG: Allow graceful recovery for no compiler.
#7558 BUG: Constant padding expected wrong type in constant_values.
#7578 BUG: Fix OverflowError in Python 3.x. in swig interface.
#7590 BLD: Fix configparser.InterpolationSyntaxError.
#7597 BUG: Make np.ma.take work on scalars.
#7608 BUG: linalg.norm(): Don't convert object arrays to float.
#7638 BLD: Correct C compiler customization in system_info.py.
#7654 BUG: ma.median of 1d array should return a scalar.
#7656 BLD: Remove hardcoded Intel compiler flag -xSSE4.2.
#7660 BUG: Temporary fix for str(mvoid) for object field types.
#7665 BUG: Fix incorrect printing of 1D masked arrays.
#7670 BUG: Correct initial index estimate in histogram.
#7671 BUG: Boolean assignment no GIL release when transfer needs API.
#7676 BUG: Fix handling of right edge of final histogram bin.
#7680 BUG: Fix np.clip bug NaN handling for Visual Studio 2015.
#7724 BUG: Fix segfaults in np.random.shuffle.
#7731 MAINT: Change mkl_info.dir_env_var from MKL to MKLROOT.
#7737 BUG: Fix issue on OS X with Python 3.x, npymath.ini not installed.
NumPy 1.11.0 Release Notes
This release supports Python 2.6 - 2.7 and 3.2 - 3.5 and contains a number of enhancements and improvements. Note also the build system changes listed below as they may have subtle effects.
No Windows (TM) binaries are provided for this release due to a broken toolchain. One of the providers of Python packages for Windows (TM) is your best bet.
Highlights
Details of these improvements can be found below.
The datetime64 type is now timezone naive.
A dtype parameter has been added to randint.
Improved detection of two arrays possibly sharing memory.
Automatic bin size estimation for np.histogram.
Speed optimization of A @ A.T and dot(A, A.T).
New function np.moveaxis for reordering array axes.
Build System Changes
Numpy now uses setuptools for its builds instead of plain distutils. This fixes usage of install_requires='numpy' in the setup.py files of projects that depend on Numpy (see gh-6551). It potentially affects the way that build/install methods for Numpy itself behave though. Please report any unexpected behavior on the Numpy issue tracker.
Bento build support and related files have been removed.
Single file build support and related files have been removed.
Future Changes
The following changes are scheduled for Numpy 1.12.0.
Support for Python 2.6, 3.2, and 3.3 will be dropped.
Relaxed stride checking will become the default. See the 1.8.0 release notes for a more extended discussion of what this change implies.
The behavior of the datetime64 "not a time" (NaT) value will be changed to match that of floating point "not a number" (NaN) values: all comparisons involving NaT will return False, except for NaT != NaT which will return True.
Indexing with floats will raise IndexError, e.g., a[0, 0.0].
Indexing with non-integer array_like will raise IndexError, e.g., a['1', '2']
Indexing with multiple ellipsis will raise IndexError, e.g., a[..., ...].
Non-integers used as index values will raise TypeError, e.g., in reshape, take, and specifying reduce axis.
In a future release the following changes will be made.
The rand function exposed in numpy.testing will be removed. That function is left over from early Numpy and was implemented using the Python random module. The random number generators from numpy.random should be used instead.
The ndarray.view method will only allow c_contiguous arrays to be viewed using a dtype of different size causing the last dimension to change. That differs from the current behavior where arrays that are f_contiguous but not c_contiguous can be viewed as a dtype type of different size causing the first dimension to change.
Slicing a MaskedArray will return views of both data and mask. Currently the mask is copy-on-write and changes to the mask in the slice do not propagate to the original mask. See the FutureWarnings section below for details.
Compatibility notes
datetime64 changes
In prior versions of NumPy the experimental datetime64 type always stored times in UTC. By default, creating a datetime64 object from a string or printing it would convert from or to local time:
# old behavior
>>>> np.datetime64('2000-01-01T00:00:00')
numpy.datetime64('2000-01-01T00:00:00-0800') # note the timezone offset -08:00
A consensus of datetime64 users agreed that this behavior is undesirable and at odds with how datetime64 is usually used (e.g., by pandas). For most use cases, a timezone naive datetime type is preferred, similar to the datetime.datetime type in the Python standard library. Accordingly, datetime64 no longer assumes that input is in local time, nor does it print local times:
>>>> np.datetime64('2000-01-01T00:00:00')
numpy.datetime64('2000-01-01T00:00:00')
For backwards compatibility, datetime64 still parses timezone offsets, which it handles by converting to UTC. However, the resulting datetime is timezone naive:
>>> np.datetime64('2000-01-01T00:00:00-08')
DeprecationWarning: parsing timezone aware datetimes is deprecated;
this will raise an error in the future
numpy.datetime64('2000-01-01T08:00:00')
As a corollary to this change, we no longer prohibit casting between datetimes with date units and datetimes with time units. With timezone naive datetimes, the rule for casting from dates to times is no longer ambiguous.
linalg.norm return type changes
The return type of the linalg.norm function is now floating point without exception. Some of the norm types previously returned integers.
polynomial fit changes
The various fit functions in the numpy polynomial package no longer accept non-integers for degree specification.
np.dot now raises TypeError instead of ValueError
This behaviour mimics that of other functions such as np.inner. If the two arguments cannot be cast to a common type, it could have raised a TypeError or ValueError depending on their order. Now, np.dot will now always raise a TypeError.
FutureWarning to changed behavior
In np.lib.split an empty array in the result always had dimension (0,) no matter the dimensions of the array being split. This has been changed so that the dimensions will be preserved. A FutureWarning for this change has been in place since Numpy 1.9 but, due to a bug, sometimes no warning was raised and the dimensions were already preserved.
% and // operators
These operators are implemented with the remainder and floor_divide functions respectively. Those functions are now based around fmod and are computed together so as to be compatible with each other and with the Python versions for float types. The results should be marginally more accurate or outright bug fixes compared to the previous results, but they may differ significantly in cases where roundoff makes a difference in the integer returned by floor_divide. Some corner cases also change, for instance, NaN is always returned for both functions when the divisor is zero, divmod(1.0, inf) returns (0.0, 1.0) except on MSVC 2008, and divmod(-1.0, inf) returns (-1.0, inf).
C API
Removed the check_return and inner_loop_selector members of the PyUFuncObject struct (replacing them with reserved slots to preserve struct layout). These were never used for anything, so it's unlikely that any third-party code is using them either, but we mention it here for completeness.
object dtype detection for old-style classes
In python 2, objects which are instances of old-style user-defined classes no longer automatically count as 'object' type in the dtype-detection handler. Instead, as in python 3, they may potentially count as sequences, but only if they define both a __len__ and a __getitem__ method. This fixes a segfault and inconsistency between python 2 and 3.
New Features
np.histogram now provides plugin estimators for automatically estimating the optimal number of bins. Passing one of ['auto', 'fd', 'scott', 'rice', 'sturges'] as the argument to 'bins' results in the corresponding estimator being used.
A benchmark suite using Airspeed Velocity has been added, converting the previous vbench-based one. You can run the suite locally via python runtests.py --bench. For more details, see benchmarks/README.rst.
A new function np.shares_memory that can check exactly whether two arrays have memory overlap is added. np.may_share_memory also now has an option to spend more effort to reduce false positives.
SkipTest and KnownFailureException exception classes are exposed in the numpy.testing namespace. Raise them in a test function to mark the test to be skipped or mark it as a known failure, respectively.
f2py.compile has a new extension keyword parameter that allows the fortran extension to be specified for generated temp files. For instance, the files can be specifies to be *.f90. The verbose argument is also activated, it was previously ignored.
A dtype parameter has been added to np.random.randint Random ndarrays of the following types can now be generated:
np.bool,
np.int8, np.uint8,
np.int16, np.uint16,
np.int32, np.uint32,
np.int64, np.uint64,
np.int_ ``, ``np.intp
The specification is by precision rather than by C type. Hence, on some platforms np.int64 may be a long instead of long long even if the specified dtype is long long because the two may have the same precision. The resulting type depends on which C type numpy uses for the given precision. The byteorder specification is also ignored, the generated arrays are always in native byte order.
A new np.moveaxis function allows for moving one or more array axes to a new position by explicitly providing source and destination axes. This function should be easier to use than the current rollaxis function as well as providing more functionality.
The deg parameter of the various numpy.polynomial fits has been extended to accept a list of the degrees of the terms to be included in the fit, the coefficients of all other terms being constrained to zero. The change is backward compatible, passing a scalar deg will behave as before.
A divmod function for float types modeled after the Python version has been added to the npy_math library.
Improvements
np.gradient now supports an axis argument
The axis parameter was added to np.gradient for consistency. It allows to specify over which axes the gradient is calculated.
np.lexsort now supports arrays with object data-type
The function now internally calls the generic npy_amergesort when the type does not implement a merge-sort kind of argsort method.
np.ma.core.MaskedArray now supports an order argument
When constructing a new MaskedArray instance, it can be configured with an order argument analogous to the one when calling np.ndarray. The addition of this argument allows for the proper processing of an order argument in several MaskedArray-related utility functions such as np.ma.core.array and np.ma.core.asarray.
Memory and speed improvements for masked arrays
Creating a masked array with mask=True (resp. mask=False) now uses np.ones (resp. np.zeros) to create the mask, which is faster and avoid a big memory peak. Another optimization was done to avoid a memory peak and useless computations when printing a masked array.
ndarray.tofile now uses fallocate on linux
The function now uses the fallocate system call to reserve sufficient disk space on file systems that support it.
Optimizations for operations of the form A.T @ A and A @ A.T
Previously, gemm BLAS operations were used for all matrix products. Now, if the matrix product is between a matrix and its transpose, it will use syrk BLAS operations for a performance boost. This optimization has been extended to @, numpy.dot, numpy.inner, and numpy.matmul.
Note: Requires the transposed and non-transposed matrices to share data.
np.testing.assert_warns can now be used as a context manager
This matches the behavior of assert_raises.
Speed improvement for np.random.shuffle
np.random.shuffle is now much faster for 1d ndarrays.
Changes
Pyrex support was removed from numpy.distutils
The method build_src.generate_a_pyrex_source will remain available; it has been monkeypatched by users to support Cython instead of Pyrex. It's recommended to switch to a better supported method of build Cython extensions though.
np.broadcast can now be called with a single argument
The resulting object in that case will simply mimic iteration over a single array. This change obsoletes distinctions like
if len(x) == 1:
shape = x[0].shape
else:
shape = np.broadcast(*x).shape
Instead, np.broadcast can be used in all cases.
np.trace now respects array subclasses
This behaviour mimics that of other functions such as np.diagonal and ensures, e.g., that for masked arrays np.trace(ma) and ma.trace() give the same result.
np.dot now raises TypeError instead of ValueError
This behaviour mimics that of other functions such as np.inner. If the two arguments cannot be cast to a common type, it could have raised a TypeError or ValueError depending on their order. Now, np.dot will now always raise a TypeError.
linalg.norm return type changes
The linalg.norm function now does all its computations in floating point and returns floating results. This change fixes bugs due to integer overflow and the failure of abs with signed integers of minimum value, e.g., int8(-128). For consistancy, floats are used even where an integer might work.
Deprecations
Views of arrays in Fortran order
The F_CONTIGUOUS flag was used to signal that views using a dtype that changed the element size would change the first index. This was always problematical for arrays that were both F_CONTIGUOUS and C_CONTIGUOUS because C_CONTIGUOUS took precedence. Relaxed stride checking results in more such dual contiguous arrays and breaks some existing code as a result. Note that this also affects changing the dtype by assigning to the dtype attribute of an array. The aim of this deprecation is to restrict views to C_CONTIGUOUS arrays at some future time. A work around that is backward compatible is to use a.T.view(...).T instead. A parameter may also be added to the view method to explicitly ask for Fortran order views, but that will not be backward compatible.
Invalid arguments for array ordering
It is currently possible to pass in arguments for the order parameter in methods like array.flatten or array.ravel that were not one of the following: 'C', 'F', 'A', 'K' (note that all of these possible values are both unicode and case insensitive). Such behavior will not be allowed in future releases.
Random number generator in the testing namespace
The Python standard library random number generator was previously exposed in the testing namespace as testing.rand. Using this generator is not recommended and it will be removed in a future release. Use generators from numpy.random namespace instead.
Random integer generation on a closed interval
In accordance with the Python C API, which gives preference to the half-open interval over the closed one, np.random.random_integers is being deprecated in favor of calling np.random.randint, which has been enhanced with the dtype parameter as described under "New Features". However, np.random.random_integers will not be removed anytime soon.
FutureWarnings
Assigning to slices/views of MaskedArray
Currently a slice of a masked array contains a view of the original data and a copy-on-write view of the mask. Consequently, any changes to the slice's mask will result in a copy of the original mask being made and that new mask being changed rather than the original. For example, if we make a slice of the original like so, view = original[:], then modifications to the data in one array will affect the data of the other but, because the mask will be copied during assignment operations, changes to the mask will remain local. A similar situation occurs when explicitly constructing a masked array using MaskedArray(data, mask), the returned array will contain a view of data but the mask will be a copy-on-write view of mask.
In the future, these cases will be normalized so that the data and mask arrays are treated the same way and modifications to either will propagate between views. In 1.11, numpy will issue a MaskedArrayFutureWarning warning whenever user code modifies the mask of a view that in the future may cause values to propagate back to the original. To silence these warnings and make your code robust against the upcoming changes, you have two options: if you want to keep the current behavior, call masked_view.unshare_mask() before modifying the mask. If you want to get the future behavior early, use masked_view._sharedmask = False. However, note that setting the _sharedmask attribute will break following explicit calls to masked_view.unshare_mask().
NumPy 1.10.4 Release Notes
This release is a bugfix source release motivated by a segfault regression. No windows binaries are provided for this release, as there appear to be bugs in the toolchain we use to generate those files. Hopefully that problem will be fixed for the next release. In the meantime, we suggest using one of the providers of windows binaries.
Compatibility notes
The trace function now calls the trace method on subclasses of ndarray, except for matrix, for which the current behavior is preserved. This is to help with the units package of AstroPy and hopefully will not cause problems.
Issues Fixed
gh-6922 BUG: numpy.recarray.sort segfaults on Windows.
gh-6937 BUG: busday_offset does the wrong thing with modifiedpreceding roll.
gh-6949 BUG: Type is lost when slicing a subclass of recarray.
Merged PRs
The following PRs have been merged into 1.10.4. When the PR is a backport, the PR number for the original PR against master is listed.
gh-6840 TST: Update travis testing script in 1.10.x
gh-6843 BUG: Fix use of python 3 only FileNotFoundError in test_f2py.
gh-6884 REL: Update pavement.py and setup.py to reflect current version.
gh-6916 BUG: Fix test_f2py so it runs correctly in runtests.py.
gh-6924 BUG: Fix segfault gh-6922.
gh-6942 Fix datetime roll='modifiedpreceding' bug.
gh-6943 DOC,BUG: Fix some latex generation problems.
gh-6950 BUG trace is not subclass aware, np.trace(ma) != ma.trace().
gh-6952 BUG recarray slices should preserve subclass.
NumPy 1.10.3 Release Notes
N/A this release did not happen due to various screwups involving PyPi.
NumPy 1.10.2 Release Notes
This release deals with a number of bugs that turned up in 1.10.1 and adds various build and release improvements.
Numpy 1.10.1 supports Python 2.6 - 2.7 and 3.2 - 3.5.
Compatibility notes
Relaxed stride checking is no longer the default
There were back compatibility problems involving views changing the dtype of multidimensional Fortran arrays that need to be dealt with over a longer timeframe.
Fix swig bug in numpy.i
Relaxed stride checking revealed a bug in array_is_fortran(a), that was using PyArray_ISFORTRAN to check for Fortran contiguity instead of PyArray_IS_F_CONTIGUOUS. You may want to regenerate swigged files using the updated numpy.i
Deprecate views changing dimensions in fortran order
This deprecates assignment of a new descriptor to the dtype attribute of a non-C-contiguous array if it result in changing the shape. This effectively bars viewing a multidimensional Fortran array using a dtype that changes the element size along the first axis.
The reason for the deprecation is that, when relaxed strides checking is enabled, arrays that are both C and Fortran contiguous are always treated as C contiguous which breaks some code that depended the two being mutually exclusive for non-scalar arrays of ndim > 1. This deprecation prepares the way to always enable relaxed stride checking.
Issues Fixed
gh-6019 Masked array repr fails for structured array with multi-dimensional column.
gh-6462 Median of empty array produces IndexError.
gh-6467 Performance regression for record array access.
gh-6468 numpy.interp uses 'left' value even when x[0]==xp[0].
gh-6475 np.allclose returns a memmap when one of its arguments is a memmap.
gh-6491 Error in broadcasting stride_tricks array.
gh-6495 Unrecognized command line option '-ffpe-summary' in gfortran.
gh-6497 Failure of reduce operation on recarrays.
gh-6498 Mention change in default casting rule in 1.10 release notes.
gh-6530 The partition function errors out on empty input.
gh-6532 numpy.inner return wrong inaccurate value sometimes.
gh-6563 Intent(out) broken in recent versions of f2py.
gh-6569 Cannot run tests after 'python setup.py build_ext -i'
gh-6572 Error in broadcasting stride_tricks array component.
gh-6575 BUG: Split produces empty arrays with wrong number of dimensions
gh-6590 Fortran Array problem in numpy 1.10.
gh-6602 Random __all__ missing choice and dirichlet.
gh-6611 ma.dot no longer always returns a masked array in 1.10.
gh-6618 NPY_FORTRANORDER in make_fortran() in numpy.i
gh-6636 Memory leak in nested dtypes in numpy.recarray
gh-6641 Subsetting recarray by fields yields a structured array.
gh-6667 ma.make_mask handles ma.nomask input incorrectly.
gh-6675 Optimized blas detection broken in master and 1.10.
gh-6678 Getting unexpected error from: X.dtype = complex (or Y = X.view(complex))
gh-6718 f2py test fail in pip installed numpy-1.10.1 in virtualenv.
gh-6719 Error compiling Cython file: Pythonic division not allowed without gil.
gh-6771 Numpy.rec.fromarrays losing dtype metadata between versions 1.9.2 and 1.10.1
gh-6781 The travis-ci script in maintenance/1.10.x needs fixing.
gh-6807 Windows testing errors for 1.10.2
Merged PRs
The following PRs have been merged into 1.10.2. When the PR is a backport, the PR number for the original PR against master is listed.
gh-5773 MAINT: Hide testing helper tracebacks when using them with pytest.
gh-6094 BUG: Fixed a bug with string representation of masked structured arrays.
gh-6208 MAINT: Speedup field access by removing unneeded safety checks.
gh-6460 BUG: Replacing the os.environ.clear by less invasive procedure.
gh-6470 BUG: Fix AttributeError in numpy distutils.
gh-6472 MAINT: Use Python 3.5 instead of 3.5-dev for travis 3.5 testing.
gh-6474 REL: Update Paver script for sdist and auto-switch test warnings.
gh-6478 BUG: Fix Intel compiler flags for OS X build.
gh-6481 MAINT: LIBPATH with spaces is now supported Python 2.7+ and Win32.
gh-6487 BUG: Allow nested use of parameters in definition of arrays in f2py.
gh-6488 BUG: Extend common blocks rather than overwriting in f2py.
gh-6499 DOC: Mention that default casting for inplace operations has changed.
gh-6500 BUG: Recarrays viewed as subarrays don't convert to np.record type.
gh-6501 REL: Add "make upload" command for built docs, update "make dist".
gh-6526 BUG: Fix use of __doc__ in setup.py for -OO mode.
gh-6527 BUG: Fix the IndexError when taking the median of an empty array.
gh-6537 BUG: Make ma.atleast_* with scalar argument return arrays.
gh-6538 BUG: Fix ma.masked_values does not shrink mask if requested.
gh-6546 BUG: Fix inner product regression for non-contiguous arrays.
gh-6553 BUG: Fix partition and argpartition error for empty input.
gh-6556 BUG: Error in broadcast_arrays with as_strided array.
gh-6558 MAINT: Minor update to "make upload" doc build command.
gh-6562 BUG: Disable view safety checks in recarray.
gh-6567 BUG: Revert some import * fixes in f2py.
gh-6574 DOC: Release notes for Numpy 1.10.2.
gh-6577 BUG: Fix for #6569, allowing build_ext --inplace
gh-6579 MAINT: Fix mistake in doc upload rule.
gh-6596 BUG: Fix swig for relaxed stride checking.
gh-6606 DOC: Update 1.10.2 release notes.
gh-6614 BUG: Add choice and dirichlet to numpy.random.__all__.
gh-6621 BUG: Fix swig make_fortran function.
gh-6628 BUG: Make allclose return python bool.
gh-6642 BUG: Fix memleak in _convert_from_dict.
gh-6643 ENH: make recarray.getitem return a recarray.
gh-6653 BUG: Fix ma dot to always return masked array.
gh-6668 BUG: ma.make_mask should always return nomask for nomask argument.
gh-6686 BUG: Fix a bug in assert_string_equal.
gh-6695 BUG: Fix removing tempdirs created during build.
gh-6697 MAINT: Fix spurious semicolon in macro definition of PyArray_FROM_OT.
gh-6698 TST: test np.rint bug for large integers.
gh-6717 BUG: Readd fallback CBLAS detection on linux.
gh-6721 BUG: Fix for #6719.
gh-6726 BUG: Fix bugs exposed by relaxed stride rollback.
gh-6757 BUG: link cblas library if cblas is detected.
gh-6756 TST: only test f2py, not f2py2.7 etc, fixes#6718.
gh-6747 DEP: Deprecate changing shape of non-C-contiguous array via descr.
gh-6775 MAINT: Include from __future__ boilerplate in some files missing it.
gh-6780 BUG: metadata is not copied to base_dtype.
gh-6783 BUG: Fix travis ci testing for new google infrastructure.
gh-6785 BUG: Quick and dirty fix for interp.
gh-6813 TST,BUG: Make test_mvoid_multidim_print work for 32 bit systems.
gh-6817 BUG: Disable 32-bit msvc9 compiler optimizations for npy_rint.
gh-6819 TST: Fix test_mvoid_multidim_print failures on Python 2.x for Windows.
Initial support for mingwpy was reverted as it was causing problems for non-windows builds.
gh-6536 BUG: Revert gh-5614 to fix non-windows build problems
A fix for np.lib.split was reverted because it resulted in "fixing" behavior that will be present in the Numpy 1.11 and that was already present in Numpy 1.9. See the discussion of the issue at gh-6575 for clarification.
gh-6576 BUG: Revert gh-6376 to fix split behavior for empty arrays.
Relaxed stride checking was reverted. There were back compatibility problems involving views changing the dtype of multidimensional Fortran arrays that need to be dealt with over a longer timeframe.
gh-6735 MAINT: Make no relaxed stride checking the default for 1.10.
Notes
A bug in the Numpy 1.10.1 release resulted in exceptions being raised for RuntimeWarning and DeprecationWarning in projects depending on Numpy. That has been fixed.
NumPy 1.10.1 Release Notes
This release deals with a few build problems that showed up in 1.10.0. Most users would not have seen these problems. The differences are:
Compiling with msvc9 or msvc10 for 32 bit Windows now requires SSE2. This was the easiest fix for what looked to be some miscompiled code when SSE2 was not used. If you need to compile for 32 bit Windows systems without SSE2 support, mingw32 should still work.
Make compiling with VS2008 python2.7 SDK easier
Change Intel compiler options so that code will also be generated to support systems without SSE4.2.
Some _config test functions needed an explicit integer return in order to avoid the openSUSE rpmlinter erring out.
We ran into a problem with pipy not allowing reuse of filenames and a resulting proliferation of ..*.postN releases. Not only were the names getting out of hand, some packages were unable to work with the postN suffix.
Numpy 1.10.1 supports Python 2.6 - 2.7 and 3.2 - 3.5.
Commits:
45a3d84 DEP: Remove warning for full when dtype is set. 0c1a5df BLD: import setuptools to allow compile with VS2008 python2.7 sdk 04211c6 BUG: mask nan to 1 in ordered compare 826716f DOC: Document the reason msvc requires SSE2 on 32 bit platforms. 49fa187 BLD: enable SSE2 for 32-bit msvc 9 and 10 compilers dcbc4cc MAINT: remove Wreturn-type warnings from config checks d6564cb BLD: do not build exclusively for SSE4.2 processors 15cb66f BLD: do not build exclusively for SSE4.2 processors c38bc08 DOC: fix var. reference in percentile docstring 78497f4 DOC: Sync 1.10.0-notes.rst in 1.10.x branch with master.
NumPy 1.10.0 Release Notes
This release supports Python 2.6 - 2.7 and 3.2 - 3.5.
Highlights
numpy.distutils now supports parallel compilation via the --parallel/-j argument passed to setup.py build
numpy.distutils now supports additional customization via site.cfg to control compilation parameters, i.e. runtime libraries, extra linking/compilation flags.
Addition of np.linalg.multi_dot: compute the dot product of two or more arrays in a single function call, while automatically selecting the fastest evaluation order.
The new function np.stack provides a general interface for joining a sequence of arrays along a new axis, complementing np.concatenate for joining along an existing axis.
Addition of nanprod to the set of nanfunctions.
Support for the '@' operator in Python 3.5.
Dropped Support
The _dotblas module has been removed. CBLAS Support is now in Multiarray.
The testcalcs.py file has been removed.
The polytemplate.py file has been removed.
npy_PyFile_Dup and npy_PyFile_DupClose have been removed from npy_3kcompat.h.
splitcmdline has been removed from numpy/distutils/exec_command.py.
try_run and get_output have been removed from numpy/distutils/command/config.py
The a._format attribute is no longer supported for array printing.
Keywords skiprows and missing removed from np.genfromtxt.
Keyword old_behavior removed from np.correlate.
Future Changes
In array comparisons like arr1 == arr2, many corner cases involving strings or structured dtypes that used to return scalars now issue FutureWarning or DeprecationWarning, and in the future will be change to either perform elementwise comparisons or raise an error.
In np.lib.split an empty array in the result always had dimension (0,) no matter the dimensions of the array being split. In Numpy 1.11 that behavior will be changed so that the dimensions will be preserved. A FutureWarning for this change has been in place since Numpy 1.9 but, due to a bug, sometimes no warning was raised and the dimensions were already preserved.
The SafeEval class will be removed in Numpy 1.11.
The alterdot and restoredot functions will be removed in Numpy 1.11.
See below for more details on these changes.
Compatibility notes
Default casting rule change
Default casting for inplace operations has changed to 'same_kind'. For instance, if n is an array of integers, and f is an array of floats, then n += f will result in a TypeError, whereas in previous Numpy versions the floats would be silently cast to ints. In the unlikely case that the example code is not an actual bug, it can be updated in a backward compatible way by rewriting it as np.add(n, f, out=n, casting='unsafe'). The old 'unsafe' default has been deprecated since Numpy 1.7.
numpy version string
The numpy version string for development builds has been changed from x.y.z.dev-githash to x.y.z.dev0+githash (note the +) in order to comply with PEP 440.
relaxed stride checking
NPY_RELAXED_STRIDE_CHECKING is now true by default.
UPDATE: In 1.10.2 the default value of NPY_RELAXED_STRIDE_CHECKING was changed to false for back compatibility reasons. More time is needed before it can be made the default. As part of the roadmap a deprecation of dimension changing views of f_contiguous not c_contiguous arrays was also added.
Concatenation of 1d arrays along any but axis=0 raises IndexError
Using axis != 0 has raised a DeprecationWarning since NumPy 1.7, it now raises an error.
np.ravel, np.diagonal and np.diag now preserve subtypes
There was inconsistent behavior between x.ravel() and np.ravel(x), as well as between x.diagonal() and np.diagonal(x), with the methods preserving subtypes while the functions did not. This has been fixed and the functions now behave like the methods, preserving subtypes except in the case of matrices. Matrices are special cased for backward compatibility and still return 1-D arrays as before. If you need to preserve the matrix subtype, use the methods instead of the functions.
rollaxis and swapaxes always return a view
Previously, a view was returned except when no change was made in the order of the axes, in which case the input array was returned. A view is now returned in all cases.
nonzero now returns base ndarrays
Previously, an inconsistency existed between 1-D inputs (returning a base ndarray) and higher dimensional ones (which preserved subclasses). Behavior has been unified, and the return will now be a base ndarray. Subclasses can still override this behavior by providing their own nonzero method.
C API
The changes to swapaxes also apply to the PyArray_SwapAxes C function, which now returns a view in all cases.
The changes to nonzero also apply to the PyArray_Nonzero C function, which now returns a base ndarray in all cases.
The dtype structure (PyArray_Descr) has a new member at the end to cache its hash value. This shouldn't affect any well-written applications.
The change to the concatenation function DeprecationWarning also affects PyArray_ConcatenateArrays,
recarray field return types
Previously the returned types for recarray fields accessed by attribute and by index were inconsistent, and fields of string type were returned as chararrays. Now, fields accessed by either attribute or indexing will return an ndarray for fields of non-structured type, and a recarray for fields of structured type. Notably, this affect recarrays containing strings with whitespace, as trailing whitespace is trimmed from chararrays but kept in ndarrays of string type. Also, the dtype.type of nested structured fields is now inherited.
recarray views
Viewing an ndarray as a recarray now automatically converts the dtype to np.record. See new record array documentation. Additionally, viewing a recarray with a non-structured dtype no longer converts the result's type to ndarray - the result will remain a recarray.
'out' keyword argument of ufuncs now accepts tuples of arrays
When using the 'out' keyword argument of a ufunc, a tuple of arrays, one per ufunc output, can be provided. For ufuncs with a single output a single array is also a valid 'out' keyword argument. Previously a single array could be provided in the 'out' keyword argument, and it would be used as the first output for ufuncs with multiple outputs, is deprecated, and will result in a DeprecationWarning now and an error in the future.
byte-array indices now raises an IndexError
Indexing an ndarray using a byte-string in Python 3 now raises an IndexError instead of a ValueError.
Masked arrays containing objects with arrays
For such (rare) masked arrays, getting a single masked item no longer returns a corrupted masked array, but a fully masked version of the item.
Median warns and returns nan when invalid values are encountered
Similar to mean, median and percentile now emits a Runtime warning and returns NaN in slices where a NaN is present. To compute the median or percentile while ignoring invalid values use the new nanmedian or nanpercentile functions.
Functions available from numpy.ma.testutils have changed
All functions from numpy.testing were once available from numpy.ma.testutils but not all of them were redefined to work with masked arrays. Most of those functions have now been removed from numpy.ma.testutils with a small subset retained in order to preserve backward compatibility. In the long run this should help avoid mistaken use of the wrong functions, but it may cause import problems for some.
New Features
Reading extra flags from site.cfg
Previously customization of compilation of dependency libraries and numpy itself was only accomblishable via code changes in the distutils package. Now numpy.distutils reads in the following extra flags from each group of the site.cfg:
runtime_library_dirs/rpath, sets runtime library directories to override
LD_LIBRARY_PATH
extra_compile_args, add extra flags to the compilation of sources
extra_link_args, add extra flags when linking libraries
This should, at least partially, complete user customization.
np.cbrt to compute cube root for real floats
np.cbrt wraps the C99 cube root function cbrt. Compared to np.power(x, 1./3.) it is well defined for negative real floats and a bit faster.
numpy.distutils now allows parallel compilation
By passing --parallel=n or -j n to setup.py build the compilation of extensions is now performed in n parallel processes. The parallelization is limited to files within one extension so projects using Cython will not profit because it builds extensions from single files.
genfromtxt has a new max_rows argument
A max_rows argument has been added to genfromtxt to limit the number of rows read in a single call. Using this functionality, it is possible to read in multiple arrays stored in a single file by making repeated calls to the function.
New function np.broadcast_to for invoking array broadcasting
np.broadcast_to manually broadcasts an array to a given shape according to numpy's broadcasting rules. The functionality is similar to broadcast_arrays, which in fact has been rewritten to use broadcast_to internally, but only a single array is necessary.
New context manager clear_and_catch_warnings for testing warnings
When Python emits a warning, it records that this warning has been emitted in the module that caused the warning, in a module attribute __warningregistry__. Once this has happened, it is not possible to emit the warning again, unless you clear the relevant entry in __warningregistry__. This makes is hard and fragile to test warnings, because if your test comes after another that has already caused the warning, you will not be able to emit the warning or test it. The context manager clear_and_catch_warnings clears warnings from the module registry on entry and resets them on exit, meaning that warnings can be re-raised.
cov has new fweights and aweights arguments
The fweights and aweights arguments add new functionality to covariance calculations by applying two types of weighting to observation vectors. An array of fweights indicates the number of repeats of each observation vector, and an array of aweights provides their relative importance or probability.
Support for the '@' operator in Python 3.5+
Python 3.5 adds support for a matrix multiplication operator '@' proposed in PEP465. Preliminary support for that has been implemented, and an equivalent function matmul has also been added for testing purposes and use in earlier Python versions. The function is preliminary and the order and number of its optional arguments can be expected to change.
New argument norm to fft functions
The default normalization has the direct transforms unscaled and the inverse transforms are scaled by 1/n . It is possible to obtain unitary transforms by setting the keyword argument norm to "ortho" (default is None) so that both direct and inverse transforms will be scaled by 1/\\sqrt{n} .
Improvements
np.digitize using binary search
np.digitize is now implemented in terms of np.searchsorted. This means that a binary search is used to bin the values, which scales much better for larger number of bins than the previous linear search. It also removes the requirement for the input array to be 1-dimensional.
np.poly now casts integer inputs to float
np.poly will now cast 1-dimensional input arrays of integer type to double precision floating point, to prevent integer overflow when computing the monic polynomial. It is still possible to obtain higher precision results by passing in an array of object type, filled e.g. with Python ints.
np.interp can now be used with periodic functions
np.interp now has a new parameter period that supplies the period of the input data xp. In such case, the input data is properly normalized to the given period and one end point is added to each extremity of xp in order to close the previous and the next period cycles, resulting in the correct interpolation behavior.
np.pad supports more input types for pad_width and constant_values
constant_values parameters now accepts NumPy arrays and float values. NumPy arrays are supported as input for pad_width, and an exception is raised if its values are not of integral type.
np.argmax and np.argmin now support an out argument
The out parameter was added to np.argmax and np.argmin for consistency with ndarray.argmax and ndarray.argmin. The new parameter behaves exactly as it does in those methods.
More system C99 complex functions detected and used
All of the functions in complex.h are now detected. There are new fallback implementations of the following functions.
npy_ctan,
npy_cacos, npy_casin, npy_catan
npy_ccosh, npy_csinh, npy_ctanh,
npy_cacosh, npy_casinh, npy_catanh
As a result of these improvements, there will be some small changes in returned values, especially for corner cases.
np.loadtxt support for the strings produced by the float.hex method
The strings produced by float.hex look like 0x1.921fb54442d18p+1, so this is not the hex used to represent unsigned integer types.
np.isclose properly handles minimal values of integer dtypes
In order to properly handle minimal values of integer types, np.isclose will now cast to the float dtype during comparisons. This aligns its behavior with what was provided by np.allclose.
np.allclose uses np.isclose internally.
np.allclose now uses np.isclose internally and inherits the ability to compare NaNs as equal by setting equal_nan=True. Subclasses, such as np.ma.MaskedArray, are also preserved now.
np.genfromtxt now handles large integers correctly
np.genfromtxt now correctly handles integers larger than 2**31-1 on 32-bit systems and larger than 2**63-1 on 64-bit systems (it previously crashed with an OverflowError in these cases). Integers larger than 2**63-1 are converted to floating-point values.
np.load, np.save have pickle backward compatibility flags
The functions np.load and np.save have additional keyword arguments for controlling backward compatibility of pickled Python objects. This enables Numpy on Python 3 to load npy files containing object arrays that were generated on Python 2.
MaskedArray support for more complicated base classes
Built-in assumptions that the baseclass behaved like a plain array are being removed. In particular, setting and getting elements and ranges will respect baseclass overrides of __setitem__ and __getitem__, and arithmetic will respect overrides of __add__, __sub__, etc.
Changes
dotblas functionality moved to multiarray
The cblas versions of dot, inner, and vdot have been integrated into the multiarray module. In particular, vdot is now a multiarray function, which it was not before.
stricter check of gufunc signature compliance
Inputs to generalized universal functions are now more strictly checked against the function's signature: all core dimensions are now required to be present in input arrays; core dimensions with the same label must have the exact same size; and output core dimension's must be specified, either by a same label input core dimension or by a passed-in output array.
views returned from np.einsum are writeable
Views returned by np.einsum will now be writeable whenever the input array is writeable.
np.argmin skips NaT values
np.argmin now skips NaT values in datetime64 and timedelta64 arrays, making it consistent with np.min, np.argmax and np.max.
Deprecations
Array comparisons involving strings or structured dtypes
Normally, comparison operations on arrays perform elementwise comparisons and return arrays of booleans. But in some corner cases, especially involving strings are structured dtypes, NumPy has historically returned a scalar instead. For example:
### Current behaviour
np.arange(2) == "foo"
# -> False
np.arange(2) < "foo"
# -> True on Python 2, error on Python 3
np.ones(2, dtype="i4,i4") == np.ones(2, dtype="i4,i4,i4")
# -> False
Continuing work started in 1.9, in 1.10 these comparisons will now raise FutureWarning or DeprecationWarning, and in the future they will be modified to behave more consistently with other comparison operations, e.g.:
### Future behaviour
np.arange(2) == "foo"
# -> array([False, False])
np.arange(2) < "foo"
# -> error, strings and numbers are not orderable
np.ones(2, dtype="i4,i4") == np.ones(2, dtype="i4,i4,i4")
# -> [False, False]
SafeEval
The SafeEval class in numpy/lib/utils.py is deprecated and will be removed in the next release.
alterdot, restoredot
The alterdot and restoredot functions no longer do anything, and are deprecated.
pkgload, PackageLoader
These ways of loading packages are now deprecated.
bias, ddof arguments to corrcoef
The values for the bias and ddof arguments to the corrcoef function canceled in the division implied by the correlation coefficient and so had no effect on the returned values.
We now deprecate these arguments to corrcoef and the masked array version ma.corrcoef.
Because we are deprecating the bias argument to ma.corrcoef, we also deprecate the use of the allow_masked argument as a positional argument, as its position will change with the removal of bias. allow_masked will in due course become a keyword-only argument.
dtype string representation changes
Since 1.6, creating a dtype object from its string representation, e.g. 'f4', would issue a deprecation warning if the size did not correspond to an existing type, and default to creating a dtype of the default size for the type. Starting with this release, this will now raise a TypeError.
The only exception is object dtypes, where both 'O4' and 'O8' will still issue a deprecation warning. This platform-dependent representation will raise an error in the next release.
In preparation for this upcoming change, the string representation of an object dtype, i.e. np.dtype(object).str, no longer includes the item size, i.e. will return '|O' instead of '|O4' or '|O8' as before.
Upstream changes:
0.66 - 16 Jun 2016, H.Merijn Brand
* Remove Spreadsheet::XLSX::Reader::LibXML test files from distribution
* Allow old versions of Spreadsheet::ParseXLSX to "fail" on percentage tests
0.65 - 15 Jun 2016, H.Merijn Brand
* Test with perl-5.24.0
* Show parser-version used under debug
* No more Spreadsheet::XLSX::Reader::LibXML
* Cells will inherit hidden state from hidden rows and columns
* Require 5.8.0 as 5.6.x does not include required Encode
0.64 - 22 Apr 2016, H.Merijn Brand
* It's 2016
* Allow inconsistent Spreadsheet::XLSX releases on Debian (tests)
* Decode utf-16be entries in Excel when appropriate
* Two examples in xlscat
0.63 - 10 Oct 2015, H.Merijn Brand
* Guard against negative MinRow in XLSX
* Documentation updated
* Support Spreadsheet::XLSX::Reader::LibXML disabled on author request
* Fix warning in utilities
* Check minimum parser version for pre-selected parser
0.62 - 16 Aug 2015, H.Merijn Brand
* Fix documentation structure
* Test all supported parsers (not just the preferred one)
* Basic support for Spreadsheet::XLSX::Reader::LibXML (work in progress)
* Copy example file if link fails (Alan Berndt)
* Add a contributing guide
0.61 - 13 Jun 2015, H.Merijn Brand
* Discourage Spreadsheet::XLSX
* A space is not an empty field in XLS
* Strip the correct selection (RT#105197)
0.60 - 30 Mar 2015, H.Merijn Brand
* No merged cell support in Spreadsheet::XLSX
0.59 - 26 Mar 2015, H.Merijn Brand
* Minimal support (+ docs) for merged cells
* Make parser errors report at one level up
* Don't select non-existing columns in xlscat
0.58 - 11 Feb 2015, H.Merijn Brand
* Remove perl recommendation from META as it breaks cpan clients
* Move sort instruction to correct place in xlscat's help
0.57 - 08 Feb 2015, H.Merijn Brand
* Moved project to github
* Add --sort to xlscat
* Clip before conversion
* Removed an unneeded localizing of $/ (related to p5 RT#123218)
0.56 - 05 Jan 2015, H.Merijn Brand
* printf does not play nice with encoding (related to RT#98436)
* default output UTF-8 if whole line is UTF-8
0.55 - 01 Jan 2015, H.Merijn Brand
* Mention Spreadsheet::CSV in documentation
* Add ssdiff to examples
* Amend xlscat -n to also number in HTML
* Updated copyright to 2015
Packaged for wip by Kamel Ibn Aziz Derouiche and myself.
Statsmodels is a Python package that provides a complement to scipy
for statistical computations including descriptive statistics and
estimation and inference for statistical models
Packaged for wip by Kamel Ibn Aziz Derouiche and myself.
A Python package for describing statistical models and for
Patsy is a Python library for describing statistical models
(especially linear models, or models that have a linear component)
and building design matrices. Patsy brings the convenience of R
formulas to Python.
Fix CPU detection patch while here.
Changes from 2.5.2 to 2.6.0
===========================
- Introduced a new re_evaluate() function for re-evaluating the
previous executed array expression without any check. This is meant
for accelerating loops that are re-evaluating the same expression
repeatedly without changing anything else than the operands. If
unsure, use evaluate() which is safer.
- The BLOCK_SIZE1 and BLOCK_SIZE2 constants have been re-checked in
order to find a value maximizing most of the benchmarks in bench/
directory. The new values (8192 and 16 respectively) give somewhat
better results (~5%) overall. The CPU used for fine tuning is a
relatively new Haswell processor (E3-1240 v3).
- The '--name' flag for `setup.py` returning the name of the package
is honored now (issue #215).
Changes from 2.5.1 to 2.5.2
===========================
- conj() and abs() actually added as VML-powered functions, preventing
the same problems than log10() before (PR #212). Thanks to Tom Kooij
for the fix!
Changes from 2.5 to 2.5.1
=========================
- Fix for log10() and conj() functions. These produced wrong results
when numexpr was compiled with Intel's MKL (which is a popular build
since Anaconda ships it by default) and non-contiguous data (issue
#210). Thanks to Arne de Laat and Tom Kooij for reporting and
providing a nice test unit.
- Fix that allows numexpr-powered apps to be profiled with pympler.
Thanks to @nbecker.
Changes from 2.4.6 to 2.5
=========================
- Added locking for allowing the use of numexpr in multi-threaded
callers (this does not prevent numexpr to use multiple cores
simultaneously). (PR #199, Antoine Pitrou, PR #200, Jenn Olsen).
- Added new min() and max() functions (PR #195, CJ Carey).
Changes from 2.4.5 to 2.4.6
===========================
- Fixed some UserWarnings in Solaris (PR #189, Graham Jones).
- Better handling of MSVC defines. (#168, Francesc Alted).
Changes from 2.4.4 to 2.4.5
===========================
- Undone a 'fix' for a harmless data race. (#185 Benedikt Reinartz,
Francesc Alted).
- Ignore NumPy warnings (overflow/underflow, divide by zero and
others) that only show up in Python3. Masking these warnings in
tests is fine because all the results are checked to be
valid. (#183, Francesc Alted).
Changes from 2.4.3 to 2.4.4
===========================
- Fix bad #ifdef for including stdint on Windows (PR #186, Mike Sarahan).
Changes from 2.4.3 to 2.4.4
===========================
* Honor OMP_NUM_THREADS as a fallback in case NUMEXPR_NUM_THREADS is not
set. Fixes#161. (PR #175, Stefan Erb).
* Added support for AppVeyor (PR #178 Andrea Bedini)
* Fix to allow numexpr to be imported after eventlet.monkey_patch(),
as suggested in #118 (PR #180 Ben Moran).
* Fix harmless data race that triggers false positives in ThreadSanitizer.
(PR #179, Clement Courbet).
* Fixed some string tests on Python 3 (PR #182, Antonio Valentino).
Changes from 2.4.2 to 2.4.3
===========================
* Comparisons with empty strings work correctly now. Fixes#121 and
PyTables #184.
Changes from 2.4.1 to 2.4.2
===========================
* Improved setup.py so that pip can query the name and version without
actually doing the installation. Thanks to Joris Borgdorff.
Changes from 2.4 to 2.4.1
=========================
* Added more configuration examples for compiling with MKL/VML
support. Thanks to Davide Del Vento.
* Symbol MKL_VML changed into MKL_DOMAIN_VML because the former is
deprecated in newer MKL. Thanks to Nick Papior Andersen.
* Better determination of methods in `cpuinfo` module. Thanks to Marc
Jofre.
* Improved NumPy version determination (handy for 1.10.0). Thanks
to Åsmund Hjulstad.
* Benchmarks run now with both Python 2 and Python 3. Thanks to Zoran
Plesivčak.
Changes from 2.3.1 to 2.4
=========================
* A new `contains()` function has been added for detecting substrings
in strings. Only plain strings (bytes) are supported for now. See
PR #135 and ticket #142. Thanks to Marcin Krol.
* New version of setup.py that allows better management of NumPy
dependency. See PR #133. Thanks to Aleks Bunin.
Changes from 2.3 to 2.3.1
=========================
* Added support for shift-left (<<) and shift-right (>>) binary operators.
See PR #131. Thanks to fish2000!
* Removed the rpath flag for the GCC linker, because it is probably
not necessary and it chokes to clang.
Upstream changes:
1.708 2015-11-01 14:33:27-05:00 America/New_York
[MAYBE JUST POSSIBLY A BREAKING CHANGE]
- ...but probably not
- fix the <=> operator to behave more predictably
- now implemented in terms of ==, <, and >
- thanks, Karen Etheridge!
1.707 2015-07-17 20:36:41-04:00 America/New_York
- do not lose a min or max of 0 when intersecting two tolerances
(thanks, Michael Carman!)