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!)
Upstream changes:
0.72 Sat Aug 29 21:51:19 2015
- The random seed was based on time of day and was a bit too
predictable. Applying patch provided by Jonathan Yu:
https://rt.cpan.org/Public/Bug/Display.html?id=48080
Done for version 2.7.6 (released 20/06/2016):
[last column crossreferences current development release 2.8.0]
Fixed
1- [from 2.7.5] O(1) == O(x) returned 0 [#1765]
2- matsolve(a,b) and a^(-1) gave wrong results [or SEGV] when t_MAT [F86]
a was not square and a,b "modular" (F2m,Flm,FpM,FqM,F2xqM,FlxqM)
same for x^(-1) [#1666]
3- e=ellinit("11a1"); ellztopoint(e,3*e.omega[1]/5)[2] wrong [#1683] [F97]
4- K.codiff incorrect if [K:Q] > 2 [F130]
5- nfrootsof1(polcyclo(85)) -> 85 instead of 170 [#1766] [F133]
6- at \p19, polroots((x+1)^2*(x-1)^7*(x^2-x+1)^5*1.0)-> SEGV [#1767] [F134]
BA 7- ellsea returned the trace instead of the cardinal as documented. [F135]
BA 8- ellsea(,,1) could return a wrong result [#1768] [F136]
MC 9- memory leak in pari_close: sopath not freed [F138]
10- isprimepower(30011^(3*17)) returned 0 [F141]
BA 11- [mpi] interrupt/alarm could cause a crash [F143]
BA 12- [mpi] relinking empty t_LIST caused a crash [F144]
BA 13- my(s=1,a=0);forstep(i=1,20,s,s++;a+=i);a -> wrong result [F146]
14- sqrt(0) -> loss of accuracy (sqrtn was correct) [F148]
15- K = bnrinit(bnfinit(y^2-5),[1,[1,1]]); bnrdisc(K) ->wrong [#1804] [F152]
16- ellztopoint(ellinit([-1,0]), I) -> wrong result [#1800] [F153]
Overview of changes in gnome-calculator 3.20.1
* Fix: precedence of root operator (Alexis Poirier and Alberto Ruiz)
* Update: Translation (Translation team)
--------------------------------------
0.34 Sun Apr 29 21:21:38 CEST 2012
Behavior of merge_range adjusted, now it works:
<merge_range> Content </ merge_range>. (As described in the POD)
Merge range formatting tends to collide with non-merged formatting,
thanks to Nigel Metheringham.
Fixed some documentation errors, thanks to Robert James Clay.
Made Spreadsheet::WriteExcel links in format docs more generic (Nigel Metheringham)
Added missing cell comment documentation
----------------------------------------------
2.40 2013-11-06
! Fix for minor typo/bug that caused issues with Math::BigInt.
RT 90061.
2.39 2013-06-06
! Added Debian patch for Pod encoding. RT #85897.
Thanks Gregor Herrmann.
2.38 2012-22-11
Maintenance release. Minor fixes only.
! Removed failing testcases to allow S::WE to be tested/packaged
on recent perls.
! Fix filter_column bug where filter is applied to the wrong column.
Merge pull request #4 from blazzy/master.
! Enabled set_zoom() for Chart worksheets. It was documented but
wasn't working. Reported by Praphull Kumar.
! Enabled set_tab_color() for Chart worksheets. It was documented
but wasn't working.
! Fix typo in docs. Closes RT#70432.
! Fix for rounding in test with longdoubles. Fixes RT#68954.
! Handle chart sheets with utf8 name. Fixes RT#67014.
! Fix for undefined formulas. Fixes RT#61560.
-------------------------------------
0.15
- revert a numeric formatting change which caused isssues with Spreadsheet::Read.
0.14
- change default date format to yyyy-mm-dd. This matches Spreadsheet::ParseExcel.
- handle xml tag attributes in varying order (RT #86667, et.al.)
2.010809
MakeMaker of 5.22 (and, maybe, 5.20) started to call test_dynamic target in the daughter Makefile.
Correct "{" in RExes of libPARI/gphelp.
Attempt to workaround a broken config of gcc on vendor's Perl on Solaris.
2.01080900
Repackage as zip
SciPy 0.17.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.17.x branch, and on adding new features on the
master branch.
This release requires Python 2.6, 2.7 or 3.2-3.5 and NumPy 1.6.2 or greater.
Release highlights:
* New functions for linear and nonlinear least squares optimization with
constraints: scipy.optimize.lsq_linear and scipy.optimize.least_squares
* Support for fitting with bounds in scipy.optimize.curve_fit.
* Significant improvements to scipy.stats, providing many functions with
better handing of inputs which have NaNs or are empty, improved
documentation, and consistent behavior between scipy.stats and
scipy.stats.mstats.
* Significant performance improvements and new functionality in
scipy.spatial.cKDTree.
SciPy 0.16.0 is the culmination of 7 months of hard work.
Highlights of this release include:
* A Cython API for BLAS/LAPACK in scipy.linalg
* A new benchmark suite. It’s now straightforward to add new benchmarks,
and they’re routinely included with performance enhancement PRs.
* Support for the second order sections (SOS) format in scipy.signal.
Overview of changes in gnome-calculator 3.20.0
* Update: Translation (Translation team)
Overview of changes in gnome-calculator 3.19.91
* Fix: Check for null on variables ought to autocomplete (fixes#762426) (Alberto Ruiz)
* Updated Czech translation (Marek Černocký)
* Updated Catalan translation (Jordi Mas)
* Updated Galician translations (Fran Dieguez)
* Updated Swedish translation (Anders Jonsson)
* Updated Serbian translation (Мирослав Николић)
* Updated Brazilian Portuguese translation (Fábio Nogueira)
Overview of changes in gnome-calculator 3.19.90
* New: Upgrade license for all source files to GPLv3+ (Michael Catanzaro)
* New: Use Soup instead of GVFS to download the IMF/ECB currency data (Alberto Ruiz)
* Fix: Silence a compiler warning (Michael Catanzaro)
* Fix: Remove Lithuanian litas from currency list (Michael Catanzaro)
* Fix: Fix use of GtkStyleContext for GTK+ 3.20 (Michael Catanzaro)
* Fix: Clarify license on number.vala (Michael Catanzaro)
* Fix: Clarify license on mpfr.vapi (Michael Catanzaro)
* Fix: Installed tests: Update expectations (Matthias Clasen)
* Fix: Set the accessible name on the mode chooser (Matthias Clasen)
* Fix: Do not reset second currency on first currency change, fixes#260166 (Robert Roth)
* Fix: Fix Chinese Yuan symbol, fixes#761075 (Alberto Ruiz)
* Fix: Add a missing tag to the AppData file (Richard Hughes)
* Update: Upgrade appdata (Michael Catanzaro)
* Update: Translation (Translation team)
Overview of changes in gnome-calculator 3.19.4
* New: Migrate MathConverter, MathWindow, HistoryView and HistoryEntry to GtkBuilder template (Alberto Ruiz)
* Fix: Remove unused -D defines from Makefile.am and configure.vapi for both src/ and lib/ (Alberto Ruiz)
* Fix: Check if base exponent are complex for xpowy() method (Gerlof Fokkema)
* Fix: Prevent infinte loop on some operations with imaginary numbers, bug #757657 (Kyle Green)
* Fix: e^(-0.5) returned the wrong value, bug #756960 (Felix Pelletier)
* Fix: Missing mnemonic bond in Gross Profit Margin dialog (Martin Simon)
* Fix: Use load_from_resource in the Gtk.CssProvider instead of opening the file manually (Alberto Ruiz)
* Fix: Use builddir for gresource.xml to satisfy Vala/autotools behaviour, bug #760679 (Michael Catanzaro)
* Fix: Rename gnome-calculator.doap name tag to GNOME Calculator instead of gnome-calculator (Alberto Ruiz)
* Fix: Use AM_DISTCHECK_CONFIGURE_FLAGS (Michael Catanzaro)
* Fix: MathDisplay grabs focus after being shown, bug #748743 (Elita.A.A.Lobo)
* Fix: math-equation: "No history" message should disappear when appropriate, bug #759943 (Michael Catanzaro)
* Update : Translation (Translation team)
Overview of changes in gnome-calculator 3.19.2
* Update : Translation (Translation team)
Overview of changes in gnome-calculator 3.19.1
* Fix : Explicitly link required libraries for gnome-calculator and gcalcmd binaries (Andreas Henriksson)
* Update : Translation (Translation team)
Overview of changes in gnome-calculator 3.18.0
* Fix : SYD function was returning the wrong value (Matthias Clasen)
* Fix : Fix dialogs sizing for financial functions (Matthias Clasen)
* Update : Translation (Translation team)
Overview of changes in gnome-calculator 3.17.92
* Update : Alberto Ruiz as new maintainer in doap file (Alberto Ruiz)
* Update : Build System improvements (Michael Catanzaro, Robert Ancell)
* Update : Portuguese, Polish and Chinese (Taiwan) translations (Translation team)
Overview of changes in gnome-calculator 3.17.3
* Update : Stop using gnome-common (Robert Ancell)
* Fix : Remove incorrect assertion in search provider (Michael Catanzaro)
Overview of changes in gnome-calculator 3.17.2
* Update : Split many files into an internal convenience library (Michael Catanzaro)
* Update : Remove workaround for bug #737222 (Michael Catanzaro)
* Update : Translations (Translation team)
* Fix : Search provider should discard child stdout/stderr (Michael Catanzaro)
* Fix : Syntax error in desktop file keywords Bosnian translation (Kalev Lember)
Overview of changes in gnome-calculator 3.16.0
* Update : Translations (Translation team)
nloptr is an R interface to NLopt. NLopt is a free/open-source library
for nonlinear optimization, providing a common interface for a number
of different free optimization routines available online as well as
original implementations of various other algorithms.
3.2.4
NEW FEATURES
install.packages() and related functions now give a more informative
warning when an attempt is made to install a base package.
summary(x) now prints with less rounding when x contains infinite values.
provideDimnames() gets an optional unique argument.
shQuote() gains type = "cmd2" for quoting in cmd.exe in Windows.
The data.frame method of rbind() gains an optional argument stringsAsFactors
(instead of only depending on getOption("stringsAsFactors")).
smooth(x, *) now also works for long vectors.
tools::texi2dvi() has a workaround for problems with the texi2dvi script
supplied by texinfo 6.1.
It extracts more error messages from the LaTeX logs when in emulation mode.
DEPRECATED AND DEFUNCT
Use of SUPPORT_OPENMP from header ‘Rconfig.h’ is deprecated in favour of
the standard OpenMP define _OPENMP.
(This has been the recommendation in the manual for a while now.)
The make macro AWK which is long unused by R itself but recorded in file
‘etc/Makeconf’ is deprecated and will be removed in R 3.3.0.
The C header file ‘S.h’ is no longer documented: its use should be
replaced by ‘R.h’.
3.2.3
NEW FEATURES
Some recently-added Windows time zone names have been added to the
conversion table used to convert these to Olson names. (Including
those relating to changes for Russia in Oct 2014, as in PR#16503.)
(Windows) Compatibility information has been added to the manifests
for ‘Rgui.exe’, ‘Rterm.exe’ and ‘Rscript.exe’. This should allow
win.version() and Sys.info() to report the actual Windows version up
to Windows 10.
Windows "wininet" FTP first tries EPSV / PASV mode rather than only
using active mode (reported by Dan Tenenbaum).
which.min(x) and which.max(x) may be much faster for logical and integer
x and now also work for long vectors.
The ‘emulation’ part of tools::texi2dvi() has been somewhat enhanced,
including supporting quiet = TRUE. It can be selected by texi2dvi =
"emulation".
(Windows) MiKTeX removed its texi2dvi.exe command in Sept 2015:
tools::texi2dvi() tries texify.exe if it is not found.
(Windows only) Shortcuts for printing and saving have been added to
menus in Rgui.exe.
loess(..., iterTrace=TRUE) now provides diagnostics for robustness
iterations, and the print() method for summary(<loess>) shows slightly
more.
The included version of PCRE has been updated to 8.38, a bug-fix release.
View() now displays nested data frames in a more friendly way.
Upstream changes:
Changes in version 1.0-5 (2016-02-02)
o improvements in quantile estimation
Changes in version 1.0-4 (2016-01-19)
o a new algorithm for quantile estimation, again. Quantiles are
now computed by a stochastic root finding algorithm. Note
that f.quantile in the output of qmv{t,norm} is now (again)
the squared difference between the cdf evaluated at the
quantile and the level. The \code{interval} argument to the
quantile functions is used as a starting value for the
root finder when available.
o clean-ups in C and R code and documentation
Changes in version 1.0-3 (2015-07-21)
o new algorithm for quantile estimation. Quantiles are
now computed by minimising the squared distance between the
distribution function and the probability whereas previous versions
used uniroot(). The procedure is now performed multiple times with
difference random seeds in order to stabilise the results. The
\code{interval} argument to the quantile functions is IGNORED now.
Upstream changes:
0.04
13 Jul 2015
- Whitespace and POD clean up. Functions are described
individually.
- Added error checking for the array lengths.
- Modernized the use of EXPORT, added a minimum perl version, etc.
0.03
26 May 2015
- Remove pod-coverage.t from the test directory.
0.02
17 May 2015
- Get package up to more-or-less current standards using
Module-Starter. Tests and documentation updates come
with the next release.
Some improvements were made in the primal and dual simplex
solvers to make the solution process more numerically stable.
An experimental long-step ratio test feature was added to the
dual simplex. On API level this feature is available thru the
GLP_RT_FLIP option. For glpsol it is available thru the options
--flip (for MIP) or --flip and --dual (for LP). This feature is
not documented yet.
Additional check was added to reject wrong solutions sometimes
reported by the PROXY heuristic.
A bug (memory leak) was fixed in the FPUMP heuristic routine.
The header sql.h was renamed to avoid conflicts with standard
ODBC headers.
Upstream changes:
Maxima 5.38 change log
New items in core:
commit [ae11414]: Images in the HTML manual now are automatically shrinked to fit within the browser window, if neeeded.
commit [d817ac5]: A singlepage HTML manual (doc/info/maxima_singlepage.html)
commit [2b0f8c4]: Docu/Creating a release: Added a request to inform the wxMaxima team that aims to make a simultaneous release.
commits [b2302ed]-[fcbb0e4]: Commit charsets package as posted by Michel Talon
commit [1818e0b]: Add configure option --enable-mathjax to enable usage of MathJax in the html docs
commit [7ca8a27]: Add simple documentation for bf_fft and bf_inverse_fft.
commit [d1def61]: Added a small GUI for Windows users for selecting their default Lisp interpreter.
commit [688f662]: Allow setting the Lisp type (MAXIMA_LISP=...) using maximarc on Windows.
commit [bdaf3c7]: Try to exit gracefully if we are unable to connect to a server
New items in share:
commits [68d866e]-[4d1f046]: draw: grid now not only accepts boolean values, but also a list of 2 numbers.
Changes in core:
commits [3631127]-[82aea3a]: Documentation: Add example images for the draw options.
commit [baa97e3]: Crosscompiling: update sbcl to the current version.
commit [eedadc7]: Adjust the tolerances of two li[2] numerical tests
commit [79d9dcd]: Prevent the removal of the integervalued feature during a reset()
commit [05b922f]: Work around bug in ecl that causes all tests to fail.
commit [f798207]: Removed the --dynamic-space-size option for sbcl.
commit [eba5341]: Fix bug in utf-8-fix-start-end and improve pseudo-unicode-support for GCL
commit [d95efeb]: WIP: Bigfloat FFT routines.
Changes in share:
commit [4ae042fc]: Split up implementation of FFT in a separate package
commit [473ea6c]: Add the draw package to autoload updating the documentation
commit [993aea7]: First attempt to rework numericalio.lisp for greater speed and memory efficiency.
Bug fixes:
commit [22f4fd0]: Apply patch in bug report 3120.
commit [c57712d]: Fix#3105: lis doesn't simplify.
commit [3b94068]: Fix#3112: inaccurate zeta(n) for negative even n.
commit [f7b7b06]: Fix#3098: li[3] nuemrical evaluation.
commit [689fdbc]: Fix SF bug report #3104: "limit(log(1 - exp(x)), x, 0, plus), numer => stack overflow"
commit [689fdbc]: Fix SF bug report #3103: "limit of li.. with numer:true infinite recursion"
commit [30d5d01]: Fix SF bug #3102: "find_root(x,x,-1e300,1e300) => overflow"
commit [0443536]: Fix SF bug report #3099: "Float read is single-precision, though float() is double-precision"
commit [33666cc]: Fix bug #481: ('m)[1] (meval)
commit [7398246]: Fixed bug #3075: '#3075 answer "3false" from "integrate(3asinh(x),x,-inf,inf)"'
commit [2c7bf01]: Fixed bug #3081 'abs(...) -> "bfloat: attempted conversion of floating-point infinity."'
commit [26375cd]: Fix#3069 limit(a/abs(x),x,0) crashes with stack overflow
commit [df38b65]: Fix bug:#3065.
commit [7409f45]: Fix bug #3058: Lingering assumptions after an interrupted simpsum
commit [0848773]: Add test for SF bug #2302: "'at' applied to definite integral"
commit [9c89d36]: A quick solution for Bug 3052
commit [0b6a9a1]: Fix SF bug #3049: "set should act like list"
commit [4b6c2df]: Fix SF bug #3045: "Save command now fails to generate lisp file"
commit [3c8d45b]: Fix bug #3044: opsubst crash
commit [38c5ac7]: Fix SourceForge bug #2159 - integration_with_logabs.
commit [20d4d93]: Fix SF bug #3003: make pdf returns an error.
commit [49a2df1]: Fix SourceForge bug #3017 - "integrate_use_rootsof" leads to wrong result.
commit [7c12736]: Add tests to verify that SF bug #365 is fixed. Add tests for related bug #3072
Unnumbered bugs:
commit [f4af2a1]: Use per-maxima-instance filenames for draw and plot. Without this simultaneous plotting from concurrent maxima instances might result in name collisions.
commit [5cc41da]: Allow sbcl to use enough memory to compile Lapack (linux+mac only).
commit [4be3d80]: Remove the two black lines at the border of the bounding box that were introduced with gnuplot 5.0
commit [592b38b]: Fix integrate((4x^3-x^2+4x)^(-2/3)(12x^2-2*x+4),x);
commits [f7b7b06]...[eedadc7]: li[2] and li[3] fixes.
commit [366b08f]: Try to fix the trace output when the lisp_print trace option is set
commit [b637368]: In MEVAL1, call GETCHARN only if argument is a symbol. Fixes bug reported to mailing list 2016-01-06
Upstream changlog:
Changes in hwde version 0.66
CORRECTIONS TO DATA
o Data in the dataset mendelABC was in error. Substantial corrections
have been made. (Thanks to Boris Igic for drawing the errrors to
our attention.)
Upstream changes:
2 February 2016: statmod 1.4.24
- speedup for rinvgauss() by replacing rchisq() with rnorm() and
rbinom() with runif().
- speedup for qinvgauss() by using qgamma as starting approximation
for very small right tail probabilities, and inverse chisq as
starting approximation for very small left tail probabilities.
- qinvgauss() now computes Newton step using log probabilities
and a Taylor series expansion for small steps. This improves
accuracy in extreme cases. The stopping criterion for the Newton
iteration has been revised.
- Bug fix to dinvgauss(), pinvgauss() and qinvgauss() which were not
preserving attributes of the first argument.
30 December 2015: statmod 1.4.23
- qinvgauss() has been improved to return best achievable machine
accuracy. It now checks for backtracking of the Newton iteration.
- dinvgauss() and pinvgauss() now check for a wider range of special
cases. This allows them to give valid results in some cases
for infinite or missing parameter values and for x outside the
support of the distribution.
26 October 2015: statmod 1.4.22
- Functions needed from the stats and graphics packages are now
explicitly imported into the package NAMESPACE.
Upstream changes:
3.0612 2016-01-09
- Move the VCS repository to GitHub.
- People are more used to it, and it can take part in the CPAN pull-req
challenge.
3.0611 2016-01-07
- Apply patch from Debian to correct a spelling error.
- https://rt.cpan.org/Ticket/Display.html?id=110987
- Thanks to Salvatore Bonaccorso for the report and patch.
3.0610 2016-01-06
- Clarified the docs for add_data_with_samples().
- Some people thought they were repeat counts of the data , but they
are normally ignored.
- Replace remaining tabs with spaces.
3.0609 2015-06-19
- Update some old URLs and addresses.
3.0608 2015-01-14
- Apply patch to speed up skewness calculations.
- https://rt.cpan.org/Public/Bug/Display.html?id=101422
- Thanks to Shawn (SLAFFAN).
Upstream changes:
0.11 Thu Oct 22 15:31:10 PDT 2015
fix one more typo
0.10 Wed Oct 21 19:56:19 PDT 2015
finish the typo corrections started in 0.09, sigh...
0.09 Wed Oct 21 18:53:44 PDT 2015
corrected numerous typos thanks to patch by
gregor herrmann <gregoa@debian.org>
Changes:
- New package implementing van Hoej factorization algorithm
for LODO-s.
- Gcd over Expression(Integer) now uses modular method.
- Improvements to integrator, in partucular trigonomoetric
functions are consistently integrated via transformation
to complex exponentials.
- Some categories and domains are more general. In particular
OrderedFreeMonoid is removed, as ordered case is handled
by FreeMonoid.
- Category Monad in renamed to Magma. Domain Magma is
renamed to FreeMagma.
Bug fixes, in particular:
- Coercion of square matrices to polynomials is fixed.
- Problem with division by 0 in derivative of 'ellipticPi'
is fixed.
- Division in Ore algebras used to cause infinite loop
when coefficients were power series.
This version comes with extra Linux tmp files; reported upstream as
https://github.com/SciRuby/rb-gsl/issues/34
Changes:
Support for gsl-2.1.0.
Support for nmatrix (not in pkgsrc yet)
Changes from version 3.1.3 to version 3.1.4:
- Improved MPFR manual.
- Bug fixes (see <http://www.mpfr.org/mpfr-3.1.3/#fixed> and ChangeLog file).
- MinGW (MS Windows): Added support for thread-safe DLL (shared library).
Bug numbers refer to the BTS at http://pari.math.u-bordeaux.fr/Bugs/
Done for version 2.7.5 (released 09/11/2015):
[last column crossreferences current development release 2.8.0]
Fixed
1- forprime engine could skip (fast) sieve in favour of (slow)
nextprime [#1711] [F113]
2- 0^[1] -> domain error [#1713] [F114]
3- memory leaks (clones) in ellchangecurve [#1716] [F115]
4- zeta inaccurate around 0 [#1714] [F116]
5- bnrrootnumber did not support the trivial character [0,..,0] [F118]
6- default(log,1) when logfile is write-protected later lead to SEGV [F119]
BA 7- 2-adic gamma function: fix accuracy loss [F120]
8- A==A -> 0 for A a t_SER of huge accuracy (so that A-A overflows
valuation) [#1734] [F121]
XR 9- P=Pol([1,-2,12,-12,-181,-4,-6899,9780,6360,702,-45]);
for(i=1,10000,setrand(i);nfdisc(P)) -> crash [#1735] [F122]
10- select(x->x,Vecsmall([1,2,3]),1) -> crash [#1737] [F123]
BA 11- [libpari] RgV_to_RgX_reverse did not work if v[1] or v[2] was 0 [F125]
12- bnfinit could fail at low precision [#1736] [F126]
13- Rg_to_ff: incorrect type in zk_to_ff [#1755] [F127]
BA 14- nfsubfields could fail [#1758] [F128]
15- rare SEGV in ArtinNumber [#1759] [F129]
Done for version 2.7.4 (released 19/06/2015):
[last column crossreferences current development release 2.8.0]
Fixed
1- divisors([2,1]) -> SEGV [#1664] [F84]
2- acos([Pol(1)]) -> GC bug [#1663] [F85]
3- primes([1,Pol(2)]) -> SEGV [#1668] [F87]
4- buffer overflow after default(format,"f.precision") [F95]
5- qfminim(A, 0, ...) -> stack overflow [#1682] [F97]
6- div_scal_rfrac could create an invalid t_POL [#1651] [F99]
7- polroots(t_POL with leading coeff = 0) -> fp exception [#1690] [F100]
8- \r cannot deal with very long filenames [#1616] [F101]
9- rnfisabelian(nf, non monic t_POL) -> SEGV [#1693] [F102]
10- possibly incorrect result in nfdisc(T,listP) [F104]
11- wrong dim(Ker) returned by ZM_pivot => SEGV in Z-linear algebra
routines. E.g. setrand(1);quadclassunit(-612556842419) [#1700] [F105]
12- moebius(factor(18)) -> 1 instead of 0 [#1702] [F106]
13- ispower(-167^10) => domain error [#1703] [F107]
14- ispowerful(factor(0)) != ispowerful(0) [F108]
15- expm1(2*I) => wrong result [F109]
16- gamma(1+a*x+O(x^2)) => error [#1707] [F110]
17- printsep() printed its argument in random format instead of f_RAW [F111]
18- nfdisc(x^10 - 29080*x^5 - 25772600) -> oo loop [#1710] [F112]
Added
ED 1- mingw64 support [A111]
Done for version 2.7.3 (released 18/02/2015):
[last column crossreferences current development release 2.8.0]
Fixed
1- [from 2.7.2] ??bnrL1 and ??ellL1 did not work anymore
2- thue(f^e*g, ...), e even, (f,g)=1 missed solutions such that f<0 [F22]
XR 3- bnrL1(bnrinit(bnfinit(x^2-168),[6,[1,1]],1)) -> bug in ArtinNumber [F55]
4- nfisincl(t_POL, t_POL) could lead to wrong negative results [F58]
5- polresultant(1+x*z^2,1+y*z^4,z) -> GC error [#1614] [F59]
BA 6- ellcard over non-prime fields could return wrong results [F60]
7- [libpari] FpX_roots could produce GC errors [#1618] [F61]
8- weber(1+I) was missing its imaginary part [F62]
9- (1+I)*(1+1/2*I) => wrong result (type errors) [#1619] [F63]
10- contfracpnqn([a]) => [1,a;0,1] instead of [a,1;1,0] [F64]
11- primes([2^50, 2^50+200000]) => stack overflow [F65]
12- issquare((x+1/2)^2,&z); z => 1.0*x+0.5 instead of x+1/2 [F66]
13- possibly missing roots in nfroots (when using Trager) [F68]
14- quadray(bnf, ideal) did not work [F69]
15- thue(-14*x^3 + 10*x^2 + 63*x - 5,1) -> "short continued fraction" [F70]
16- thue(29*x^3+130*x^2-35*x-48,1) -> "round error" bug [F71]
17- T=thueinit(10*x^3+6*x^2-41*x+8,1); thue(T,8) => SEGV [#1630] [F72]
18- ellrootno(e,p = 2 or 3) when e not minimal at p => random result [F73]
19- agm(1,2+O(5)) -> SEGV [#1645] [F76]
BA 20- [cygwin64] ellap(ellinit([0,0,1,-1,0]),10007) was broken [F77]
21- primes([-5,5]) -> [5] (spurious absolute values) [F78]
22- matqr([;]) -> crash [F79]
23- Fp_rem_mBarrett could return a non-normalized result [F80]
p=436^56-35;Mod(271,p)^((p-1)/2) -> p+1
24- plotcopy would corrupt "string" objects (ROt_ST) [F81]
BA 25- [GP] default arguments to GP functions could cause corruption [F82]
VBr26- [darwin] remove obsolete linker options that cause crashes [#1623] [F83]
Done for version 2.7.2 (released 19/09/2014):
[last column crossreferences current development release 2.8.0]
Fixed
1- gaffsg(0, t_PADIC): wrong valuation [F21]
2- (t_INTMOD with word-sized modulus)^(huge negative power) [#1584] [F24]
3- (gp -p N) or (primelimit=N in gprc_ for N >= 436273290 resulted in an
incorrect primetable. N.B. Such commands are now useless: needed primes
are produced dynamically anyway. [F25]
4- monomial(exact zero, d, v) returned an invalid t_POL / t_RFRAC [F26]
5- contfracpnqn(v, n) returned partial quotients p[-1]/q[-1] ...
p[n-1]/q[n-1], instead of the documented p[0]/q[0] ... p[n]/q[n] [F27]
6- factor((3+4*I)/25) -> factor 2+I had 0 exponent [#1586] [F29]
BA 7- iferr() could crash if some component of the t_ERROR were clones. [F31]
8- nffactor() could overflow the stack when default accuracy too low [F32]
BA 9- obsolete use of E=[a1,a2,a3,a4,a6] in ellmul crashed [#1589] [F33]
10- incorrect rounding in mulrr/divrr for one-word precision reals [F34]
BA 11- multiif did not handle correctly return() in conditions [#1590] [F35]
12- [0..5] -> [0,0,0,0,0] on some architectures [F36]
13- is_gener_Fp could return wrong results [F37]
14- Fq_sqrtn(t_INT,..,&zeta) could return a wrong root of 1 [F38]
15- bnfinit: SEGV due to precision issues [#1592] [F39]
16- zm_zc_mul only worked for square zm matrices [F40]
17- genus2red(0,27*x^5+97*x^4+118*x^3+60*x^2+13*x+1,3) -> bug [#1596] [F41]
18- [gphelp] oo loop when $COLUMNS too small [#1594] [F42]
19- genus2red(x,-x^6-3*x^4-10*x^2-1,3) -> impossible inverse [#1597] [F43]
20- factoru(1) returned a t_MAT instead of the expected "matsmall" [F44]
21- FpM_charpoly wrong in small characteristic [#1602] [F45]
22- when compatible = 3; series() used a random precision [F50]
23- genus2red(0,6*x^6+5*x^4+x^2+1,7) -> impossible inverse [#1597] [F51]
24- isprime() could crash on large input [#1604] [F52]
25- genus2red(x^3+1,1) -> type error [#1597] [F53]
26- gphelp did not handle === correctly [#1603] [F54]
27- FpXY_evaly() wrong when evaluating at 0 [F56]
28- [mingw] gp could crash at start up [#1607] [F57]
Done for version 2.7.1 (released 16/05/2014):
[last column crossreferences current development release 2.8.0]
Fixed
1- make install fails on OS/X: ln -s libpari.dylib libpari.dylib fails [F1]
2- Q_pvalrem(t_FRAC) => wrong result [F2]
3- [] == 0 but []~ != 0 (now []~ == 0 as well) [#1560] [F3]
BA 4- test-kernel did not work when using --mt=pthread [F4]
BA 5- ellheegner was using too much memory in some case [F5]
BA 6- ellap can overflow on 32-bit machine [#1558] (minimal fix) [F6]
7- nfhilbert(K,x,y, P above 2) could give wrong results [#1561] [F7]
8- gcd(1/2, 1+I*1.) -> SEGV [#1563] [F10]
9- mathnf(t_VEC) could corrupt input (change sign) [F11]
10- [libpari] RgM_transmul did not work [F12]
11- [libpari] Fq_issquare didn't support T=NULL [F13]
12- [libpari] nfpow_u didn't handle non-integral rational numbers [F14]
13- eint1(0) -> stack overflow [#1568] [F15]
14- nfroots(, t_POL with leading coeff -1) could miss solutions [F19]
15- precprime(1) -> invalid t_INT [#1576] [F20]
PARI-GP is a package which is aimed at efficient computations in
number theory, but also contains a large number of other useful
functions. It is somewhat related to a Computer Algebra System, but
is not really one since it treats symbolic expressions as mathematical
entities such as matrices, polynomials, series, etc..., and not as
expressions per se. However it is often much faster than other CAS,
and contains a large number of specific functions not found elsewhere,
essentially for use in number theory.
This package can be used in an interactive shell (GP) or as a C/C++
library (PARI). It is free software, in the sense of freedom AND 'free
of charge'.
This is the old 2.3 version of pari.
2015-06-24 Kurt Hornik <Kurt.Hornik@wu.ac.at>
* DESCRIPTION (Version): New version is 2.3-47.
* NAMESPACE: Add missing imports.
2015-02-11 Kurt Hornik <Kurt.Hornik@wu.ac.at>
* DESCRIPTION (Version): New version is 2.3-46.
* R/times.R:
* man/trunc.times.Rd:
Add round method for times objects via Math.times (to
be able to use the same arguments as the trunc methods,
differently from the generic).
Suggestion by Gabor Grothendieck <ggrothendieck@gmail.com>.
Add missing DEPENDS
Upstream changes:
Changes in version 1.1-2 (2016-02-22)
fixed memcpy for overlapping regions error, found in valgrind checks by Brian Ripley
fixed a few more (small) memory leaks
Changes in version 1.1-1 (2016-02-19)
Further cleaned up C source code, got rid of lex and yacc files
Improve fit.variogram to choose initial values for range, sill and nugget before fitting, and fit over a range of model types
allow NA values in vgm
Fixed https://github.com/edzer/gstat/issues/1
Changes in version 1.1-0 (2015-10-17)
remove meschach matrix library, rewrote interface, link to R's lapack
improve notification in case of singular matrices
remove all C code that was not used by R package gstat
add Makevars, remove configure
remove links to ai-geostats.org
wrap fit.StVariogram example in dontrun
Changes in version 1.0-26 (2015-08-26)
use ordered spatial index when selecting nearest strongest correlated neighbours in local kriging to avoid warning of spacetime
update spatio-temporal geostatitics vignettes; add R Journal draft
add spatio-temporal PM10 interpolation movie (mp4)
Cover-tree and kd-tree fast k-nearest neighbor search algorithms
and related applications including KNN classification, regression
and information measures are implemented.
Octave 4.0 is a major new release with many new features,
including a graphical user interface, support for classdef
object-oriented programming, better compatibility with Matlab,
and many new and improved functions.
A list of important user-visible changes is availble at
http://octave.org/NEWS-4.0.html, by selecting the Release Notes
item in the News menu of the GUI, or by typing news at the Octave
command prompt.
Add LICENSE
Upstream changes:
Release 1.06.
New 'mydist' Makefile target to sign and build a tarball.
Pass ABSTRACT, AUTHOR, LICENSE and MIN_PERL_VERSION to
ExtUtils::MakeMaker::WriteMakefile().
Correctly set $VERSION that doesn't trigger warnings:
https://rt.cpan.org/Ticket/Display.html?id=89020
Update documentation to include the URL to the project's new
source code repository at github.com:
https://github.com/blair/perl-math-interpolate
Update author contact email address.
Upstream changes:
Changes in v2.12 - Jonathan "Duke" Leto
December 2014
--------------------------
* Added as_list() function. (Ivan Baidakou (basiliscos))
Changes in v2.11 - Jonathan "Duke" Leto
January 2014
--------------------------
* Add maximum/minimum functions. (Alberto Sim繭es)
* Add reshape constructor. (Alberto Sim繭es)
Changes in v2.10 - Jonathan "Duke" Leto
November 2013
--------------------------
* Fix tests on Windows, thanks to Russell Jenkins <veryrusty@gmail.com>
Changes in v2.09 - Jonathan "Duke" Leto
November 2011
--------------------------
* as_latex() now works and is tested properly
Upstream changes:
1.005 24 Jan 2015 Permute the empty list per Philipp Rumpf
1.006 25 Jan 2015 Break memory loop per Philipp Rumpf
1.007 25 Jan 2015 World writables set correctly using some excellent perl from http://www.perlmonks.org/?node=bart
Upstream changes:
0.57 2016-01-03
[ADDED]
- formultiperm { ... } \@n loop over multiset permutations
- todigits(n[,base[,len]]) convert n to digit array
- todigitstring(n[,base[,len]]) convert n to string
- fromdigits(\@d[,base]) convert digit array ref to number
- fromdigits(str[,base]) convert string to number
- ramanujan_prime_count counts Ramanujan primes in range
- vecany { expr } @n true if any expr is true
- vecall { expr } @n true if all expr are true
- vecnone { expr } @n true if no expr are true
- vecnotall { expr } @n true if not all expr are true
- vecfirst { expr } @n returns first element with expr true
[FUNCTIONALITY AND PERFORMANCE]
- nth_ramanujan_prime(997) was wrong. Fixed.
- Tighten Ramanujan prime bounds. Big speedups for large nth Rp.
0.56 2015-12-13
[ADDED]
- is_carmichael(n) Returns 1 if n is a Carmichael number
- forcomp { ... } n[,{...}] loop over compositions
[FUNCTIONALITY AND PERFORMANCE]
- Faster, nonrecursive divisors_from_factors routine.
- gcdext(0,0) returns (0,0,0) to match GMP and Pari/GP.
- Use better prime count lower/upper bounds from B羹the 2015.
- forpart and forcomp both use lexicographic order (was anti-lexico).
0.55 2015-10-19
- Fixed test that was using a 64-bit number on 32-bit machines.
[FUNCTIONALITY AND PERFORMANCE]
- Speed up PP versions of sieve_prime_cluster, twin_primes,
twin_prime_count, nth_twin_prime, primes.
0.54 2015-10-14
[ADDED]
- sieve_prime_cluster(low,high[,...]) find prime clusters
[Misc]
- Certain small primes used to return false with Frobenius and AES Lucas
tests when given extra arguments. Both are unusual cases never used
by the main system. Fixed.
0.53 2015-09-05
[ADDED]
- ramanujan_tau(n) Ramanujan's Tau function
- sumdigits(n[,base]) sum digits of n
[FUNCTIONALITY AND PERFORMANCE]
- Don't use Math::MPFR unless underlying MPFR library is at least 3.x.
- Use new Math::Prime::Util::GMP::sigma function for divisor_sum.
- Use new Math::Prime::Util::GMP::sieve_twin_primes(a,b).
0.52 2015-08-09
[ADDED]
- is_square_free(n) Check for repeated factors
[FUNCTIONALITY AND PERFORMANCE]
- print_primes with 2 args was sending to wrong fileno.
- Double speed of sum_primes.
- Rewrote some internal sieve-walking code, speeds up next_prime,
forprimes, print_primes, and more.
- Small speedup for forcomposites / foroddcomposites.
- Small speedup for is_prime with composite 32+ bit inputs.
- is_frobenius_khashin_pseudoprime now uses Montgomery math for speed.
- PrimeArray now treats skipping forward by relatively small amounts as
forward iteration. This makes it much more efficient for many cases,
but does open up some pathological cases.
- PrimeArray now allows exporting @primes (and a few others), which
saves some typing.
- PrimeArray now works for indices up to 2^32-1, after which it silently
rolls over. Previously it worked to 2^31-1 then croaked.
- PrimeIterator now uses small segments instead of always next_prime.
A little more memory, but 2-4x faster.
- factor, divisor, fordivisors and some others should better keep
bigint types (e.g. Math::GMPz input yields Math::GMPz output).
- Faster GCD on some platforms.
- Peter Dettman supplied a patch for Shawe-Taylor prime generation to
make it deterministically match reference implementations. Thanks!
[Misc]
- Check for old MPFR now using C library version, not module version.
- prime_count_{lower,upper} now uses MPFR to give full precision.
- Montgomery math and uint128_t enabled on Darwin/clang.
0.51 2015-06-21
[ADDED]
- sum_primes(lo,hi) Summation of primes in range
- print_primes(lo,hi[,fd]) Print primes to stdout or fd
- is_catalan_pseudoprime(n) Catalan primality test
- is_frobenius_khashin_pseudoprime(n) Khashin's 2013 Frobenius test
[FUNCTIONALITY AND PERFORMANCE]
- Slightly faster PP sieving using better code from Perlmonks.
- Lucas sequence works with even valued n.
- Used idea from Colin Wright to speed up is_perrin_pseudoprime 5x.
We can check smaller congruent sequences for composites as a prefilter.
- is_frobenius_pseudoprime no longer checks for perfect squares, and
doesn't bail to BPSW if P,Q,D exceed n. This makes it produce some
pseudoprimes it did not before (but ought to have).
[Misc]
- Work with old MPFR (some test failures in older Win32 systems).
- Don't assert in global destructor if a MemFree object is destroyed.
0.50 2015-05-03
[ADDED]
- harmfrac(n) (num,den) of Harmonic number
- harmreal(n) Harmonic number as BigFloat
- sqrtint(n) Integer square root of n
- vecextract(\@arr, mask) Return elements from arr selected by mask
- ramanujan_primes(lo,hi) Ramanujan primes R_n in [lo,hi]
- nth_ramanujan_prime(n) the nth Ramanujan prime R_n
- is_ramanujan_prime(n) 1 if n is a Ramanujan prime, 0 otherwise
[FUNCTIONALITY AND PERFORMANCE]
- Implement single-base hashed M-R for 32-bit inputs, inspired by
Fori禳ek and Jan�ina 2015 as well as last year's tests with
2-base (2^49) and 3-base (2^64) hashed solutions for MPU. Primality
testing is 20-40% faster for this size.
- Small speedups for znlog.
- PP nth_prime on 32-bit fixed for values over 2^32.
[Misc]
- Changes to nth_prime_{lower,upper}. They use the Axler (2013) bounds,
and the XS code will also use inverse prime count bounds for small
values. This gives 2-10x tighter bounds.
- Tighten prime count bounds using Axler, Kotnik, B羹the. Thanks to
Charles R Greathouse IV for pointing me to these.
0.49 2014-11-30
- Make versions the same in all packages.
0.48 2014-11-28
[ADDED]
- lucasu(P, Q, k) U_k for Lucas(P,Q)
- lucasv(P, Q, k) V_k for Lucas(P,Q)
[Misc]
- Use Axler (2014) bounds for prime count where they improve on Dusart.
0.47 2014-11-18
[ADDED]
- is_mersenne_prime(p) returns 1 iff 2^p-1 is prime
[FUNCTIONALITY AND PERFORMANCE]
- Standalone compilation (e.g. factoring without Perl installed) is easier.
- For next_prime and prev_prime with bigints, stay in XS as long as
possible to cut overhead. Up to 1.5x faster.
- Factoring on 64-bit platforms is faster for 32-bit inputs.
- AKS is faster for larger than half-word inputs, especially on 64-bit
machines with gcc's 128-bit types.
- is_provable_prime goes through XS first, so can run *much* faster for
small inputs.
[OTHER]
- NetBSD improperly exports symbols in string.h, including popcount.
Rename our internal function to work around it.
- is_power now takes an optional scalar reference third argument which
will be set to the root if found. It also works for negative n.
- Changes to trim a little memory use. lucas_sequence goes from
PP->[XS,GMP,PP] to XS[->PP[->GMP]]. ecm_factor is moved out of root.
Moved some primality proving logic out of root.
- primes.pl when given one argument will show primes up to that number.
0.46 2014-10-21
[API Changes]
- is_pseudoprime has the same signature as is_strong_pseudoprime now.
This means it requires one or more bases and has no default base.
The documentation had never mentioned the default, so this should
have little impact, and the common signature makes more sense.
[ADDED]
- hammingweight(n) Population count (count binary 1s)
- vecreduce {...} @v Reduce/fold, exactly like List::Util::reduce
[Misc]
- Syntax fix from Salvatore.
- vecmin / vecmax in XS, if overflows UV do via strings to avoid PP.
- Add example for verifying prime gaps, similar to Nicely's cglp4.
- divisor_sum wasn't running XS code for k=0. Refactor PP code,
includes speedup when input is a non-Math::BigInt (e.g. Math::GMP).
- Improve test coverage.
[PP Updates]
- Large speedup for divisors with bigints in 64-100 bit range.
- Revamp RiemannZeta. Fixes some bignum output, but requires RT fixes.
- Optimization for PP comparison to ~0.
- PP factoring is faster, especially for small inputs.
0.45 2014-09-26
[ADDED]
- forcomb { ... } n, k combinations iterator
- forperm { ... } n permutations iterator
- factorial(n) n!
- is_bpsw_prime(n) primality test with no pretests, just ES BPSW
- is_frobenius_pseudoprime Frobenius quadratic primality test
- is_perrin_pseudoprime Perrin primality test (unrestricted)
- vecmin(@list) minimum of list of integers
- vecmax(@list) maximum of list of integers
- vecprod(@list) product of list of integers
- bernfrac(n) (num,den) of Bernoulli number
- bernreal(n) Bernoulli number as BigFloat
- stirling(n,m,[type]) Stirling numbers of first or second kind
- LambertW(k) Solves for W in k = W*exp(W)
- Pi([digits]) Pi as NV or with requested digits
[FUNCTIONALITY AND PERFORMANCE]
- znorder algorithm changed from Das to Cohen for ~1% speedup.
- factoring sped up a bit for 15-19 digits.
- speedup for divisor_sum with very large exponents.
[OTHER]
- Alias added for the module name "ntheory". The module has grown
enough that it seems more appropriate.
- Big build change: Try a GMP compilation and add Math::Prime::Util::GMP
to dependency list if it succeeds.
- Fixed a memory leak in segment_primes / segment_twin_primes introduced
in previous release. Thanks Valgrind!
The Zarith library implements arithmetic and logical operations over
arbitrary precision numbers. It uses GMP to efficiently implement
arithmetic over large numbers. Small integers are represented as Caml
unboxed integers for speed and space economy.
Changelog:
------------
Qhull 2015.2 2016/01/18 (7.2.0)
- Fixed memory leak in ~QhullQh [M. Sandim]
QhullQh.cpp: call checkAndFreeQhullMemory() in the destructor. Otherwise memT is not freed.
Remove checkAndFreeQhullMemory() from Qhull.h. It is not needed.
Remove calls to checkAndFreeQhullMemory in qhulltest. It is called by ~QhullQh()
libqhull_r.h: Document qh_ASvornoi and facetT.center
qh_freeqhull: if qh_NOmem, use qh_ALL
qh_memalloc: short memory is freed by qh_memfreeshort unless qh_NOmem
qh_memstatistics (mem.c): call qh_memcheck() as done in mem_r.c
qh_new_qhull calls qh_memcheck
qh_newvertex: free vertex on error
qh_projectinput: Free memory allocations on error
qh_rboxpoints: free simplex on error
qh_sethalfspace_all: Fixed memory leak on error QH8032 feasible not inside halfspace
qh_triangulate_facet: For TRInormals ('Q11') replace qh_copypoints with qh_memalloc
qh_triangulate_facet: Document qh.TRInormals
qh_voronoi_center: Free center on error
qhulltest: Fixed memory leak of s_testcases by calling RoadTest::deleteTests()
qhulltest: The 'add_*_test' functions append the test object to RoadTest::s_testcases
~RoadTest: declare virtual for Q_OBJECT, removeAll not needed
user_eg2: Check memory at end of each run
user_r.h: Add QHULL_CRTDBG for invoking Microsoft's memory leak detector
use _MSC_VER instead of QHULL_OS_WIN for QHULL_CRTDBG
Call qh_freeqhull with qh_ALL/!qh_ALL instead of 'True/False'
Include user_r.h with RoadError,h for QHULL_CRTDBG
Invoke _CrtSetDbgFlag... at beginning of program
Moved user_r.h/libqhull_r.h/qhull_ra.h as first include (for QHULL_CRTDBG)
Moved QHULL_OS_WIN from qhull_ra.h to user_r.h
Removed __CYGWIN__ from QHULL_OS_WIN (same as Qt's qglobal.h)
- check_dupridge: A bounding box is not sufficient to avoid dupridge errors
- qh_findbestneighor: Error if qh.CENTERtype is qh_ASvoronoi (i.e., no merging now)
- qh_printstatlevel: Remove unused parameter, 'start'
- QhullLinkedList::last() and back(): Return T instead of T& (T is computed)
- qh-code.htm: "How to convert code to reentrant Qhull"
Update "Nearly coincident points on an edge"
Add 2012 size of data structures to "Qhull on 64-bit computers"
- html/index.htm: Add CGAL to "When to use"
- qh-optq.htm: Add documentation for option 'Q12'
- Move suggestions from Changes.txt to qh-code.htm#enhance
- user_r.h: Fixed qh-us_r.html links
- Fixed links in html pages
- QhullIterator and QhullLinkedList: Include <iterator> [B. Boeckel]
- Moved include file for each C++ source file to the top of the includes
- Prepend cpp includes with "libqhullcpp/"
- RoadLogEvent includes RoadLogEvent.h
- QhullIterator.h: Only QHULL_DECLARE_SEQUENTIAL_ITERATOR is used.
- Compared src/libqhull/* to src/libqhull_r/* and resolved differences
- qh_printpoint in io.c skips qh_IDnone like io_r.c
- qhull_p-exports.def: Added three missing exports
- set_r.h: Removed countT. Too many issues
- libqhull_r/Makefile: Add help prompts to 'make qtest'
- libqhull.pro: Add '../libqhull/' to sources and headers
- libqhull/Makefile: Fixed -I,./,,/src
- qhull-zip.sh: Add CMakeModules to tarball [C. Rosenvik]
- CMakeLists.txt: Add targets qhullp and user_egp for qh_QHpointer and libqhull_p
- Reorganized 'make help'
- Makefile cleanall: Delete testqset and qhulltest from bin/
- Fix filetype of Unix-only files
- Fix Unix line endings for Makefile and check in qhull-zip.sh
- Fix Windows line-endings and check in qhull-zip.sh
- qhull-zip.sh: Check for Unix text files
------------
Qhull 2015.1 2016/01/03 (7.1.0)
- Add Rbox option 'Cn,r,m' to add nearly coincident points. Trigger for duplicate ridges
- Add Qhull option 'Q12' to ignore error on wide merge due to duplicate ridge
- qh_findbestlower: Call qh_findfacet_all to fix rare "flipped or upper Delaunay" error QH6228.
QH6228 input provided by J. Metz. Reported (date order): L. Fiaschi, N. Bowler, A. Liebscher, V. Vieira, N. Rhinehart, N. Vance, P. Shafer
- qh_check_dupridge: Check if wide merge due to duplicate ridge from nearly coincident points
- qh_initialhull: Fix error messages for initial simplex is flat
- qh_determinant: increased 2-d and 3-d nearzero by 10x due to a counter-example
- rbox: Add qh_outcoord() to output coordinates w/ or w/o iscdd
- qh_meminit (mem.c): Add call to qh_memcheck
- Compare libqhull/... to libqhull_r/... and resolve differences
- Update builds for DevStudio (qhull.sln for msdev 2005..2009, qhull-32.sln and qhull-64.sln for recent releases)
- qh-impre.htm: Add a section about precision errors for 'Nearly coincident points on an edge'
- html/index.htm#geomview: Document how to install, build, and use Geomview.
- html/index.htm: Emphasize program links and move related urls to end
- qhull/index.htm: Emphasize manual, geomview, and imprecision
- Fix documentation links in libqhull_r/index.htm
- Add 'Functions' link to documentation headers
- Change '<A>...</A>' to '<a>...</a>'
- libqhull_r/index.htm -- Add instructions for configuring web browsers for source links.
- libqhull_r/ -- Fix source links for ..._r.htm files
------------
Qhull 2015.0.7 2015/11/09 (7.0.7)
- Fix return type of operator-> in QhullLinkedList and other collection classes [F. Jares]
- Fix return types for QhullLinkedList
- Fix return types for QhullPoints
- Simplify return type for Coordinates::operator[] (same as QList)
- Add const to operators for QhullSet::iterator and add documentation
- Coordinates.h: Fix return types for operations of iterator and const_iterator
- Drop use of Perforce changelist number in qhull_VERSION of CMakeLists.txt
- Rename the md5sum files as *.tgz.md5sum instead of *-tgz.md5sum
- Fix build dependency for testqset_r [asekez]
- rbox.c depends on Qhull due to qh_lib_check which uses qh_version2 for error messages
- QhullFacet_test.cpp: Annotate Qhull invocations. Allows their repetition.
- QhullFacet_test.cpp: Adjust epsilon on distance tests
- Do not create libqhullcpp as a shared library. Qhull C++ classes may change layout and size.
- qhull-cpp.xml: Make a relative path to road-faq.xsl
------------
Qhull 2015.0.6 2015/10/20 (7.0.6.2013)
- In the libraries, exit() is only called from qh_exit(). qh_exit may be redefined.
- Add qh_fprintf_stderr to usermem.c. May be overridden to avoid use of stderr [D. Sterratt]
Add usermem to testqset builds
Used by qh_fprintf_rbox
- Remove most instances of stderr/stdout from libqhull, libqhull_r, and libqhullcpp [D. Sterratt]
qh_fprintf_stderr may be redefined. qh_meminit and qh_new_qhull use stderr as the default ferr
- qh_initflags: Use qh.fout instead of stdout for 'TO file'. A library caller may define a different qh.fout.
- qh_settemppush: Call qh_fprintf() instead of fprintf() on error.
- Rename qh_call_qhull as "Qhull-template" from user.c. Updated its references.
- qh-code.htm: "How to avoid</a> exit(), fprintf(), stderr, and stdout"
- html/index.htm: Fix table of contents for qh-code
- libqhull_r/index.htm: Rewrite introduction to Reentrant Qhull
- qh-faq.htm: Rewrite "Can Qhull use coordinates without placing them in a data file?"
- qh-get.html: Link to github
- Remove qhull_interface.cpp from the documentation
------------
Qhull 2015.0.5 2015/10/12 (7.0.5.1995)
- qh_new_qhull: default 'errfile' is 'stderr'. outfile and errfile are optional [B. Pearlmutter]
- qh_new_qhull: returns qh_ERRinput instead of exit() if qhull_cmd is not "qhull ..." [B. Pearlmutter]
- qhalf_r.c,etc: Add clear of qh.NOerrexit
- global.c: gcc 4.4.0 mingw32 segfault cleared by adding comment
- usermem_r-cpp.cpp: Optional file to redefine qh_exit() as throw "QH10003.." [B. Pearlmutter]
qh_exit() is called by qhull_r when qh_errexit() is not available.
- html/index.htm: Add bibliographic reference to Golub & van Loan and annotated the source references
- qhalf.htm: A halfspace is the points on or below a hyperplane [D. Strawn]
- qh-opto.htm#n: Defined inside, outside, on, above, and below a hyperplane [D. Strawn]
- qhalf.htm#notes: Recast the linear program using negative halfspaces (as used by Qhull) [D. Strawn]
- qhull_a.h: Fix comment '#include "libqhull/qhull_a.h" [fe rew]
- build/qhull*.pc.in: Templates for pkg-config (derived from Fedorra) [P. McMunn]
c1bf12afe0/pkg-config-spec.txt
- Makefile: Remove user_eg3.o from LIBQHULLCPP_OBJS
- Makefile: Add .h dependencies for unix_r.o, etc.
- libqhull/Makefile: Fix build of rbox
- libqhull_r/Makefile: Fix build -I
- qhull.sln/user_eg3: Add dependency on libcpp
- Removed bin/libqhull_r.dll (should be qhull_r.dll)
- Removed build/qhulltest.vcproj (see build/qhulltest/qhulltest.vcproj)
------------
Qhull 2015.0.4 2015/9/30 (7.0.4.1984)
- qh-get.htm: Unix tarball includes version number (e.g., qhull-2015-src-7.1.0.1940.tgz) [Hauptman]
- qglobal.c: Add qh_version2 with Unix version for "-V" option [Hauptman]
- build/qhull-32.sln, *-32.vcxproj: Add Visual Studio 32-bit build for 2010+
- build/qhull-64.sln, *-64.vcxproj: Add Visual Studio 64-bit build for 2010+ [G. Lodron]
- make-vcproj.sh: Restore to eg/... It is required for Visual Studio builds
- README.txt: updated builds and reentrant Qhull
- Add documentation for QHULL_LIB_CHECK
- qh_lib_check: Check for unknown QHULL_LIB_TYPE
- qh-code.htm: Add memory requirements for 32- and 64-bit
------------
Qhull 2015.0.3 2015/9/22
- qh_mem, qh_merge: Log before 'delete' instead of afterwards [Coverity, K. Schwehr]
- qh_merge: Test for NULL horizon in qh_checkzero [Coverity, K. Schwehr]
- qh_matchneighbor: Check for matchfacet not a neighbor of facet [Coverity, K. Schwehr]
- qh_triangulate: Explicit check for visible==NULL [Coverity, K. Schwehr]
- qh_findbestfacet (unused by qhull): Fix test of isoutside [Coverity, K. Schwehr]
- qh_check_maxout: Check bestfacet!=0 for logging its id [Coverity, K. Schwehr]
- qh_nearvertex: Check for bestvertex not found [Coverity, K. Schwehr]
- qh_checkfacet: Check for missing neighbors of simplicial facets [Coverity, K. Schwehr]
- qh_setdelnth: Check 'nth' before using it [Coverity, K. Schwehr]
- Annotate code for Coverity warnings (most of these protected by qh_errexit) [K. Schwehr]
- qh_printfacet3math: explicit format string (duplicates change to io.c) [B. Pearlmutter]
- libqhull_r.h: fix spelling error (duplicates change to libqhull.h) [B. Pearlmutter]
- unix_r.c: fix spelling error (duplicates change to unix.c) [B. Pearlmutter]
- qhull_a.h: define qhullUnused() only if defined(__cplusplus) [R. Stogner]
- qh_version: Use const char str[]= "string" instead of const char * str= "string" [U. Drepper, p. 27]
- qh_newvertex: Use UINT_MAX instead of 0xFFFFFFFF
- qh_newridge: Use UINT_MAX instead of 0xFFFFFFFF
- Reviewed FIXUP notes
- QhullRidge_test: t_foreach use 'foreach(const QhullVertex &v, vertices)
- Made '#include "RoadTest.h" consistent across all C++ tests
- qh-code.htm: May also use libqhull_r (e.g., FOREACHfacet_(...))
- qh-get.htm: Add list of download build repositories
- Add CMakeModules/CheckLFS.cmake: Enables Large File Support [B. Pearlmutter]
- Makefile: Use -fpic at all times instead of -fPIC, [U. Drepper p. 15]
------------
Qhull 2015.0.2 2015/9/1
- global_r.c: Fixed spelling of /* duplicated in...qh_clear_outputflags */ [K. Schwehr]
- Replaced Gitorious with GitHub
- Moved 'to do' comments into Changes.txt
------------
Qhull 2015.0.1 2015/8/31
Source code changes
- Increased size of vertexT.id and ridgeT.id to 2^32 [H. Strandenes, C. Cantwell]
Reworded the warning message for ridgeT.id overflow. It does not affect Qhull output
- Add qh_lib_check to check for a compatible Qhull library.
Programs should call QHULL_LIB_CHECK before calling Qhull.
- Include headers prefixed with libqhull/, libqhull_r/, or libqhullcpp/
- Renamed debugging routines dfacet/dvertex to qh_dfacet/qh_dvertex
- Rewrote user_eg, user_eg2, and user_eg3 as reentrant code
- Renamed 'qh_rand_seed' to 'qh_last_random'. Declare it as DATA
- qh_initqhull_start2 sets qh->NOerrexit on initialization
User must clear NOerrexit after setjmp()
Other source code changes
- Define ptr_intT as 'long long' for __MINGW64__ [A. Voskov]
- poly_r.c: initialize horizon_skip [K. Schwehr]
- Removed vertexT.dim and MAX_vdim. It is not used by reentrant Qhull.
- Removed qhull_inuse. Not used by C++
- Removed old __MWERKS__/__POWERPC__ code that speed up SIOUX I/O
- Moved #include libqhull/... before system includes (e.g., <stdio.h>
- Comment-out _isatty declaration. Avoids "C4273 ... inconsistent dll linkage"
- Add random.h/random_r.h as an include file to random.c/random_r.c
- Rename rbox routines to qh_roundi/qh_out1/qh_out2n/qh_out3n
- Rename dfacet and dvertex to qh_dfacet and qh_dvertex
- Replace 'qhmem .zzz' with 'qhmem.zzz'
- Removed spaces between function name and parentheses
- Rename 'enum statistics' to 'enum qh_statistics'
- Declare rbox as DATA in qhull-exports.def and qhull_p-exports.def
- In comments, use 'qh.zzz' to reference qhT fields
- In qh_fprintf, use qhmem.ferr to report errors
- qh_fprintf may be called for errors in qh_initstatistics and qh_meminit
- qh_pointid returns qh_IDnone, qh_IDinterior, qh_IDunknown in place of -3, -2, -1 resp.
- getid_() returns qh_IDunknown in place of -1
- After qh_meminit, qhmem.ferr is non-zero (stderr is the default)
- Update qh_MEMalign in testqset.c to user.h (with realT and void*)
- Split rboxT into a header file
- Add rboxlib.h to libqhull_a.h
- Rename PI to qh_PI and extend to 30 digits
- Rename MAXdim to qh_MAXdim
- Change spacing for type annotations '*' and '&' in C++ header files
- Test for !rbox_output/cpp_object in qh_fprintf_rbox
- Remove 'inline' annotation from explicit inline declarations
- Column 25 formatting for iterators, etc.
- Use '#//!\name' for section headers
- QhullFacet.cpp: zinc_(Zdistio);
- Clear qhT.ALLOWrestart in qh_errexit
- Replace longjmp with qh_errexit_rbox in qh_rboxpoints
- Add jmpExtra after rbox_errexit to protect against compiler errors
- Add qh.ISqhullQh to indicate initialization by QhullQh()
- Add library warnings to 'rbox D4', user_eg, user_eg2, user_eg3
- Add headers to q_eg, q_egtest, and q_test
- Check that qh.NOerrexit is cleared before call to qh_initflags
Qhull documentation
- README.txt: Added references to qh-code.htm
- README.txt: Added section 'Calling Qhull from C programs'
- qh-code.htm: Moved Performance after C++ and C interface
- qh-code.htm: Moved Cpp Questions to end of the C++ section
- qh-code.htm: Fixed documentation for 'include' path. It should be include/libqhull
- qconvex.htm: Fixed documentation for 'i'. It triangulates in 4-d and higher [ref]
- Clarified qhalf space documentation for the interior point [J. Santos]
- rbox.c: Version is same date as qh_version in global.c
- gobal_r.c: Version includes a '.r' suffix to indicate 'reentrant'
Qhull builds
- Development moved to http://github.com/qhull/qhull
git clone git@github.com:qhull/qhull.git
- Exchanged make targets for testing.
'make test' is a quick test of qhull programs.
'make testall' is a thorough test
- Added 'make help' and 'make test' to libqhull and libqhull_r Makefiles
- CMakeLists.txt: Remove libqhull, libqhull_r, and libqhullcpp from include_directories
- CMakeLists.txt: Add qhull_SHAREDR for qhull_r
- CMakeLists.txt: Retain qhull_SHARED and qhull_SHAREDP (qh_QHpointer)
- CMakeLists.txt: Move qhull_SHARED and qhull_SHAREDP (qh_QHpointer) to qhull_TARGETS_OLD
Drop qhull_STATICP (use qhull_SHAREDP or qhull_STATIC)
Set SOVERSION and VERSION for shared libraries
- Move qhull_p-exports.def back to libqhull
- Switched to mingw-w64-install for gcc
- Improved prompts for 'make'
- qhull-all.pro: Remove user_eg3.cpp from OTHER_FILES
- libqhull.pro: Ordered object files by frequency of execution, as done before
- Add the folder name to C++ includes and remove libqhullcpp from INCLUDEPATH
- Changed CONFIG+=qtestlib to QT+=testlib
- Changed Makefile to gcc -O3 (was -O2)
- Changed libqhull/libqhull_r Makefiles to both produce rbox, qhull, ..., user_eg, and user_eg2
- Removed Debian 'config/...'. It was needed for Qhull 2012.
libqhull_r (reentrant Qhull)
- Replaced qh_qh with a parameter to each procedure [P. Klosterman]
No more globally defined data structures in Qhull
Simplified multithreading and C++ user interface
All functions are reentrant (Qt: "A reentrant function can ... be called simultaneously from multiple threads, but only if each invocation uses its own data.")
No more qh_QHpointer.
See user_eg3 and qhulltest
New libraries
libqhull_r -- Shared library with reentrant sources (e.g., poly_r.h and poly_r.c which replace libqhull's poly.h and poly.c)
libqhullstatic_r -- Static library with the same sources as libqhull_r
libqhullcpp -- The C++ interface using libqhullstatic_r (further notes below)
New executables
testqset_r -- Test qset_r.c (the reentrant version of qset.c
Source code changes for libqhull_r
- Add qh_zero() to initialize and zero memory for qh_new_qhull
- Remove qh_save_qhull(), qh_restore_qhull(), and qh.old_qhstat from global_r.c
- Remove qh_freeqhull2() (global_r.c)
- Remove qh_freestatistics() (stat_r.c)
- Remove qh_compare_vertexpoint (qhT is not available, unused code)
- Remove conditional code for __POWERPC__ from unix_r.c and rbox_r.c
- Move qh_last_random into qh->last_random (random_r.c)
- Rename sources files with a '_r' suffix. qhull_a.h becomes qhull_ra.h
- Replace 'qh' macro with 'qh->'
- Replace global qhT with parameter-0
- Add qhmemT to beginning of qhT. It may not be used standalone.
- Add qhstatT to end of qhT
- Remove qhull_inuse
- Change qhmem.zzz to qh->qhmem.zzz
- Replace qh_qhstat with qh->qhstat
- Remove qh_freestatistics
- Replace qh_last_random with qh->last_random
- Replace rboxT with qh->rbox_errexit, rbox_isinteger, rbox_out_offset
- Replace rbox.ferr/fout with qh->ferr/fout
- No qh for qh_exit, qh_free, qh_malloc, qh_strtod, qh_strtol, qh_stddev
- New qmake include files qhull-app-c_r.pri, qhull-app-shared_r.pri, qhull-libqhull-src_r.pri
- Replace 'int' with 'countT' and 'COUNTmax' for large counts and identifiers
- qhset converted to countT
- Removed vertexT.dim -- No longer needed by cpp
Removed MAX_vdim
- Guarantee that qh->run_id!=0. Old code assumed that qh_RANDOMint was 31 bits
Changes to libqhullcpp
- Added QhullVertexSet.h to libqhullcpp.pro and libqhullpcpp.pro
- QhullVertexSet: error if qhsettemp_defined at copy constructor/assignment (otherwise double free)
- Enable QhullSet.operator=. Copy constructor and assignment only copies pointers
- Changed QhullPoint.operator==() to sqrt(distanceEpsilon)
- Added assignment of base class QhullPoints to PointCoordinates.operator=
- Enable QhullPoints.operator=
- Rename PointCoordinates.point_comment to describe_points
- Add 'typename T' to definition of QhullSet<T>::value()
C++ interface
- Reimplemented C++ interface on reentrant libqhull_r instead of libqhull
- Prepend include files with libqhullcpp/
- Replaced UsingLibQhull with QhullQh and macro QH_TRY
Removed UsingLibQhull.currentAngleEpsilon and related routines
Removed UsingLibQhull_test.cpp
Replaced globalDistanceEpsilon with QhullQh.distanceEpsilon
Replaced globalAngleEpsilon with QhullQh.angleEpsilon
Moved UsingQhullLib.checkQhullMemoryEmpty to QhullQh.checkAndFreeQhullMemory
Replaced FACTORepsilon=10 with QhullQh.factor_epsilon=1.0
- To avoid -Wshadow for QhullQh*, use 'qqh' for parameters and 'qh()' for methods
- Moved messaging from Qhull to QhullQh
- Add check of RboxPoints* in qh_fprintf_rbox
- Renamed Qhull.initializeQhull to Qhull.allocateQhullQh
Added qh_freeqhull(!qh_ALL) as done by unix.c and other programs
- Moved QhullPoints.extraCoordinatesCount into QhullPoints.cpp
- Replaced section tags with '#//!\name ...'
- Removed qhRunId from print() to ostream.
- Removed print() to ostream. Use '<< qhullPoint' or '<< qhullPoint.print("message")'
C++ interface for most classes
- Remove qhRunId
- Add QhullQh *qh_qh to all types
Pointer comparisons of facetT,etc. do not test corresponding qh_qh
Added to end of type for debugging information, unless wasteful alignment
- Add QhullQh * to all constructors
- All constructors may use Qhull & instead of QhullQh *
- For inherited QhullQh types, change to 'protected'
- Renamed 'o' to 'other' except where used extensively in iterators
- Except for conditional code, merged the Conversion section into GetSet
- Removed empty(). Use isEmpty() instead
- Add operator= instead of keeping it private
- print_message=0 not allowed. Use "" instead.
- Rename isDefined() to isValid() to match Qt conventions
C++ interface by class
- Coordinates
Removed empty(). Use isEmpty() instead
Added append(dim, coordT*)
Reformated the iterators
Convert to countT
- PointCoordinates
Added constructors for Qhull or QhullQh* (provides access to QhullPoint.operator==)
Removed PointCoordinates(int pointDimension) since PointCoordinates should have a comment. Also, it is ambiguous with PointCoordinates(QhullQh*)
Renamed point_comment to describe_points
Convert to countT
- Qhull
Remove qhull_run_i
Remove qh_active
Replace property feasiblePoint with field feasible_point and methods setFeasiblePoint/feasiblePoint
Returns qh.feasible_point if defined
Moved useOutputStream to QhullQh use_output_stream
Renamed useOutputStream() to hasOutputStream()
Replaced qhull_dimension with qh->input_dim //! Dimension of result (qh.hull_dim or one less for Delaunay/Voronoi)
Removed global s_qhull_output= 0;
Move qhull_status, qhull_message, error_stream, output_stream to QhullQh
Renamed qhullQh() to qh()
Added check of base address to allocateQhullQh(), Was not needed for qhullpcpp
- QhullFacet
Constructor requires Qhull or QhullQh* pointer
Convert to countT
Dropped implicit conversion from facetT
Dropped runId
Add print("message") to replace print()
- QhullFacetList
Constructor requires Qhull or QhullQh* pointer
Convert to countT
Dropped runId
- QhullFacetSet
Removed empty(). Use isEmpty() instead
Constructor requires Qhull or QhullQh* pointer
Convert to countT
Dropped runId
Add operator=
Implement print("message")
- QhullHyperplane
Add hyperplaneAngle() method
Rewrite operator== to use hyperplaneAngle()
Reorganize fields to keep pointers aligned
Except for default constructor requires Qhull or QhullQh* pointer
Enable copy assignment
Reorganized header
- QhullLinkedList
Add operator=
Removed empty(). Use isEmpty() instead
Convert to countT
iterator(T) made iterator(const T &)
const_iterator(T) made const_iterator(const T &)
const_iterator(iterator) made const_iterator(const iterator &)
- QhullPoint
Add constructors for Qhull or QhullQh* pointer (for id() and operator==)
Add defineAs(coordT*)
Add getBaseT() and base_type for QhullSet<QhullPoint>
Added checks for point_coordinates==0
Removed static QhullPoint::id(), use QhullPoint.id() instead
distance() throws an error if dimension doesn't agree or if a point is undefined
Convert to countT
If !qh_qh, operator==() requires equal coordinates
Use cout<<p instead of cout<<p.print()
Reorganized
- QhullPoints
Add constructors for Qhull and QhullQh* (for qh.hull_dim, QhullPoint::operator==)
Remove QhullPoints(int pointDimension) since it is ambiguous with QhullPoints(QhullQh *qqh)
Add operator=
Removed empty(). Use isEmpty() instead
Convert to countT
operator==() tests if pointers are the same. Ituses distanceEpsilon if qh_qh is defined
Reorganized
- QhullPoints::Iterator and ConstIterator
Removed default constructors
Add constructors for Qhull and QhullQh* (for qh.hull_dim, QhullPoint::operator==)
Moved test of dimension from QHULL_ASSERT to operator==
Added QHULL_ASSERT of qh_qh
Convert to countT
- QhullPointSet
Constructor requires Qhull or QhullQh* instead of dimension()
Add operator=
Removed empty(). Use isEmpty() instead
Convert to countT
Always print print_message
Drop print(). Replace with print("")
- QhullQh
Added methods hasOutputStream(), disableOutputStream(), and enableOutputStream() (was Qhull UseOutputStream)
Add test of qh.NOerrexit to maybeThrowQhullMessage()
Add qhull_status, qhull_message, error_stream, output_stream from Qhull
Add factor_epsilon
- QhullRidge
Constructor requires Qhull or QhullQh* pointer
Dropped implicit conversion from ridgeT
Converted otherFacet() to 'const &'
Converted nextRidge3d() to 'const &'
Message for '<< QhullRidge' replaces " - " instead of preceding it
- QhullSet
Removed empty(). Use isEmpty() instead
Constructor requires Qhull or QhullQh* pointer
Convert to countT
Add operator=
- QhullVertex
Constructor requires Qhull or QhullQh* pointer
Convert to countT
Dropped implicit conversion from vertexT
Add message to '<< QhullVertex'
- QhullVertexSet
Removed empty(). Use isEmpty() instead
Constructor requires Qhull or QhullQh* pointer
Convert to countT
- UsingQhullLib
Removed
Replace setGlobalDistanceEpsilon with setFactorEpsilon
Replace globalDistanceEpsilon with distanceEpsilon
------------
Qhull 2012.1 2012/02/18 6.3.1.1494
- Fix CMakeLists for libqhull with MATCHES [P. Gajdos]
------------
Qhull 2012.1 2012/02/18 6.3.1.1490
Code changes
- Require option 'Qz' for Delaunay triangulation/Voronoi diagram
of cocircular/cospherical points [D. Sheehy]
- qh_errexit: Do not call qh_printsummary or qh_printstats on qh_ERRinput
- Change error QH6227 (all degenerate) from qh_ERRinput to qh_ERRprec
- Change error QH6159 (ID overflow) from qh_ERRinput to qh_ERRqhull
- eg/q_eg, q_egtest, q_test: Run if qconvex is in $PATH [M. Atzeri]
Build changes [M. Atzeri]
- Install to share/doc/qhull instead of share/doc/packages/qhull
- On Unix systems, install to share/man/man1 instead of man/man1
- CMakeLists: Remove the installation of user_eg* and testqset
- CMakeLists: Remove VERSION from qhull executables and libraries
- CMakeLists: Define qhull_SOVERSION instead of qhull_MAJOR
- CMakeLists: Set SOVERSION for shared libraries
- Rename libraries to qhull, qhull_d, qhull_p, and qhull_pd
libqhull6_p.vcproj is now libqhull_p.vcproj
mingw builds as libqhull.dll
cygwin builds as cygqhull-6.dll
linux builds as libqhull.so.6.3.1 with symbolic link as libqhull.so
- Developers using qhull 2011:
libqhull6.so is now libqhull_p.so. Do not use libqhull.so.
qhull6.dll is now qhull_p.dll. Do not use qhull.dll.
- Merged road/ into libqhullcpp/ and qhulltest/
Moved RoadLogEvent.* and RoadError.* to libqhullcpp
Moved RoadTest.* to qhulltest (requires Qt)
Installed RoadTest.h in libqhullcpp
Doc changes
- index.htm: Mathworks uses qhull for n-d
- qhull.htm: Fix qhull for qconvex
- qdelaun.htm/qvoronoi.htm: Use option 'Qz' for circular/cospherical inputs
- make help: Display targets
- Makefile: Better messaging
------------
Qhull 2012.1 2012/02/02 6.3.0.1483
Bug fixes
- Fixed qset.c for -fno-strict-aliasing. This gcc option is no longer needed
(disallow two pointers of differing types to the same memory location)
- Fixed error in qh_setappend_set if first set full and second set empty
- qh_setdelnth, qh_setdelnth_sorted: fixed wording of error message
- qh_setcheck: error message listed size and max backwards.
- qh_setequal: Allow NULL set as documented
- qh_setindex: Allow NULL set as documented
- qh_settemppush: report error if NULL
Code changes
- Add testqset: low level test of qset.c with mem.c
- qh_setendpointer: Implements QSet::endPointer()
- Assigned unique error code for qh_gethash
Build changes
- Added qhull.dll(.so) for Octave and other Debian builds
The global data structure qh_qh is statically defined (no qh_QHpointer)
Linked user_eg2 with qhull.dll (libqhull.so) instead of qhullstatic
Added qh_dllimport to libqhull.h for qhull.dll with MSVC
Changed qhull-app-shared.pri to use libqhull (without qh_QHpointer)
- Renamed libqhull6.so to libqhull6_p.so
Renamed qhull6.dll to qhull6_p.dll
The _p libraries (e.g., libqhull6_p.so) require -Dqh_QHpointer
Renamed qhull6.vcproj to libqhull6_p.vcproj
Added libqhullp/libqhullp.pro for shared library (libqhull6_p.so)
Added qhull-app-sharedp.pri for shared libraries with qh_QHpointer
- Install libqhull/*.htm files into include/libqhull
- Removed libqhull/qhull.h-deprecated [J. Eaton]
- Other changes to Makefile builds
Added 'make qtestall' as a smoketest of each qhull program
src/libqhull/Makefile: Use 'ar -rs ...' instead of ranlib
src/libqhull/Makefile: Fixed targets for cleanall
- Other changes to DevStudio builds
Moved pdb files for qhull libraries to lib/
AdditionalIncludeDirectories: Removed ../src/libqhullcpp
Use build-cmake/ for the DevStudio CMake build
- Other changes to Qt builds
Renamed qhull-libsrc.pri to qhull-libqhull-src.pri
- Added explicit d2u conversions to qhull-zip.sh
- Fixed \n vs. \r\n issues for Windows source files
Draft of Debian/AutoConf build (untested)
- Adjusted the Makefile.am's for the new directory structure.
- Added testqset to bin_PROGRAMS
- config/bootstrap.sh copies program sources into src/libqhull
- Kept qh_QHpointer=0 (static global data structure, qh_qh). It is faster.
Planning a new interface (qhull7?) which passes qh_qh as a parameter
- Added config/changelog from the 2003.1 Debian build
- Moved the debian/patches directory to config/
Optional patches to change smoketest message and turn on qh_QHpointer
- Deleted the debian directory. It was the old Debian build from 2003.1
Rafael Laboissiere's config directory replaced this build..
- Deleted Make-conf.sh (also the old Debian build)
Doc changes
- FAQ: Updated notes on computing volume of a Voronoi region
- Added direct link to ACM Digital Library for downloading the qhull paper
- Added link to Qhull in R
- qset.c: Updated notes about NULL sets
- qh_setappend: clarify qh_setappend for NULL newelem
- qh_setdellast: Fix head note
- Add build/README.txt
- Add uninstall instructions to README.txt and CMakeLists.txt
- Added instructions to create build/*.vcproj to CMakeLists.txt
- Update copyright to 2012
- Updated page links. Added Google books, patents, and blogs.
-----------
Qhull 2009.1.3 2011/12/06
configure: Add -fno-strict-aliasing if $GCC, Required for gcc 4.1+
------------
Qhull 2011.2 2011/11/29 6.2.1.1446
Bug fixes
- qh_new_qhull: Call qh_prepare_output if !outfile [A. Aldoma]
No effect on qhull users since qh_prepare_output is always called.
- Replace Qhull-go.pif with Qhull-go.lnk for Windows 7 64-bit [lots]
- Error if qh_newhashtable, qh_setnew, or qh_memalloc overflows [X. Cheng]
For example, 'rbox 64 D32' overflows hash table for qh_matchnewfacets
Qhull uses 32-bit ints for identifiers, counts, and sizes. See "WARN64"
- q_eg, q_test: change tail +3 to tail -n +3 [N. Dubray, M. Atzeri]
- Qhull-go.bat: Changed 'cmd' to '%comspec%'
Build changes
- Added src/libqhull/Makefile for simple gcc build of executables and lib
- qhulltest.vcproj: Replaced full path to QT with $QTDIR (e.g., c:/qt/4.7.4)
- Split userprintf_rbox.c from userprintf.c,
Otherwise qhull brings in rboxlib and rbox brings in libqhull
- Makefile: qhullx target must be after LIBQHULLS_OBJS
- Makefile: Explicitly list rbox dependencies for qhullx target
- MBorland: Fixed tabs
- Placed $LIBQHULLS_OBJS in same order. Frequently called ones together.
- Update file lists for Make-config.sh [O. Lahaye]
- CMakeLists: add README.txt,etc. to DOC_INSTALL_DIR [M. Atzeri]
- Restored qhull.h-deprecated.
qhull.h conflicts with Qhull.h on Windows systems [C. Abela]
- make-config.sh: Add warning that it is out-of-date
- Remove extra space in '#! /bin/sh' in q_eg, etc. [P. Cheeseman]
Source changes
- libqhull.h: Added qh_True and qh_False for True/False [A. Mutzel]
Did not remove or replace True/False since it is used everywhere
- Moved error message from qh_argv_to_command to caller. Avoids dependency.
- user_eg3.c: Use '10 D2' as default rbox (e.g., 'user_eg3 rbox qhull d')
- user.c, user_eg2.c: Add test of qh_qh as done in user_eg.c
- q_test: Removed duplicate test of qhull C-0.02
Documentation
- index.html: Added ACM Authorizer link to ACM Trans. Math. Software
- Split Delaunay and Voronoi FAQs
- FAQ: How to compute the volume of a Voronoi region [C, Brinch]
- Add 'FS' to qconvex prompt (total area and volume)
- Add clarification to 'Fv' about corner input sites [O. Can]
- Qhull-go.bat: Removed out-of-date advice. Added title.
- qh-code.htm: Updated the discussion of multi-threading for C++ [I. Pirwani]
Qhull 2009.1.2 2011/11/21
- Revert to LF line endings [P. Cheeseman]
- Remove out-of-date material from qhull-go.bat
- Replaced QHULL-GO with a lnk file
Qhull 2011.1 2011/05/23 6.2.0.1385 (exe/dll files unchanged)
- delaunay.vcproj: Fixed qhullstatic_d.lib for debug and minrelsize builds
- Did not redate the distribution
Qhull 2011.1 2011/05/18 6.2.0.1385 (exe/dll files unchanged)
- Add 'm' library to shared and static targets on Unix [A. Bouchard]
Qhull 2011.1 2011/05/14 6.2.0.1383 (exe/dll files unchanged)
- PointCoordinates.cpp: Add #include <iterator> [R. Richter, S. Pasko]
- Remove deprecated libqhull/qhull.h
Use libqhull/libqhull.h instead. Avoids confusion with libqhullcpp/Qhull.h
- Makefile: Add LIBDIR, INCDIR, and DESTDIR to install [L.H. de Mello]
Separate MAN install from DOC install
Create install directories
Installs headers to include/libqhull, include/libqhullcpp, include/road
- CMakeLists.txt: Add MAN_INSTALL_DIR for qhull.1 and rbox.1 man pages
Add RoadTest.h to include/road for Qt users (road_HEADERS)
- Renamed md5sum files to avoid two extensions
- qh-get.htm: Add Readme links and 2009.1 note.
- qh-optf.htm: Fix link
- index.htm: Updated Google Scholar link
- qhull-zip.sh: Improved error message.
------------
Qhull 2011.1 2011/04/17 6.2.0.1373
Changes to deliverables
- qvoronoi: Deprecated 'Qt' and 'QJn'. Removed from documentation and prompts.
These options produced duplicate Voronoi vertices for cospherical data.
- Removed doskey from Qhull-go.bat. It is incompatible with Windows 7
- Added 'facets' argument to user_eg3.cpp
- user_eg links with shared library
- qhulltest.cpp: Add closing prompt.
Changes to build system
- Reorganized source directories
- Moved executables to bin directory
- Add CMake build for all targets (CMakeFiles.txt) [M. Moll assisted]
- Add gcc build for all targets (Makefile)
- Fixed location of qhull.man and rbox.man [M. Moll]
- Add DevStudio builds for all targets (build/*.vcproj)
- Added shared library (lib/qhull6.dll)
Added qh_QHpointer_dllimport to work around problems with MSVC
- Added static libraries with and without qh_QHpointer (lib/qhullstatic.lib)
- Added eg/make-vcproj.sh to create vcproj/sln files from cmake and qmake
- Document location of qh_QHpointer
- Use shadow build directory
- Made -fno-strict-aliasing conditional on gcc version
- Added src/qhull-app-cpp.pri, src/qhull-app-c.pri, etc. for common settings
- Add .gitignore with ignored files and directories.
- Use .git/info/exclude for locally excluded files.
- Fixed MBorland for new directory structure
- cleanall (Makefile): Delete 'linked' programs due to libqhull_r and libqhull/Makefile
Changes to documentation
- qvoronoi.htm: Remove quotes from qvoronoi example
- qhull-cpp.xml: Add naming conventions
- index.htm: Add Google Scholar references
- qh-optf.htm: Add note about order of 'Fn' matching 'Fv' order [Q. Pan]
- Add patch for old builds in qh-get.htm
- Added C++ compiling instructions to README.txt
- Add instructions for fixing the DOS window
- Changed DOS window to command window
- Fixed html links
- qh-get.htm: Dropped the Spanish mirror site. It was disabled.
Changes to C code
- mem.h: Define ptr_intT as 'long long' for Microsoft Windows _win64 builds.
On Linux and Mac, 'long' is 64-bits on a 64-bit host
- Added qh_QHpointer_dllimport to work around MSVC problem
- qconvex.c,etc.: Define prototype for _isatty
- Define MSG_QHULL_ERROR in user.h
- Move MSG_FIXUP to 11000 and updated FIXUP QH11...
Changes to test code
- Add note to q_test than R1e-3 may error (qh-code.htm, Enhancements)
- Add test for executables to q_eg, etc.
- Fixed Qhull-go.bat. QHULL-GO invokes it with command.com,
Changes to C++ interface
- QhullFacet: Added isSimplicial, isTopOrient, isTriCoplanar, isUpperDelaunay
- Added Qhull::defineVertexFacetNeighbors() for facetNeighbors of vertices.
Automatically called for facet merging and Voronoi diagrams
Do not print QhullVertex::facetNeighbors is !facetNeighborsDefined()
- Assigned FIXUP identifiers
- QhullError: Add copy constructor, assignment operator, and destructor
- Add throw() specifiers to RoadError and QhullError
- Renamed RoadError::defined() to RoadError::isDefined()
- Add #error to Qhull.h if qh_QHpointer is not defined
Changes to C++ code
- Fixed bug reported by renangms. Vertex output throws error QH10034
and defineVertexNeighbors() does not exist.
- Define QHULL_USES_QT for qt-qhull.cpp [renangms]
- Reviewed all copy constructors and copy assignments. Updated comments.
Defined Qhull copy constructor and copy assignment [G. Rivet-Sabourin]
Disabled UsingQhullLib default constructor, copy construct, and copy assign
- Merged changes from J. Obermayr in gitorious/jobermayrs-qhull:next
- Fix strncat limit in rboxlib.c and global.c
- Changes to CMakeLists.txt for openSUSE
- Fixed additional uses of strncat
- Fixed QhullFacet::PrintRidges to check hasNextRidge3d()
- Removed gcc warnings for shadowing from code (src/qhull-warn.pri)
- Removed semicolon after extern "C" {...}
- Removed experimental QhullEvent/QhullLog
- Use fabs() instead of abs() to avoid accidental conversions to int
- Fixed type of vertex->neighbors in qh_printvoronoi [no effect on results]
- Removed unnecessary if statement in qh_printvoronoi
------------
qhull 2010.1 2010/01/14
- Fixed quote for #include in qhull.h [U.Hergenhahn, K.Roland]
- Add qt-qhull.cpp with Qt conditional code
- Add libqhullp.proj
- Add libqhull5 to Readme, Announce, download
- Reviewed #pragma
- Reviewed FIXUP and assigned QH tags
- All projects compile with warnings enabled
- Replaced 'up' glyphs with »
- Moved cpp questions to qh-code.htm#questions-cpp
- Moved suggestions to qh-code.htm#enhance
- Moved documentation requests to qh-code.htm#enhance
- Add md5sum file to distributions
- Switched to DevStudio builds to avoid dependent libraries, 10% slower
Removed user_eg3.exe and qhullcpp.dll from Windows build
Fix qhull.sln and project files for qh_QHpointer
- Add eg/qhull-zip.sh to build qhull distribution files
------------
qhull 2010.1 2010/01/10
- Test for NULL fp in qh_eachvoronoi [D. Szczerba]
qhull 2010.1 2010/01/09
Changes to build and distribution
- Use qh_QHpointer=0 for libqhull.a, qhull, rbox, etc.
Use -Dqh_QHpointer for libqhullp.a, qhullcpp.dll, etc.
qh_QHpointer [2010, gcc] 4% time 4% space, [2003, msvc] 8% time 2% space
- Add config/ and project/debian/ for Autoconf build [R. Laboissiere]
from debian branch in git and http://savannah.nongnu.org/cvs/?group=qhull
- Add CMakeLists.txt [kwilliams]
- Fix tabs in Makefile.txt [mschamschula]
- Add -fno-strict-aliasing to Makefile for gcc 4.1, 4.2, and 4.3 qset segfault
- Remove user_eg.exe and user_eg2.exe from Windows distribution
- Order object files by frequency of execution for better locality.
Changes to source
- Remove ptr_intT from qh_matchvertices. It was int since the beginning.
- user.h requires <time.h> for CLOCKS_PER_SEC
- Move ostream<<QhullFacetList from inline to compiled.
- Removed ConvexHull/ from git. Not used.
------------
qhull 2009.1.1 2010/01/09
- Patch release of 2009.1.
qh_gethash allowed a negative result, causing overwrite or segfault
See git:qhull/project/patch/qhull-2003.1/poly.c-qh_gethash.patch
Compared results of q_test, q_eg, q_egtest with patched poly.c, qhull-2003.1
------------
qhull 2010.1 2010/01/07
- Assign type to qh.old_qhstat and memT.tempstack [amorilia]
- Replace tabs with spaces.
- Fix qh_pointid in case ptr_intT is unsigned
qhull 2010.1 2010/01/06
- Fixed serious bug in qh_gethash [poly.c]
- Documentation and build system are incomplete (see above)
- First release of C++ interface [qh-code.htm]
- Development moved to http://gitorious.org/qhull
git clone git@gitorious.org:qhull/qhull.git
- Did not fix conformant tesselations for 'Qt'.
For details, see http://www.qhull.org/news#bugs of May 2007 and Dec 2006.
- Use g++ builds for Windows distribution (10% faster than msvc2005)
Combined vcproj/ and qtproj/ into project/
vcproj will be replaced by qmake generated files
------------
qhull 2010.0.3 2010/01/05
Fixed bugs
- 'QJn': Fix qh.STOPcone in qh_build_withrestart(). It was not cleared.
- qh_initqhull_outputflags [global.c]: warn about Qc only if QHULLfinished
otherwise set if needed
qhull 2010.0.2 2010/01/04
Fixed bugs
- qh_gethash [poly.c]: fix sign conversion.
Previously, the result may be negative, leading to a segfault.
The bug is more likely with large address spaces
Reviewed all uses of %(modulo) for remainder with negative arguments
- Reviewed output of q_test and compared to results from 2003.1
Breaking code changes
- Return type of qh_gethash changed from unsigned to int. Matches 'size'
- addhash takes a signed hash
qh_addhash( newelem, hashtable, hashsize, hash )
Code changes
- Test for qh_qh in qh_printf
- Makefile.txt corrected for libqhull build [amorilia]
- Renamed index to idx to avoid shadowing BSD strings.h [kwilliams]
qhull 2010.0.1 2010/01/03
New Features:
- Added option 'Ta' to annotate output with message codes
Preliminary C++ support:
- C++ declarations may change without warning
- Preliminary documentation for Qhull's C++ interface [qh-code.htm#cpp, qhull-cpp.xml]
- Added user_eg3 as an example of Qhull.cpp
- Removed qhull_interface.cpp. Use Qhull.cpp instead.
If math.h breaks '#include qhull_a.h', preceed it with '#include math.h'
Changes to qhull options and results
- Allow 'd' and 'v' as the filename for 'TO ..' and 'TI ...' in qdelaunay [M. Jambon]
- 'rbox tN' requires an integer (previously allowed floats)
- Allow quoted filenames for 'TO ...' and 'TI ...'
- Prefix error messages and warnings with a message code (e.g., QH6012)
- Fixed rbox ignoring flags that were not separated by spaces
- Report all hidden options before exiting in qh_checkflags()
- Defined qh_OPTIONline [user.h] as max length of option line ('FO')
- Report error if negative arguments to rbox 'G', 'L', 'Z'
- Unknown rbox flag changed from a warning to an error
- Set error status 4 qh_ERRmem if rbox runs out of memory
- Removed extra spaces at end of line
Breaking Code Changes:
- Renamed qh.coplanarset to coplanarfacetset. Avoids conflict with facetT.coplanarset
- qh_restore_qhull() zeroes out qh.old_qhstat and qh.old_tempstack. Ownership moved.
- Rewrote save_qhull/restore_qhull
- Add Ztotcheck to zzdef_ [R. Gardener]
- Changed qh_malloc to size_t (was unsigned long)
- Declare qh_PRINT instead of int [kwilliams]
- In qh_printafacet(), changed error output to 'qh ferr'
Bug fixes to C code:
- Use gcc 4.4.0 or later. gcc 4.2.1, 4.2.2, and 4.3.2 -O2 segfaults in qset.c . gcc 4.1.1 was OK
See bug report http://gcc.gnu.org/ml/gcc-bugs/2007-09/msg00474.html
- Rewrite qh_setappend to avoid g++ 4.1, 4.2, and 4.3 strict_aliasing error.
Orion Poplawski (orion@cora.nwra.com)
http://www.rpmfind.net/linux/RPM/fedora/12/ppc/qhull-devel-2003.1-13.fc12.ppc64.html
- Fixed qh_findfacet_all(), "REALmin" should be "-REALmax" [L.A. Taylor].
Effects library users for convex hulls and halfspace intersections.
- qh_printfacet [io.c] Removed extra space for neighboring facets
- Report error if d points, Delaunay, and not Qz
- Fixed double-free of facet->centrum for triangulated facets
- Fixed mindist initialization if !testcentrum in io.c findbest_test [Ratcliff]
- Fixed parentheses around warning for missing 'Qc' [qh_initqhull_outputflags]
- Fixed rbox buffer overflow of 'command' when appending seedbuf
- Fixed option string for 'rbox t t999'. Although seed was correctly set to 999,
a random seed was appended to the rbox comment (e.g., 'rbox t t999 t32343')
- Fixed upper bound of sanity check for qh_RANDOMmax in qh_initqhull_globals()
Changes to C code
- Reordered #include from specific to general. Move up .h for module.
- Removed qh.old_stat -- never used
- Removed qh_clearcenters from qh_freeqhull. Duplicated by qh_delfacet
- qh_printcenter [io.c] removed unreachable fprintf argument
- qh_getarea() [geom2.c] ignored on multiple calls (qh.hasAreaVolume)
- qh_getarea() [geom2.c] checks facet->isarea. Set by QhullFacet.facetArea()
- qh_triangulate() [poly2.c] ignored on multiple calls (qh.hasTriangulation)
- Add statistics for vertex_visit and visit_id to buildtracing
- Defined scale and offset parameters for qh_randomfactor
Bug fixes and changes to mem.c/mem.h
- Fixed qhmem.totshort (total short memory in use)
- Memory tracing (T5) redone for sort order by object
- Added full tracing for short memory allocations.
- Added qhmem.totfree (total short memory on freelists)
Increases size of qh_memalloc_ and qh_memfree_
- Added qhmem.totdropped (leftover freesize at end of each short buffer)
- Added qhmem.totunused (short size - request size)
- Added qhmem.totbuffer (total short memory buffer w/o links)
- Added memory statistics to qh_NOmem;
- Added qh_memtotal to track allocated memory
- Renamed qh_memfree parameter to 'insize' for consistency with qh_memalloc
- Removed qhmem.curlong. qa_memfreeshort computes curlong from cntlong and cntfree
- In mem.h, changed ptr_intT to long. qh_meminit() checks that it holds a 'void*'
Fixed g++ and devstudio warnings
- Except for bit field conversions, compiles cleanly with
-Wall -Wextra -Wshadow -Wcast-qual -Wwrite-strings -Wno-sign-conversion -Wconversion
- Fixed warnings at VC8, level 4
- Fix data types to remove conversion warnings [kwilliams]
- Use size_t for calls to malloc,etc [kwilliams]
Retained int sizes for qset.h and mem.h. Follows Qt convention
and is easier to work with. int can be 64-bits if 2 billion facets
- Change literal strings to const char* [kwilliams]
- Added type casts to SETfirst and SETsecond [amorilia+alphax]
- getid_() returns an int [kwilliams]
- Add missing const annotations [kwilliams]
- Fixed 64-bit warnings (marked with "WARN64")
- Convert sizeof to (int) for int parameters
- In libqhull.c, added explicit casts from long to float, Avoids warning
- In global.c, cast time() to int for QRandom-seed. Avoids warning
Changes to C code for C++ support
- Add sln, vcproj, and qtpro files for building Qhull -- add to README notes
- Added dim to vertexT for cpp interface. Reduced size of qh.vertex_visit
- qh_produce_output [io.c] may be called multiple times (C++ interface)
- Moved SETsizeaddr_() to qset.h for use by QhullSet.cpp
- Option 'Tz' sets flag qh.USEstdout for QhullPoints.cpp
- Added support for multiple output runs from QhullPoints.outputQhull
- qh_clear_outputflags() resets the output flags
- qh_initqhull_outputflags split from qh_initqhull_globals
- Added qh.run_id, a random identifier for this instance of Qhull (QhullPoints)
- For qh.run_id, initqhull_start initializes qh_RANDOMseed to time instead of 1
- Extracted qh_argv_to_command (random.c) from qh_init_qhull_command and fixed a buffer overflow
- Moved qh_strtod/qh_strtol from global.c to random.c for use in rboxlib.c
- Split out random functions into random.c
- Added message codes to qh_fprintf(). See its definition in user.c
- Replaced exit, malloc, free, fprintf, and fputs with qh_malloc,...[J.W. Ratcliff]
- Added qh_fprintf, qh_malloc, qh_free, ph_printhelp_narrowhull to user.c
- Moved qh_printhelp_degenerate and qh_printhelp_singular from io.c to user.c
- Clear qh.ERREXITcalled at end of qh_errexit().
Documentation:
- Fixed out-of-date CiteSeer references
- Renamed html/qh-in.htm to html/qh-code.htm
- Add reference to 'Qt' to 'i'
- Add reference to 'FS' to 'FA'
- qh-impre.htm discusses precision issues for halfspace intersection
- Add cross references between options 'FA' and 'FS'
- Added link to Wolfram Research's MathWorld site
- Updated Fukuda's links
- Changed copyright to C.B. Barber for C++, documentation, and merge.c
- Updated Qhull citation with page numbers.
- Proposed project: constructing Voronoi diagram
- Proposed project: computing Voronoi volumes
- Replaced tabs with spaces in qhull.txt and rbox.txt
------------
qhull 2009.1 2009/6/11
This is a maintenance release done by Rafael Laboissiere <rafael@debian.org>.
- src/rbox.c (main): Avoid problems of evaluation order when
pre-incrementing arguments of strtod
- src/io.c (qh_produce_output), src/stat.c (qh_initstatistics): Use %lu
instead of %d in the format string for arguments of type size_t
- html/qhull.man, html/rbox.man: Fix several syntax, macros, and hyphen
problems in man pages
- The Autotools files have been generated with modern version of autoconf (2.63),
automake/aclocal (1.10.2), and libtool (2.2.6)
- Some character issues in the man pages are fixed
Roo implements read access for all common spreadsheet types. It can handle:
* Excel 2007 - 2013 formats (xlsx, xlsm)
* LibreOffice / OpenOffice.org formats (ods)
* CSV
* Excel 97, Excel 2002 XML, and Excel 2003 XML formats when using
the roo-xls gem (xls, xml)
* Google spreadsheets with read/write access when using roo-google
Untested, but packages fine.
Upstream changes:
# 2014-09-21 - Version 2.3.1
- Fixed message "Warning in formatC(Signif) : class of 'x' was discarded"
- Fixed problem looking up objects in Sweave. R Code inside
Sweave files is now evaluated in .GlobalEnv, again, as
before version 2.3.0.
# 2014-09-06 - Version 2.3
- API BREAK: Make package conform to new CRAN policies.
- .HTML.file is no longer stored in the global environment:
use HTMLSetFile() and HTMLGetFile() instead of modifying it directly.
- .HTMLenv is no longer stored in the global environment:
it should never have been accessed directly in the first place.
- fix() is no longer replaced during HTMLStart()/HTMLStop() sessions.
- Remove obsolete handling of 'date' class from package survival.
- Remove obsolete support for old format of objects from the rpart package
Upstream changes:
Version 1.0.8 2010/08/09
- path.packages instead of .path.package (later is defunct).
- change in lm.phylog to prevent (incorrect) note about no visible binding
for global variable \xe2\x80\x98sim.counter\xe2\x80\x99 in a call to subset.
Upstream changes:
Changes in version 1.6-7
fix some bug in handling weights in svm.default
Changes in version 1.6-6
fix numeric issue in classAgreement()
add functions from recommended packages to NAMESPACE
fix bug in svm.default (incorrect handling of subset= argument)
fix bug in predict.svm (new data with NA in response got removed)
residuals are now correctly computed for regression in case of scaled data
Changes in version 1.6-5
hamming.distance() no longer converts input to binary
tune() now uses mean() to aggregate error measures from cross-fold replications
Changes in version 1.6-4
remove library("SparseM") statements in code, use namespace semantics instead
Fix memory leak and uninitialized read error in write.svm()
add warning in predict.svm() if probabilities should be predicted, but the model was not trained with probability = TRUE
add eps to laplace smoothing in predict.naiveBayes() to account for close-zero probabilities also.
use R's random number generator for cross-validation and probability computation instead of the system one.
Changes in version 1.6-3
remove require() statements and dependency on stats
Changes in version 1.6-2
vignettes moved to vignettes folder.
libsvm upgrade to version 3.17, getting rid of stdout and stderr
Estimation and inference methods for models of conditional quantiles:
Linear and nonlinear parametric and non-parametric (total variation
penalized) models for conditional quantiles of a univariate response
and several methods for handling censored survival data. Portfolio
selection methods based on expected shortfall risk are also included.
2.01080606a
cygwin's tar generated 0-permissions for the distribution (no auto-workaround...).
Document workarounds for isprime() with version 2.1.7 (in the BUGS section).
2.01080607
Correct the documention about fraction of witnesses from >=0.25 to >=0.75.
Define HAS_STAT and HAS_OPENDIR basing on $Config{i_sysstat} and $Config{i_dirent}.
Correct spelling errors in POD and comments in Pari.pm (thanks to dsteinbrunner!).
On AIX, do merge_822 separately in subdirectories (exceeds command line length otherwise).
On >=2.3.0, reset had-newline-on-output to 1 at startup. (Saves one spurious NL)
New patch: diff_2.3.5_stderr_clobber
New test: 01_no_extra_newlines.t
Allow download not only via FTP, but also through HTTP.
In presence of PERL5_CPAN_IS_RUNNING, assume that NO ANSWER on prompt is agreement.
(It looks like cygwin and MSWin32 automated-testing environment do not have
AUTOMATED_TESTING and PERL_MM_USE_DEFAULT set...)
Do not auto-download on 64-bit builds of MSWin32.
2.010807
Too long version name was a misprint.
Pay attention to PERL_EXTUTILS_AUTOINSTALL when interpreting empty answers to prompt (probably an overkill).
(disable this abomination by PERL_MATHPARI_TRUST_MANUAL)
(to see why this may be needed: http://www.cpantesters.org/cpan/report/a5d65ec6-6bf3-1014-87a8-67ba45601f20)
Report bytes in the answer for prompt.
Separate into separate subroutines inspecting versions available for download from the actual download.
Change the logic of fallback Net::FTP --> LWP: before, if Net::FTP fails in retrieving the directory listing;
now: if this happens, or if it fails to retrieve the file (how can it happen?! see http://www.cpantesters.org/cpan/report/e7f9d5a7-6bfa-1014-9d0f-1948c9c86cae)
__wrap_PARI_macro: new function (not exported)
parse_as_gp: new function (exported by default)
More verbose error message for "Cannot load a Pari macro".
2.010808
A night of sleep fixed problems of parse_of_gp with the operator \ and empty lines.
(test suite updated)
Actually, mingw was not ready for HAVE_OPENDIR.
Store which patches were applied in $dir/.perl.patches.
Report which patches were not applied.
Export patches_for() from BuildPari.
pari_tgz build option was broken (by LWP-after-NFTP support code which, apparently, did not help with timeouts).
Ignore 0-size "downloaded" files.
The PCG family of Random Number Generators combines properties not
previously seen together in the same generation scheme:
+ It's really easy to use, and yet its very flexible and offers
powerful features (including some that allow you to perform silly
party tricks).
+ It's very fast, and can occupy very little space.
+ It has small code size.
+ It's performance in statistical tests is excellent (see the PCG
paper for full details).
+ It's much less predictable and thus more secure than most generators.
+ It's open source software, with a permissive license (the Apache license).
0.17.1
This is a minor bug-fix release from 0.17.0 and includes a large
number of bug fixes along several new features, enhancements, and
performance improvements. We recommend that all users upgrade to
this version.
Highlights include:
Support for Conditional HTML Formatting, see here
Releasing the GIL on the csv reader & other ops, see here
Fixed regression in DataFrame.drop_duplicates from 0.16.2,
causing incorrect results on integer values (GH11376)
0.17.0
This is a major release from 0.16.2 and includes a small number of
API changes, several new features, enhancements, and performance
improvements along with a large number of bug fixes. We recommend
that all users upgrade to this version.
Highlights include:
Release the Global Interpreter Lock (GIL) on some cython
operations, see here
Plotting methods are now available as attributes of the .plot
accessor, see here
The sorting API has been revamped to remove some long-time
inconsistencies, see here
Support for a datetime64[ns] with timezones as a first-class
dtype, see here
The default for to_datetime will now be to raise when presented
with unparseable formats, previously this would return the
original input. Also, date parse functions now return consistent
results. See here
The default for dropna in HDFStore has changed to False, to
store by default all rows even if they are all NaN, see here
Datetime accessor (dt) now supports Series.dt.strftime to
generate formatted strings for datetime-likes, and
Series.dt.total_seconds to generate each duration of the
timedelta in seconds. See here
Period and PeriodIndex can handle multiplied freq like 3D,
which corresponding to 3 days span. See here
Development installed versions of pandas will now have PEP440
compliant version strings (GH9518)
Development support for benchmarking with the Air Speed Velocity
library (GH8361)
Support for reading SAS xport files, see here
Documentation comparing SAS to pandas, see here
Removal of the automatic TimeSeries broadcasting, deprecated
since 0.8.0, see here
Display format with plain text can optionally align with Unicode
East Asian Width, see here
Compatibility with Python 3.5 (GH11097)
Compatibility with matplotlib 1.5.0 (GH11111)
-- Library config detected: Qt3/CMakeLists.txt
CMake Error at src/CMakeLists.txt:33 (add_subdirectory):
add_subdirectory given source
"/usr/tmp/math/cgal/work/CGAL-3.9/src/CGALQt3/CMakeLists.txt" which is not
an existing directory.
Call Stack (most recent call first):
src/CMakeLists.txt:80 (configure_component)
I guess the behavior of string(REPLACE ...) changed with the newer version
of cmake ...
ChangeLog:
Changes in 0.13.3.1
* primitive-0.6 compatibility
Changes in 0.13.3.0
* Monadic variant of vector shuffle added: `uniformShuffleM`
* Context on `uniformShuffle` loosened
Changes in 0.13.2.2
* Fixed crash during gen. initialization on Windows when stderr
is not available (#36).
### 1.1.0 / 08.12.2015
Author: Matthew Boeh <matt@crowdcompass.com>
Date: Mon Dec 7 11:18:55 2015 -0800
* Disregard locale indicators when determining whether a cell contains a
date/time.
### 1.0.9 / 18.11.2015
Author: 545ch4 <s@rprojekt.org>
Date: Mon Nov 16 10:26:27 2015 +0100
* Add smart method compact! to worksheet
* Use compact! to reduce the number of rows and columns by striping empty one
at both ends.
### 1.0.8 / 20.10.2015
commit e9bd1dd34998803b63460f4951e9aa34e569bd8f
Author: Pierre Laprée <pilap82@users.noreply.github.com>
Date: Tue Oct 20 03:12:22 2015 +0200
* Remove stray `puts`
* A `puts` instruction pollutes the log and doesn't serve any purpose. As
such, we propose its removal.
FFTW 3.3.4
* New functions fftw_alignment_of (to check whether two arrays are
equally aligned for the purposes of applying a plan) and fftw_sprint_plan
(to output a description of plan to a string).
* Bugfix in fftw-wisdom-to-conf; thanks to Florian Oppermann for the
bug report.
* Fixed manual to work with texinfo-5.
* Increased timing interval on x86_64 to reduce timing errors.
* Default to Win32 threads, not pthreads, if both are present.
* Various build-script fixes.
FFTW 3.3.3
* Fix deadlock bug in MPI transforms (thanks to Michael Pippig for the
bug report and patch, and to Graham Dennis for the bug report).
* Use 128-bit ARM NEON instructions instead of 64-bits. This change
appears to speed up even ARM processors with a 64-bit NEON pipe.
* Speed improvements for single-precision AVX.
* Speed up planner on machines without "official" cycle counters, such as ARM.
NLopt is a free/open-source library for nonlinear optimization,
providing a common interface for a number of different free optimization
outines available online as well as original implementations of various
other algorithms.
Its features include:
- Callable from C, C++, Fortran, Matlab or GNU Octave, Python,
GNU Guile, Julia, GNU R, Lua, and OCaml.
- A common interface for many different algorithms -- try a different
algorithm just by changing one parameter.
- Support for large-scale optimization (some algorithms scalable to
millions of parameters and thousands of constraints).
- Both global and local optimization algorithms.
- Algorithms using function values only (derivative-free) and also
algorithms exploiting user-supplied gradients.
- Algorithms for unconstrained optimization, bound-constrained
optimization, and general nonlinear inequality/equality constraints.
Reviewed by: wiz@
A new, more efficient implementation of the dual simplex method
was included in the package. This new implementation replaces
the old one, which was removed.
Option sr_heur was added to struct glp_iocp to enable/disable
the simple rounding heuristic used by the MIP solver.
New API routine glp_at_error was added and documented.
Some minor typos were corrected in the GLPK documentation.
An example application program TSPSOL was added. It uses the
GLPK MIP optimizer to solve the Symmetric Traveling Salesman
Problem and illustrates "lazy" constraints generation. For more
details please see glpk/examples/tsp/README.
The find-prefix infrastructure was required in a pkgviews world where
packages installed from pkgsrc could have different installation
prefixes, and this was a way for a dependency prefix to be determined.
Now that pkgviews has been removed there is no longer any need for the
overhead of this infrastructure. Instead we use BUILDLINK_PREFIX.pkg
for dependencies pulled in via buildlink, or LOCALBASE/PREFIX where the
dependency is coming from pkgsrc.
Provides a reasonable performance win due to the reduction of `pkg_info
-qp` calls, some of which were redundant anyway as they were duplicating
the same information provided by BUILDLINK_PREFIX.pkg.
* What is new in gsl-2.1:
** added test suite for example programs
** bug fix when compiling with #undef GSL_DISABLE_DEPRECATED
** bug fix in setting libtool age versioning
** bug fix in gsl_multifit_wlinear()
** added gsl_multifit_linear_rcond() to compute reciprocal
condition number of least squares matrix
** added gsl_multilarge module for large linear least squares
systems
Eigen 3.2.7
Released on November 5, 2015
Changes since 3.2.6:
* Main fixes and improvements:
+ Add support for dense.cwiseProduct(sparse).
+ Fix a regression regarding (dense*sparse).diagonal().
+ Make the IterativeLinearSolvers module compatible with
MPL2-only mode by defaulting to COLAMDOrdering and
NaturalOrdering for ILUT and ILLT respectively.
+ [59]Bug 266: backport support for c++11 move semantic
+ operator/=(Scalar) now performs a true division (instead of
mat*(1/s))
+ Improve numerical accuracy in LLT and triangular solve by
using true scalar divisions (instead of mat * (1/s))
+ [60]Bug 1092: fix iterative solver constructors for
expressions as input
+ [61]Bug 1088: fix setIdenity for non-compressed sparse-matrix
+ [62]Bug 1086: add support for recent SuiteSparse versions
* Others:
+ Add overloads for real-scalar times SparseMatrix<complex>
operations. This avoids real to complex conversions, and also
fixes a compilation issue with MSVC.
+ Use explicit Scalar types for AngleAxis initialization
+ Fix several shortcomings in cost computation (avoid multiple
re-evaluation in some very rare cases).
+ [63]Bug 1090: fix a shortcoming in redux logic for which
slice-vectorization plus unrolling might happen.
+ Fix compilation issue with MSVC by backporting
DenseStorage::operator= from devel branch.
+ [64]Bug 1063: fix nesting of unsupported/AutoDiffScalar to
prevent dead references when computing second-order
derivatives
+ [65]Bug 1100: remove explicit CMAKE_INSTALL_PREFIX prefix to
conform to cmake install's DESTINATION parameter.
+ unsupported/ArpackSupport is now properly installed by make
install.
+ [66]Bug 1080: warning fixes
Eigen 3.2.6
Released on October 1, 2015
Changes since 3.2.5:
* fix some compilation issues with MSVC 2013, including bugs [67]1000
and [68]1057
* SparseLU: fixes to support EIGEN_DEFAULT_TO_ROW_MAJOR ([69]bug
1053), and for empty ([70]bug 1026) and some structurally rank
deficient matrices ([71]bug 792)
* [72]Bug 1075: fix AlignedBox::sample() for Dynamic dimension
* fix regression in AMD ordering when a column has only one
off-diagonal non-zero (used in sparse Cholesky)
* fix Jacobi preconditioner with zero diagonal entries
* fix Quaternion identity initialization for non-implicitly
convertible types
* [73]Bug 1059: fix predux_max<Packet4i> for NEON
* [74]Bug 1039: fix some issues when redefining
EIGEN_DEFAULT_DENSE_INDEX_TYPE
* [75]Bug 1062: fix SelfAdjointEigenSolver for RowMajor matrices
* MKL: fix support for the 11.2 version, and fix a naming conflict
([76]bug 1067)
+ [77]Bug 1033: explicit type conversion from 0 to RealScalar
Eigen 3.3-alpha1
Released on September 4, 2015
See the [78]announcement.
Eigen 3.2.5
Released on June 16, 2015
Changes since 3.2.4:
* Changes with main impact:
+ Improve robustness of SimplicialLDLT to semidefinite problems
by correctly handling structural zeros in AMD reordering
+ Re-enable supernodes in SparseLU (fix a performance regression
in SparseLU)
+ Use zero guess in ConjugateGradients::solve
+ Add PermutationMatrix::determinant method
+ Fix SparseLU::signDeterminant() method, and add a
SparseLU::determinant() method
+ Allows Lower|Upper as a template argument of CG and MINRES: in
this case the full matrix will be considered
+ [79]Bug 872: remove usage of std::bind* functions (deprecated
in c++11)
* Numerical robustness improvements:
+ [80]Bug 1014: improve numerical robustness of the 3x3 direct
eigenvalue solver
+ [81]Bug 1013: fix 2x2 direct eigenvalue solver for identical
eigenvalues
+ [82]Bug 824: improve accuracy of Quaternion::angularDistance
+ [83]Bug 941: fix an accuracy issue in ColPivHouseholderQR by
continuing the decomposition on a small pivot
+ [84]Bug 933: improve numerical robustness in RealSchur
+ Fix default threshold value in SPQR
* Other changes:
+ Fix usage of EIGEN_NO_AUTOMATIC_RESIZING
+ Improved support for custom scalar types in SparseLU
+ Improve cygwin compatibility
+ [85]Bug 650: fix an issue with sparse-dense product and
rowmajor matrices
+ [86]Bug 704: fix MKL support (HouseholderQR)
+ [87]Bug 705: fix handling of Lapack potrf return code (LLT)
+ [88]Bug 714: fix matrix product with OpenMP support
+ [89]Bug 949: add static assertions for incompatible scalar
types in many of the dense decompositions
+ [90]Bugs 957, [91]1000: workaround MSVC/ICC compilation issues
when using sparse blocks
+ [92]Bug 969: fix ambiguous calls to Ref
+ [93]Bugs 972, [94]986: add support for coefficient-based
product with 0 depth
+ [95]Bug 980: fix taking a row (resp. column) of a column-major
(resp. row-major) sparse matrix
+ [96]Bug 983: fix an alignement issue in Quaternion
+ [97]Bug 985: fix RealQZ when either matrix had zero rows or
columns
+ [98]Bug 987: fix alignement guess in diagonal product
+ [99]Bug 993: fix a pitfall with matrix.inverse()
+ [100]Bugs 996, [101]1016: fix scalar conversions
+ [102]Bug 1003: fix handling of pointers non aligned on scalar
boundary in slice-vectorization
+ [103]Bug 1010: fix member initialization in IncompleteLUT
+ [104]Bug 1012: enable alloca on Mac OS or if alloca is defined
as macro
+ Doc and build system: [105]733, [106]914, [107]952, [108]961,
[109]999
Eigen 3.2.4
Released on January 21, 2015
Changes since 3.2.3:
* Fix compilation regression in Rotation2D
* [110]Bug 920: fix compilation issue with MSVC 2015.
* [111]Bug 921: fix utilization of bitwise operation on enums in
first_aligned.
* Fix compilation with NEON on some platforms.
Eigen 3.2.3
Released on December 16, 2014
Changes since 3.2.2:
* Core:
+ Enable Mx0 * 0xN matrix products.
+ [112]Bug 859: fix returned values for vectorized versions of
exp(NaN), log(NaN), sqrt(NaN) and sqrt(-1).
+ [113]Bug 879: tri1 = mat * tri2 was compiling and running
incorrectly if tri2 was not numerically triangular. Workaround
the issue by evaluating mat*tri2 into a temporary.
+ [114]Bug 854: fix numerical issue in
SelfAdjointEigenSolver::computeDirect for 3x3 matrices.
+ [115]Bug 884: make sure there no call to malloc for zero-sized
matrices or for a Ref<> without temporaries.
+ [116]Bug 890: fix aliasing detection when applying a
permutation.
+ [117]Bug 898: MSVC optimization by adding inline hint to
const_cast_ptr.
+ [118]Bug 853: remove enable_if<> in Ref<> ctor.
* Dense solvers:
+ [119]Bug 894: fix the sign returned by LDLT for multiple calls
to compute().
+ Fix JacobiSVD wrt underflow and overflow.
+ [120]Bug 791: fix infinite loop in JacobiSVD in the presence
of NaN.
* Sparse:
+ Fix out-of-bounds memory write when the product of two sparse
matrices is completely dense and performed using pruning.
+ UmfPack support: fix redundant evaluation/copies when calling
compute(), add support for generic expressions as input, and
fix extraction of the L and U factors ([121]Bug 911).
+ Improve SparseMatrix::block for const matrices (the generic
path was used).
+ Fix memory pre-allocation when permuting inner vectors of a
sparse matrix.
+ Fix SparseQR::rank for a completely empty matrix.
+ Fix SparseQR for row-major inputs.
+ Fix SparseLU::absDeterminant and add respective unit test.
+ BiCGSTAB: make sure that good initial guesses are not
destroyed by a bad preconditioner.
* Geometry:
+ Fix Hyperplane::Through(a,b,c) when points are aligned or
identical.
+ Fix linking issues in OpenGLSupport.
* OS, build system and doc:
+ Various compilation fixes including: [122]bug 821, [123]bug
822, [124]bug 857, [125]bug 871, [126]bug 873.
+ Fix many compilation warnings produced by recent compilers
including: [127]bug 909.
+ [128]Bug 861: enable posix_memalign with PGI.
+ Fix BiCGSTAB doc example.
Eigen 3.2.2
Released on August 4, 2014
Changes since 3.2.1:
* Core:
+ Relax Ref such that Ref<MatrixXf> accepts a RowVectorXf which
can be seen as a degenerate MatrixXf(1,N)
+ Fix performance regression for the vectorization of sub
columns/rows of matrices.
+ EIGEN_STACK_ALLOCATION_LIMIT: Raise its default value to
128KB, make use of it to assert on maximal fixed size object,
and allows it to be 0 to mean "no limit".
+ [129]Bug 839: Fix 1x1 triangular matrix-vector product.
+ [130]Bug 755: CommaInitializer produced wrong assertions in
absence of Return-Value-Optimization.
* Dense solvers:
+ Add a rank() method with threshold control to JacobiSVD, and
make solve uses it to return the minimal norm solution for
rank-deficient problems.
+ Various numerical fixes in JacobiSVD, including:[131]bug 843,
and the move from Lapack to Matlab strategy for the default
threshold.
+ Various numerical fixes in LDLT, including the case of
semi-definite complex matrices.
+ Fix ColPivHouseholderQR::rank().
+ [132]Bug 222: Make temporary matrix column-major independently
of EIGEN_DEFAULT_TO_ROW_MAJOR in BlockHouseholder.
* Sparse:
+ [133]http://eigen.tuxfamily.org/bz/show_bug.cgi?id=838 Bug
838]: Fix dense * sparse and sparse * dense outer products and
detect outer products from either the lhs or rhs.
+ Make the ordering method of SimplicialL[D]LT configurable.
+ Fix regression in the restart mechanism of BiCGSTAB.
+ [134]Bug 836: extend SparseQR to support more columns than
rows.
+ [135]Bug 808: Use double instead of float for the increasing
size ratio in CompressedStorage::resize, fix implicit
conversions from int/longint to float/double, and fix
set_from_triplets temporary matrix type.
+ [136]Bug 647: Use smart_copy instead of bitwise memcpy in
CompressedStorage.
+ GMRES: Initialize essential Householder vector with correct
dimension.
* Geometry:
+ [137]Bug 807: Missing scalar type cast in umeyama()
+ [138]Bug 806: Missing scalar type cast in
Quaternion::setFromTwoVectors()
+ [139]Bug 759: Removed hard-coded double-math from
Quaternion::angularDistance.
* OS, build system and doc:
+ Fix compilation with Windows CE.
+ Fix some ICEs with VC11.
+ Check IMKL version for compatibility with Eigen
+ [140]Bug 754: Only inserted (!defined(_WIN32_WCE)) analog to
alloc and free implementation.
+ [141]Bug 803: Avoid char* to int* conversion.
+ [142]Bug 819: Include path of details.h file.
+ [143]Bug 738: Use the "current" version of cmake project
directories to ease the inclusion of Eigen within other
projects.
+ [144]Bug 815: Fix doc of FullPivLU wrt permutation matrices.
+ [145]Bug 632: doc: Note that dm2 = sm1 + dm1 is not possible
+ Extend AsciiQuickReference (real, imag, conjugate, rot90)
Eigen 3.2.1
Released on February 26, 2014
Changes since 3.2.0:
* Eigen2 support is now deprecated and will be removed in version
3.3.
* Core:
+ Bug fix for Ref object containing a temporary matrix.
+ [146]Bug 654: Allow construction of row vector from 1D array.
+ [147]Bug 679: Support cwiseMin() and cwiseMax() on maps.
+ Support conservativeResize() on vectors.
+ Improve performance of vectorwise and replicate expressions.
+ [148]Bug 642: Add vectorization of sqrt for doubles, and make
sqrt really safe if EIGEN_FAST_MATH is disabled.
+ [149]Bug 616: Try harder to align columns when printing
matrices and arrays.
+ [150]Bug 579: Add optional run-time parameter to fixed-size
block methods.
+ Implement .all() and .any() for zero-sized objects
+ [151]Bug 708: Add placement new and delete for arrays.
+ [152]Bug 503: Better C++11 support.
* Dense linear algebra:
+ [153]Bug 689: Speed up some matrix-vector products by using
aligned loads if possible.
+ Make solve in FullPivHouseholderQR return least-square
solution if there is no exact solution.
+ [154]Bug 678: Fix fullPivHouseholderQR for rectangular
matrices.
+ Fix a 0/0 issue in JacobiSVD.
+ [155]Bug 736: Wrong result in LDLT::isPositiveDefinite() for
semi-definite matrices.
+ [156]Bug 740: Fix overflow issue in stableNorm().
+ Make pivoting HouseholderQR compatible with custom scalar
types.
* Geometry:
+ Fix compilation of Transform * UniformScaling
* Sparse matrices:
+ Fix elimination tree and SparseQR for fat rectangular
matrices.
+ [157]Bug 635: add isCompressed to MappedSparseMatrix for
compatibility.
+ [158]Bug 664: Support iterators without operator< in
setFromTriplets().
+ Fixes in SparseLU: infinite loop, aliasing issue when solving,
overflow in memory allocation, use exceptions only if enabled
([159]bug 672).
+ Fixes in SparseQR: reduce explicit zero, assigning result to
map, assert catching non-conforming sizes, memory leak.
+ [160]Bug 681: Uninitialized value in CholmodSupport which may
lead to incorrect results.
+ Fix some issues when using a non-standard index type ([161]bug
665 and more)
+ Update constrained CG (unsupported module) to Eigen3.
* OS and build system:
+ MacOS put OpenGL header files somewhere else from where we
expected it.
+ Do not assume that alloca() is 16-byte aligned on Windows.
+ Compilation fixes when using ICC with Visual Studio.
+ Fix Fortran compiler detection in CMake files.
* Fix some of our tests (bugs [162]744 and [163]748 and more).
* Fix a few compiler warnings (bug [164]317 and more).
* Documentation fixes (bugs [165]609, [166]638 and [167]739 and
more).
Upstream changes:
2.11 2015-08-16 Shlomif
- Got the distribution to have full POD coverage and check all functions
for usage.
- t/check-funcs-ret-value--rt92593.t
- https://rt.cpan.org/Public/Bug/Display.html?id=92593
- CPAN Day!
2.10 2015-08-12 Shlomif
- Throw an exception on invalid input to Math::GMP->new;
- https://rt.cpan.org/Ticket/Display.html?id=27521
- Thanks to SISYPHUS for the report.
- Put RELEASE_TESTING tests under xt instead of t.
- https://rt.cpan.org/Ticket/Display.html?id=106365
- Thanks to ilmari for the report and suggested fix.
- Document and test some functions that were improperly documented or
not tested.
- t/check-funcs-ret-value--rt92593.t
- https://rt.cpan.org/Public/Bug/Display.html?id=92593
- Still aiming for full POD Coverage.
2.09 2015-07-29 Shlomif
- Add the binary-left-shift / << operator.
- Add the binary-right-shift / >> operator.
- Convert the build system to Dist-Zilla to ease future maintenance.
- Add a call to Devel::CheckLib for finding the "gmp.h" header.
2.08 2015-07-28 Shlomif
- Add a link to the version control repository at various places.
- Get rid of indirect object notation in the code and the examples.
- It�塜 a sign of Ancient Perl.
- Overload bool to avoid fallback to intify (Hugo)
- Fixes RT #101443
- https://rt.cpan.org/Ticket/Display.html?id=101443
- Modified patch applied by Shlomif.
- Add tests from DANAJ for large numbers in some functions.
- RT #92641
- https://rt.cpan.org/Ticket/Display.html?id=92641
No shlib major bump despite the big version bump.
* What is new in gsl-2.0:
** fixed bug #43258 for hypergeometric functions (Raymond Rogers)
** added L-curve analysis routines for linear Tikhonov regression
** add running statistics module
** added bilinear and bicubic interpolation (David Zaslavsky)
** added function gsl_multifit_robust_residuals to compute robust
fit residuals
** added Steffen monotonic interpolation method (Jean-François Caron)
** added new nonlinear least squares solver 'lmniel' suitable for
systems with large numbers of data
** nonlinear least squares solver now tracks the number of function
and Jacobian evaluations, see example program for details
** the 'fdf' field of gsl_multifit_function_fdf is now deprecated
and does not need to be specified for nonlinear least squares
problems
** added extensive test suite to nonlinear least squares module,
resulting in a few minor bug fixes; the routine
gsl_multifit_fdfsolver_driver has been rewritten (with API change)
to handle the various error codes of the lmsder iterate
routine, resulting in a high level caller which is highly robust
for a wide class of problems
** added support for sparse matrices, including a GMRES
iterative linear solver
** added routines gsl_linalg_givens and gsl_linalg_givens_gv
for Givens rotations
** added Tikhonov (ridge) regularization to least squares module
(linear and nonlinear)
** removed unused argument 'n' from gsl_sf_ellint_D
** merged bspline_deriv_workspace into bspline_workspace to simplify
bspline API; the functions
gsl_bspline_deriv_alloc
gsl_bspline_deriv_free
are now deprecated and will be removed in a future release.
** merged ALF extension into GSL for associated Legendre functions;
api has changed; consequently the functions:
gsl_sf_legendre_Plm_array
gsl_sf_legendre_Plm_deriv_array
gsl_sf_legendre_sphPlm_array
gsl_sf_legendre_sphPlm_deriv_array
gsl_sf_legendre_array_size
are now deprecated and will be removed in a future release.
** added function gsl_multifit_robust_weights to allow user to
access the various weighting functions
API changes
[#1501] connected_components, weakly_connected_components, and strongly_connected_components return now a generator of sets of nodes. Previously the generator was of lists of nodes. This PR also refactored the connected_components and weakly_connected_components implementations making them faster, especially for large graphs.
[#1547] The func_iter functions in Di/Multi/Graphs classes are slated for removal in NetworkX 2.0 release. func will behave like func_iter and return an iterator instead of list. These functions are deprecated in NetworkX 1.10 release.
New functionalities
[#823] A enumerate_all_cliques function is added in the clique package (networkx.algorithms.clique) for enumerating all cliques (including nonmaximal ones) of undirected graphs.
[#1105] A coloring package (networkx.algorithms.coloring) is created for graph coloring algorithms. Initially, a greedy_color function is provided for coloring graphs using various greedy heuristics.
[#1193] A new generator edge_dfs, added to networkx.algorithms.traversal, implements a depth-first traversal of the edges in a graph. This complements functionality provided by a depth-first traversal of the nodes in a graph. For multigraphs, it allows the user to know precisely which edges were followed in a traversal. All NetworkX graph types are supported. A traversal can also reverse edge orientations or ignore them.
[#1194] A find_cycle function is added to the networkx.algorithms.cycles package to find a cycle in a graph. Edge orientations can be optionally reversed or ignored.
[#1210] Add a random generator for the duplication-divergence model.
[#1241] A new networkx.algorithms.dominance package is added for dominance/dominator algorithms on directed graphs. It contains a immediate_dominators function for computing immediate dominators/dominator trees and a dominance_frontiers function for computing dominance frontiers.
[#1269] The GML reader/parser and writer/generator are rewritten to remove the dependence on pyparsing and enable handling of arbitrary graph data.
[#1280] The network simplex method in the networkx.algorithms.flow package is rewritten to improve its performance and support multi- and disconnected networks. For some cases, the new implementation is two or three orders of magnitude faster than the old implementation.
[#1286] Added the Margulis–Gabber–Galil graph to networkx.generators.
[#1306] Added the chordal p-cycle graph, a mildly explicit algebraic construction of a family of 3-regular expander graphs. Also, moves both the existing expander graph generator function (for the Margulis-Gabber-Galil expander) and the new chordal cycle graph function to a new module, networkx.generators.expanders.
[#1314] Allow overwriting of base class dict with dict-like: OrderedGraph, ThinGraph, LogGraph, etc.
[#1321] Added to_pandas_dataframe and from_pandas_dataframe.
[#1322] Added the Hopcroft–Karp algorithm for finding a maximum cardinality matching in bipartite graphs.
[#1336] Expanded data keyword in G.edges and added default keyword.
[#1338] Added support for finding optimum branchings and arborescences.
[#1340] Added a from_pandas_dataframe function that accepts Pandas DataFrames and returns a new graph object. At a minimum, the DataFrame must have two columns, which define the nodes that make up an edge. However, the function can also process an arbitrary number of additional columns as edge attributes, such as ‘weight’.
[#1354] Expanded layout functions to add flexibility for drawing subsets of nodes with distinct layouts and for centering each layout around given coordinates.
[#1356] Added ordered variants of default graph class.
[#1360] Added harmonic centrality to network.algorithms.centrality.
[#1390] The generators.bipartite have been moved to algorithms.bipartite.generators. The functions are not imported in the main namespace, so to use it, the bipartite package has to be imported.
[#1391] Added Kanevsky’s algorithm for finding all minimum-size separating node sets in an undirected graph. It is implemented as a generator of node cut sets.
[#1399] Added power function for simple graphs
[#1405] Added fast approximation for node connectivity based on White and Newman’s approximation algorithm for finding node independent paths between two nodes.
[#1413] Added transitive closure and antichains function for directed acyclic graphs in algorithms.dag. The antichains function was contributed by Peter Jipsen and Franco Saliola and originally developed for the SAGE project.
[#1425] Added generator function for the complete multipartite graph.
[#1427] Added nonisomorphic trees generator.
[#1436] Added a generator function for circulant graphs to the networkx.generators.classic module.
[#1437] Added function for computing quotient graphs; also created a new module, networkx.algorithms.minors.
[#1438] Added longest_path and longest_path_length for DAG.
[#1439] Added node and edge contraction functions to networkx.algorithms.minors.
[#1445] Added a new modularity matrix module to networkx.linalg, and associated spectrum functions to the networkx.linalg.spectrum module.
[#1447] Added function to generate all simple paths starting with the shortest ones based on Yen’s algorithm for finding k shortest paths at algorithms.simple_paths.
[#1455] Added the directed modularity matrix to the networkx.linalg.modularity_matrix module.
[#1474] Adds triadic_census function; also creates a new module, networkx.algorithms.triads.
[#1476] Adds functions for testing if a graph has weighted or negatively weighted edges. Also adds a function for testing if a graph is empty. These are is_weighted, is_negatively_weighted, and is_empty.
[#1481] Added Johnson’s algorithm; one more algorithm for shortest paths. It solves all pairs shortest path problem. This is johnson at algorithms.shortest_paths
[#1414] Added Moody and White algorithm for identifying k_components in a graph, which is based on Kanevsky’s algorithm for finding all minimum-size node cut-sets (implemented in all_node_cuts #1391).
[#1415] Added fast approximation for k_components to the networkx.approximation package. This is based on White and Newman approximation algorithm for finding node independent paths between two nodes (see #1405).
Removed functionalities
[#1236] The legacy ford_fulkerson maximum flow function is removed. Use edmonds_karp instead.
Miscellaneous changes
[#1192] Support for Python 2.6 is dropped.
0.7.6.1
This is a small bugfix release over SymPy 0.7.6, primarily to fix issues with printing in the Jupyter notebook.
Changes
Fix pretty printing in the Jupyter notebook and Jupyter qtconsole for Jupyter 4.0.
The deprecated linearization method in the mechanics module no longer fails to execute.
0.7.6
Major changes
New module calculus.finite_diff for generating finite difference formulae approximating derivatives of arbitrary order on arbitrarily spaced grids.
New module physics.optics for symbolic computations related to optics.
geometry module now supports 3D geometry.
Support for series expansions at a point other then 0 or oo. See PR #2427.
Rules for the intersection of integer ImageSets were added. See PR #7587. We can now do things like {2⋅m | m ∊ ℤ} ∩ {3⋅n | n ∊ ℤ} = {6⋅t | t ∊ ℤ} and {2⋅m | m ∊ ℤ} ∩ {2⋅n + 1 | n ∊ ℤ} = ∅
dsolve module now supports system of ODEs including linear system of ODEs of 1st order for 2 and 3 equations and of 2nd order for 2 equations. It also supports homogeneous linear system of n equations.
New support for continued fractions, including iterators for partial quotients and convergents, and reducing a continued fraction to a Rational or a quadratic irrational.
Support for Egyptian fraction expansions, using several different algorithms.
Addition of generalized linearization methods to physics.mechanics.
Use an LRU cache by default instead of an unbounded one. See PR #7464. Control cache size by the environment variable SYMPY_CACHE_SIZE (default is 500). SYMPY_CACHE_SIZE=None restores the unbounded cache.
Added fastcache as an optional dependency. Requires v0.4 or newer. Control via SYMPY_CACHE_SIZE. May result in significant speedup. See PR #7737.
New experimental module physics.unitsystems for computation with dimensions, units and quantities gathered into systems. This opens the way to dimensional analysis and better quantity calculus. The old module physics.units will stay available until the new one reaches a mature state. See PR #2628.
New Complement class to represent relative complements of two sets. See Pr #7462.
New trigonometric functions (asec, acsc), many enhancements for other trigonometric functions (PR #7500).
New Contains class to represent the relation "is an element of" (see PR #7989).
The code generation tools (code printers, codegen, autowrap, and ufuncify) have been updated to support a wider variety of constructs, and do so in a more robust way. Major changes include added support for matrices as inputs/outputs, and more robust handling of conditional (Piecewise) statements.
ufuncify now uses a backend that generates actual numpy.ufuncs by default through the use of the numpy C api. This allows broadcasting on all arguments. The previous cython and f2py backends are still accessible through the use of the backend kwarg.
CodeGen now generates code for Octave and Matlab from SymPy expressions. This is supported by a new CodePrinter with interface octave_code. For example octave_code(Matrix([[x**2, sin(pi*x*y), ceiling(x)]])) gives the string [x.^2 sin(pi*x.*y) ceil(x)].
New general 3D vector package at sympy.vector. This package provides a 3D vector object with the Del, gradient, divergence, curl, and operators. It supports arbitrary rotations of Cartesian coordinate systems and arbitrary locations of points.
Backwards compatibility breaks and deprecations
All usage of inequalities (>, >=, <, <=) on SymPy objects will now return SymPy's S.true or S.false singletons instead of Python's True or False singletons. Code that checks for, e.g., (a < b) is True should be changed to (a < b) == True or (a < b) == S.true. Use of is is not recommended here.
The subset() method in sympy.core.sets is marked as being deprecated and will be removed in a future release (issue). Instead, the is_subset() method should be used.
Previously, if you compute the series expansion at a point other than 0, the result was shifted to 0. Now SymPy returns the usual series expansion, see PR #2427.
In physics.mechanics, KanesMethod.linearize has a new interface. Old code should be changed to use this instead. See docstring for information.
physics.gaussopt has been moved to physics.optics.gaussopt. You can still import it from the previous location but it may result in a deprecation warning.
This is the last release with the bundled mpmath library. In the next release you will have to install this library from the official site.
Previously lambdify would convert Matrix to numpy.matrix by default. This behavior is being deprecated, and will be completely phased out with the release of 0.7.7. To use the new behavior now set the modules kwarg to [{'ImmutableMatrix': numpy.array}, 'numpy']. If lambdify will be used frequently it is recommended to wrap it with a partial as so: lambdify = functools.partial(lambdify, modules=[{'ImmutableMatrix': numpy.array}, 'numpy']). For more information see #7853 and the lambdify doc string.
Set.complement doesn't exists as an attribute anymore. Now we have a method Set.complement(<universal_set>) which complements the given universal set.
Removed is_finite assumption (see #7891). Use instead a combination of "is_bounded and is_nonzero" assumptions.
is_bounded and is_unbounded assumptions were renamed to is_finite and is_infinite (see #7947).
Removed is_infinitesimal assumption (see #7995).
Removed is_real property for Sets, use set.is_subset(Reals) instead (see #7996).
For generic symbol x (SymPy's symbols are not bounded by default), inequalities with oo are no longer evaluated as they were before, e.g. x < oo no longer evaluates to True). See #7861.
CodeGen has been refactored to make it easier to add other languages. The main high-level tool is still utilities.codegen.codegen. But if you previously used the Routine class directly, note its __init__ behaviour has changed; the new utilities.codegen.make_routine is recommended instead and by default retains the previous C/Fortran behaviour. If needed, you can still instantiate Routine directly; it only does minimal sanity checking on its inputs. See #8082.
FiniteSet([1, 2, 3, 4]) syntax not supported anymore, use FiniteSet(1, 2, 3, 4) instead See #7622.
Minor changes
Updated the parsing module to allow sympification of lambda statements to their SymPy equivalent.
Lambdify can now use numexpr by specifying modules='numexpr'
Use with evaluate(False) context manager to control automatic evaluation. E.g. with evaluate(False): x + x is actually x + x, not 2*x
IndexedBase and Indexed are changed to be commutative by default
sympy.core.sets moved to sympy.sets
Changes in sympy.sets:
Infinite Range is now allowed. See PR #7741
is_subset(): The is_subset() method deprecates the subset() method. self.is_subset(other) checks if self is a subset of other. This is different from self.subset(other), which checked if other is a subset of self.
is_superset(): A new method is_superset() method is now available. self.is_superset(other) checks if self is a superset of other.
is_proper_subset and is_proper_superset: Two new methods allow checking if one set is the proper subset and proper superset of another respectively. For eg. self.is_proper_subset(other) and self.is_proper_superset(other) checks if self is the proper subset of other and if self is the proper superset of other respectively.
is_disjoint(): A new method for checking if two sets are disjoint.
powerset(): A new method powerset() has been added to find the power set of a set.
The cardinality of a ProductSet can be found using the len() function.
Changes in sympy.plot.plot_implicit:
The plot_implicit function now also allows explicitly specifying the symbols to plot on the X and Y axes. If not specified, the symbols will be assigned in the order they are sorted.
The plot_implicit function also allows axes labels for the plot to be specified.
rules for simplification of ImageSet were added PR#7625. As a result {x | x ∊ ℤ} now simplifies to ℤ and {sin(n) | n ∊ {tan(m) | m ∊ ℤ}} automatically simplifies to {sin(tan(m)) | m ∊ ℤ}
coth(0) now returns Complex Infinity. See #7634
dioptre is added to physics.units #7782
replace now respects commutativity #7752
The CCodePrinter gracefully handles Symbols which have string representations that match C reserved words. #8199
limit function now returns an unevaluated Limit instance if it can't compute given limit, see #8213
0.7.5
Major changes
The version of mpmath included in SymPy has been updated to 0.18.
New routines for efficiently compute the dispersion of a polynomial or a pair thereof.
Fancy indexing of matrices is now provided, e.g. A[:, [1, 2, 5]] selects all rows and only 3 columns.
Enumeration of multiset partitions is now based on an implementation of Algorithm 7.1.2.5M from Knuth's The Art of Computer Programming. The new version is much faster, and includes fast methods for enumerating only those partitions with a restricted range of sizes, and counting multiset partitions. (See the new file sympy.utilities.enumerative.py.)
distance methods were added to Line and Ray to compute the shortest distance to them from a point.
The normal_lines method was added to Ellipse to compute the lines from a point that strike the Ellipse at a normal angle.
inv_quick and det_quick were added as functions in solvers.py to facilitate fast solution of small symbolic matrices; their use in solve has reduced greatly the time needed to solve such systems.
solve_univariate_inequality has been added to sympy.solvers.inequalities.py.
as_set attribute for Relationals and Booleans has been added.
Several classes and functions strictly associated with vector calculus were moved from sympy.physics.mechanics to a new package sympy.physics.vector. (PRs #2732#2862#2894)
New implementation of the Airy functions Ai and Bi and their derivatives Ai' and Bi' (called airyai, airybi, airyaiprime and airybiprime, respectively). Most of the usual features of SymPy special function are present. Notable exceptions are Gruntz limit computation helpers and meijerg special functions integration code.
Euler-Lagrange equations (function euler_equations) in a new package sympy.calculus (PR #2431).
Minor changes
Some improvements to the gamma function.
generate_bell now generates correct permutations for any number of elements.
It is no longer necessary to provide nargs to objects subclassed from Function unless an eval class method is not defined. (If eval is defined, the number of arguments will be inferred from its signature.)
geometric Point creation will be faster since simplification is done only on Floats
Some improvements to the intersection method of the Ellipse.
solutions from solve of equations involving multiple log terms are more robust
idiff can now return higher order derivatives
Added to_matrix() method to sympy.physics.vector.Vector and sympy.physics.dyadic.Dyadic. (PR #2686).
Printing improvements for sympy.physics.vector objects and mechanics printing. (PRs #2687, #2728, #2772, #2862, #2894)
Functions with LaTeX symbols now print correct LaTeX. (PR #2772)
init_printing has several new options, including a flag print_builtin to prevent SymPy printing of basic Python types (PR #2683), and flags to let you supply custom printers (PR #2894).
improvements in evaluation of imageset for Intervals (PR #2723).
Set properties to determine boundary and interior (PR #2744).
input to a function created by lambdify no longer needs to be flattened.
Backwards compatibility breaks and deprecations
the submatrix method of matrices was removed; access the functionality by providing slices or list of rows/columns to matrix directly, e.g. A[:, [1, 2]].
Matrix([]) and Matrix([[]]) now both return a 0x0 matrix
terms_gcd no longer removes a -1.0 from expressions
extract_multiplicatively will not remove a negative Number from a positive one, so (4*x*y).extract_multiplicatively(-2*x) will return None.
the shape of the result from M.cross(B) now has the same shape as matrix M.
The factorial of negative numbers is now zoo instead of 0. This is consistent with the definition factorial(n) = gamma(n + 1).
1/0 returns zoo, not oo (PR #2813).
zoo.is_number is True (PR #2823).
oo < I raises TypeError, just as for finite numbers (PR #2734).
1**oo == nan instead of 1, better documentation for Pow class (PR #2606).
This release comprises some changes to the build machinery, notably
commit 49d1be0 which puts tests/tests.sh.in on list of files for
tarball. The Git log has the complete record.
Maxima 5.37 change log
======================
New items in core:
------------------
* new function with_default_2d_display: ensure pretty-printing output
New items in share:
-------------------
* new package cryptools: tools for cryptography
* new package elliptic_curves: elliptic curves over prime fields and binary fields
* new function cgrind: output Maxima expressions as C code
* package draw: new function vennplot (Venn diagrams)
* package stringproc: new functions flush_output, readbyte, and writebyte
Changes in core:
----------------
* function gf_symmetric renamed to gf_balanced
Changes in share:
--------------
* functions md5sum, sha1sum, sha256sum and base64_decode: accept and return numbers and octet lists as well as strings
* packages aes and aes2: provide flexible support for different data types, e.g. octet lists
Bug fixes:
----------
* [#3005]: Manual is wrong about "sqrt" and "radexpand"
* [#2998]: extra () in display2d:false output
* [#2988]: documentation error in gf_manual.pdf
* [#2987]: Some divergent integrals give error, some don't
* [#2982]: Display of taylor series in wrong order
* [#2980]: "rectform" causes infinite recursion depending on variable name
* [#2975]: number of distinct partitions gives wroing result
* [#2972]: Wrong limits involving logs
* [#2937]: dotscrules and antisymmetric
* [#2936]: stack overflow in integrate
* [#2934]: dotscrules and antisymmetric
* [#2929]: misformatting in debugger help message
* [#2905]: Assigning variable twice yields different results
* [#2620]: atan2(y,x)+atan2(-y,x) doesnt always return 0
* [#2230]: abs(x)^(2*int) doesn't simplify
* [#2211]: rtest_sign #77
* [#2183]: eigenvectors of a 10 x 10
* [#1193]: ev doesn't bind functions safely
Unnumbered bugs:
----------------
* commit [6779ac0]: zn-nrt: root of zero should be zero
* commit [b212487]: Fix up version variables so that load(drawutils) succeeds
* mailing list 2015-08-29: [Documentation fails with error][1]
* mailing list 2015-08-27: [Warnings from loading cartan package][2]
* mailing list 2015-08-25: [Strange symmetry of acoth(x), area cotangens hyperbolicus function (#552)][3]
* mailing list 2015-08-17: [trouble with GCL build][4]
* mailing list 2015-06-11: [rationalize(0.1) and the manual][5]
[1]: https://sourceforge.net/p/maxima/mailman/message/34417174/
[2]: https://sourceforge.net/p/maxima/mailman/message/34411188/
[3]: https://sourceforge.net/p/maxima/mailman/message/34401610/
[4]: https://sourceforge.net/p/maxima/mailman/message/34369023/
[5]: https://sourceforge.net/p/maxima/mailman/message/34196346/
== Thu Jul 03 2015
* Ruby/GSL 1.16.0.6
* rb-gsl and gsl are now the same gem
== Thu Jul 02 2015
* Ruby/GSL 1.16.0.5
* Optional narray support
* Drop Ruby 1.8 support
* Drop support for GSL < 1.15
pkgsrc change: LICESE has changed to mit.
1,0.2:
- (internal, bcmath) use OpenSSL, if available, for modular exponentiation
- (internal) use 64-bit ints, if available, and 64-bit floats, otherwise
- (all) improve random number generation
- change license to less restrictive MIT license
1.0.1:
- (internal, bcmath) use OpenSSL, if available, for modular exponentiation
- (internal) use 64-bit ints, if available, and 64-bit floats, otherwise
- (all) improve random number generation
- change license to less restrictive MIT license
A quick single-file MIT-Licenced library for easily adding evaluatable
expressions into python projects. Say you want to allow a user to set an alarm
volume, which could depend on the time of day, alarm level, how many previous
alarms had gone off, and if there is music playing at the time.
Or if you want to allow simple formulae in a web application, but don't want
to give full eval() access, or don't want to run in javascript on the client side.
It's deliberately very simple, just a single file you can dump into a project,
or import from pypi (pip or easy_install).
Internally, it's using the amazing python ast module to parse the expression,
which allows very fine control of what is and isn't allowed. It should be
completely safe in terms of what operations can be performed by the expression.
The only issue I know to be aware of is that you can create an expression which
takes a long time to evaluate, or which evaluating requires an awful lot of
memory, which leaves the potential for DOS attacks. There is basic protection
against this, and you can lock it down further if you desire.
You should be aware of this when deploying in a public setting.
The defaults are pretty locked down and basic, and it's very easy to add whatever
extra specific functionality you need (your own functions, variable/name lookup, etc).
Upstream changes:
CHANGES IN R 3.2.2:
SIGNIFICANT USER-VISIBLE CHANGES:
* It is now easier to use secure downloads from https:// URLs on
builds which support them: no longer do non-default options need
to be selected to do so. In particular, packages can be
installed from repositories which offer https:// URLs, and those
listed by setRepositories() now do so (for some of their
mirrors).
Support for https:// URLs is available on Windows, and on other
platforms if support for libcurl was compiled in and if that
supports the https protocol (system installations can be expected
to do). So https:// support can be expected except on rather old
OSes (an example being OS X 'Snow Leopard', where a non-system
version of libcurl can be used).
(Windows only) The default method for accessing URLs _via_
download.file() and url() has been changed to be "wininet" using
Windows API calls. This changes the way proxies need to be set
and security settings made: there have been some reports of sites
being inaccessible under the new default method (but the previous
methods remain available).
NEW FEATURES:
* cmdscale() gets new option list. for increased flexibility when a
list should be returned.
* configure now supports texinfo version 6.0, which (unlike the
change from 4.x to 5.0) is a minor update. (Wish of PR#16456.)
* (Non-Windows only) download.file() with default method = "auto"
now chooses "libcurl" if that is available and a https:// or
ftps:// URL is used.
* (Windows only) setInternet2(TRUE) is now the default. The
command-line option --internet2 and environment variable
R_WIN_INTERNET2 are now ignored.
Thus by default the "internal" method for download.file() and
url() uses the "wininet" method: to revert to the previous
default use setInternet2(FALSE).
This means that https:// can be read by default by
download.file() (they have been readable by file() and url()
since R 3.2.0).
There are implications for how proxies need to be set (see
?download.file): also, cacheOK = FALSE is not supported.
* chooseCRANmirror() and chooseBioCmirror() now offer HTTPS mirrors
in preference to HTTP mirrors. This changes the interpretation
of their ind arguments: see their help pages.
* capture.output() gets optional arguments type and split to pass
to sink(), and hence can be used to capture messages.
C-LEVEL FACILITIES:
* Header Rconfig.h now defines HAVE_ALLOCA_H if the platform has
the alloca.h header (it is needed to define alloca on Solaris and
AIX, at least: see 'Writing R Extensions' for how to use it).
INSTALLATION and INCLUDED SOFTWARE:
* The libtool script generated by configure has been modified to
support FreeBSD >= 10 (PR#16410).
BUG FIXES:
* The HTML help page links to demo code failed due to a change in R
3.2.0. (PR#16432)
* If the na.action argument was used in model.frame(), the original
data could be modified. (PR#16436)
* getGraphicsEvent() could cause a crash if a graphics window was
closed while it was in use. (PR#16438)
* matrix(x, nr, nc, byrow = TRUE) failed if x was an object of type
"expression".
* strptime() could overflow the allocated storage on the C stack
when the timezone had a non-standard format much longer than the
standard formats. (Part of PR#16328.)
* options(OutDec = s) now signals a warning (which will become an
error in the future) when s is not a string with exactly one
character, as that has been a documented requirement.
* prettyNum() gains a new option input.d.mark which together with
other changes, e.g., the default for decimal.mark, fixes some
format()ting variants with non-default getOption("OutDec") such
as in PR#16411.
* download.packages() failed for type equal to either "both" or
"binary". (Reported by Dan Tenenbaum.)
* The dendrogram method of labels() is much more efficient for
large dendrograms, now using rapply(). (Comment #15 of PR#15215)
* The "port" algorithm of nls() could give spurious errors.
(Reported by Radford Neal.)
* Reference classes that inherited from reference classes in
another package could invalidate methods of the inherited class.
Fixing this requires adding the ability for methods to be
"external", with the object supplied explicitly as the first
argument, named .self. See "Inter-Package Superclasses" in the
documentation.
* readBin() could fail on the SPARC architecture due to alignment
issues. (Reported by Radford Neal.)
* qt(*, df=Inf, ncp=.) now uses the natural qnorm() limit instead
of returning NaN. (PR#16475)
* Auto-printing of S3 and S4 values now searches for print() in the
base namespace and show() in the methods namespace instead of
searching the global environment.
* polym() gains a coefs = NULL argument and returns class "poly"
just like poly() which gets a new simple=FALSE option. They now
lead to correct predict()ions, e.g., on subsets of the original
data.
* rhyper(nn, <large>) now works correctly. (PR#16489)
* ttkimage() did not (and could not) work so was removed. Ditto for
tkimage.cget() and tkimage.configure(). Added two Ttk widgets and
missing subcommands for Tk's image command: ttkscale(),
ttkspinbox(), tkimage.delete(), tkimage.height(),
tkimage.inuse(), tkimage.type(), tkimage.types(),
tkimage.width(). (PR#15372, PR#16450)
* getClass("foo") now also returns a class definition when it is
found in the cache more than once.
Pkgsrc changes:
* Adjust PLIST.
* Bump version number.
* Depend on newer version of goffice0.10.
Upstream changes:
gnumeric 1.12.23:
Noteworthy news in this release:
* Fuzzed file hardening.
* Solver refactoring.
Special thanks to Juha Kylmänen from Oulu University Secure
Programming Group for running a large amount of fuzzing against
Gnumeric.
gnumeric 1.12.22:
Noteworthy news in this release:
* Graph fixes and improvements.
* Test suite improvements.
* ODF/XLSX import and export fixes.
* A schema for the ODF files we produce.
As part of our testing we check that the ODF, XLSX, and Gnumeric
files we produce are valid according to the relevant xml schema.
* For Gnumeric files we provide the schema.
* For XLSX there is an official schema which we use with a few
fixes so Excel can read our files. (We consider the format to
be defined by what XLSX writes.)
* For ODS the situation is more problematic. We appear to be the
first to release a schema for the ODS files we produce. That
is mildly shocking -- several spreadsheets have ODS as their
primary format, yet no-one seem to be validating the files they
produce! There is an official schema for the format without
extensions which is fine, except that no-one uses that format
because there are lots of fairly basic things that cannot be
expressed in the format without extensions.
Changse 1.2.6:
- Eigenvalues can be computed over larger range of base fields.
- Common denomiantor package handles now multivariate polynomials.
- More uniform break (error) handling.
Bug fixes, in particular:
- 'distribute' handles 'box' operator.
- Fixed problem with guessing over multivariate polynomilas.
- Fixed hashcode handling for Void in Aldor.
Changes in FriCAS 1.2.5:
- Fixed printing of scripted symbols.
- Fixed 'totalDegreeSorted' (affected Groebner bases).
- Fixed few problems with Hensel lifting (including SF bug 47).
- Fixed 'series' in UnivariateLaurentSeriesConstructor.
- Fixed 'order' in SparseUnivariatePowerSeries.
- Printing of series now respect 'showall' setting, cyclic
series are detected.
- Fixed problem with interpreter preferring Union to base type.
Changes in FriCAS 1.2.4:
- New cylindrical decomposition package.
- New GnuDraw package for plotting via gnuplot.
- Texmacs interface now handles Cork symbols.
- Added double precision versions of several special functions
(needed for plotting).
- Nopile mode for Spad is changed to be more convenient.
- 'stringMatch' is removed (was broken beyond repair).
Bug fixes, in particular:
- Fixed intepreter assignment to parts of nested aggregates
(issue 376).
- Fixed interpreter coercion from Equation to Boolean (issue 359).
- Fix printing of '\%i' in types (issue 132).
- Disabled incorrect shortcut during coercion (issue 29).
- Difference of intervals now agrees with definition as interval
operation.
- Avoid overwriting loop limit and increment.
- Fix a polynomial gcd failure due to bad reduction.
- Avoid mangling unevaluated algebraic integrals.
- Fix integration of unevaluated derivatives.
- Restore parser handling of '\\/' and '/\\'.
- Properly escape strings and symbols in TeXFormat.
Changes in FriCAS 1.2.3:
- Fixed pattern matching using '%i' in patterns.
- Fixed ')display op coerce'.
- Fixed ')version' command.
- Fixed crash when printing '%'.
- Fix a buffer overflow in HyperDoc.
- Fixed HyperDoc errors in 'Dependants' and 'Users'.
- HyperDoc browser better handles constructors with parameters.
Changes in FriCAS 1.2.2:
- Improvements to 'integrate': better handling of algebraic
integrals, new routine which handles some integrals contaning
'lambertW'.
- Improvements to 'limit', now Gruntz algorithm knows about
a few tractable functions.
- Smith form of sparse integer matrices is now much more
efficient.
- Generalized indexing for two dimensional arrays.
- Pile/nopile mode is now restored after ')read' or ')compile'.
Piling rules now accept some forms of multiline lists.
- Eliminated version checking in generated code. Note: this
change means that Spad code compiled by earlier FriCAS versions
will not run in FriCAS 1.2.2.
- Updated Aldor interface to work with free Aldor.
Bug fixes, in particular:
- Interpreter can now handle complicated mutually recursive
functions.
- Spad compiler should now correctly handle 'has' inside a function.
- Fixed derivatives of Whittaker functions.
Changes in FriCAS 1.2.1:
-- Support for building Mac OS application bundle.
Bug fixes, in particular:
-- fixed few cases of wrong or unevaluated integrals.
-- better zero test during limit computation avoids division
by zero.
-- fixed buffer overflow problems in view3D.
-- 'reducedSystem' on empty input returns basis of correct size.
Upstream changes:
# Version 0.3.1
* Actually export `dbIsValid()` :/
* `dbGetQuery()` uses `dbFetch()` in the default implementation.
# Version 0.3.0
## New and enhanced generics
* `dbIsValid()` returns a logical value describing whether a connection or
result set (or other object) is still valid. (#12).
* `dbQuoteString()` and `dbQuoteIdentifier()` to implement database specific
quoting mechanisms.
* `dbFetch()` added as alias to `fetch()` to provide consistent name.
Implementers should define methods for both `fetch()` and `dbFetch()` until
`fetch()` is deprecated in 2015. For now, the default method for `dbFetch()`
calls `fetch()`.
* `dbBegin()` begins a transaction (#17). If not supported, DB specific
methods should throw an error (as should `dbCommit()` and `dbRollback()`).
## New default methods
* `dbGetStatement()`, `dbGetRowsAffected()`, `dbHasCompleted()`, and
`dbGetRowCount()` gain default methods that extract the appropriate elements
from `dbGetInfo()`. This means that most drivers should no longer need to
implement these methods (#13).
* `dbGetQuery()` gains a default method for `DBIConnection` which uses
`dbSendQuery()`, `fetch()` and `dbClearResult()`.
## Deprecated features
* The following functions are soft-deprecated. They are going away,
and developers who use the DBI should begin preparing. The formal deprecation
process will begin in July 2015, where these function will emit warnings
on use.
* `fetch()` is replaced by `dbFetch()`.
* `make.db.names()`, `isSQLKeyword()` and `SQLKeywords()`: a black list
based approach is fundamentally flawed; instead quote strings and
identifiers with `dbQuoteIdentifier()` and `dbQuoteString()`.
* `dbGetDBIVersion()` is deprecated since it's now just a thin wrapper
around `packageVersion("DBI")`.
* `dbSetDataMappings()` (#9) and `dbCallProc()` (#7) are deprecated as no
implementations were ever provided.
## Other improvements
* `dbiCheckCompliance()` makes it easier for implementors to check that their
package is in compliance with the DBI specification.
* All examples now use the RSQLite package so that you can easily try out
the code samples (#4).
* `dbDriver()` gains a more effective search mechanism that doesn't rely on
packages being loaded (#1).
* DBI has been converted to use roxygen2 for documentation, and now most
functions have their own documentation files. I would love your feedback
on how we could make the documentation better!
This module provides fast functions and methods to convert between arbitrary
number bases from 2 (binary) thru 65535.
This module is pure Perl, has no external dependencies, and is backward
compatible with old versions of Perl 5.
* Use gmake to fix build.
Changelog:
Changes in Release 5.36.1
This is a bug-fix minor release. To see the changes in the major release
5.36, read the Maxima 5.36 change log
Bugs fixed
Bug 2936: Stack overflow in integrate.
Bugs in the draw package.
Problem in loading wxm files from the Explorer in Wxmaxima.
Maxima 5.36 change log
New items in core:
function parse_timedate: parse time/date string
New items in share:
function lll: Lenstra-Lenstra-Lovasz algorithm
Changes in core:
at: remove variables in simplification
Other changes:
package contrib_ode: update test suite
package ezunits: additional femto, pico, nano, and micro fractions
package ezunits: apply rules more aggressively
package maxima-odesolve: documentation
package gentran: update
package draw: geometric transformations for 2D implicit functions
package coma: new version
package maximaMathML: hook mechanism
package noninteractive: new script expand_branches.mac
Bug fixes:
[#2924]: Maxima fails to run on lisp interpreters
[#2922]: input '20log(x)' causes strange error
[#2919]: Definite integration broken: integrate(1/(x^2), x, -inf, inf) gives zero
[#2913]: trigrat crashes with variable name "e"
[#2907]: ratsubst(z, sin(x + 1), 0) crashes when radsubstflag = true
[#2898]: limit of continuous --> und
[#2892]: julia() and mandelbrot() creates maxout.gnuplot in different place than plot2d()/plot3d()
[#2883]: load (lsquares); Error
[#2881]: quad_qags recently got problems evaluating erf
[#2878]: Installing from maxima-5.35.1.tar.gz requires Makeinfo
[#2873]: implicit_plot does not accept symbolic ranges
[#2865]: Use exp as a list
[#2862]: Incorrect result for integrate(u/(u+1)^2,u,0,inf);
[#2854]: Integral hangs with domain:complex
[#2853]: abs_integrate hangs after encountering log(0)
Unnumbered bugs:
mailing list 2015-03-16: Requesting advice on simplification rules for user-defined operators
mailing list 2015-02-09: save(..) can't save syntax extensions in a readable form
mailing list 2015-02-16: expand phenomenon
mailing list 2015-02-08: Newbie lisp question
mailing list 2015-01-22: Matrix inversion with detout = true?
mailing list 2015-01-09: Problem loading package COMA
mailing list 2015-01-05: order of operands is changed due to source information
commit [b0a9ab]: Fix jacobi_sc(elliptic_kc(m)/2,m)
commit [ff92d9]: Fix make_elliptic_f for inverse_jacobi_ns and inverse_jacobi_nc
commit [b7dc04]: Added device info to paths in cl-info::*info-tables*
commit [95c186]: Fixes a bug in the style option parser
commit [bf9a67]: Correct the derivative of bessel_y wrt order: diff(bessel_y(v,z),v)
commit [0d8d8a]: Handle the (finite) geometric sums with quotient 1.
commit [b3cffd]: Fix bug controlling non numeric symbols in explicit
commit [114860]: Add device to maxima-load-pathname-directory.
commit [72d617]: Fix maxima -s PORT command.
Maxima 5.35 change log
New items in core:
* in evaluation, allow general expressions as operators
New items in share:
* package Eulix: numerical solution of ordinary differential equations
* script hermite_reduce.mac: implement Rothstein-Trager algorithm
Changes in core:
* function supcontext: evaluate argument(s)
* functions supcontext, newcontext: return made-up name if none supplied
* function powerseries: bug fixes
Other changes:
* many updates to documentation
Bug fixes:
#2847: limits of powers of constants
#2845: Avoid initialization-time compile in commac.lisp
#2818: Problem with trigreduce
#2816: Significant reduction in processing LaTeX output in imaxima in new version
#2815: abs_integrate leads to infinite recursion
#2814: abs_integrate: integration of x*ceiling(x)
#2800: a typo in mode_identity documentation
#2774: desolve doesn't know how to interpret temporary variables
#2623: shortest_path
#2575: Integration error: integrate(sqrt(k-k*cos(2*x)), x)
#2371: limit((exp(a*x)-1)/(exp(a*x)+1),x,inf) fails
unnumbered bugs:
mailing list 2014-11-26: Error in histogram and continuous_freq
mailing list 2014-09-01: SIGN1 strangeness, was: Problem with bfloat
Maxima 5.34 change log
New items in core:
* function invert_by_gausselim: invert by Gaussian elimination (used to be function invertmx)
* function invert_by_adjoint: invert by adjoint method (used to be function invert)
* functions push, pop: now implemented in core
New items in share:
* package coma: functions for control engineering
* function sha1sum (package stringproc): compute SHA1 hash
* engineering-format.lisp: change default float display format
Changes in core:
* function invert: use adjoint method or Gaussian elimination depending on size of matrix
* function tex: Define TeX properties for gamma_incomplete and friends
Bug fixes:
#2785: dynamics package: plotting fails on evolution() and other functions
#2784: Ceiling gives error, without even an error message
#2782: realroots(x*y) internal error
#2776: Error when integrate sqrt
#2775: powerseries of some log expressions
#2772: powerseries of some trig expressions
#2768: "notequal" tries to put multiprecision rational numbers into floats
#2765: powerseries of a derivative
#2764: power series of 1 + x^n and regression tests in rtest16.mac
#2763: symmetricp(matrix) DOEs not work
#2760: powerseries at infinty broken
#2755: powerseries of natural exponential
#2751: powerseries of bessel functions needlessly fail
#2750: powerseries(x^x,x,0) gives Lisp error
#2749: Float evaluation of sinh causes Lisp error instead of overflowing to bigfloat
#2746: scifac / gcfac crash
#2745: limit with numer:true
#2741: imaxima preamble broken for display in emacs
#2738: Integrate encountered a Lisp error: The value 2 is not of type LIST
#2732: wrong answer for similar to gaussian integral
#2726: integrate produces wrong answer for Gaussian Moments
#2725: pochhammer(n,x) documentation
#2721: maxima can't refresh plots in gnuplot_pipes format
#2719: Matrix invert() behaviour
#2718: imaxima LaTeX definitions conflict with amsmath
#2717: plot2d treats linear and log plots inconsistently
#2716: is allows more than one argument
#2711: `i' is not local in `geosum'
#2710: `rempart' from package `functs' fails
#2707: `rowp' fails if `p' function is defined
#2697: Inconsistent handling of Greek symbols
#2683: Plot2d default terminal broken
#2678: transform_xy rejects argument constructed with make_transform
#2677: [gnuplot_pm3d,false] does not disable pm3d
#2621: "gamma limit error"
#2526: abs_integrate fails on integrate(sqrt(x + sqrt(x)), x)
unnumbered bugs:
mailing list 2014-08-16: bind stack overflow in loop
mailing list 2014-07-01: "rtest8.mac test failure"
mailing list 2014-06-29: "rule issue"
limit((atan(x)-(%pi/2))/(sin(10/x)),x,inf)
ezgcd(p1,p2,...) => true when ratp returns true for any argument
Maxima 5.33 change log
New items in share:
* package alt-display: hook for nonstandard display functions
* package kovacicODE: Kovacic method for ordinary differential equations
* package odes: several methods for ordinary differential equations
* package trigtools: manipulating trigonometric function expressions
* package sound: functions for audio synthesis
Changes in core:
* promote result to bigfloat on floating point overflow
* variables declared to be irrational are considered real
* display floats with leading "0." instead of "." only
* function tex: accepts Lisp objects now
* functions expintegral_shi, expintegral_chi: limits
* functions hankel_1, hankel_2: numerically evaluate when the order is complex
* function declare: rational and irrational properties mutually exclusive
* functions get, put: when first argument is a string, assume it is the name of an operator
* functions round, truncate: handle arguments of zeroa and zerob
* functions for Galois fields: improve power tables and introduce nth root
* operator @: TeX property
Other changes:
* package ezunits: TeX property for units conversion operator
* package maximaMathML: some updates
* package draw: support for gnuplot terminal canvas
* documentation: updating Brazilian Portuguese translation of user manual
Bug fixes:
* 2703: plotting option legend causes an error
* 2702: plotting option adapt_depth causes an error
* 2701: plotting option logy causes an error
* 2700: plot option psfile causes an error
* 2699: nticks seems ignored
* 2696: *prompt-prefix* and *prompt-suffix* not inserted for askinteger / asksign
* 2695: kill kills built-in properties of operator after user-defined property
* 2687: call-arguments-limit easily exhaustable in tex1
* 2682: Function zeta fails numerically for large numbers that aren't even integers
* 2681: solve_rec wrong result
* 2676: integral incorrect when variable is subscripted
* 2675: maxima will not do the simplest of definite integrals and will not factor otherwise
* 2671: Since 4833b5 Maxima (with ECL at least) outputs palette numbers gnuplot
unnumbered bugs:
* bug in gnuplot_term option
* bug in starplot
* bug in ratinterpol
* %e^^A should not simplify to %e^A
* %pi is now correctly rounded with high probability
* embedded plotting bug in XMaxima
* bug in single-label case for plotting option 'label'
* bug in comment indentation in Emacs
* $CONS and friends should treat lists the same as other expressions
* mailing list 2014-02-27: "assigning to a list of structure fields does not work"
Closes PR pkg/49958 by matthewd.
Changes since 0.14.1 for a full list see
http://pandas.pydata.org/pandas-docs/stable/whatsnew.html:
v 0.16.2
This is a minor bug-fix release from 0.16.1 and includes a a large
number of bug fixes along some new features (pipe() method),
enhancements, and performance improvements.
We recommend that all users upgrade to this version.
Highlights include:
A new pipe method
Documentation on how to use numba with pandas,
v 0.16.1
This is a minor bug-fix release from 0.16.0 and includes a a large
number of bug fixes along several new features, enhancements, and
performance improvements. We recommend that all users upgrade to this
version.
Highlights include:
Support for a CategoricalIndex, a category based index
New section on how-to-contribute to pandas
Revised “Merge, join, and concatenate” documentation, including
graphical examples to make it easier to understand each operations
New method sample for drawing random samples from Series, DataFrames
and Panels.
The default Index printing has changed to a more uniform format
BusinessHour datetime-offset is now supported
Further enhancement to the .str accessor to make string operations easier
v0.16.0 (March 22, 2015)
This is a major release from 0.15.2 and includes a small number of
API changes, several new features, enhancements, and performance
improvements along with a large number of bug fixes. We recommend that
all users upgrade to this version.
Highlights include:
DataFrame.assign method
Series.to_coo/from_coo methods to interact with scipy.sparse
Backwards incompatible change to Timedelta to conform the .seconds
attribute with datetime.timedelta
Changes to the .loc slicing API to conform with the behavior of .ix
Changes to the default for ordering in the Categorical constructor
Enhancement to the .str accessor to make string operations easier
The pandas.tools.rplot, pandas.sandbox.qtpandas and pandas.rpy
modules are deprecated. We refer users to external packages like
seaborn, pandas-qt and rpy2 for similar or equivalent functionality,
see here
v0.15.0 (October 18, 2014)
This is a major release from 0.14.1 and includes a small number of
API changes, several new features, enhancements, and performance
improvements along with a large number of bug fixes. We recommend that
all users upgrade to this version.
Warning
pandas >= 0.15.0 will no longer support compatibility with NumPy
versions < 1.7.0. If you want to use the latest versions of pandas,
please upgrade to NumPy >= 1.7.0 (GH7711)
Highlights include:
The Categorical type was integrated as a first-class pandas type
New scalar type Timedelta, and a new index type TimedeltaIndex
New datetimelike properties accessor .dt for Series, see
Datetimelike Properties
New DataFrame default display for df.info() to include memory
usage, see Memory Usage
read_csv will now by default ignore blank lines when parsing
API change in using Indexes in set operations
Enhancements in the handling of timezones
A lot of improvements to the rolling and expanding moment funtions
Internal refactoring of the Index class to no longer sub-class
ndarray, see Internal Refactoring
dropping support for PyTables less than version 3.0.0, and
numexpr less than version 2.1 (GH7990)
Split indexing documentation into Indexing and Selecting Data
and MultiIndex / Advanced Indexing
Split out string methods documentation into Working with Text Data
{perl>=5.16.6,p5-ExtUtils-ParseXS>=3.15}:../../devel/p5-ExtUtils-ParseXS
since pkgsrc enforces the newest perl version anyway, so they
should always pick perl, but sometimes (pkg_add) don't due to the
design of the {,} syntax.
No effective change for the above reason.
Ok joerg
Changelog:
Changes from version 3.1.2 to version 3.1.3:
- Better support for Automake 1.13+ (now used to generate the tarball).
- Improved MPFR manual.
- Bug fixes (see <http://www.mpfr.org/mpfr-3.1.2/#fixed> and ChangeLog file).
Upstream changes:
2014-10-16, version 1.3.4
=========================
Implementation changes
----------------------
* Fix input of huge floats.
Other changes
-------------
* Support the AArch64 and the Mips64 ABIs.
2013-07-21, version 1.3.3
=========================
Implementation changes
----------------------
* Fix integer input of leading zeros in power-of-two base.
* Fix several floating-poing conversion bugs involving huge numbers.
* Fix bug that would set input stream fail state when reading a number at EOF.
Other changes
-------------
* Support the x32 ABI.
Upstream changes:
CHANGES IN R 3.2.1
NEW FEATURES
utf8ToInt() now checks that its input is valid UTF-8 and returns NA if it is not.
install.packages() now allows type = "both" with repos = NULL if it can infer the type of file.
nchar(x, *) and nzchar(x) gain a new argument keepNA which governs how the result for NAs in x is determined. For the R 3.2.x series, the default remains FALSE which is fully back compatible. From R 3.3.0, the default will change to keepNA = NA and you are advised to consider this for code portability.
news() more flexibly extracts dates from package ‘NEWS.Rd’ files.
lengths(x) now also works (trivially) for atomic x and hence can be used more generally as an efficient replacement of sapply(x, length) and similar.
The included version of PCRE has been updated to 8.37, a bug-fix release.
diag() no longer duplicates a matrix when extracting its diagonal.
as.character.srcref() gains an argument to allow characters corresponding to a range of source references to be extracted.
BUG FIXES
acf() and ccf() now guarantee values strictly in [-1,1] (instead of sometimes very slightly outside). PR#15832.
as.integer("111111111111") now gives NA (with a warning) as it does for the corresponding numeric or negative number coercions. Further, as.integer(M + 0.1) now gives M (instead of NA) when M is the maximal representable integer.
On some platforms nchar(x, "c") and nchar(x, "w") would return values (possibly NA) for inputs which were declared to be UTF-8 but were not, or for invalid strings without a marked encoding in a multi-byte locale, rather than give an error. Additional checks have been added to mitigate this.
apply(a, M, function(u) c(X = ., Y = .)) again has dimnames containing "X" and "Y" (as in R < 3.2.0).
(Windows only) In some cases, the --clean option to R CMD INSTALL could fail. (PR#16178)
(Windows only) choose.files() would occasionally include characters from the result of an earlier call in the result of a later one. (PR#16270)
A change in RSiteSearch() in R 3.2.0 caused it to submit invalid URLs. (PR#16329)
Rscript and command line R silently ignored incomplete statements at the end of a script; now they are reported as parse errors. (PR#16350)
Parse data for very long strings was not stored. (PR#16354)
plotNode(), the workhorse of the plot method for "dendrogram"s is no longer recursive, thanks to Suharto Anggono, and hence also works for deeply nested dendrograms. (PR#15215)
The parser could overflow internally when given numbers in scientific format with extremely large exponents. (PR#16358)
If the CRAN mirror was not set, install.packages(type = "both") and related functions could repeatedly query the user for it. (Part of PR#16362)
The low-level functions .rowSums() etc. did not check the length of their argument, so could segfault. (PR#16367)
The quietly argument of library() is now correctly propagated from .getRequiredPackages2().
Under some circumstances using the internal PCRE when building R fron source would cause external libs such as -llzma to be omitted from the main link.
The .Primitive default methods of the logic operators, i.e., !, & and |, now give correct error messages when appropriate, e.g., for `&`(TRUE) or `!`(). (PR#16385)
cummax(x) now correctly propagates NAs also when x is of type integer and begins with an NA.
summaryRprof() could fail when the profile contained only two records. (PR#16395)
HTML vignettes opened using vignette() did not support links into the rest of the HTML help system. (Links worked properly when the vignette was opened using browseVignettes() or from within the help system.)
arima(*, xreg = .) (for d >= 1) computes estimated variances based on a the number of effective observations as in R version 3.0.1 and earlier. (PR#16278)
slotNames(.) is now correct for "signature" objects (mostly used internally in methods).
On some systems, the first string comparison after a locale change would result in NA.