=== 0.7.7 / 22.01.2013
Author: DeTeam <timur.deteam@gmail.com>
Date: Tue Jan 22 19:11:52 2013 +0400
* Make tests pass
* Readme updated
* RuntimeError when file is empty
* Hoe in dev deps
* Finish with bundler
* Add a Gemfile
also see: https://github.com/zdavatz/spreadsheet/pull/24
Update LICENSE
Upstream changes:
genetics 1.3.8 - 2012-12-14
---------------------------
Bug fixes:
- Regenerate broken PDF files in inst/doc.
genetics 1.3.7 - 2012-09-14
---------------------------
Enhancements:
- Improve descripiton of last examples in manual page for HWE.test().
Other Changes:
- Correct warnings issued by recent versions of R CMD CHECK.
pkgsrc change: depend on math/py-pytables.
Changes since 0.9.1:
* Delimited file parsing engine rewritten to use a fraction of memory while
being 40%+ faster.
- Much-improved Unicode handling via the encoding option.
- Column filtering (usecols)
- Dtype specification (dtype argument)
- Ability to specify strings to be recognized as True/False
- Ability to yield NumPy record arrays (as_recarray)
- High performance delim_whitespace option
- Decimal format (e.g. European format) specification
- Easier CSV dialect options: escapechar, lineterminator, quotechar, etc.
- More robust handling of many exceptional kinds of files observed in the wild
* API changes
- Deprecated DataFrame BINOP TimeSeries special case behavior
- Altered resample default behavior
- Infinity and negative infinity are no longer treated as NA by isnull and
notnull.
- Methods with the inplace option now all return None instead of the calling
object.
- pandas.merge no longer sorts the group keys (sort=False) by default.
- The default column names for a file with no header have been changed.
- Values like 'Yes' and 'No' are not interpreted as boolean by default.
- The file parsers will not recognize non-string values arising from a
converter function as NA.
- Calling fillna on Series or DataFrame with no arguments is no longer valid
code.
- Series.apply will now operate on a returned value from the applied function.
- New API functions for working with pandas options.
* New features
- Wide DataFrame Printing.
- Updated PyTables Support.
* Enhancements
- added ability to hierarchical keys.
- added mixed-dtype support!
- performance improvments on table writing.
- support for arbitrarily indexed dimensions.
- SparseSeries now has a density property.
* Bug fixes
- added Term method of specifying where conditions.
- del store['df'] now call store.remove('df') for store deletion.
- deleting of consecutive rows is much faster than before.
- in_itemsize parameter can be specified in table creation to force a minimum
size for indexing columns.
- indexing support via create_table_index (requires PyTables >= 2.3)
- appending on a store would fail if the table was not first created via put.
- fixed issue with missing attributes after loading a pickled dataframe.
- minor change to select and remove: require a table ONLY if where is also
provided.
* Compatibility
- 0.10 of HDFStore is backwards compatible for reading tables created
in a prior version of pandas, however, query terms using the prior
(undocumented) methodology are unsupported.
* N Dimensional Panels (Experimental)
Approved by wiz@
Upstream changes:
CHANGES IN R VERSION 2.15.1:
NEW FEATURES:
o source() now uses withVisible() rather than
.Internal(eval.with.vis). This sometimes alters tracebacks
slightly.
o install.packages("pkg_version.tgz") on Mac OS X now has sanity
checks that this is actually a binary package (as people have
tried it with incorrectly named source packages).
o splineDesign() and spline.des() in package splines have a new
option sparse which can be used for efficient construction of a
sparse B-spline design matrix (_via_ Matrix).
o norm() now allows type = "2" (the 'spectral' or 2-norm) as well,
mainly for didactical completeness.
o pmin() and pmax()) now also work when one of the inputs is of
length zero and others are not, returning a zero-length vector,
analogously to, say, +.
o colorRamp() (and hence colorRampPalette()) now also works for the
boundary case of just one color when the ramp is flat.
o qqline() has new optional arguments distribution, probs and
qtype, following the example of lattice's panel.qqmathline().
o .C() gains some protection against the misuse of character vector
arguments. (An all too common error is to pass character(N),
which initializes the elements to "", and then attempt to edit
the strings in-place, sometimes forgetting to terminate them.)
o Calls to the new function globalVariables() in package utils
declare that functions and other objects in a package should be
treated as globally defined, so that CMD check will not note
them.
o print(packageDescription(*)) trims the Collate field by default.
o The included copy of zlib has been updated to version 1.2.7.
o A new option "show.error.locations" has been added. When set to
TRUE, error messages will contain the location of the most recent
call containing source reference information. (Other values are
supported as well; see ?options.)
o The NA warning messages from e.g. pchisq() now report the call to
the closure and not that of the .Internal.
o Added Polish translations by <c5><81>ukasz Daniel.
PERFORMANCE IMPROVEMENTS:
o In package parallel, makeForkCluster() and the multicore-based
functions use native byte-order for serialization (deferred from
2.15.0).
o lm.fit(), lm.wfit(), glm.fit() and lsfit() do less copying of
objects, mainly by using .Call() rather than .Fortran().
o .C() and .Fortran() do less copying: arguments which are raw,
logical, integer, real or complex vectors and are unnamed are not
copied before the call, and (named or not) are not copied after
the call. Lists are no longer copied (they are supposed to be
used read-only in the C code).
o tabulate() makes use of .C(DUP = FALSE) and hence does not copy
bin. (Suggested by Tim Hesterberg.) It also avoids making a
copy of a factor argument bin.
o Other functions (often or always) doing less copying include
cut(), dist(), the complex case of eigen(), hclust(), image(),
kmeans(), loess(), stl() and svd(LINPACK = TRUE).
o There is less copying when using primitive replacement functions
such as names(), attr() and attributes().
DEPRECATED AND DEFUNCT:
o The converters for use with .C() (see ?getCConverterDescriptions)
are deprecated: use the .Call() interface instead. There are no
known examples (they were never fully documented).
UTILITIES:
o For R CMD check, a few people have reported problems with
junctions on Windows (although they were tested on Windows 7, XP
and Server 2008 machines and it is unknown under what
circumstances the problems occur). Setting the environment
variable R_WIN_NO_JUNCTIONS to a non-empty value (e.g. in
~/.R/check.Renviron) will force copies to be used instead.
INSTALLATION:
o R CMD INSTALL with _R_CHECK_INSTALL_DEPENDS_ set to a true value
(as done by R CMD check --as-cran) now restricts the packages
available when lazy-loading as well as when test-loading (since
packages such as ETLUtils and agsemisc had top-level calls to
library() for undeclared packages).
This check is now also available on Windows.
C-LEVEL FACILITIES:
o C entry points mkChar and mkCharCE now check that the length of
the string they are passed does not exceed 2^31-1 bytes: they
used to overflow with unpredictable consequences.
o C entry points R_GetCurrentSrcref and R_GetSrcFilename have been
added to the API to allow debuggers access to the source
references on the stack.
WINDOWS-SPECIFIC CHANGES:
o Windows-specific changes will now be announced in this file
(NEWS). Changes up and including R 2.15.0 remain in the CHANGES
file.
o There are two new environment variables which control the
defaults for command-line options.
If R_WIN_INTERNET2 is set to a non-empty value, it is as if
--internet2 was used.
If R_MAX_MEM_SIZE is set, it gives the default memory limit if
--max-mem-size is not specified: invalid values being ignored.
BUG FIXES:
o lsfit() lost the names from the residuals.
o More cases in which merge() could create a data frame with
duplicate column names now give warnings. Cases where names
specified in by match multiple columns are errors.
o Nonsense uses such as seq(1:50, by = 5) (from package plotrix)
and seq.int(1:50, by = 5) are now errors.
o The residuals in the 5-number summary printed by summary() on an
"lm" object are now explicitly labelled as weighted residuals
when non-constant weights are present. (Wish of PR#14840.)
o tracemem() reported that all objects were copied by .C() or
.Fortran() whereas only some object types were ever copied.
It also reported and marked as copies _some_ transformations such
as rexp(n, x): it no longer does so.
o The plot() method for class "stepfun" only used the optional xval
argument to compute xlim and not the points at which to plot (as
documented). (PR#14864)
o Names containing characters which need to be escaped were not
deparsed properly. (PR#14846)
o Trying to update (recommended) packages in R_HOME/library without
write access is now dealt with more gracefully. Further, such
package updates may be skipped (with a warning), when a newer
installed version is already going to be used from .libPaths().
(PR#14866)
o hclust() is now fast again (as up to end of 2003), with a
different fix for the "median"/"centroid" problem. (PR#4195).
o get_all_vars() failed when the data came entirely from vectors in
the global environment. (PR#14847)
o R CMD check with _R_CHECK_NO_RECOMMENDED_ set to a true value (as
done by the --as-cran option) could issue false errors if there
was an indirect dependency on a recommended package.
o formatC() uses the C entry point str_signif which could write
beyond the length allocated for the output string.
o Missing default argument added to implicit S4 generic for
backsolve(). (PR#14883)
o Some bugs have been fixed in handling load actions that could
fail to export assigned items or generate spurious warnings in
CMD check on loading.
o For tiff(type = "windows"), the numbering of per-page files
except the last was off by one.
o On Windows, loading package stats (which is done for a default
session) would switch line endings on stdout and stderr from CRLF
to LF. This affected Rterm and R CMD BATCH.
o On Windows, the compatibility function x11() had not kept up with
changes to windows(), and issued warnings about bad parameters.
(PR#14880)
o On Windows, the Sys.glob() function did not handle UNC paths as
it was designed to try to do. (PR#14884)
o In package parallel, clusterApply() and similar failed to handle
a (pretty pointless) length-1 argument. (PR#14898)
o Quartz Cocoa display reacted asynchronously to dev.flush() which
means that the redraw could be performed after the plot has been
already modified by subsequent code. The redraw is now done
synchronously in dev.flush() to allow animations without sleep
cycles.
o Source locations reported in traceback() were incorrect when
byte-compiled code was on the stack.
o plogis(x, lower = FALSE, log.p = TRUE) no longer underflows early
for large x (e.g. 800).
o ?Arithmetic's "1 ^ y and y ^ 0 are 1, _always_" now also applies
for integer vectors y.
o X11-based pixmap devices like png(type = "Xlib") were trying to
set the cursor style, which triggered some warnings and hangs.
o Code executed by the built-in HTTP server no longer allows other
HTTP clients to re-enter R until the current worker evaluation
finishes, to prevent cascades.
o The plot() and Axis() methods for class "table" now respect
graphical parameters such as cex.axis. (Reported by Martin
Becker.)
o Under some circumstances package.skeleton() would give out
progress reports that could not be translated and so were
displayed by question marks. Now they are always in English.
(This was seen for CJK locales on Windows, but may have occurred
elsewhere.)
o The evaluator now keeps track of source references outside of
functions, e.g. when source() executes a script.
o The replacement method for window() now works correctly for
multiple time series of class "mts". (PR#14925)
o is.unsorted() gave incorrect results on non-atomic objects such
as data frames. (Reported by Matthew Dowle.)
o The value returned by tools::psnice() for invalid pid values was
not always NA as documented.
o Closing an X11() window while locator() was active could abort
the R process.
o getMethod(f, sig) produced an incorrect error message in some
cases when f was not a string).
o Using a string as a "call" in an error condition with
options(showErrorCalls=TRUE) could cause a segfault. (PR#14931)
o The string "infinity" allowed by C99 was not accepted as a
numerical string value by e.g. scan() and as.character().
(PR#14933)
o In legend(), setting some entries of lwd to NA was inconsistent
(depending on the graphics device) in whether it would suppress
those lines; now it consistently does so. (PR#14926)
o by() failed for a zero-row data frame. (Reported by Weiqiang
Qian)
o Yates correction in chisq.test() could be bigger than the terms
it corrected, previously leading to an infinite test statistic in
some corner cases which are now reported as NaN.
o xgettext() and related functions sometimes returned items that
were not strings for translation. (PR#14935)
o plot(<lm>, which=5) now correctly labels the factor level
combinations for the special case where all h[i,i] are the same.
(PR#14837)
CHANGES IN R VERSION 2.15.0:
SIGNIFICANT USER-VISIBLE CHANGES:
o The behaviour of unlink(recursive = TRUE) for a symbolic link to
a directory has changed: it now removes the link rather than the
directory contents (just as rm -r does).
On Windows it no longer follows reparse points (including
junctions and symbolic links).
NEW FEATURES:
o Environment variable RD2DVI_INPUTENC has been renamed to
RD2PDF_INPUTENC.
o .Deprecated() becomes a bit more flexible, getting an old
argument.
o Even data-only packages without R code need a namespace and so
may need to be installed under R 2.14.0 or later.
o assignInNamespace() has further restrictions on use apart from at
top-level, as its help page has warned. Expect it to be disabled
from programmatic use in the future.
o system() and system2() when capturing output report a non-zero
status in the new "status" attribute.
o kronecker() now has an S4 generic in package methods on which
packages can set methods. It will be invoked by X %x% Y if
either X or Y is an S4 object.
o pdf() accepts forms like file = "|lpr" in the same way as
postscript().
o pdf() accepts file = NULL. This means that the device does NOT
create a PDF file (but it can still be queried, e.g., for font
metric info).
o format() (and hence print()) on "bibentry" objects now uses
options("width") to set the output width.
o legend() gains a text.font argument. (Suggested by Tim Paine,
PR#14719.)
o nchar() and nzchar() no longer accept factors (as integer
vectors). (Wish of PR#6899.)
o summary() behaves slightly differently (or more precisely, its
print() method does). For numeric inputs, the number of NAs is
printed as an integer and not a real. For dates and datetimes,
the number of NAs is included in the printed output (the latter
being the wish of PR#14720).
The "data.frame" method is more consistent with the default
method: in particular it now applies zapsmall() to
numeric/complex summaries.
o The number of items retained with options(warn = 0) can be set by
options(nwarnings=).
o There is a new function assignInMyNamespace() which uses the
namespace of the function it is called from.
o attach() allows the default name for an attached file to be
overridden.
o bxp(), the work horse of boxplot(), now uses a more sensible
default xlim in the case where at is specified differently from
1:n, see the discussion on R-devel, <URL:
https://stat.ethz.ch/pipermail/r-devel/2011-November/062586.html>.
o New function paste0(), an efficient version of paste(*, sep=""),
to be used in many places for more concise (and slightly more
efficient) code.
o Function setClass() in package methods now returns, invisibly, a
generator function for the new class, slightly preferred to
calling new(), as explained on the setClass help page.
o The "dendrogram" method of str() now takes its default for
last.str from option str.dendrogram.last.
o New simple fitted() method for "kmeans" objects.
o The traceback() function can now be called with an integer
argument, to display a current stack trace. (Wish of PR#14770.)
o setGeneric() calls can be simplified when creating a new generic
function by supplying the default method as the def argument.
See ?setGeneric.
o serialize() has a new option xdr = FALSE which will use the
native byte-order for binary serializations. In scenarios where
only little-endian machines are involved (these days, close to
universal) and (un)serialization takes an appreciable amount of
time this may speed up noticeably transferring data between
systems.
o The internal (un)serialization code is faster for long vectors,
particularly with XDR on some platforms. (Based on a suggested
patch by Michael Spiegel.)
o For consistency, circles with zero radius are omitted by points()
and grid.circle(). Previously this was device-dependent, but
they were usually invisible.
o NROW(x) and NCOL(x) now work whenever dim(x) looks appropriate,
e.g., also for more generalized matrices.
o PCRE has been updated to version 8.30.
o The internal R_Srcref variable is now updated before the browser
stops on entering a function. (Suggestion of PR#14818.)
o There are 'bare-bones' functions .colSums(), .rowSums(),
.colMeans() and .rowMeans() for use in programming where ultimate
speed is required.
o The formerly internal function .package_dependencies() from
package tools for calculating (recursive) (reverse) dependencies
on package databases has been renamed to package_dependencies()
and is now exported.
o There is a new function optimHess() to compute the (approximate)
Hessian for an optim() solution if hessian = TRUE was forgotten.
o .filled.contour() is a 'bare-bones' function to add a
filled-contour rectangular plot to an already prepared plot
region.
o The stepping in debugging and single-step browsing modes has
changed slightly: now left braces at the start of the body are
stepped over for if statements as well as for for and while
statements. (Wish of PR#14814.)
o library() no longer warns about a conflict with a function from
package:base if the function has the same code as the base one
but with a different environment. (An example is Matrix::det().)
o When deparsing very large language objects, as.character() now
inserts newlines after each line of approximately 500 bytes,
rather than truncating to the first line.
o New function rWishart() generates Wishart-distributed random
matrices.
o Packages may now specify actions to be taken when the package is
loaded (setLoadActions()).
o options(max.print = Inf) and similar now give an error (instead
of warnings later).
o The "difftime" replacement method of units tries harder to
preserve other attributes of the argument. (Wish of PR#14839.)
o poly(raw = TRUE) no longer requires more unique points than the
degree. (Requested by John Fox.)
PACKAGE parallel:
o There is a new function mcmapply(), a parallel version of
mapply(), and a wrapper mcMap(), a parallel version of Map().
o A default cluster can be registered by the new function
setDefaultCluster(): this will be used by default in functions
such as parLapply().
o clusterMap() has a new argument .scheduling to allow the use of
load-balancing.
o There are new load-balancing functions parLapplyLB() and
parSapplyLB().
o makePSOCKCluster() has a new option useXDR = FALSE which can be
used to avoid byte-shuffling for serialization when all the nodes
are known to be little-endian (or all big-endian).
PACKAGE INSTALLATION:
o Non-ASCII vignettes without a declared encoding are no longer
accepted.
o C/C++ code in packages is now compiled with -NDEBUG to mitigate
against the C/C++ function assert being called in production use.
Developers can turn this off during package development with
PKG_CPPFLAGS = -UNDEBUG.
o R CMD INSTALL has a new option --dsym which on Mac OS X (Darwin)
dumps the symbols alongside the .so file: this is helpful when
debugging with valgrind (and especially when installing packages
into R.framework). [This can also be enabled by setting the
undocumented environment variable PKG_MAKE_DSYM, since R 2.12.0.]
o R CMD INSTALL will test loading under all installed
sub-architectures even for packages without compiled code, unless
the flag --no-multiarch is used. (Pure R packages can do things
which are architecture-dependent: in the case which prompted
this, looking for an icon in a Windows R executable.)
o There is a new option install.packages(type = "both") which tries
source packages if binary packages are not available, on those
platforms where the latter is the default.
o The meaning of install.packages(dependencies = TRUE) has changed:
it now means to install the essential dependencies of the named
packages plus the Suggests, but only the essential dependencies
of dependencies. To get the previous behaviour, specify
dependencies as a character vector.
o R CMD INSTALL --merge-multiarch is now supported on OS X and
other Unix-alikes using multiple sub-architectures.
o R CMD INSTALL --libs-only now by default does a test load on
Unix-alikes as well as on Windows: suppress with --no-test-load.
UTILITIES:
o R CMD check now gives a warning rather than a note if it finds
inefficiently compressed datasets. With bzip2 and xz compression
having been available since R 2.10.0, it only exceptionally makes
sense to not use them.
The environment variable _R_CHECK_COMPACT_DATA2_ is no longer
consulted: the check is always done if _R_CHECK_COMPACT_DATA_ has
a true value (its default).
o Where multiple sub-architectures are to be tested, R CMD check
now runs the examples and tests for all the sub-architectures
even if one fails.
o R CMD check can optionally report timings on various parts of the
check: this is controlled by environment variable
_R_CHECK_TIMINGS_ documented in 'Writing R Extensions'. Timings
(in the style of R CMD BATCH) are given at the foot of the output
files from running each test and the R code in each vignette.
o There are new options for more rigorous testing by R CMD check
selected by environment variables - see the 'Writing R
Extensions' manual.
o R CMD check now warns (rather than notes) on undeclared use of
other packages in examples and tests: increasingly people are
using the metadata in the DESCRIPTION file to compute information
about packages, for example reverse dependencies.
o The defaults for some of the options in R CMD check (described in
the 'R Internals' manual) have changed: checks for unsafe and
.Internal() calls and for partial matching of arguments in R
function calls are now done by default.
o R CMD check has more comprehensive facilities for checking
compiled code and so gives fewer reports on entry points linked
into .so/.dll files from libraries (including C++ and Fortran
runtimes).
Checking compiled code is now done on FreeBSD (as well as the
existing supported platforms of Linux, Mac OS X, Solaris and
Windows).
o R CMD build has more options for --compact-vignettes: see R CMD
build --help.
o R CMD build has a new option --md5 to add an MD5 file (as done by
CRAN): this is used by R CMD INSTALL to check the integrity of
the distribution.
If this option is not specified, any existing (and probably
stale) MD5 file is removed.
DEPRECATED AND DEFUNCT:
o R CMD Rd2dvi is now defunct: use R CMD Rd2pdf.
o Options such --max-nsize, --max-vsize and the function
mem.limits() are now defunct. (Options --min-nsize and
--min-vsize remain available.)
o Use of library.dynam() without specifying all the first three
arguments is now disallowed.
Use of an argument chname in library.dynam() including the
extension .so or .dll (which was never allowed according to the
help page) is defunct. This also applies to
library.dynam.unload() and to useDynLib directives in NAMESPACE
files.
o The internal functions .readRDS() and .saveRDS() are now defunct.
o The off-line help() types "postscript" and "ps" are defunct.
o Sys.putenv(), replaced and deprecated in R 2.5.0, is finally
removed.
o Some functions/objects which have been defunct for five or more
years have been removed completely. These include .Alias(),
La.chol(), La.chol2inv(), La.eigen(), Machine(), Platform(),
Version, codes(), delay(), format.char(), getenv(), httpclient(),
loadURL(), machine(), parse.dcf(), printNoClass(), provide(),
read.table.url(), restart(), scan.url(), symbol.C(), symbol.For()
and unix().
o The ENCODING argument to .C() is deprecated. It was intended to
smooth the transition to multi-byte character strings, but can be
replaced by the use of iconv() in the rare cases where it is
still needed.
INSTALLATION:
o Building with a positive value of --with-valgrind-instrumentation
now also instruments logical, complex and raw vectors.
C-LEVEL FACILITIES:
o Passing R objects other than atomic vectors, functions, lists and
environments to .C() is now deprecated and will give a warning.
Most cases (especially NULL) are actually coding errors. NULL
will be disallowed in future.
.C() now passes a pairlist as a SEXP to the compiled code. This
is as was documented, but pairlists were in reality handled
differently as a legacy from the early days of R.
o call_R and call_S are deprecated. They still exist in the
headers and as entry points, but are no longer documented and
should not be used for new code.
BUG FIXES:
o str(x, width) now obeys its width argument also for function
headers and other objects x where deparse() is applied.
o The convention for x %/% 0L for integer-mode x has been changed
from 0L to NA_integer_. (PR#14754)
o The exportMethods directive in a NAMESPACE file now exports S4
generics as necessary, as the extensions manual said it does.
The manual has also been updated to be a little more informative
on this point.
It is now required that there is an S4 generic (imported or
created in the package) when methods are to be exported.
o Reference methods cannot safely use non-exported entries in the
namespace. We now do not do so, and warn in the documentation.
o The namespace import code was warning when identical S4 generic
functions were imported more than once, but should not (reported
by Brian Ripley, then Martin Morgan).
o merge() is no longer allowed (in some ways) to create a data
frame with duplicate column names (which confused PR#14786).
o Fixes for rendering raster images on X11 and Windows devices when
the x-axis or y-axis scale is reversed.
o getAnywhere() found S3 methods as seen from the utils namespace
and not from the environment from which it was called.
o selectMethod(f, sig) would not return inherited group methods
when caching was off (as it is by default).
o dev.copy2pdf(out.type = "cairo") gave an error. (PR#14827)
o Virtual classes (e.g., class unions) had a NULL prototype even if
that was not a legal subclass. See ?setClassUnion.
o The C prototypes for zdotc and zdotu in R_ext/BLAS.h have been
changed to the more modern style rather than that used by f2c.
(Patch by Berwin Turlach.)
o isGeneric() produced an error for primitives that can not have
methods.
o .C() or .Fortran() had a lack-of-protection error if the
registration information resulted in an argument being coerced to
another type.
o boxplot(x=x, at=at) with non finite elements in x and non integer
at could not generate a warning but failed.
o heatmap(x, symm=TRUE, RowSideColors=*) no longer draws the colors
in reversed order.
o predict(<ar>) was incorrect in the multivariate case, for p >= 2.
o print(x, max=m) is now consistent when x is a "Date"; also the
"reached ... max.print .." messages are now consistently using
single brackets.
o Closed the <li> tag in pages generated by Rd2HTML(). (PR#14841.)
o Axis tick marks could go out of range when a log scale was used.
(PR#14833.)
o Signature objects in methods were not allocated as S4 objects
(caused a problem with trace() reported by Martin Morgan).
Upstream changes:
0.15 9 December 2012
- Lots of internal changes to Ei, li, Zeta, and R functions:
- Native Zeta and R have slightly more accurate results.
- For bignums, use Math::MPFR if possible. MUCH faster.
Also allows extended precision while still being fast.
- Better accuracy for standard bignums.
- All four functions do:
- XS if native input.
- MPFR to whatever accuracy is desired, if Math::MPFR installed.
- BigFloat versions if no MPFR and BigFloat input.
- standard version if no MPFR and not a BigFloat.
- Add tests for primorial, jordan_totient, and divisor_sum.
- Revamp of the random_prime internals. Also fixes some issues with
random n-bit and maurer primes.
- The random prime and primorial functions now will return a Math::BigInt
object if the result is greater than the native size. This includes
loading up the Math::BigInt library if necessary.
Notable changes in FriCAS 1.1.8 (compared to version 1.1.7):
- Improvements of pattern matching integrator, it can now integrate
in terms of Fresnel integrals and better handles integrals in terms
of Si and Ci.
- Better integration of symbolic derivatives.
- Better normalization of Liouvillian functions.
- New package for computing limits using Gruntz algorithm.
- Faster removal of roots from denominators.
- New domains for mutivariate Ore algebras and partial differential
operators.
- New package for noncommutative Groebner bases.
- New domain for univariate power series with arbitrary exponents.
- New special functions: Shi and Chi.
- New package for noncommutative Groebner bases.
- New domain for univariate power series with arbitrary exponents.
- New special functions: Shi and Chi.
- Several aggregates (in particular tables) allow more general
parameter types.
- New domain for hash tables using equality from underlying
domain.
Bug fixes, in particular:
- Fixed problem with gcd failing due to bad reduction.
- Fixed series of 'acot' and Puiseux series of several special functions.
- Fixed wrong factorization of differential operators.
- Fixed build problem on recent Mac OS X.
Notable changes in FriCAS 1.1.7 (compared to version 1.1.6):
- Improved integration in terms of special functions.
- Updated new graphics framework and graph theory package.
- Added routines for numerical evaluation of several special
functions.
- Added modular method for computing polynomial gcd over algebraic extensions.
- Derivatives of fresnelC and fresnelS are changed to agree
with established convention.
- When printing floats groups of digits are now separated by
underscores (previously were separated by spaces).
- Added C code for removing directories, this speeds up full
build and should avoid build problems on Mac OSX.
Bug fixes, in particular:
- Series expansion now handle poles of Gamma.
- Fixed derivatives of meijerG.
Upstream changes:
Release Notes for 0.7.2New Page Edit Page Page History
These are the release notes for SymPy 0.7.2. SymPy 0.7.2 was released on October 16, 2012.
Major Changes
Python 3 support
SymPy now supports Python 3. The officially supported versions are 3.2 and 3.3, but 3.1 should also work in a pinch. The Python 3-compatible tarballs will be provided separately, but it is also possible to download Python 2 code and convert it manually, via the bin/use2to3 utility. See the README for more
PyPy support
All SymPy tests pass in recent nightlies of PyPy, and so it should have full support as of the next version after 1.9.
Combinatorics
A new module called Combinatorics was added which is the result of a successful GSoC project. It attempts to replicate the functionality of Combinatorica and currently has full featured support for Permutations, Subsets, Gray codes and Prufer codes.
In another GSoC project, facilities from computational group theory were added to the combinatorics module, mainly following the book "Handbook of computational group theory". Currently only permutation groups are supported. The main functionalities are: basic properties (orbits, stabilizers, random elements...), the Schreier-Sims algorithm (three implementations, in increasing speed: with Jerrum's filter, incremental, and randomized (Monte Carlo)), backtrack searching for subgroups with certain properties.
Definite Integration
A new module called meijerint was added, which is also the result of a successful GSoC project. It implements a heuristic algorithm for (mainly) definite integration, similar to the one used in Mathematica. The code is automatically called by the standard integrate() function. This new algorithm allows computation of important integral transforms in many interesting cases, so helper functions for Laplace, Fourier and Mellin transforms were added as well.
Random Variables
A new module called stats was added. This introduces a RandomSymbol type which can be used to model uncertainty in expressions.
Matrix Expressions
A new matrix submodule named expressions was added. This introduces a MatrixSymbol type which can be used to describe a matrix without explicitly stating its entries. A new family of expression types were also added: Transpose, Inverse, Trace, and BlockMatrix. ImmutableMatrix was added so that explicitly defined matrices could interact with other SymPy expressions.
Sets
A number of new sets were added including atomic sets like FiniteSet, Reals, Naturals, Integers, UniversalSet as well as compound sets like ProductSet and TransformationSet. Using these building blocks it is possible to build up a great variety of interesting sets.
Classical Mechanics
A physics submodule named machanics was added which assists in formation of equations of motion for constrained multi-body systems. It is the result of 3 GSoC projects. Some nontrivial systems can be solved, and examples are provided.
Quantum Mechanics
Density operator module has been added. The operator can be initialized with generic Kets or Qubits. The Density operator can also work with TensorProducts as arguments. Global methods are also added that compute entropy and fidelity of states. Trace and partial-trace operations can also be performed on these density operators.
To enable partial trace operations a Tr module has been added to the core library. While the functionality should remain same, this module is likely to be relocated to an alternate folder in the future. One can currently also use sympy.core.Tr to work on general trace operations, but this module is what is needed to work on trace and partial-trace operations on any sympy.physics.quantum objects.
The Density operators, Tr and Partial trace functionality was implemented as part of student participation in GSoC 2012
Expanded angular momentum to include coupled-basis states and product-basis states. Operators can also be treated as acting on the coupled basis (default behavior) or on one component of the tensor product states. The methods for coupling and uncoupling these states can work on an arbitrary number of states. Representing, rewriting and applying states and operators between bases has been improved.
Commutative Algebra
A new module agca was started which seeks to support computations in commutative algebra (and eventually algebraic geometry) in the style of Macaulay2 and Singular. Currently there is support for computing Groebner bases of modules over a (generalized) polynomial ring over a field. Based on this, there are algorithms for various standard problems in commutative algebra, e.g., computing intersections of submodules, equality tests in quotient rings, etc....
Plotting Module
A new plotting module has been added which uses Matplotlib as its back-end. The plotting module has functions to plot the following:
2D line plots
2D parametric plots.
2D implicit and region plots.
3D surface plots.
3D parametric surface plots.
3D parametric line plots.
Differential Geometry
Thanks to a GSoC project the beginning of a new module covering the theory of differential geometry was started. It can be imported with sympy.diffgeom. It is based on "Functional Differential Geometry" by Sussman and Wisdom. Currently implemented are scalar, vector and form fields over manifolds as well as covariant and other derivatives.
Upstream changes:
0.14 29 November 2012
- Compilation and test issues:
Fix compilation on NetBSD
Try to fix compilation on Win32 + MSVC
Speed up some testing, helps a lot with Cygwin on slow machines
Speed up a lot of slow PP areas, especially used by test suite
- XS AKS extended from half-word to full-word.
- Add functions:
jordan_totient generalization of Euler Totient
divisor_sum run coderef for every divisor
- Allow environment variables MPU_NO_XS and MPU_NO_GMP to turn off XS and
GMP support respectively if they are defined and equal to 1.
- Lehmer prime count for Pure Perl code, including use in nth_prime.
prime count 10^9 using sieve:
71.9s PP sieve
0.47s XS sieve
prime count 10^9 using Lehmer:
0.70s PP lehmer
0.03s XS lehmer
- Moved bignum Zeta and R to separate file, only loaded when needed.
Helpful to get the big rarely-used tables out of the main loading.
- Quote arguments to Math::Big{Int,Float} in a few places it wasn't.
Math::Big* coerces the input to a signed value if it isn't a string,
which causes us all sorts of grief.
0.13 19 November 2012
- Fix an issue with prime count, and make prime count available as a
standalone program using primesieve.
0.12 17 November 2012
- Add bin/primes.pl and bin/factor.pl
- Add functions:
primorial product of primes <= n
pn_primorial product of first n primes
prime_set_config set config options
RiemannZeta export and make accurate for small reals
is_provable_prime prove primes after BPSW
is_aks_prime prove prime via AKS
- Add 'assume_rh' configuration option (default: false) which can be set
to allow functions to assume the Riemann Hypothesis.
- Use the Schoenfeld bound for Pi(x) (x large) if assume_rh is true.
- valgrind testing
- Use long doubles for math functions.
- Some fixes and speedups for ranged primes().
- In the PP code, use 2 MR bases for more numbers when possible.
- Fixup of racing SQUFOF, and switch to use it in factor().
- Complete rewrite of XS p-1 factor routine, includes second stage.
- bug fix for prime_count on edge of cache.
- prime_count will use Lehmer prime counting algorithm for largish
sizes (above 4 million). This is MUCH faster than sieving.
- nth_prime now uses the fast Lehmer prime count below the lower limit,
then sieves up from there. This makes a big speed difference for inputs
over 10^6 or so -- over 100x faster for 10^9 and up.
Upstream changes:
Changes in Version 1.7-9
o Added ggplot2 interface through autplot() and fortify() methods. Also
support function facet_free().
Changes in Version 1.7-8
o Added rollsum.
o Bugfix in src/lag.c for the case of k > NROW.
* Fix deadlock bug in MPI transforms (thanks to Michael Pippig for the
bug report and patch, and to Graham Dennis for the bug report).
* Use 128-bit ARM NEON instructions instead of 64-bits. This change
appears to speed up even ARM processors with a 64-bit NEON pipe.
* Speed improvements for single-precision AVX.
* Speed up planner on machines without "official" cycle counters, such as ARM.
pandas is an open source, BSD-licensed library providing
high-performance, easy-to-use data structures and data analysis tools
for the Python programming language.
Upstream changes:
Version 2.01 - 24 October 2012 (bug fix release)
* Fixed error in electronmass
* New definition for au
* Fixed DESTDIR support for installation
* Changed configure script for success with Solaris
* Small changes to manual
* Fix error reporting not working for certain types of error
* Add shadow around display
* Remove reference to removed source file
* Replace lex/bison parser with hand-written parser
* Use g_warning not g_error when unable to parse currency file
* Set window icon correctly
* Port to GtkApplication
* Replace menubar with a GMenu
* Only show thousands separators in decimal mode
* Translation updates
(unimpressed by https://bugzilla.gnome.org/show_bug.cgi?id=670098)
Changes in 5.1.23
Bug fixes
* [ES] removed *86 specific optimizations (rep. #2154)
* [ES] renamed RMS per cent error -> relative error (rep. #2192)
* [ES] a workaround for a bug in recent Xorg not releasing grab of popup menus
* [ES] accept -graphtype chart instead of bar. List possible values in the
help output
* [TK] fix building against png-1.5
* [SM] a grace_np fix
* [ES] IsoLatin5.enc was not included in the distribution