Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
variable with C linkage in a namespace, clang (correctly) complains
about the shadowing (re)declarations. Bump revision.
|
|
Changelog:
CHANGES IN 3.2.0:
NEW FEATURES:
* anyNA() gains a recursive argument.
* When x is missing and names is not false (including the default
value), Sys.getenv(x, names) returns an object of class "Dlist"
and hence prints tidily.
* (Windows.) shell() no longer consults the environment variable
SHELL: too many systems have been encountered where it was set
incorrectly (usually to a path where software was compiled, not
where it was installed). R_SHELL, the preferred way to select a
non-default shell, can be used instead.
* Some unusual arguments to embedFonts() can now be specified as
character vectors, and the defaults have been changed
accordingly.
* Functions in the Summary group duplicate less. (PR#15798)
* (Unix-alikes.) system(cmd, input = ) now uses
'shell-execution-environment' redirection, which will be more
natural if cmd is not a single command (but requires a
POSIX-compliant shell). (Wish of PR#15508)
* read.fwf() and read.DIF() gain a fileEncoding argument, for
convenience.
* Graphics devices can add attributes to their description in
.Device and .Devices. Several of those included with R use a
"filepath" attribute.
* pmatch() uses hashing in more cases and so is faster at the
expense of using more memory. (PR#15697)
* pairs() gains new arguments to select sets of variables to be
plotted against each other.
* file.info(, extra_cols = FALSE) allows a minimal set of columns
to be computed on Unix-alikes: on some systems without
properly-configured caching this can be significantly faster with
large file lists.
* New function dir.exists() in package base to test efficiently
whether one or more paths exist and are directories.
* dput() and friends gain new controls hexNumeric and digits17
which output double and complex quantities as, respectively,
binary fractions (exactly, see sprintf("%a")) and as decimals
with up to 17 significant digits.
* save(), saveRDS() and serialize() now support ascii = NA which
writes ASCII files using sprintf("%a") for double/complex
quantities. This is read-compatible with ascii = TRUE but avoids
binary->decimal->binary conversions with potential loss of
precision. Unfortunately the Windows C runtime's lack of C99
compliance means that the format cannot be read correctly there
in R before 3.1.2.
* The default for formatC(decimal.mark =) has been changed to be
getOption("OutDec"); this makes it more consistent with format()
and suitable for use in print methods, e.g. those for classes
"density", "ecdf", "stepfun" and "summary.lm".
getOption("OutDec") is now consulted by the print method for
class "kmeans", by cut(), dendrogram(), plot.ts() and quantile()
when constructing labels and for the report from legend(trace =
TRUE).
(In part, wish of PR#15819.)
* printNum() and hence format() and formatC() give a warning if
big.mark and decimal.mark are set to the same value (period and
comma are not uncommonly used for each, and this is a check that
conventions have not got mixed).
* merge() can create a result which uses long vectors on 64-bit
platforms.
* dget() gains a new argument keep.source which defaults to FALSE
for speed (dput() and dget() are most often used for data objects
where this can make dget() many times faster).
* Packages may now use a file of common macro definitions in their
help files, and may import definitions from other packages.
* A number of macros have been added in the new share/Rd directory
for use in package overview help pages, and promptPackage() now
makes use of them.
* tools::parse_Rd() gains a new permissive argument which converts
unrecognized macros into text. This is used by
utils:::format.bibentry to allow LaTeX markup to be ignored.
* options(OutDec =) can now specify a multi-byte character, e.g.,
options(OutDec = "\u00b7") in a UTF-8 locale.
* is.recursive(x) is no longer true when x is an external pointer,
a weak reference or byte code; the first enables all.equal(x, x)
when x <- getClass(.).
* ls() (aka objects()) and as.list.environment() gain a new
argument sorted.
* The "source" attribute (which has not been added to functions by
R since before R version 2.14.0) is no longer treated as special.
* Function returnValue() has been added to give on.exit() code
access to a function's return value for debugging purposes.
* crossprod(x, y) allows more matrix coercions when x or y are
vectors, now equalling t(x) %*% y in these cases (also reported
by Radford Neal). Similarly, tcrossprod(x,y) and %*% work in
more cases with vector arguments.
* Utility function dynGet() useful for detecting cycles, aka
infinite recursions.
* The byte-code compiler and interpreter include new instructions
that allow many scalar subsetting and assignment and scalar
arithmetic operations to be handled more efficiently. This can
result in significant performance improvements in scalar
numerical code.
* apply(m, 2, identity) is now the same as the matrix m when it has
_named_ row names.
* A new function debuggingState() has been added, allowing to
temporarily turn off debugging.
* example() gets a new optional argument run.donttest and
tools::Rd2ex() a corresponding commentDonttest, with a default
such that example(..) in help examples will run \donttest code
only if used interactively (a change in behaviour).
* rbind.data.frame() gains an optional argument make.row.names, for
potential speedup.
* New function extSoftVersion() to report on the versions of
third-party software in use in this session. Currently reports
versions of zlib, bzlib, the liblzma from xz, PCRE, ICU, TRE and
the iconv implementation.
A similar function grSoftVersion() in package grDevices reports
on third-party graphics software.
Function tcltk::tclVersion() reports the Tcl/Tk version.
* Calling callGeneric() without arguments now works with primitive
generics to some extent.
* vapply(x, FUN, FUN.VALUE) is more efficient notably for large
length(FUN.VALUE); as extension of PR#16061.
* as.table() now allows tables with one or more dimensions of
length 0 (such as as.table(integer())).
* names(x) <- NULL now clears the names of call and ... objects.
* library() will report a warning when an insufficient dependency
version is masking a sufficient one later on the library search
path.
* A new plot() method for class "raster" has been added.
* New check_packages_in_dir_changes() function in package tools for
conveniently analyzing how changing sources impacts the check
results of their reverse dependencies.
* Speed-up from Peter Haverty for ls() and
methods:::.requirePackage() speeding up package loading.
(PR#16133)
* New get0() function, combining exists() and get() in one call,
for efficiency.
* match.call() gains an envir argument for specifying the
environment from which to retrieve the ... in the call, if any;
this environment was wrong (or at least undesirable) when the
definition argument was a function.
* topenv() has been made .Internal() for speedup, based on Peter
Haverty's proposal in PR#16140.
* getOption() no longer calls options() in the main case.
* Optional use of libcurl (version 7.28.0 from Oct 2012 or later)
for Internet access:
* capabilities("libcurl") reports if this is available.
* libcurlVersion() reports the version in use, and other
details of the "libcurl" build including which URL schemes it
supports.
* curlGetHeaders() retrieves the headers for http://, https://,
ftp:// and ftps:// URLs: analysis of these headers can
provide insights into the `existence' of a URL (it might for
example be permanently redirected) and is so used in R CMD
check --as-cran.
* download.file() has a new optional method "libcurl" which
will handle more URL schemes, follow redirections, and allows
simultaneous downloads of multiple URLs.
* url() has a new method "libcurl" which handles more URL
schemes and follows redirections. The default method is
controlled by a new option url.method, which applies also to
the opening of URLs _via_ file() (which happens implicitly in
functions such as read.table.)
* When file() or url() is invoked with a https:// or ftps://
URL which the current method cannot handle, it switches to a
suitable method if one is available.
* (Windows.) The DLLs internet.dll and internet2.dll have been
merged. In this version it is safe to switch (repeatedly)
between the internal and Windows internet functions within an R
session.
The Windows internet functions are still selected by flag
--internet2 or setInternet2(). This can be overridden for an
url() connection _via_ its new method argument.
download.file() has new method "wininet", selected as the default
by --internet2 or setInternet2().
* parent.env<- can no longer modify the parent of a locked
namespace or namespace imports environment. Contributed by Karl
Millar.
* New function isLoadedNamespace() for readability and speed.
* names(env) now returns all the object names of an environment
env, equivalently to ls(env, all.names = TRUE, sorted = FALSE)
and also to the names of the corresponding list,
names(as.list(env, all.names = TRUE)). Note that although
names() returns a character vector, the names have no particular
ordering.
* The memory manager now grows the heap more aggressively. This
reduces the number of garbage collections, in particular while
data or code are loaded, at the expense of slightly increasing
the memory footprint.
* New function trimws() for removing leading/trailing whitespace.
* cbind() and rbind() now consider S4 inheritance during S3
dispatch and also obey deparse.level.
* cbind() and rbind() will delegate recursively to methods::cbind2
(methods::rbind2) when at least one argument is an S4 object and
S3 dispatch fails (due to ambiguity).
* (Windows.) download.file(quiet = FALSE) now uses text rather
than Windows progress bars in non-interactive use.
* New function hsearch_db() in package utils for building and
retrieving the help search database used by help.search(), along
with functions for inspecting the concepts and keywords in the
help search database.
* New function .getNamespaceInfo(), a no-check version of
getNamespaceInfo() mostly for internal speedups.
* The help search system now takes \keyword entries in Rd files
which are not standard keywords (as given in KEYWORDS in the R
documentation directory) as concepts. For standard keyword
entries the corresponding descriptions are additionally taken as
concepts.
* New lengths() function for getting the lengths of all elements in
a list.
* New function toTitleCase() in package tools, tailored to package
titles.
* The matrix methods of cbind() and rbind() allow matrices as
inputs which have 2^31 or more elements. (For cbind(), wish of
PR#16198.)
* The default method of image() has an explicit check for a numeric
or logical matrix (which was always required).
* URLencode() will not by default encode further URLs which appear
to be already encoded.
* BIC(mod) and BIC(mod, mod2) now give non-NA numbers for arima()
fitted models, as nobs(mod) now gives the number of "used"
observations for such models. This fixes PR#16198, quite
differently than proposed there.
* The print() methods for "htest", "pairwise.htest" and
"power.htest" objects now have a digits argument defaulting to (a
function of) getOption("digits"), and influencing all printed
numbers coherently. Unavoidably, this changes the display of
such test results in some cases.
* Code completion for namespaces now recognizes all loaded
namespaces, rather than only the ones that are also attached.
* The code completion mechanism can now be replaced by a
user-specified completer function, for (temporary) situations
where the usual code completion is inappropriate.
* unzip() will now warn if it is able to detect truncation when
unpacking a file of 4GB or more (related to PR#16243).
* methods() reports S4 in addition to S3 methods; output is
simplified when the class argument is used. .S3methods() and
methods::.S4methods() report S3 and S4 methods separately.
* Higher order functions such as the apply functions and Reduce()
now force arguments to the functions they apply in order to
eliminate undesirable interactions between lazy evaluation and
variable capture in closures. This resolves PR#16093.
INSTALLATION and INCLUDED SOFTWARE:
* The \donttest sections of R's help files can be tested by
make check TEST_DONTTEST=TRUE .
* It is possible to request the use of system valgrind headers
_via_ configure option --with-system-valgrind-headers: note the
possible future incompatibility of such headers discussed in the
'R Installation and Administration' manual. (Wish of PR#16068.)
* The included version of liblzma has been updated to xz-utils
5.0.7 (minor bug fixes from 5.0.5).
* configure options --with-system-zlib, --with-system-bzlib and
--with-system-pcre are now the default. For the time being there
is fallback to the versions included in the R sources if no
system versions are found or (unlikely) if they are too old.
Linux users should check that the -devel or -dev versions of
packages zlib, bzip2/libbz2 and pcre as well as
xz-devel/liblzma-dev (or similar names) are installed.
* configure by default looks for the texi2any script from texinfo
5.1 or later, rather than the makeinfo program. (makeinfo is a
link to the Perl script texi2any in texinfo 5.x.)
* R CMD INSTALL gains an option --built-timestamp=STAMP allowing
100% reproducible package building, thanks to Dirk Eddelbuettel.
UTILITIES:
* There is support for testing the \dontrun and \donttest parts of
examples in packages.
tools::testInstalledPackage() accepts new arguments
commentDontrun = FALSE and commentDonttest = FALSE.
R CMD check gains options --run-dontrun and --run-donttest.
* The HTML generated by tools::Rd2HTML() and tools::toHTML()
methods is now 'XHTML 1.0 Strict'.
* The compiler package's utility function setCompilerOptions() now
returns the old values invisibly. The initial optimization level
can also be set with the environment variable
R_COMPILER_OPTIMIZE.
* R CMD build adds a NeedsCompilation field if one is not already
present in the DESCRIPTION file.
* R CMD check gains option --test-dir to specify an alternative set
of tests to run.
* R CMD check will now by default continue with testing after many
types of errors, and will output a summary count of errors at the
end if any have occurred.
* R CMD check now checks that the Title and Description fields are
correctly terminated.
* R CMD check --as-cran now:
* checks a README.md file can be processed: this needs pandoc
installed.
* checks the existence and accessibility of URLs in the
DESCRIPTION, CITATION, NEWS.Rd and README.md files and in the
help files (provided the build has libcurl support).
* reports non-ASCII characters in R source files when there is
no package encoding declared in the DESCRIPTION file.
* reports (apparent) S3 methods exported but not registered.
* reports overwriting registered S3 methods from
base/recommended packages. (Such methods are replaced in the
affected package for the rest of the session, even if the
replacing namespace is unloaded.)
* reports if the Title field does not appear to be in title
case (see 'Writing R Extensions': there may be false
positives, but note that technical words should be
single-quoted and will then be accepted).
Most of these checks can also be selected by environment
variables: see the 'R Internals' manual.
C-LEVEL FACILITIES:
* New C API utility logspace_sum(logx[], n).
* Entry points rbinom_mu, rnbinom_mu and rmultinom are remapped (by
default) to Rf_rbinom_mu etc. This requires packages using them
to be re-installed.
* .C(DUP = FALSE) and .Fortran(DUP = FALSE) are now ignored, so
arguments are duplicated if DUP = TRUE would do so. As their
help has long said, .Call() is much preferred.
* New entry point R_allocLD, like R_alloc but guaranteed to have
sufficient alignment for long double pointers.
* isPairList() now returns TRUE for DOTSXP.
WINDOWS BUILD CHANGES:
A number of changes to the Windows build system are in development.
The following are currently in place.
* Installation using external binary distributions of zlib, bzip2,
liblzma, pcre, libpng, jpeglib and libtiff is now required, and
the build instructions have been revised.
* A new make target rsync-extsoft has been added to obtain copies
of the external libraries from CRAN.
* Building the manuals now requires texi2any from texinfo 5.1 or
later. CRAN binary builds include the manuals, but by default
builds from source will not, and they will be accessed from CRAN.
See the comments in src/gnuwin32/MkRules.dist for how to specify
the location of texi2any.
* (Windows) Changes have been made to support an experimental
Windows toolchain based on GCC 4.9.2. The default toolchain
continues to be based on GCC 4.6.3, as the new toolchain is not
yet stable enough. A change to a new toolchain is expected
during the R 3.2.x lifetime.
PACKAGE INSTALLATION:
* (Windows) The use of macro ZLIB_LIBS in file src/Makevars.win
(which has not been documented for a long time) now requires an
external libz.a to be available (it is part of the 'goodies' used
to compile Windows binary packages). It would be simpler to use
-lz instead.
* The default for option pkgType on platforms using binary packages
is now "both", so source packages will be tried if binary
versions are not available or not up to date.
There are options for what install.packages(type = "both")
(possibly called _via_ update.packages()) will do if compilation
of a source package is desirable: see ?options (under utils).
If you intend not to accept updates as source packages, you
should use update.packages(type = "binary").
DEPRECATED AND DEFUNCT:
* download.file(method = "lynx") is defunct.
* Building R using the included versions of zlib, bzip2, xz and
PCRE is deprecated: these are frozen (bar essential bug-fixes)
and will be removed for R 3.3.0.
* The configure option --with-valgrind-instrumentation=3 has been
withdrawn, as it did not work with recent valgrind headers: it is
now treated as level 2.
* The MethodsList class in package methods had been deprecated in R
2.11.0 and is defunct now. Functions using it are defunct if
they had been deprecated in R 2.11.0, and are deprecated now,
otherwise.
BUG FIXES:
* Fixed two obscure bugs in pairlist subassignment, reported by
Radford Neal as part of pqR issue 16.
* Fixes for bugs in handling empty arguments and argument matching
by name in log().
* all.equal() gains methods for environments and refClasses.
* [<- and [[<- gain S4 data.frame methods to avoid corruption of S4
class information by the S3 methods.
* callNextMethod() should now work within a .local call when ... is
absent from formals(.local).
* dput(pairlist(x)) generates a call to the pairlist constructor
instead of the list constructor.
* Fix missing() when arguments are propagated through ... .
(PR#15707)
* eigen(m) now defaults to symmetric = TRUE even when the dimnames
are asymmetric if the matrix is otherwise symmetric. (PR#16151)
* Fix issues with forwarding ... through callGeneric() and
callNextMethod(). (PR#16141)
* callGeneric() now works after a callNextMethod().
* Subclass information is kept consistent when replacing an
ordinary S4 class with an "old class" _via_ the S4Class argument
to setOldClass(). Thus, for example, a data.frame is valid for a
list argument in the signature, and a factor is valid for vector
arguments.
* In qbeta() the inversion of pbeta() is much more sophisticated.
This works better in corner cases some of which failed completely
previously (PR#15755), or were using too many iterations.
* Auto-printing no longer duplicates objects when printing is
dispatched to a method.
* kmeans(x, k) would fail when nrow(x) >= 42949673. (Comment 6 of
PR#15364)
* 'Abbreviated' locale-specific day and month names could have been
truncated in those rare locales where there are the same as the
full names.
* An irrelevant warning message from updating subclass information
was silenced (the namespace would not be writable in this case).
CHANGES IN R 3.1.3:
NEW FEATURES:
* The internal method of download.file() can now handle files
larger than 2GB on 32-bit builds which support such files (tested
on 32-bit R running on 64-bit Windows).
* kruskal.test() warns on more types of suspicious input.
* The as.dendrogram() method for "hclust" objects gains a check
argument protecting against memory explosion for invalid inputs.
* capabilities() has a new item long.double which indicates if the
build uses a long double type which is longer than double.
* nlm() no longer modifies the callback argument in place (a new
vector is allocated for each invocation, which mimics the
implicit duplication that occurred in R < 3.1.0); note that this
is a change from the previously documented behavior. (PR#15958)
* icuSetCollate() now accepts locale = "ASCII" which uses the basic
C function strcmp and so collates strings byte-by-byte in
numerical order.
* sessionInfo() tries to report the OS version in use (not just
that compiled under, and including details of Linux
distributions).
* model.frame() (used by lm() and many other modelling functions)
now warns when it drops contrasts from factors. (Wish of
PR#16119)
* install.packages() and friends now accept the value type =
"binary" as a synonym for the native binary type on the platform
(if it has one).
* Single source or binary files can be supplied for
install.packages(type = "both") and the appropriate type and
repos = NULL will be inferred.
* New function pcre_config() to report on some of the configuration
options of the version of PCRE in use. In particular, this
reports if regular expressions using \p{xx} are supported.
* (Windows.) download.file(cacheOK = FALSE) is now supported when
internet2.dll is used.
* browseURL() has been updated to work with Firefox 36.0 which has
dropped support for the -remote interface.
INSTALLATION and INCLUDED SOFTWARE:
* The included version of PCRE has been updated to 8.36.
* configure accepts MAKEINFO=texi2any as another way to ensure
texinfo 5.x is used when both 5.x and 4.x are installed.
UTILITIES:
* R CMD check now checks the packages used in \donttest sections of
the examples are specified in the DESCRIPTION file. (These are
needed to run the examples interactively.)
* R CMD check checks for the undeclared use of GNU extensions in
Makefiles, and for Makefiles with a missing final linefeed.
R CMD build will correct line endings in all Makefiles, not just
those in the src directory.
* R CMD check notes uses of library() and require() in package
code: see the section 'Suggested packages' of 'Writing R
Extensions' for good practice.
DEPRECATED AND DEFUNCT:
* The configure option --with-valgrind-instrumentation=3 is
deprecated and will be removed in R 3.2.0.
BUG FIXES:
* (Windows.) Rscript.exe was missing a manifest specifying the
modern style for common controls (e.g., the download progress
bar).
* If a package had extra documentation files but no vignette, the
HTML help system produced an empty index page.
* The parser now gives an error if a null character is included in
a string using Unicode escapes. (PR#16046)
* qr.Q() failed on complex arguments due to pre-3.0(!) typo.
(PR#16054)
* abs() failed with named arguments when the argument was complex.
(PR#16047)
* "noquote" objects may now be used as columns in dataframes.
(PR#15997)
* Some values with extremely long names were printed incorrectly.
(PR#15999)
* Extremely large exponents on zero expressed in scientific
notation (e.g. 0.0e50000) could give NaN. (PR#15976)
* download.file() reported downloaded sizes as 0KB if less than
1MB, only for R 3.1.2 and only on big-endian platforms.
* prompt() did not escape percent signs in the automatically
generated usage section of help files.
* drop.terms() dropped some of the attributes of the object it was
working with. (PR#16029)
* (Windows.) The command completion in Rgui.exe messed up the
console. (PR#15791)
* (Windows.) The choose.files() command returned a blank string
when the user asked for a single file but cancelled the request.
(PR#16074)
* Math2 S4 group generics failed to correctly dispatch "structure"-
and "nonStructure"-derived classes.
* loadNamespace() imposed undocumented restrictions on the
versionCheck parameter. (Reported by Geoff Lee.)
* Rare over-runs detected by AddressSanitizer in substr() and its
replacement version have been avoided.
_Inter alia_ that fix gives the documented behaviour for
substr(x, 1, 2) <- "" (subsequently reported as PR#16214).
* Loading packages incorrectly defining an S4 generic followed by a
function of the same name caused an erroneous cyclic namespace
dependency error.
* Declared vignette encodings are now always passed to the vignette
engine.
* Port Tomas Kalibera's fix from R-devel that restores the
loadMethod() fast path, effectively doubling the speed of S4
dispatch.
* power.t.test() and power.prop.test() now make use of the
extendInt option of uniroot() and hence work in more extreme
cases. (PR#15792)
* If a package was updated and attached when its namespace was
already loaded, it could end up with parts from one version and
parts from the other. (PR#16120)
* tools:::.Rdconv() didn't accept --encoding= due to a typo.
(PR#16121)
* Unix-alike builds without a suitable makeinfo were documented to
link the missing HTML manuals to CRAN, but did not.
* save(*, ascii=TRUE) and load() now correctly deal with NaN's.
(PR#16137)
* split.Date() retains fractional representations while avoiding
incomplete class propagation.
* R_ext/Lapack.h had not been updated for changes made by LAPACK to
the argument lists of its (largely internal) functions dlaed2 and
dlaed3. (PR#16157)
* RShowDoc("NEWS", "txt") had not been updated for the layout
changes of R 3.1.0.
* The xtfrm() method for class "Surv" has been corrected and its
description expanded.
* mode(x) <- y would incorrectly evaluate x before changing its
mode. (PR#16215)
* besselJ(1, 2^64) and besselY(..) now signal a warning, returning
NaN instead of typically segfaulting. (Issue 3 of PR#15554)
* HTML conversion of \href markup in .Rd files did not remove the
backslash from \% and so gave an invalid URL. In a related
change, the \ escape is now required in such URLs.
CHANGES IN R 3.1.2:
NEW FEATURES:
* embedFonts() now defaults to format = "ps2write" for .ps and .eps
files. This is available in Ghostscript 9.x (since 2010) whereas
the previous default, format = "pswrite", was removed in
Ghostscript 9.10.
* For consistency with [dpqr]norm(), [dp]lnorm(sdlog = 0) model a
point mass at exp(mulog) rather than return NaN (for an error).
* capabilities() now reports if ICU is compiled in for use for
collation (it is only actually used if a suitable locale is set
for collation, and never for a C locale).
* (OS X only.) Package tcltk checks when loaded if it is linked
against the CRAN X11-based Tcl/Tk and if so that the Tcl/Tk
component and the X11 libraries are installed. This allows more
informative error messages to be given advising the installation
of the missing component or of XQuartz.
The X11() device and X11-based versions of the data editor and
viewer (invoked by edit() and View() for data frames and matrices
from command-line R) check that the X11 libraries are installed
and if not advises installing XQuartz.
* icuSetCollate() allows locale = "default", and locale = "none" to
use OS services rather than ICU for collation.
Environment variable R_ICU_LOCALE can be used to set the default
ICU locale, in case the one derived from the OS locale is
inappropriate (this is currently necessary on Windows).
* New function icuGetCollate() to report on the ICU collation
locale in use (if any).
* utils::URLencode() was updated to use unreserved and reserved
characters from RFC 3986 (<URL:
http://tools.ietf.org/html/rfc3986>) instead of RFC 1738.
* unique(warnings()) and c(warnings()) are now supported.
* The Bioconductor 'version' used by setRepositories() now defaults
to 3.0. (It can be set at runtime _via_ environment variable
R_BIOC_VERSION.)
* Omegahat is no longer listed as providing Windows binary
packages, e.g. by setRepositories(). It has no binary packages
available for R 3.1.x and those for earlier versions were 32-bit
only.
INSTALLATION and INCLUDED SOFTWARE:
* The configure script reports on the more important
capabilities/options which will not be compiled in.
More types of external BLAS are recognized by name in that
report.
* When building R as a shared library, the -L${R_HOME}/lib${R_ARCH}
flag is placed earlier in the link commands used during
installation and when packages are installed: this helps ensure
that the current build has priority if an R shared library has
already been installed by e.g. install-libR in a library
mentioned in LDFLAGS (and not in 'your system's library
directory' as documented). (Wish of PR#15790.)
* LaTeX package upquote is no longer required for R's use of
inconsolata.
* (Windows only) If both 32- and 64-bit versions of R are
installed, the bin/R.exe and bin/Rscript.exe executables now run
64-bit R. (To run 32-bit R, overwrite these files with copies of
bin/i386/Rfe.exe.)
UTILITIES:
* Running R CMD check with _R_CHECK_DEPENDS_ONLY_ true now makes
the VignetteBuilder packages available even if they are listed in
Suggests, since they are needed to recognise and process
non-Sweave vignettes.
* R CMD check now reports empty importFrom declarations in a
NAMESPACE file, as these are common errors (writing
importFrom(Pkg) where import(Pkg) was intended).
* R CMD check now by default checks code usage directly on the
package namespace without loading and attaching the package and
its suggests and enhances. For good practice with packages in
the Suggests field, see SS1.1.3.1 of 'Writing R Extensions'. For
use of lazy-data objects in the package's own code, see ?data.
BUG FIXES:
* dmultinom() did not handle non-finite probabilities correctly.
* prettyNum(x, zero.print=*) now also works when x contains NAs.
* A longstanding bug exhibited by nlminb() on Windows was traced to
a compiler bug in gcc 4.6.3; a workaround has been put in place.
(PR#15244 and PR#15914).
* Rendering of \command in HTML versions of help pages has been
improved: this is particularly evident on the help page for
INSTALL.
* as.hexmode(x) and as.octmode(x) now behave correctly for some
numeric x, e.g., c(NA, 1) or c(1, pi).
* drop1() failed if the scope argument had no variables to drop.
(PR#15935)
* edit() (and hence fix()) failed if an object had a non-character
attribute named "source" (an attribute that had been used in R
prior to version 2.14.0).
* callGeneric() could fail if the generic had ... as a formal
argument. (PR#15937).
* Forking in package parallel called C entry point exit in the
child. This was unsafe (_exit should have been called), and
could flush stdin of the main R process (seen most often on
Solaris).
As good practice, stdout is now flushed before forking a child.
* R objects such as list(`a\b` = 1) now print correctly.
* getAnywhere("C_pbinom") now returns correctly a single object
(rather than unlisting it).
* The confint() method for nls() fits failed it these has specified
parameter limits despite using an algorithm other than "port".
(PR#15960)
* Subclassing an S4 class failed if the class required arguments to
the generator, through its initialize() method.
* removeSource() did not properly handle expressions containing
arguments that were supplied as missing, e.g. x[i,]. (PR#15957)
* as.environment(list()) now works, and as.list() of such an
environment is now the same as list().
* Several tcltk functions failed when run in unusual environments.
(PR#15970)
* options(list()) now works (trivially). (PR#15979)
* merge(<dendrogram>, ..) now works correctly for two `independent'
dendrograms (PR#15648), and still compatibly via adjust = "auto"
e.g. for two branches of an existing dendrogram.
* The plot method for "hclust" objects gets an optional argument
check; When that is true (the default) it checks more carefully
for valid input.
* (Windows only) If a user chose to install 64 bit R but not 32 bit
R, the bin/R and bin/Rscript executables failed to run.
(PR#15981)
* Various possible buffer overruns have been prevented, and missed
memory protection added. (PR#15990)
* Rscript no longer passes --args to R when there are no extra
("user") arguments.
* objects like getClass("refClass")@prototype now print() and str()
without error.
* identical() now also looks at the S4 bit.
* hist(x, breaks) is more robust in adding a small fuzz to few
breaks when some are very large. (PR#15988)
* sub() and gsub() did not handle regular expressions like "\s{2,}"
properly if the text contained NA or non-ascii elements in a
UTF-8 locale. Part of this was due to a bug in the TRE library.
(PR#16009)
* RShowDoc("NEWS") now displays the PDF version.
* Matrices and arrays with last dimension zero did not print at all
or incompletely. (PR#16012)
* plot.histogram() and hence hist() now respect the xaxs, yaxs and
lab graphics parameters. (PR#16021)
* bw.SJ(x) and other bw.*() no longer segfault when x contains
non-finite values. (PR#16024)
* R CMD Rd2pdf unintentionally ignored its --os option.
* The internal method of download.file() was not reporting file
sizes and progress correctly on files larger than 2GB (inherited
from libxml2). This is corrected for 64-bit builds (32-bit
platforms may not support such files, but where possible will be
supported in future versions of R).
* Work around a bug in OS X Yosemite where key environment
variables may be duplicated causing issues in subprocesses. The
duplicates are now removed on R startup (via Rprofile).
(PR#16042)
* Adjust X11 auto-launch detection in DISPLAY on OS X to recognize
latest XQuartz.
|
|
ERROR: hs-primitive>=0.5.4 is not installed; can't buildlink files.
Bump PKGREVISION for hs-primitive-0.5.4.0
|
|
|
|
|
|
Add LICENSE
Upstream changes:
1.32 2015-04-28
- Specify minimum version of perl as 5.8.x
- CPANTS / Kwalitee
1.31 2015-03-25
- Convert n2 in _spctrm to "double" so it won't overflow as an int
- Fix https://rt.cpan.org/Ticket/Display.html?id=22068
- Thanks to thomas.poleschner@gmx.de for the report.
1.30 2015-03-25
- Convert the test files to Test::More and do some other cleanups.
1.29 2015-03-05
- Convert to Dist-Zilla.
- Reformatted the code.
- Get rid of trailing space.
- Got to 100% POD coverage.
- Other cleanups.
- As the original maintainer (Randy Kobes) passed away, the distribution
was adopted by Shlomi Fish (SHLOMIF).
|
|
|
|
Arbitrary precision numbers implemented by TeX macros
|
|
|
|
|
|
regenerate patch sums in distinfo
bump PKGREVISION
|
|
|
|
|
|
use CGDisplayModeCopyPixelEncoding instead
|
|
--with-internal-tzcode=yes
|
|
|
|
Upstream changes:
SciPy 0.15.1 is a bug-fix release with no new features compared to 0.15.0.
Issues fixed
- ------------
* `#4413 <https://github.com/scipy/scipy/pull/4413>`__: BUG: Tests too strict, f2py doesn't have to overwrite this array
* `#4417 <https://github.com/scipy/scipy/pull/4417>`__: BLD: avoid using NPY_API_VERSION to check not using deprecated...
* `#4418 <https://github.com/scipy/scipy/pull/4418>`__: Restore and deprecate scipy.linalg.calc_work
SciPy 0.15.0 Release Notes
==========================
.. contents::
SciPy 0.15.0 is the culmination of 6 months of hard work. It contains
several new features, numerous bug-fixes, improved test coverage and
better documentation. There have been a number of deprecations and
API changes in this release, which are documented below. All users
are encouraged to upgrade to this release, as there are a large number
of bug-fixes and optimizations. Moreover, our development attention
will now shift to bug-fix releases on the 0.16.x branch, and on adding
new features on the master branch.
This release requires Python 2.6, 2.7 or 3.2-3.4 and NumPy 1.5.1 or greater.
New features
============
Linear Programming Interface
- ----------------------------
The new function `scipy.optimize.linprog` provides a generic
linear programming similar to the way `scipy.optimize.minimize`
provides a generic interface to nonlinear programming optimizers.
Currently the only method supported is *simplex* which provides
a two-phase, dense-matrix-based simplex algorithm. Callbacks
functions are supported, allowing the user to monitor the progress
of the algorithm.
Differential evolution, a global optimizer
- ------------------------------------------
A new `scipy.optimize.differential_evolution` function has been added to the
``optimize`` module. Differential Evolution is an algorithm used for finding
the global minimum of multivariate functions. It is stochastic in nature (does
not use gradient methods), and can search large areas of candidate space, but
often requires larger numbers of function evaluations than conventional
gradient based techniques.
``scipy.signal`` improvements
- -----------------------------
The function `scipy.signal.max_len_seq` was added, which computes a Maximum
Length Sequence (MLS) signal.
``scipy.integrate`` improvements
- --------------------------------
It is now possible to use `scipy.integrate` routines to integrate
multivariate ctypes functions, thus avoiding callbacks to Python and
providing better performance.
``scipy.linalg`` improvements
- -----------------------------
The function `scipy.linalg.orthogonal_procrustes` for solving the procrustes
linear algebra problem was added.
BLAS level 2 functions ``her``, ``syr``, ``her2`` and ``syr2`` are now wrapped
in ``scipy.linalg``.
``scipy.sparse`` improvements
- -----------------------------
`scipy.sparse.linalg.svds` can now take a ``LinearOperator`` as its main input.
``scipy.special`` improvements
- ------------------------------
Values of ellipsoidal harmonic (i.e. Lame) functions and associated
normalization constants can be now computed using ``ellip_harm``,
``ellip_harm_2``, and ``ellip_normal``.
New convenience functions ``entr``, ``rel_entr`` ``kl_div``,
``huber``, and ``pseudo_huber`` were added.
``scipy.sparse.csgraph`` improvements
- -------------------------------------
Routines ``reverse_cuthill_mckee`` and ``maximum_bipartite_matching``
for computing reorderings of sparse graphs were added.
``scipy.stats`` improvements
- ----------------------------
Added a Dirichlet multivariate distribution, `scipy.stats.dirichlet`.
The new function `scipy.stats.median_test` computes Mood's median test.
The new function `scipy.stats.combine_pvalues` implements Fisher's
and Stouffer's methods for combining p-values.
`scipy.stats.describe` returns a namedtuple rather than a tuple, allowing
users to access results by index or by name.
Deprecated features
===================
The `scipy.weave` module is deprecated. It was the only module never ported
to Python 3.x, and is not recommended to be used for new code - use Cython
instead. In order to support existing code, ``scipy.weave`` has been packaged
separately: https://github.com/scipy/weave. It is a pure Python package, and
can easily be installed with ``pip install weave``.
`scipy.special.bessel_diff_formula` is deprecated. It is a private function,
and therefore will be removed from the public API in a following release.
``scipy.stats.nanmean``, ``nanmedian`` and ``nanstd`` functions are deprecated
in favor of their numpy equivalents.
Backwards incompatible changes
==============================
scipy.ndimage
- -------------
The functions `scipy.ndimage.minimum_positions`,
`scipy.ndimage.maximum_positions`` and `scipy.ndimage.extrema` return
positions as ints instead of floats.
scipy.integrate
- ---------------
The format of banded Jacobians in `scipy.integrate.ode` solvers is
changed. Note that the previous documentation of this feature was
erroneous.
SciPy 0.14.1 Release Notes
==========================
SciPy 0.14.1 is a bug-fix release with no new features compared to 0.14.0.
Issues closed
- -------------
- - `#3630 <https://github.com/scipy/scipy/issues/3630>`__: NetCDF reading results in a segfault
- - `#3631 <https://github.com/scipy/scipy/issues/3631>`__: SuperLU object not working as expected for complex matrices
- - `#3733 <https://github.com/scipy/scipy/issues/3733>`__: segfault from map_coordinates
- - `#3780 <https://github.com/scipy/scipy/issues/3780>`__: Segfault when using CSR/CSC matrix and uint32/uint64
- - `#3781 <https://github.com/scipy/scipy/pull/3781>`__: BUG: sparse: fix omitted types in sparsetools typemaps
- - `#3802 <https://github.com/scipy/scipy/issues/3802>`__: 0.14.0 API breakage: _gen generators are missing from scipy.stats.distributions API
- - `#3805 <https://github.com/scipy/scipy/issues/3805>`__: ndimage test failures with numpy 1.10
- - `#3812 <https://github.com/scipy/scipy/issues/3812>`__: == sometimes wrong on csr_matrix
- - `#3853 <https://github.com/scipy/scipy/issues/3853>`__: Many scipy.sparse test errors/failures with numpy 1.9.0b2
- - `#4084 <https://github.com/scipy/scipy/pull/4084>`__: fix exception declarations for Cython 0.21.1 compatibility
- - `#4093 <https://github.com/scipy/scipy/pull/4093>`__: BUG: fitpack: avoid a memory error in splev(x, tck, der=k)
- - `#4104 <https://github.com/scipy/scipy/pull/4104>`__: BUG: Workaround SGEMV segfault in Accelerate (maintenance 0.14.x)
- - `#4143 <https://github.com/scipy/scipy/pull/4143>`__: BUG: fix ndimage functions for large data
- - `#4149 <https://github.com/scipy/scipy/issues/4149>`__: Bug in expm for integer arrays
- - `#4154 <https://github.com/scipy/scipy/issues/4154>`__: Backport gh-4041 for 0.14.1 (Ensure that the 'size' argument of PIL's 'resize' method is a tuple)
- - `#4163 <https://github.com/scipy/scipy/issues/4163>`__: Backport #4142 (ZeroDivisionError in scipy.sparse.linalg.lsqr)
- - `#4164 <https://github.com/scipy/scipy/issues/4164>`__: Backport gh-4153 (remove use of deprecated numpy API in lib/lapack/ f2py wrapper)
- - `#4180 <https://github.com/scipy/scipy/pull/4180>`__: backport pil resize support tuple fix
- - `#4168 <https://github.com/scipy/scipy/issues/4168>`__: Lots of arpack test failures on windows 32 bits with numpy 1.9.1
- - `#4203 <https://github.com/scipy/scipy/issues/4203>`__: Matrix multiplication in 0.14.x is more than 10x slower compared...
- - `#4218 <https://github.com/scipy/scipy/pull/4218>`__: attempt to make ndimage interpolation compatible with numpy relaxed...
- - `#4225 <https://github.com/scipy/scipy/pull/4225>`__: BUG: off-by-one error in PPoly shape checks
- - `#4248 <https://github.com/scipy/scipy/pull/4248>`__: BUG: optimize: fix issue with incorrect use of closure for slsqp.
SciPy 0.14.0 Release Notes
==========================
.. contents::
SciPy 0.14.0 is the culmination of 8 months of hard work. It contains
many new features, numerous bug-fixes, improved test coverage and
better documentation. There have been a number of deprecations and
API changes in this release, which are documented below. All users
are encouraged to upgrade to this release, as there are a large number
of bug-fixes and optimizations. Moreover, our development attention
will now shift to bug-fix releases on the 0.14.x branch, and on adding
new features on the master branch.
This release requires Python 2.6, 2.7 or 3.2-3.4 and NumPy 1.5.1 or greater.
New features
============
``scipy.interpolate`` improvements
----------------------------------
A new wrapper function `scipy.interpolate.interpn` for interpolation on regular
grids has been added. `interpn` supports linear and nearest-neighbor
interpolation in arbitrary dimensions and spline interpolation in two
dimensions.
Faster implementations of piecewise polynomials in power and Bernstein
polynomial bases have been added as `scipy.interpolate.PPoly` and
`scipy.interpolate.BPoly`. New users should use these in favor of
`scipy.interpolate.PiecewisePolynomial`.
`scipy.interpolate.interp1d` now accepts non-monotonic inputs and sorts them.
If performance is critical, sorting can be turned off by using the new
``assume_sorted`` keyword.
Functionality for evaluation of bivariate spline derivatives in
``scipy.interpolate`` has been added.
The new class `scipy.interpolate.Akima1DInterpolator` implements the piecewise
cubic polynomial interpolation scheme devised by H. Akima.
Functionality for fast interpolation on regular, unevenly spaced grids
in arbitrary dimensions has been added as
`scipy.interpolate.RegularGridInterpolator` .
``scipy.linalg`` improvements
-----------------------------
The new function `scipy.linalg.dft` computes the matrix of the
discrete Fourier transform.
A condition number estimation function for matrix exponential,
`scipy.linalg.expm_cond`, has been added.
``scipy.optimize`` improvements
-------------------------------
A set of benchmarks for optimize, which can be run with ``optimize.bench()``,
has been added.
`scipy.optimize.curve_fit` now has more controllable error estimation via the
``absolute_sigma`` keyword.
Support for passing custom minimization methods to ``optimize.minimize()``
and ``optimize.minimize_scalar()`` has been added, currently useful especially
for combining ``optimize.basinhopping()`` with custom local optimizer routines.
``scipy.stats`` improvements
----------------------------
A new class `scipy.stats.multivariate_normal` with functionality for
multivariate normal random variables has been added.
A lot of work on the ``scipy.stats`` distribution framework has been done.
Moment calculations (skew and kurtosis mainly) are fixed and verified, all
examples are now runnable, and many small accuracy and performance improvements
for individual distributions were merged.
The new function `scipy.stats.anderson_ksamp` computes the k-sample
Anderson-Darling test for the null hypothesis that k samples come from
the same parent population.
``scipy.signal`` improvements
-----------------------------
``scipy.signal.iirfilter`` and related functions to design Butterworth,
Chebyshev, elliptical and Bessel IIR filters now all use pole-zero ("zpk")
format internally instead of using transformations to numerator/denominator
format. The accuracy of the produced filters, especially high-order ones, is
improved significantly as a result.
The new function `scipy.signal.vectorstrength` computes the vector strength,
a measure of phase synchrony, of a set of events.
``scipy.special`` improvements
------------------------------
The functions `scipy.special.boxcox` and `scipy.special.boxcox1p`, which
compute the Box-Cox transformation, have been added.
``scipy.sparse`` improvements
-----------------------------
- Significant performance improvement in CSR, CSC, and DOK indexing speed.
- When using Numpy >= 1.9 (to be released in MM 2014), sparse matrices function
correctly when given to arguments of ``np.dot``, ``np.multiply`` and other
ufuncs. With earlier Numpy and Scipy versions, the results of such
operations are undefined and usually unexpected.
- Sparse matrices are no longer limited to ``2^31`` nonzero elements. They
automatically switch to using 64-bit index data type for matrices containing
more elements. User code written assuming the sparse matrices use int32 as
the index data type will continue to work, except for such large matrices.
Code dealing with larger matrices needs to accept either int32 or int64
indices.
Deprecated features
===================
``anneal``
----------
The global minimization function `scipy.optimize.anneal` is deprecated.
All users should use the `scipy.optimize.basinhopping` function instead.
``scipy.stats``
---------------
``randwcdf`` and ``randwppf`` functions are deprecated. All users should use
distribution-specific ``rvs`` methods instead.
Probability calculation aliases ``zprob``, ``fprob`` and ``ksprob`` are
deprecated. Use instead the ``sf`` methods of the corresponding distributions
or the ``special`` functions directly.
``scipy.interpolate``
---------------------
``PiecewisePolynomial`` class is deprecated.
Backwards incompatible changes
==============================
scipy.special.lpmn
------------------
``lpmn`` no longer accepts complex-valued arguments. A new function
``clpmn`` with uniform complex analytic behavior has been added, and
it should be used instead.
scipy.sparse.linalg
-------------------
Eigenvectors in the case of generalized eigenvalue problem are normalized to
unit vectors in 2-norm, rather than following the LAPACK normalization
convention.
The deprecated UMFPACK wrapper in ``scipy.sparse.linalg`` has been removed due
to license and install issues. If available, ``scikits.umfpack`` is still used
transparently in the ``spsolve`` and ``factorized`` functions. Otherwise,
SuperLU is used instead in these functions.
scipy.stats
-----------
The deprecated functions ``glm``, ``oneway`` and ``cmedian`` have been removed
from ``scipy.stats``.
``stats.scoreatpercentile`` now returns an array instead of a list of
percentiles.
scipy.interpolate
-----------------
The API for computing derivatives of a monotone piecewise interpolation has
changed: if `p` is a ``PchipInterpolator`` object, `p.derivative(der)`
returns a callable object representing the derivative of `p`. For in-place
derivatives use the second argument of the `__call__` method:
`p(0.1, der=2)` evaluates the second derivative of `p` at `x=0.1`.
The method `p.derivatives` has been removed.
SciPy 0.13.3 Release Notes
SciPy 0.13.3 is a bug-fix release with no new features compared to 0.13.2. Both the weave and the ndimage.label bugs were severe regressions in 0.13.0, hence this release.
Issues fixed
3148: fix a memory leak in ndimage.label.
3216: fix weave issue with too long file names for MSVC.
Other changes
Update Sphinx theme used for html docs so >>> in examples can be toggled.
SciPy 0.13.2 Release Notes
SciPy 0.13.2 is a bug-fix release with no new features compared to 0.13.1.
Issues fixed
3096: require Cython 0.19, earlier versions have memory leaks in fused types
3079: ndimage.label fix swapped 64-bitness test
3108: optimize.fmin_slsqp constraint violation
SciPy 0.13.1 Release Notes
SciPy 0.13.1 is a bug-fix release with no new features compared to 0.13.0. The only changes are several fixes in ndimage, one of which was a serious regression in ndimage.label (Github issue 3025), which gave incorrect results in 0.13.0.
Issues fixed
3025: ndimage.label returns incorrect results in scipy 0.13.0
1992: ndimage.label return type changed from int32 to uint32
1992: ndimage.find_objects doesn't work with int32 input in some cases
SciPy 0.13.0 Release Notes
==========================
.. contents::
SciPy 0.13.0 is the culmination of 7 months of hard work. It contains
many new features, numerous bug-fixes, improved test coverage and
better documentation. There have been a number of deprecations and
API changes in this release, which are documented below. All users
are encouraged to upgrade to this release, as there are a large number
of bug-fixes and optimizations. Moreover, our development attention
will now shift to bug-fix releases on the 0.13.x branch, and on adding
new features on the master branch.
This release requires Python 2.6, 2.7 or 3.1-3.3 and NumPy 1.5.1 or greater.
Highlights of this release are:
- support for fancy indexing and boolean comparisons with sparse matrices
- interpolative decompositions and matrix functions in the linalg module
- two new trust-region solvers for unconstrained minimization
New features
============
``scipy.integrate`` improvements
--------------------------------
N-dimensional numerical integration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
A new function `scipy.integrate.nquad`, which provides N-dimensional
integration functionality with a more flexible interface than ``dblquad`` and
``tplquad``, has been added.
``dopri*`` improvements
^^^^^^^^^^^^^^^^^^^^^^^
The intermediate results from the ``dopri`` family of ODE solvers can now be
accessed by a *solout* callback function.
``scipy.linalg`` improvements
-----------------------------
Interpolative decompositions
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Scipy now includes a new module `scipy.linalg.interpolative`
containing routines for computing interpolative matrix decompositions
(ID). This feature is based on the ID software package by
P.G. Martinsson, V. Rokhlin, Y. Shkolnisky, and M. Tygert, previously
adapted for Python in the PymatrixId package by K.L. Ho.
Polar decomposition
^^^^^^^^^^^^^^^^^^^
A new function `scipy.linalg.polar`, to compute the polar decomposition
of a matrix, was added.
BLAS level 3 functions
^^^^^^^^^^^^^^^^^^^^^^
The BLAS functions ``symm``, ``syrk``, ``syr2k``, ``hemm``, ``herk`` and
``her2k`` are now wrapped in `scipy.linalg`.
Matrix functions
^^^^^^^^^^^^^^^^
Several matrix function algorithms have been implemented or updated following
detailed descriptions in recent papers of Nick Higham and his co-authors.
These include the matrix square root (``sqrtm``), the matrix logarithm
(``logm``), the matrix exponential (``expm``) and its Frechet derivative
(``expm_frechet``), and fractional matrix powers (``fractional_matrix_power``).
``scipy.optimize`` improvements
-------------------------------
Trust-region unconstrained minimization algorithms
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The ``minimize`` function gained two trust-region solvers for unconstrained
minimization: ``dogleg`` and ``trust-ncg``.
``scipy.sparse`` improvements
-----------------------------
Boolean comparisons and sparse matrices
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
All sparse matrix types now support boolean data, and boolean operations. Two
sparse matrices `A` and `B` can be compared in all the expected ways `A < B`,
`A >= B`, `A != B`, producing similar results as dense Numpy arrays.
Comparisons with dense matrices and scalars are also supported.
CSR and CSC fancy indexing
^^^^^^^^^^^^^^^^^^^^^^^^^^
Compressed sparse row and column sparse matrix types now support fancy indexing
with boolean matrices, slices, and lists. So where A is a (CSC or CSR) sparse
matrix, you can do things like::
>>> A[A > 0.5] = 1 # since Boolean sparse matrices work
>>> A[:2, :3] = 2
>>> A[[1,2], 2] = 3
``scipy.sparse.linalg`` improvements
------------------------------------
The new function ``onenormest`` provides a lower bound of the 1-norm of a
linear operator and has been implemented according to Higham and Tisseur
(2000). This function is not only useful for sparse matrices, but can also be
used to estimate the norm of products or powers of dense matrices without
explictly building the intermediate matrix.
The multiplicative action of the matrix exponential of a linear operator
(``expm_multiply``) has been implemented following the description in Al-Mohy
and Higham (2011).
Abstract linear operators (`scipy.sparse.linalg.LinearOperator`) can now be
multiplied, added to each other, and exponentiated, producing new linear
operators. This enables easier construction of composite linear operations.
``scipy.spatial`` improvements
------------------------------
The vertices of a `ConvexHull` can now be accessed via the `vertices` attribute,
which gives proper orientation in 2-D.
``scipy.signal`` improvements
-----------------------------
The cosine window function `scipy.signal.cosine` was added.
``scipy.special`` improvements
------------------------------
New functions `scipy.special.xlogy` and `scipy.special.xlog1py` were added.
These functions can simplify and speed up code that has to calculate
``x * log(y)`` and give 0 when ``x == 0``.
``scipy.io`` improvements
-------------------------
Unformatted Fortran file reader
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The new class `scipy.io.FortranFile` facilitates reading unformatted
sequential files written by Fortran code.
``scipy.io.wavfile`` enhancements
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
`scipy.io.wavfile.write` now accepts a file buffer. Previously it only
accepted a filename.
`scipy.io.wavfile.read` and `scipy.io.wavfile.write` can now handle floating
point WAV files.
``scipy.interpolate`` improvements
----------------------------------
B-spline derivatives and antiderivatives
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
`scipy.interpolate.splder` and `scipy.interpolate.splantider` functions
for computing B-splines that represent derivatives and antiderivatives
of B-splines were added. These functions are also available in the
class-based FITPACK interface as ``UnivariateSpline.derivative`` and
``UnivariateSpline.antiderivative``.
``scipy.stats`` improvements
----------------------------
Distributions now allow using keyword parameters in addition to
positional parameters in all methods.
The function `scipy.stats.power_divergence` has been added for the
Cressie-Read power divergence statistic and goodness of fit test.
Included in this family of statistics is the "G-test"
(http://en.wikipedia.org/wiki/G-test).
`scipy.stats.mood` now accepts multidimensional input.
An option was added to `scipy.stats.wilcoxon` for continuity correction.
`scipy.stats.chisquare` now has an `axis` argument.
`scipy.stats.mstats.chisquare` now has `axis` and `ddof` arguments.
Deprecated features
===================
``expm2`` and ``expm3``
-----------------------
The matrix exponential functions `scipy.linalg.expm2` and `scipy.linalg.expm3`
are deprecated. All users should use the numerically more robust
`scipy.linalg.expm` function instead.
``scipy.stats`` functions
-------------------------
`scipy.stats.oneway` is deprecated; `scipy.stats.f_oneway` should be used
instead.
`scipy.stats.glm` is deprecated. `scipy.stats.ttest_ind` is an equivalent
function; more full-featured general (and generalized) linear model
implementations can be found in statsmodels.
`scipy.stats.cmedian` is deprecated; ``numpy.median`` should be used instead.
Backwards incompatible changes
==============================
LIL matrix assignment
---------------------
Assigning values to LIL matrices with two index arrays now works similarly as
assigning into ndarrays::
>>> x = lil_matrix((3, 3))
>>> x[[0,1,2],[0,1,2]]=[0,1,2]
>>> x.todense()
matrix([[ 0., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 2.]])
rather than giving the result::
>>> x.todense()
matrix([[ 0., 1., 2.],
[ 0., 1., 2.],
[ 0., 1., 2.]])
Users relying on the previous behavior will need to revisit their code.
The previous behavior is obtained by ``x[numpy.ix_([0,1,2],[0,1,2])] = ...`.
Deprecated ``radon`` function removed
-------------------------------------
The ``misc.radon`` function, which was deprecated in scipy 0.11.0, has been
removed. Users can find a more full-featured ``radon`` function in
scikit-image.
Removed deprecated keywords ``xa`` and ``xb`` from ``stats.distributions``
--------------------------------------------------------------------------
The keywords ``xa`` and ``xb``, which were deprecated since 0.11.0, have
been removed from the distributions in ``scipy.stats``.
Changes to MATLAB file readers / writers
----------------------------------------
The major change is that 1D arrays in numpy now become row vectors (shape 1, N)
when saved to a MATLAB 5 format file. Previously 1D arrays saved as column
vectors (N, 1). This is to harmonize the behavior of writing MATLAB 4 and 5
formats, and adapt to the defaults of numpy and MATLAB - for example
``np.atleast_2d`` returns 1D arrays as row vectors.
Trying to save arrays of greater than 2 dimensions in MATLAB 4 format now raises
an error instead of silently reshaping the array as 2D.
``scipy.io.loadmat('afile')`` used to look for `afile` on the Python system path
(``sys.path``); now ``loadmat`` only looks in the current directory for a
relative path filename.
Other changes
=============
Security fix: ``scipy.weave`` previously used temporary directories in an
insecure manner under certain circumstances.
Cython is now required to build *unreleased* versions of scipy.
The C files generated from Cython sources are not included in the git repo
anymore. They are however still shipped in source releases.
The code base received a fairly large PEP8 cleanup. A ``tox pep8``
command has been added; new code should pass this test command.
Scipy cannot be compiled with gfortran 4.1 anymore (at least on RH5), likely
due to that compiler version not supporting entry constructs well.
|
|
Reviewed by: wiz@
Upstream changes:
NumPy 1.9.2 Release Notes
*************************
This is a bugfix only release in the 1.9.x series.
Issues fixed
============
* `#5316 <https://github.com/numpy/numpy/issues/5316>`__: fix too large dtype alignment of strings and complex types
* `#5424 <https://github.com/numpy/numpy/issues/5424>`__: fix ma.median when used on ndarrays
* `#5481 <https://github.com/numpy/numpy/issues/5481>`__: Fix astype for structured array fields of different byte order
* `#5354 <https://github.com/numpy/numpy/issues/5354>`__: fix segfault when clipping complex arrays
* `#5524 <https://github.com/numpy/numpy/issues/5524>`__: allow np.argpartition on non ndarrays
* `#5612 <https://github.com/numpy/numpy/issues/5612>`__: Fixes ndarray.fill to accept full range of uint64
* `#5155 <https://github.com/numpy/numpy/issues/5155>`__: Fix loadtxt with comments=None and a string None data
* `#4476 <https://github.com/numpy/numpy/issues/4476>`__: Masked array view fails if structured dtype has datetime component
* `#5388 <https://github.com/numpy/numpy/issues/5388>`__: Make RandomState.set_state and RandomState.get_state threadsafe
* `#5390 <https://github.com/numpy/numpy/issues/5390>`__: make seed, randint and shuffle threadsafe
* `#5374 <https://github.com/numpy/numpy/issues/5374>`__: Fixed incorrect assert_array_almost_equal_nulp documentation
* `#5393 <https://github.com/numpy/numpy/issues/5393>`__: Add support for ATLAS > 3.9.33.
* `#5313 <https://github.com/numpy/numpy/issues/5313>`__: PyArray_AsCArray caused segfault for 3d arrays
* `#5492 <https://github.com/numpy/numpy/issues/5492>`__: handle out of memory in rfftf
* `#4181 <https://github.com/numpy/numpy/issues/4181>`__: fix a few bugs in the random.pareto docstring
* `#5359 <https://github.com/numpy/numpy/issues/5359>`__: minor changes to linspace docstring
* `#4723 <https://github.com/numpy/numpy/issues/4723>`__: fix a compile issues on AIX
NumPy 1.9.1 Release Notes
*************************
This is a bugfix only release in the 1.9.x series.
Issues fixed
============
* gh-5184: restore linear edge behaviour of gradient to as it was in < 1.9.
The second order behaviour is available via the `edge_order` keyword
* gh-4007: workaround Accelerate sgemv crash on OSX 10.9
* gh-5100: restore object dtype inference from iterable objects without `len()`
* gh-5163: avoid gcc-4.1.2 (red hat 5) miscompilation causing a crash
* gh-5138: fix nanmedian on arrays containing inf
* gh-5240: fix not returning out array from ufuncs with subok=False set
* gh-5203: copy inherited masks in MaskedArray.__array_finalize__
* gh-2317: genfromtxt did not handle filling_values=0 correctly
* gh-5067: restore api of npy_PyFile_DupClose in python2
* gh-5063: cannot convert invalid sequence index to tuple
* gh-5082: Segmentation fault with argmin() on unicode arrays
* gh-5095: don't propagate subtypes from np.where
* gh-5104: np.inner segfaults with SciPy's sparse matrices
* gh-5251: Issue with fromarrays not using correct format for unicode arrays
* gh-5136: Import dummy_threading if importing threading fails
* gh-5148: Make numpy import when run with Python flag '-OO'
* gh-5147: Einsum double contraction in particular order causes ValueError
* gh-479: Make f2py work with intent(in out)
* gh-5170: Make python2 .npy files readable in python3
* gh-5027: Use 'll' as the default length specifier for long long
* gh-4896: fix build error with MSVC 2013 caused by C99 complex support
* gh-4465: Make PyArray_PutTo respect writeable flag
* gh-5225: fix crash when using arange on datetime without dtype set
* gh-5231: fix build in c99 mode
NumPy 1.9.0 Release Notes
*************************
This release supports Python 2.6 - 2.7 and 3.2 - 3.4.
Highlights
==========
* Numerous performance improvements in various areas, most notably indexing and
operations on small arrays are significantly faster.
Indexing operations now also release the GIL.
* Addition of `nanmedian` and `nanpercentile` rounds out the nanfunction set.
Dropped Support
===============
* The oldnumeric and numarray modules have been removed.
* The doc/pyrex and doc/cython directories have been removed.
* The doc/numpybook directory has been removed.
* The numpy/testing/numpytest.py file has been removed together with
the importall function it contained.
Future Changes
==============
* The numpy/polynomial/polytemplate.py file will be removed in NumPy 1.10.0.
* Default casting for inplace operations will change to 'same_kind' in
Numpy 1.10.0. This will certainly break some code that is currently
ignoring the warning.
* Relaxed stride checking will be the default in 1.10.0
* String version checks will break because, e.g., '1.9' > '1.10' is True. A
NumpyVersion class has been added that can be used for such comparisons.
* The diagonal and diag functions will return writeable views in 1.10.0
* The `S` and/or `a` dtypes may be changed to represent Python strings
instead of bytes, in Python 3 these two types are very different.
Compatibility notes
===================
The diagonal and diag functions return readonly views.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In NumPy 1.8, the diagonal and diag functions returned readonly copies, in
NumPy 1.9 they return readonly views, and in 1.10 they will return writeable
views.
Special scalar float values don't cause upcast to double anymore
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In previous numpy versions operations involving floating point scalars
containing special values ``NaN``, ``Inf`` and ``-Inf`` caused the result
type to be at least ``float64``. As the special values can be represented
in the smallest available floating point type, the upcast is not performed
anymore.
For example the dtype of:
``np.array([1.], dtype=np.float32) * float('nan')``
now remains ``float32`` instead of being cast to ``float64``.
Operations involving non-special values have not been changed.
Percentile output changes
~~~~~~~~~~~~~~~~~~~~~~~~~
If given more than one percentile to compute numpy.percentile returns an
array instead of a list. A single percentile still returns a scalar. The
array is equivalent to converting the list returned in older versions
to an array via ``np.array``.
If the ``overwrite_input`` option is used the input is only partially
instead of fully sorted.
ndarray.tofile exception type
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
All ``tofile`` exceptions are now ``IOError``, some were previously
``ValueError``.
Invalid fill value exceptions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Two changes to numpy.ma.core._check_fill_value:
* When the fill value is a string and the array type is not one of
'OSUV', TypeError is raised instead of the default fill value being used.
* When the fill value overflows the array type, TypeError is raised instead
of OverflowError.
Polynomial Classes no longer derived from PolyBase
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
This may cause problems with folks who depended on the polynomial classes
being derived from PolyBase. They are now all derived from the abstract
base class ABCPolyBase. Strictly speaking, there should be a deprecation
involved, but no external code making use of the old baseclass could be
found.
Using numpy.random.binomial may change the RNG state vs. numpy < 1.9
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A bug in one of the algorithms to generate a binomial random variate has
been fixed. This change will likely alter the number of random draws
performed, and hence the sequence location will be different after a
call to distribution.c::rk_binomial_btpe. Any tests which rely on the RNG
being in a known state should be checked and/or updated as a result.
Random seed enforced to be a 32 bit unsigned integer
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``np.random.seed`` and ``np.random.RandomState`` now throw a ``ValueError``
if the seed cannot safely be converted to 32 bit unsigned integers.
Applications that now fail can be fixed by masking the higher 32 bit values to
zero: ``seed = seed & 0xFFFFFFFF``. This is what is done silently in older
versions so the random stream remains the same.
Argmin and argmax out argument
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The ``out`` argument to ``np.argmin`` and ``np.argmax`` and their
equivalent C-API functions is now checked to match the desired output shape
exactly. If the check fails a ``ValueError`` instead of ``TypeError`` is
raised.
Einsum
~~~~~~
Remove unnecessary broadcasting notation restrictions.
``np.einsum('ijk,j->ijk', A, B)`` can also be written as
``np.einsum('ij...,j->ij...', A, B)`` (ellipsis is no longer required on 'j')
Indexing
~~~~~~~~
The NumPy indexing has seen a complete rewrite in this version. This makes
most advanced integer indexing operations much faster and should have no
other implications. However some subtle changes and deprecations were
introduced in advanced indexing operations:
* Boolean indexing into scalar arrays will always return a new 1-d array.
This means that ``array(1)[array(True)]`` gives ``array([1])`` and
not the original array.
* Advanced indexing into one dimensional arrays used to have
(undocumented) special handling regarding repeating the value array in
assignments when the shape of the value array was too small or did not
match. Code using this will raise an error. For compatibility you can
use ``arr.flat[index] = values``, which uses the old code branch. (for
example ``a = np.ones(10); a[np.arange(10)] = [1, 2, 3]``)
* The iteration order over advanced indexes used to be always C-order.
In NumPy 1.9. the iteration order adapts to the inputs and is not
guaranteed (with the exception of a *single* advanced index which is
never reversed for compatibility reasons). This means that the result
is undefined if multiple values are assigned to the same element. An
example for this is ``arr[[0, 0], [1, 1]] = [1, 2]``, which may set
``arr[0, 1]`` to either 1 or 2.
* Equivalent to the iteration order, the memory layout of the advanced
indexing result is adapted for faster indexing and cannot be predicted.
* All indexing operations return a view or a copy. No indexing operation
will return the original array object. (For example ``arr[...]``)
* In the future Boolean array-likes (such as lists of python bools) will
always be treated as Boolean indexes and Boolean scalars (including
python ``True``) will be a legal *boolean* index. At this time, this is
already the case for scalar arrays to allow the general
``positive = a[a > 0]`` to work when ``a`` is zero dimensional.
* In NumPy 1.8 it was possible to use ``array(True)`` and
``array(False)`` equivalent to 1 and 0 if the result of the operation
was a scalar. This will raise an error in NumPy 1.9 and, as noted
above, treated as a boolean index in the future.
* All non-integer array-likes are deprecated, object arrays of custom
integer like objects may have to be cast explicitly.
* The error reporting for advanced indexing is more informative, however
the error type has changed in some cases. (Broadcasting errors of
indexing arrays are reported as ``IndexError``)
* Indexing with more then one ellipsis (``...``) is deprecated.
Non-integer reduction axis indexes are deprecated
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Non-integer axis indexes to reduction ufuncs like `add.reduce` or `sum` are
deprecated.
``promote_types`` and string dtype
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``promote_types`` function now returns a valid string length when given an
integer or float dtype as one argument and a string dtype as another
argument. Previously it always returned the input string dtype, even if it
wasn't long enough to store the max integer/float value converted to a
string.
``can_cast`` and string dtype
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``can_cast`` function now returns False in "safe" casting mode for
integer/float dtype and string dtype if the string dtype length is not long
enough to store the max integer/float value converted to a string.
Previously ``can_cast`` in "safe" mode returned True for integer/float
dtype and a string dtype of any length.
astype and string dtype
~~~~~~~~~~~~~~~~~~~~~~~
The ``astype`` method now returns an error if the string dtype to cast to
is not long enough in "safe" casting mode to hold the max value of
integer/float array that is being casted. Previously the casting was
allowed even if the result was truncated.
`npyio.recfromcsv` keyword arguments change
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
`npyio.recfromcsv` no longer accepts the undocumented `update` keyword,
which used to override the `dtype` keyword.
The ``doc/swig`` directory moved
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The ``doc/swig`` directory has been moved to ``tools/swig``.
The ``npy_3kcompat.h`` header changed
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The unused ``simple_capsule_dtor`` function has been removed from
``npy_3kcompat.h``. Note that this header is not meant to be used outside
of numpy; other projects should be using their own copy of this file when
needed.
Negative indices in C-Api ``sq_item`` and ``sq_ass_item`` sequence methods
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
When directly accessing the ``sq_item`` or ``sq_ass_item`` PyObject slots
for item getting, negative indices will not be supported anymore.
``PySequence_GetItem`` and ``PySequence_SetItem`` however fix negative
indices so that they can be used there.
NDIter
~~~~~~
When ``NpyIter_RemoveAxis`` is now called, the iterator range will be reset.
When a multi index is being tracked and an iterator is not buffered, it is
possible to use ``NpyIter_RemoveAxis``. In this case an iterator can shrink
in size. Because the total size of an iterator is limited, the iterator
may be too large before these calls. In this case its size will be set to ``-1``
and an error issued not at construction time but when removing the multi
index, setting the iterator range, or getting the next function.
This has no effect on currently working code, but highlights the necessity
of checking for an error return if these conditions can occur. In most
cases the arrays being iterated are as large as the iterator so that such
a problem cannot occur.
This change was already applied to the 1.8.1 release.
``zeros_like`` for string dtypes now returns empty strings
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To match the `zeros` function `zeros_like` now returns an array initialized
with empty strings instead of an array filled with `'0'`.
New Features
============
Percentile supports more interpolation options
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``np.percentile`` now has the interpolation keyword argument to specify in
which way points should be interpolated if the percentiles fall between two
values. See the documentation for the available options.
Generalized axis support for median and percentile
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``np.median`` and ``np.percentile`` now support generalized axis arguments like
ufunc reductions do since 1.7. One can now say axis=(index, index) to pick a
list of axes for the reduction. The ``keepdims`` keyword argument was also
added to allow convenient broadcasting to arrays of the original shape.
Dtype parameter added to ``np.linspace`` and ``np.logspace``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The returned data type from the ``linspace`` and ``logspace`` functions can
now be specified using the dtype parameter.
More general ``np.triu`` and ``np.tril`` broadcasting
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For arrays with ``ndim`` exceeding 2, these functions will now apply to the
final two axes instead of raising an exception.
``tobytes`` alias for ``tostring`` method
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``ndarray.tobytes`` and ``MaskedArray.tobytes`` have been added as aliases
for ``tostring`` which exports arrays as ``bytes``. This is more consistent
in Python 3 where ``str`` and ``bytes`` are not the same.
Build system
~~~~~~~~~~~~
Added experimental support for the ppc64le and OpenRISC architecture.
Compatibility to python ``numbers`` module
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
All numerical numpy types are now registered with the type hierarchy in
the python ``numbers`` module.
``increasing`` parameter added to ``np.vander``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The ordering of the columns of the Vandermonde matrix can be specified with
this new boolean argument.
``unique_counts`` parameter added to ``np.unique``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The number of times each unique item comes up in the input can now be
obtained as an optional return value.
Support for median and percentile in nanfunctions
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The ``np.nanmedian`` and ``np.nanpercentile`` functions behave like
the median and percentile functions except that NaNs are ignored.
NumpyVersion class added
~~~~~~~~~~~~~~~~~~~~~~~~
The class may be imported from numpy.lib and can be used for version
comparison when the numpy version goes to 1.10.devel. For example::
>>> from numpy.lib import NumpyVersion
>>> if NumpyVersion(np.__version__) < '1.10.0'):
... print('Wow, that is an old NumPy version!')
Allow saving arrays with large number of named columns
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The numpy storage format 1.0 only allowed the array header to have a total size
of 65535 bytes. This can be exceeded by structured arrays with a large number
of columns. A new format 2.0 has been added which extends the header size to 4
GiB. `np.save` will automatically save in 2.0 format if the data requires it,
else it will always use the more compatible 1.0 format.
Full broadcasting support for ``np.cross``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``np.cross`` now properly broadcasts its two input arrays, even if they
have different number of dimensions. In earlier versions this would result
in either an error being raised, or wrong results computed.
Improvements
============
Better numerical stability for sum in some cases
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Pairwise summation is now used in the sum method, but only along the fast
axis and for groups of the values <= 8192 in length. This should also
improve the accuracy of var and std in some common cases.
Percentile implemented in terms of ``np.partition``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
``np.percentile`` has been implemented in terms of ``np.partition`` which
only partially sorts the data via a selection algorithm. This improves the
time complexity from ``O(nlog(n))`` to ``O(n)``.
Performance improvement for ``np.array``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The performance of converting lists containing arrays to arrays using
``np.array`` has been improved. It is now equivalent in speed to
``np.vstack(list)``.
Performance improvement for ``np.searchsorted``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
For the built-in numeric types, ``np.searchsorted`` no longer relies on the
data type's ``compare`` function to perform the search, but is now
implemented by type specific functions. Depending on the size of the
inputs, this can result in performance improvements over 2x.
Optional reduced verbosity for np.distutils
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Set ``numpy.distutils.system_info.system_info.verbosity = 0`` and then
calls to ``numpy.distutils.system_info.get_info('blas_opt')`` will not
print anything on the output. This is mostly for other packages using
numpy.distutils.
Covariance check in ``np.random.multivariate_normal``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A ``RuntimeWarning`` warning is raised when the covariance matrix is not
positive-semidefinite.
Polynomial Classes no longer template based
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The polynomial classes have been refactored to use an abstract base class
rather than a template in order to implement a common interface. This makes
importing the polynomial package faster as the classes do not need to be
compiled on import.
More GIL releases
~~~~~~~~~~~~~~~~~
Several more functions now release the Global Interpreter Lock allowing more
efficient parallization using the ``threading`` module. Most notably the GIL is
now released for fancy indexing, ``np.where`` and the ``random`` module now
uses a per-state lock instead of the GIL.
MaskedArray support for more complicated base classes
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Built-in assumptions that the baseclass behaved like a plain array are being
removed. In particalur, ``repr`` and ``str`` should now work more reliably.
C-API
~~~~~
Deprecations
============
Non-integer scalars for sequence repetition
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Using non-integer numpy scalars to repeat python sequences is deprecated.
For example ``np.float_(2) * [1]`` will be an error in the future.
``select`` input deprecations
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The integer and empty input to ``select`` is deprecated. In the future only
boolean arrays will be valid conditions and an empty ``condlist`` will be
considered an input error instead of returning the default.
``rank`` function
~~~~~~~~~~~~~~~~~
The ``rank`` function has been deprecated to avoid confusion with
``numpy.linalg.matrix_rank``.
Object array equality comparisons
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In the future object array comparisons both `==` and `np.equal` will not
make use of identity checks anymore. For example:
>>> a = np.array([np.array([1, 2, 3]), 1])
>>> b = np.array([np.array([1, 2, 3]), 1])
>>> a == b
will consistently return False (and in the future an error) even if the array
in `a` and `b` was the same object.
The equality operator `==` will in the future raise errors like `np.equal`
if broadcasting or element comparisons, etc. fails.
Comparison with `arr == None` will in the future do an elementwise comparison
instead of just returning False. Code should be using `arr is None`.
All of these changes will give Deprecation- or FutureWarnings at this time.
C-API
~~~~~
The utility function npy_PyFile_Dup and npy_PyFile_DupClose are broken by the
internal buffering python 3 applies to its file objects.
To fix this two new functions npy_PyFile_Dup2 and npy_PyFile_DupClose2 are
declared in npy_3kcompat.h and the old functions are deprecated.
Due to the fragile nature of these functions it is recommended to instead use
the python API when possible.
This change was already applied to the 1.8.1 release.
NumPy 1.8.2 Release Notes
*************************
This is a bugfix only release in the 1.8.x series.
Issues fixed
============
* gh-4836: partition produces wrong results for multiple selections in equal ranges
* gh-4656: Make fftpack._raw_fft threadsafe
* gh-4628: incorrect argument order to _copyto in in np.nanmax, np.nanmin
* gh-4642: Hold GIL for converting dtypes types with fields
* gh-4733: fix np.linalg.svd(b, compute_uv=False)
* gh-4853: avoid unaligned simd load on reductions on i386
* gh-4722: Fix seg fault converting empty string to object
* gh-4613: Fix lack of NULL check in array_richcompare
* gh-4774: avoid unaligned access for strided byteswap
* gh-650: Prevent division by zero when creating arrays from some buffers
* gh-4602: ifort has issues with optimization flag O2, use O1
NumPy 1.8.1 Release Notes
*************************
This is a bugfix only release in the 1.8.x series.
Issues fixed
============
* gh-4276: Fix mean, var, std methods for object arrays
* gh-4262: remove insecure mktemp usage
* gh-2385: absolute(complex(inf)) raises invalid warning in python3
* gh-4024: Sequence assignment doesn't raise exception on shape mismatch
* gh-4027: Fix chunked reading of strings longer than BUFFERSIZE
* gh-4109: Fix object scalar return type of 0-d array indices
* gh-4018: fix missing check for memory allocation failure in ufuncs
* gh-4156: high order linalg.norm discards imaginary elements of complex arrays
* gh-4144: linalg: norm fails on longdouble, signed int
* gh-4094: fix NaT handling in _strided_to_strided_string_to_datetime
* gh-4051: fix uninitialized use in _strided_to_strided_string_to_datetime
* gh-4093: Loading compressed .npz file fails under Python 2.6.6
* gh-4138: segfault with non-native endian memoryview in python 3.4
* gh-4123: Fix missing NULL check in lexsort
* gh-4170: fix native-only long long check in memoryviews
* gh-4187: Fix large file support on 32 bit
* gh-4152: fromfile: ensure file handle positions are in sync in python3
* gh-4176: clang compatibility: Typos in conversion_utils
* gh-4223: Fetching a non-integer item caused array return
* gh-4197: fix minor memory leak in memoryview failure case
* gh-4206: fix build with single-threaded python
* gh-4220: add versionadded:: 1.8.0 to ufunc.at docstring
* gh-4267: improve handling of memory allocation failure
* gh-4267: fix use of capi without gil in ufunc.at
* gh-4261: Detect vendor versions of GNU Compilers
* gh-4253: IRR was returning nan instead of valid negative answer
* gh-4254: fix unnecessary byte order flag change for byte arrays
* gh-3263: numpy.random.shuffle clobbers mask of a MaskedArray
* gh-4270: np.random.shuffle not work with flexible dtypes
* gh-3173: Segmentation fault when 'size' argument to random.multinomial
* gh-2799: allow using unique with lists of complex
* gh-3504: fix linspace truncation for integer array scalar
* gh-4191: get_info('openblas') does not read libraries key
* gh-3348: Access violation in _descriptor_from_pep3118_format
* gh-3175: segmentation fault with numpy.array() from bytearray
* gh-4266: histogramdd - wrong result for entries very close to last boundary
* gh-4408: Fix stride_stricks.as_strided function for object arrays
* gh-4225: fix log1p and exmp1 return for np.inf on windows compiler builds
* gh-4359: Fix infinite recursion in str.format of flex arrays
* gh-4145: Incorrect shape of broadcast result with the exponent operator
* gh-4483: Fix commutativity of {dot,multiply,inner}(scalar, matrix_of_objs)
* gh-4466: Delay npyiter size check when size may change
* gh-4485: Buffered stride was erroneously marked fixed
* gh-4354: byte_bounds fails with datetime dtypes
* gh-4486: segfault/error converting from/to high-precision datetime64 objects
* gh-4428: einsum(None, None, None, None) causes segfault
* gh-4134: uninitialized use for for size 1 object reductions
Changes
=======
NDIter
~~~~~~
When ``NpyIter_RemoveAxis`` is now called, the iterator range will be reset.
When a multi index is being tracked and an iterator is not buffered, it is
possible to use ``NpyIter_RemoveAxis``. In this case an iterator can shrink
in size. Because the total size of an iterator is limited, the iterator
may be too large before these calls. In this case its size will be set to ``-1``
and an error issued not at construction time but when removing the multi
index, setting the iterator range, or getting the next function.
This has no effect on currently working code, but highlights the necessity
of checking for an error return if these conditions can occur. In most
cases the arrays being iterated are as large as the iterator so that such
a problem cannot occur.
Optional reduced verbosity for np.distutils
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Set ``numpy.distutils.system_info.system_info.verbosity = 0`` and then
calls to ``numpy.distutils.system_info.get_info('blas_opt')`` will not
print anything on the output. This is mostly for other packages using
numpy.distutils.
Deprecations
============
C-API
~~~~~
The utility function npy_PyFile_Dup and npy_PyFile_DupClose are broken by the
internal buffering python 3 applies to its file objects.
To fix this two new functions npy_PyFile_Dup2 and npy_PyFile_DupClose2 are
declared in npy_3kcompat.h and the old functions are deprecated.
Due to the fragile nature of these functions it is recommended to instead use
the python API when possible.
|
|
|
|
tech-pkg@ and pkgsrc-users@.
|
|
libreoffice4 still builds for me after this update.
|
|
Bump PKGREVISION.
|
|
Light cleanup of pkgsrc Makefile.
From website:
Version 3.20 released on November 15, 2014. It conducts some minor fixes.
|
|
Bump PKGREVISION.
|
|
|
|
|
|
---------------------
version: 0.14.1
date: Thu Apr 9 12:57:23 CEST 2015
changes:
- fix bug in affine expression normalization
- fix handling of conditional validity constraints
|
|
Release 2.5.6
=============
Bugs fixed
----------
- Detection of the R version during setup on Win8 (issues #255 and #258)
- Segmentation fault when converting :mod:`pandas` :class:`Series` with
elements of type object (issue #264)
- The default converter from Python (non-rpy2) objects to rinterface-level
objects was producing robjects-level objects whenever the input was of
type :class:`list` (discovered while fixing issue #264)
- Implemented suggested fix for issue with unlinking files on Windows
(issue #191)
- Testing rpy2 in the absence of ipython no longer stops with an error
(issue #266)
Release 2.5.5
=============
Bugs fixed
----------
- Crash (segfault) when querying an R object in an R environment triggers an
error (symbol exists, but associated values resolves to an error - issue #251)
- Change in the signature of `rcall` was not updated in the documentation
(issue #259)
- Minor update to the documentation (issue #257)
Release 2.5.4
=============
Bugs fixed
----------
- Filter PNG files on size, preventing empty files causing trouble to be
ipython notebook rendering of graphics later on (slight modification of
the pull request #39)
- Fix installation left unresolved with rpy2-2.5.3 (issue #248)
- Possible segfault with Python 3.4 (issue #249)
Release 2.5.3
=============
Changes
-------
- `setup.py` has `install_requires` in addition to `requires` in the hope to
fix the missing dependency with Python 2 (:mod:`singledispatch` is required
but not installed).
Bugs fixed
----------
- Extracting configuration information from should now work when R is emitting a warning (issue #247)
- On OS X the library discovery step can yield nothing (see issue #246). A tentative fix is to issue
a warning and keep moving.
Release 2.5.2
=============
Bugs fixed
----------
- String representation of :class:`robjects.R` (issue #238)
- Check during `build_ext` if unsupported version of R (pull request #32)
- HTMl display of columns of factors in a DataFrame (issue #236)
- HTML display of factors (issue #242)
Release 2.5.1
=============
Bugs fixed
----------
- Require singledispatch if Python 3.3 (issue #232)
- Fixed bug when R spits out a warning when asked configuration information (issue #233)
- Restored printing of compilation information when running `setup.py`
- Fixed installation issue on some systems (issue #234)
- Workaround obscure failure message from unittest if Python < 3.4 and
:mod:`singledispatch` cannot be imported (issue #235)
Release 2.5.0
=============
New features
------------
- Experimental alternative way to preserve R objects from garbage collection.
This can be activated with `rinterface.initr(r_preservehash=True)` (default
is `False`.
- :class:`GGPlot` object getting a method :meth:`save`
mirroring R's `ggplot2::ggsave()`.
- The conversion system is now using generics/single dispatch.
- New module :mod:`rpy2.ipython.html` with HTML display for rpy2 objects
- [Experimental] New function :func:`robjects.methods.rs4instance_factory`
to type RS4 objects with more specificity.
Changes
-------
- The script `setup.py` was rewritten for clarity and ease of maintenance.
Now it only uses `setuptools`.
Release 2.4.4
=============
Bugs fixed
----------
- Use `input` rather than `raw_input` in the default console callback
with Python 3 (fixes issue #222)
- Issues with conversions, pandas, and rmagic (fixes issue #218 and more)
Release 2.4.3
=============
Bugs fixed
----------
- `geom_raster` was missing from `rpy2.robjects.lib.ggplot2` (pull request #30)
- Fixed issue with SVG rendering in ipython notebook (issue #217)
- Regression with `rx2()` introduced with new conversion (issue #219)
- Fixed documentation (missing `import`) (issue #213)
Release 2.4.2
=============
Bugs fixed
----------
- Assigning an R `DataFrame` into an environment was failing if
the conversion for Pandas was activated. (Issue #207)
Release 2.4.1
=============
Bugs fixed
----------
- :meth:`rpy2.ipython` fixed spurious output to notebook cells.
Release 2.4.0
=============
Changes
-------
- Conversion system slightly changed, with the optional
conversions for :mod:`numpy` and :mod:`pandas` modified
accordingly. The changes should only matter if using
third-party conversion functions.
- The Python 3 version is now a first class citizen. `2to3`
is no longer used, and the code base is made directly
compatible with Python. This lowers significantly the
installation time with Python 3
(which matters when developping rpy2).
- The default options to initialize R (`rpy2.rinterface.initoptions') are no longer
`('rpy2', '--quiet', '--vanilla', '--no-save')` but now
`('rpy2', '--quiet', '--no-save')`.
- :class:`robjects.vectors.ListVector` can be instanciated from
any objects with a method `items()` with the expectation that the method
returns an iterable of (name, value) tuples, or even be an iterable
of (name, value) tuples.
New features
------------
- For instances of :class:`rpy2.robjects.Function`,
the `__doc__` is now a property fetching information
about the parameters in the R signature.
- Convenience function :func:`rpy2.robjects.packages.data`
to extract the datasets in an R pacakges
- :mod:`ipython`'s `rmagic` is now part of :mod:`rpy`. To use, `%load_ext
rpy2.ipython` from within IPython.
- new method :meth:`rpy2.rinterface.SexpEnvironment.keys`, returnings
the names in the environment as a tuple of Python strings.
- convenience class :class:`robjects.packages.InstalledPackages`, with a companion function
:func:`robjects.packages.isinstalled`.
- new class :class:`rinterface.SexpSymbol` to represent R symbols
Bugs fixed
----------
- :meth:`rpy2.rinterface.Sexp.do_slot` was crashing when
the parameter was an empty string (PR #155)
Release 2.3.10
==============
Bugs fixed
----------
- `setup.py build` was broken when new R compiled with OpenMP (Issue #183)
Release 2.3.9
=============
- Changes in pandas 0.13.0 broke the rpy2 conversion layer (Issue #173)
Release 2.3.8
=============
Bugs fixed
----------
- Crash with R-3.0.2. Changes in R-3.0.2's C API coupled to a strange behaviour
with R promises caused the problem. (PR #150)
Release 2.3.7
=============
Bugs fixed
----------
- ggplot2's "guides" were missing
- ggplot2's "theme_classic" was missing (PR #143)
- ggplot2's "element_rect" was missing (PR #144)
- :func:`rpy2.interactive.packages` was broken (PR #142)
Release 2.3.6
=============
Bugs fixed
----------
- Several reports of segfault on OS X (since rpy2-2.3.1 - PR #109)
- More fixes in converting `DataFrames` with dates from `pandas`
Relase 2.3.5
============
Bugs fixed
----------
- Missing mapping to ggplot2's `scale_shape_discrete` function
- Better handling of dates in Pandas
- Constructor for POSIXct improved (and fixed)
Changes
-------
- The attribute :attr:`rclass` is no longer read-only and can be set
(since R allows it)
- Importing the module :mod:`rpy2.interactive` no longer activates
event processing by default (triggering concurrency errors
when used with ipython).
New features
------------
- New module :mod:`rpy2.interactive.ipython` (so far plotting
automatically a ggplot2 figure in the iPython's console)
- It is now possible to set the :attr:`rclass`.
Relase 2.3.4
============
Bugs fixed
----------
- Spurious error when running unit tests with Python 3 and numpy
installed
- Missing mapping to ggplot2's `geom_dotplot` function
- Warnings are not longer printed (see Changes below)
Changes
-------
- Bumped target version of ggplot2 to 0.9.3.1
- Warnings are not longer printed. The C-level function in R became
hidden in R-3.0, and the cost of an R-level check/print is relatively
high if the R code called is very short. This might evolve into
printing warnings only if interactive mode in Python (if this can
be checked reliably).
Release 2.3.3
=============
Bugs fixed
----------
- Some of the data.frames converted from :mod:`pandas` were triggering
a :class:`TypeError` when calling :func:`repr`
- In :mod:`rpy2.robjects.lib.ggplot2`, a mapping to `coord_fixed` was
missing (PR #120)
- Using the parameter `lib_loc` in a call to
:func:`rpy2.robjects.packages.importr` was resulting in an error (PR #119)
- Creating a `layer` through the `rpy2.robjects.lib.ggplot2` interface did
not accept parameters (PR #122)
- Testing the Python version was crashing of a number of unsupported Python
versions (<= 2.6) (PR #117)
New features
------------
- New module pandas2ri to convert from mod:`pandas` `DataFrame` objects
- New classes :class:`rpy2.robjects.lib.grid.Unit` and
:class:`rpy2.robjects.lib.grid.Gpar` to model their counterparts in
R's `grid` package as they were previously missing from rpy2.
Release 2.3.2
=============
Bug fixed
---------
- Building on Win64 (pull request #6)
- Fetching data from an R package through `importr` was masking
any R object called `data` in that package. The data are now
under the attribute name `__rdata__`. This is not completely
safe either, although much less likely, a warning will
be issued if still masking anything.
Changes
-------
- More informative error message when failing to build because `R CMD config`
does not return what is expected
Release 2.3.1
=============
Bugs fixed
----------
- default console print callback with Python (issue #112 linked to it)
- deprecation warnings with ggplot2 (issue #111 and contributed patch)
|
|
|
|
check. Use a blunt object to help it.
|
|
just before install to make patch updates easier.
|
|
|
|
|
|
|
|
|
|
|
|
0.18.0
Release date: 2014-10-24 17:28 UTC
Release state: beta
Changelog:
* Fixed bug #19453: Incorrect spelling of Hungarian numbers [kouber]
* Fixed bug #19543: Better handling of decimal mark and thousands separators [kouber]
* Fixed bug #19855: Do not emit E_NOTICE when calling toWords() statically [cweiske]
* Fixed pl unicode [Jakub Roszkiewicz]
* Fixed ru_RU currency codes [Vital Leshchyk]
* Fixed tr_TR unicode [Shahriyar Imanov]
* Added en_IN - Indian English [Abhinav Nayak]
* Added lv - Latvian [Andrius]
* Added ro_RO - Romanian [Bogdan Stancescu]
* Added ua - Ukrainian [Vital Leshchyk]
* Unify locale loading code [cweiske]
* Use PEAR class-to-filename convention [cweiske]
This release changes class names and locations of locale files.
This is a backwards compatibility break.
|
|
### 1.0.3 / 10.03.2015
Author: Robert Eshleman <c.robert.eshleman@gmail.com>
Date: Mon Mar 9 09:47:59 2015 -0400
* Update `ruby-ole` to `1.2.11.8`
** `ruby-ole` <= `1.2.11.7` throws a duplicated key warning in Ruby 2.2.
** This commit updates `ruby-ole` to `1.2.11.8`, which fixes this warning.
** Related discussion: [aquasync/ruby-ole#15] - [aquasync/ruby-ole#15]: https://github.com/aquasync/ruby-ole/issues/15
### 1.0.2 / 05.03.2015
Author: cantin <cantin2010@gmail.com>
Date: Thu Mar 5 16:13:59 2015 +0800
* add Rational support
* add rational requirement
* use old rational syntax in test
|
|
|
|
|
|
* Switch to rb-gsl gem.
Fri Dec 19 2014
* Ruby/GSL 1.16.0.4
* Optimize and extract multiplication and division operations on Fixnum
and Float. Pull request #8 by Veselin Vasilev.
* Fixed division in GSL::Oper for GSL::Vector::Col. Issue #9.
Tue Oct 21 2014
* Ruby/GSL 1.16.0.3
* Fixed RDoc issues. Issue #6 by @bigtunacan.
* Fixed $LOAD_PATH problem. Pull request #7 by Takahiro SATOH.
Wed Jul 9 2014
* Ruby/GSL 1.16.0.2
* Fixed linking problem.
Thu Apr 24 2014
* Ruby/GSL 1.16.0.1
* Extensive cleanup.
* Fixed linking problems.
* Required Ruby version >= 1.8.7.
Fri Jan 24 2014
* Ruby/GSL 1.16.0
* GSL-1.16 support.
|
|
|
|
memory and CPU time for certain input. Provide a variable
(CLANG_NO_VALUE_PROPAGATION_PASS) for selectively disabling it in those
places known to trigger it.
|
|
|
|
--------------
2.07 2014-01-26 Hugo
- Go direct to XS for more speed
- add lcm/blcm, bsqrt, bmodinv
|
|
Changes in version 1.0.3:
- Fixed mpc_pow, see
http://lists.gforge.inria.fr/pipermail/mpc-discuss/2014-October/001315.html
- #18257: Switched to libtool 2.4.5.
|
|
Upstream changes:
1.06 2014-11-25 07:09:08-05:00 America/New_York
[Fixed]
- Make 0 and 0 compare equal with a relative epsilon
[Documented]
- Added SEE ALSO with Number::Tolerant and Test::Deep::NumberTolerant
1.05 2014-11-24 11:08:11-05:00 America/New_York
[Fixed]
- relative comparison of array reference elements now works as intended
- diagnostics of delta_not_ok and delta_not_within clarified under
relative comparison
1.04 2013-11-20 18:43:32 America/New_York
- Modernized distribution metadata and licensing
- Distribution now managed with Dist::Zilla
|
|
|