NEWS
spam 3.0
SIGNIFICANT USER-VISIBLE CHANGES
-
eps
, the tolerance parameter determining which elements are set to zero has been increased.
New default is spam.eps=100*.Machine$double.eps
-
Operations from S4 Group Generic Functions Logic
and Arith
now all return a
regular matrix if one of the objects is a full spam
object.
spam 2.11.0
SIGNIFICANT USER-VISIBLE CHANGES
rbind()
now works properly with spam64
for two spam matrices.
INTERNAL CHANGES
spam 2.10.0
SIGNIFICANT USER-VISIBLE CHANGES
nearest.dist()
has now a super fast Rcpp implementation by Annina Cincera.
BUG FIXES
- One particular operation from S4 Group Generic Functions
Arith
yielded wrong
results if the sparse matrix was full, see below. (Thanks to Ethan Heinzen.)
INTERNAL CHANGES
-
Changes in CITATION
according to new format.
-
Eliminated kind
constructs in the Fortran code (addressing _R_CHECK_FORTRAN_KIND_DETAILS_
)
-
Added ...
argument to [t]crossprod.spam()
as by generic.
spam 2.9.2
BUG FIXES
- Certain operations from S4 Group Generic Functions
Logic
and Arith
yielded wrong
results if the sparse matrix was full. (Thanks to Ethan Heinzen.)
spam 2.9.1
BUG FIXES
- Use of
## IGNORE_RDIFF_BEGIN
and eps=1e-15
in the help files to assure coherence
among different systems.
spam 2.9.0
SIGNIFICANT USER-VISIBLE CHANGES
- New functions
rmvt.spam()
and rmvt()
sampling from a multivariate t-distribution.
Approach is similar to mvtnorm::rmvt()
.
INTERNAL CHANGES
- Cleaning of help inconsistencies.
BUG FIXES
- A zero sparse matrix caused severe errors within low level code of
spam.eigen
.
spam 2.8-3
Prelease for version 2.9, only available on https://git.math.uzh.ch/reinhard.furrer/spam.
spam 2.8-2
SIGNIFICANT USER-VISIBLE CHANGES
-
New function rgrf()
to sample a Gaussian random field (minimalistic replacement of
geoR::grf()
.
-
New implementation of the Matern covariance function for half-integer smoothness:
cov.mat12()
(wrapps to cov.exp()
) cov.mat32()
and cov.mat52()
for nu=1/2, 3/2, and
5/2, respectively. The function are factor 10 faster than cov.mat()
with corresponding
smoothness.
-
New function cov.finnmat()
using the parametrization sqrt(8*smoothness)*h/range for
as argument for the Bessel function.
-
All *likelihood*()
and mle*()
functions have now an argument cov.args=
which will
be passed to the covariance function. This creates a larger flexibility to fine-tune
covariance functions.
-
New function neg2likelihood.nomean()
, similar to neg2likelihood()
.
spam 2.8-1
BUG FIXES
- All covariance functions now call
cov.nug()
, when range is smaller than eps
.
spam 2.8-0 (2022-01-06)
SIGNIFICANT USER-VISIBLE CHANGES
-
Minor improvements in the help files. (2.8-1)
-
The function chol.spam()
has a much better verbose offering.
-
The function determinant.spam()
does not take any arguments for the Cholesky
factorization, if needed, pass via chol()
, i.e., det(chol(., args=))^2
.
-
New function rmvnorm.conditional()
to sample from a multivariate conditional
normal random variable.
-
The functions rmvnorm()
and rmvnorm.spam()
have now arguments mean
and
sigma
(equivalent to mu
and Sigma
), to match mvtnorm::rmvnorm()
.
-
Demo article-jss
has been renamed jss10-figures-table
.
Deprecated demos article-jss-example1
, article-jss-example2
and
jss10-example2
have been eliminated.
INTERNAL CHANGES
determinant.spam()
and chol.spam()
now use the common routine .spam.chol.basis()
.
- Added 64 bit support for back solve routines. Not fully tested.
- Switched from URL to DOI for JJS references.
- Some additional unit tests.
- Demo files have been deprived from the unnecessary footer.
BUG FIXES
- Memory allocation for
nnzcolindicies
was corrected (as in versions <=2.6).
The change in 2.7 was working well for huge matrices.
This addresses bug reported by Curtis Storlie, Martin Boer and Paul Eilers.
- Help of
determinant.spam()
now reflects what is calculated.
determinant.spam()
should now work with 64-bit as well.
- In case of insufficient memory allocation
chol.spam()
now has appropriate 64-bit
support for the subsequent iterations.
- Addressing heap-buffer-overflow and allocating larger arrays in
eigen_approx
.
Debian package 2.7.0-2 contains the patch. Thanks to Sébastien Villemot.
- \code{
all.equal.spam(, scale=s)} now works for
length(s)>1, see PR#18272 for
base::all.equal.numeric()`, thanks to Michael Chirico.
spam 2.7
SIGNIFICANT USER-VISIBLE CHANGES
- spam package
citeEntry
.
- updated examples and description of
covmat()
and nearest.dist()
.
- new functions
rmvnorm()
, cor.sph()
.
- better memory allocation for Cholesky factorization.
INTERNAL CHANGES
covmat()
with elementary if()
clauses instead of ifelse()
, for stable memory usage.
nearest.dist()
unleashed for spam64.
- reorganized functions in R source files. Cleaned unnecessary comments.
BUG FIXES
spam 2.6-0 (2020-12-14)
SIGNIFICANT USER-VISIBLE CHANGES
print.spam()
is able to print non-zero entries of a spam matrix.
- new fast Fortran routines used in new
gmult()
to multiply specific spam submatrices with different factors.
INTERNAL CHANGES
- renaming man files such that pkgdown is linking correctly.
spam 2.5-1 (2019-12-12)
BUG FIXES
- fixing fortran linking warning.
spam 2.5-0 (2019-12-06)
SIGNIFICANT USER-VISIBLE CHANGES
- improved examples for
spam_random()
and eigen.spam()
.
- Fortran code used by
eigen.spam()
for non-symmetric matrices is now stable.
INTERNAL CHANGES
- fixing real comparison warnings in Fortran.
- removing remaining and unused print/count/timing variables in Fortran.
- implement dimension upper bound for
eigen.spam()
due to BLAS/LAPACK routines, which are used in Arnoldi iteration (ARPACK).
BUG FIXES
- adjusting spam.Rmd vignette to pandoc2.8.
- correct class checking for matrices.
- cleaning and consolidation of init.c with spam64 (LTO's).
spam 2.4-0 (2019-11-02)
INTERNAL CHANGES
- cleaning GCC-10 Fortran warnings.
spam 2.3-0 (2019-09-14)
NEW FEATURES
- New function
spam_random()
to create a random spam matrix.
SIGNIFICANT USER-VISIBLE CHANGES
- Deprecated functions
spam.options()
, spam.getOption()
are removed.
- Deprecated function
validspamobject()
is now defunct.
todo()
and spam.history()
are removed.
summary.spam()
prints whether it is a 32 or 64-bit spam object.
INTERNAL CHANGES
- Fortran modification to address LTO issues.
- Not exported deprecated function
subset.rows.spam()
is now defunct.
BUG FIXES
- Dataset
UScounties.ndorder
contained no-zeros on the diagonal. Now entire diagonal is zero.
spam 2.2-2 (2019-03-08)
BUG FIXES
- in testthat/test-constructors.R, which uses
base::sample()
(http://developer.r-project.org/blosxom.cgi/R-devel/2019/02/26#n2019-02-26).
spam 2.2-1 (2018-12-20)
SIGNIFICANT USER-VISIBLE CHANGES
- New vignette including illustrations and examples
- Improved documentation for covariance functions like
cov.exp()
.
BUG FIXES
det(spam(1))
bug fix & default of diag.spam(x)
in spam_diag()
removed.
INTERNAL CHANGES
- Spam fit for pkgdown website.
- Replacing some internal functions by their primitive equivalent.
spam 2.2-0 (2018-06-19)
SIGNIFICANT USER-VISIBLE CHANGES
- Implementation of 'eigen.spam()' and 'eigen_approx()' to calculate eigenvalues and eigenvectors for sparse matrices.
spam 2.1-4 (2018-04-12)
SIGNIFICANT USER-VISIBLE CHANGES
- 'germany.plot' has new argument 'cex.main'.
BUG FIXES
- 'NAOK=TRUE' did not properly dispatch in all matrix multiplications.
- '.newSpam()' was not always properly called, causing possible errors when creating empty 'spam' objects.
INTERNAL CHANGES
- Code cleaning and coherence improvements.
spam 2.1-2 (2017-12-22)
SIGNIFICANT USER-VISIBLE CHANGES
- In case 64bits are required, issues an error to load package 'spam64' first.
- Minor fixes in help files and other documentation.
INTERNAL CHANGES
- Improved registering of compiled functions.
- Compatibility with new versions of package 'testthat'.
spam 2.1-1 (2017-07-03)
SIGNIFICANT USER-VISIBLE CHANGES
- With the addon of the package spam64, we have truly 64 bits available!
- Dependency on dotCall64.
- Different option handling, we use now the classical R setting.
For the moment, the old functionality throws a message but in upcoming versions we use
.Deprecated
.
'spam.options' -> 'options', 'spam.getOption' -> 'getOption'
- 'validate_spam' superseeds 'validspamobject'.
- Added the list of Fortran contributors.
INTERNAL CHANGES
- Many... many. More still to come.
- Unit testing with testthat.
- Change of archaic trig functions to standard.
Minor edits to great circle dist.
spam 1.4-0 (2016-08-30)
INTERNAL CHANGES
- Fortran modification to address more pedantic compilations.
spam 1.3-0 (2015-10-29)
BUG FIXES
- Adding nonsparse to sparse matrices did not always dispatch properly and caused some errors.
Thanks to Johan Lindström for pointing out.
SIGNIFICANT USER-VISIBLE CHANGES
- Help improvements
- Added additional method dispatching for 'all.equal'.
spam 1.2-1 (2015-09-30)
SIGNIFICANT USER-VISIBLE CHANGES
-
Renaming of demos from JSS10 paper.
-
Continuing to implement 'spam_xxx' function names: Like 'spam_rdist' there is now 'spam_diag'.
-
'subset.rows.spam' deprecated.
There is an internal function 'subset_rows.spam'.
INTERNAL CHANGES
- Ample minor modifications in 'DESCRIPTION' and 'NAMESPACE' for CRAN check conformity.
- Elimination of a few unnecessary functions (not exported).
- Minor modifications in tests.
spam 1.1-0
SIGNIFICANT USER-VISIBLE CHANGES
- Upload of vignette linked to JSS15 paper. Related demos and tests.
- "DUP=FALSE" is deprecated and will be disabled in future versions of R.
All "DUP" arguments have been eliminated.
You have to expect a slightly slower version of spam.
spam 1.0-1 (2014-09-09)
- This version is up to 'DESCRIPTION' and its implied changes identical to 0.90-1. With the upcoming JSS article "Pitfalls in the implementation of Bayesian hierarchical modeling of areal count data.
An illustration using BYM and Leroux models.
" a "major" version jump is adequate.
- Referencing to spam data through spam::...
- Implemented
1.1.3.1 Suggested packages
approach.
spam 0.70
SIGNIFICANT USER-VISIBLE CHANGES
- Introduction of many as('spam','...') functions.
- Coercion function
as.vector
for spam objects.
- Wrapper functions
spam_rdist
and 'spam_rdist.earthfor smooth use in
fields`.
- The use of
update(A, B)
without assignment has been eliminated.
This is one way to address the change in memory handling changes from R 3.0.2 to R 3.1.0.
There is a slight overhead in memory. If this causes problems, let me know.
- Adjustment of the license.
NEW FEATURES
- Arguments
diag
and eps
in nearest.dist
cause now an error.
- Further augmented help pages.
BUG FIXES
- The demo now points to the new JSS article.
INTERNAL CHANGES
- Set 'structurebased=TRUE' for the demos.
- Link to upcoming JSS article in one of the demos.
- 'update.spam.chol.NgPeyton' preserves the structure (pointed out by Chris Paciorek), see above.
- Using similar License approach as SparseM.
New files
README
, inst/0LICENSE
.
- File renaming (OChangeLog -> 0ChangeLog)
- Adjusted error messages for precmat.RW2
spam 0.60-0
SIGNIFICANT USER-VISIBLE CHANGES
- Using the flag 'structurebased', the behavior of spam is now more consistent.
- "Arith", "Compare", "Logic" (getGroupMembers("Ops")) have now a consistent behavior.
NEW FEATURES
- Few new S3 functions for simplicity: 'var.spam', 'eigen.spam', ...
- New constructor functions 'colindices<-' etc.
Maybe additional tests may be required.
- Operators from 'Arith' obey now the structure based calculation.
BUG FIXES
- 'inefficiencywarning' passes message correctly.
INTERNAL CHANGES
- many more spam/tests/*.
- Consistent use of 'spam' and 'vector' siglist for 'Ops'.
- Minor cleaning of Fortran code.
- Renaming/restructuring/cleaning of files...
- Fortran arguments are copied when updating the cholesky structure.
spam 0.50-0
SIGNIFICANT USER-VISIBLE CHANGES
- Using the flag 'structurebased=FALSE', the behavior of spam is now much, much closer to regular matrix calculations.
This is illustrated when calculating gamma of a sparse matrix.
- Along the same lines, the flag 'NAOK=TRUE' allows the use of the "not finite numbers" (NA, NaN, Inf).
We have tested many, many functions but full fledged use is not yet guaranteed.
- Currently, we can still guarantee backwards compatibility...
NEW FEATURES
- New functions 'crossprod' and 'tcrossprod' as well as according method definitions.
- New constructor functions 'rowpointers<-' etc.
- Better option handling. The option 'safemode' is now 'safemodevalidity'. Additionally, new option 'NAOK'.
- Help pages have been improved.
- Operators from 'Summary' and 'Math' obey now the structure based calculation.
('Math2' inherently does).
BUG FIXES
- rmvnorm.[].const now work properly for any number of constraints and n.
- Assignment handles properly recycling.
- todo() now works properly.
INTERNAL CHANGES
- eliminated {d,i}check by equivalent coercion.
- Consistent use of NAOK in Fortran calls.
- Minor cleaning of Fortran code.
- Renaming/restructuring of files...
spam 0.42-0
NEW FEATURES
- More consistent handling of subsetting.
Warning is issued if subsetting with NA
BUG FIXES
- Fixed several issues when rowsubsetting...
INTERNAL CHANGES
- Additional tests for positive definiteness in 'chol'.
spam 0.41-0 (2014-02-26)
NEW FEATURES
- Functions grid_trace2() received more functionality.
BUG FIXES
- Eliminated bug in cov.mat().
Pointed out by Joshua French.
INTERNAL CHANGES
- Updated DESCRIPTION: added Florian Gerber [ctb].
- Minor code and help cleanup. Additional testing files.
File header edits.
- Addressed Rdevel CMD check --as-cran Notes, especially workaround for DUP=FALSE.
spam 0.40-0 (2013-09-12)
BUG FIXES
- A severe bug in subsetting a spam object with a nx2 matrix crept in spam in version 0.29-3.
Thanks to Andrew Hong and Beat Briner for pointing out.
- To simplify communication, we have switched increased the tenth version number.
- All other changes are of cosmetic nature.
spam 0.30
SIGNIFICANT USER-VISIBLE CHANGES
- Added several plots to visualize several MCMC chains ('grid_trace2', 'grid_zoom', ...).
NEW FEATURES
- New function 'germany.plot' to draw the landkreise.
('map.landkreis' is now obsolete).
- Switched from 'tim.colors' to 'colorRampPalette' in 'germany.plot'.
- Metadata in 'germany.info', polygon definitions in 'germany.poly' ('germany' kept for backwards compatibility).
INTERNAL CHANGES
- Switched to mercurial for maintaining the package.
- Updated ChangeLog file (hg log).
- Increased dependency to >= R 2.15.
- Minor code and help cleanup.
spam 0.29-3 (2013-04-24)
SIGNIFICANT USER-VISIBLE CHANGES
-
There is a generic conflict with 'backsolve' between spam and other packages (e.g., bdsmatrix).
To avoid the issue, we use the standard generic implemented in 'methods' which requires an additional argument for version 0.29-0 (see also PR#14883).
However to maintain backwards compatibility with packages that depend on spam, this was reverted in 0.29-1.
Currently, this conflict is not properly solved.
I propose to load 'spam' first then the other packages, followed by manually calling:
-
setMethod("backsolve","spam.chol.NgPeyton",backsolve.spam)
setMethod("backsolve","spam",backsolve.spam)
Stay tuned...
now work. They are, however, somewhat inefficient.
'toeplitz.spam' is to be prefered.
Pointed out by Florian Gerber.
- The Gibbs sampler in the demo article-jss-example2 contains several bugs, pointed out by Steve Geinitz and Andrea Riebler.
I'll post an updated sampler in a future release.
NEW FEATURES
- New functions 'rmvnorm.const', 'rmvnorm.prec.const' and 'rmvnorm.canonical.const' to draw constrained multivariate normal variates.
- New functions 'precmat' (wrapper to), 'precmat.RW1', 'precmat.RW2', 'precmat.season', 'precmat.IGMRFreglat' and 'precmat.IGMRFirreglat' to create precision matrices for IGMRF.
- New methods 'rowSums', 'colSums' and 'rowMeans', 'colMeans' for 'spam' objects.
- New methods 'head' and 'tail' for 'spam' and 'spam.chol.NgPeyton' objects.
- New method 'chol2inv' for 'spam' object.
- New option 'inefficiencywarning': handling of warnings issued in case of an inefficient calculation.
- New option 'structurebased': should operations be performed on the nonzero entries or on including the zeros.
Classical example: what should the cosine of a sparse matrix look like?
In the near future, all operations from Math and Ops will include this option.
Some loss of backwards compatibility might be lost in the future.
INTERNAL CHANGES
- New much faster approach to extract rows. For not too sparse large matrices improvements over two orders of magnitudes are achieved.
- Elininated '.Internal()' calls that induce a 'Note' on CRAN checks. This also implied a minor rewrite of 'image.spam'.
- Minor code improvements.
- Eliminated non-API calls (29.1).
- Rewritten .C("bincode",...) call as suggested by Brian Ripley (29.2).
BUG FIXES
- Bug fix that occures when multiplying elementwise matrices that have non-intersecting structures (pointed out by Corentin Barbu).
- Bug fix in triangular backsolves involving 'spam' objects and rhs matrices.
- Bug fix in triangular backsolve causing errors on some architectures.
spam 0.28
NEW FEATURES
- New function 'cleanup' (suggested by Simon Barthelme).
- Extending help files.
- Improved functionality of 'isSymmetric'.
INTERNAL CHANGES
- Proper storage of data files.
- Cleaning up argument names within spam functions.
- Cleaning up old Fortran code, i.e., eliminating unnecessary subroutines and write calls.
BUG FIXES
- Bug fix that may occure when extracting zero elements (pointed out by Corentin Barbu).
spam 0.27
NEW FEATURES
- Requires now R2.10 and higher.
- Functions to create Toeplitz and circulant matrices.
- Function to create precision matrices for gridded GMRF.
- Improvements in the mle.* functions.
- Method diff for sparse matrices (suggested by Paul Eilers).
- Improvement of help pages.
- Eliminated some help aliases to base functions (for which no 'usage' is given).
INTERNAL CHANGES
- Change to iL coding.
- Start to using 'identical'.
- Code cleaning due to requirement of R2.10 and higher.
BUG FIXES
- Bug fix in as.spam.list (thanks to Paul Eilers).
- Bug fix in demo(spam) (thanks to Thomas Gsponer).
spam 0.26
- Devel versions, not released.
spam 0.23
NEW FEATURES
- Further improved versions of demos.
- Some improvements to meet Rd standards.
Adjustments for future R versions.
spam 0.22
NEW FEATURES
- Improved versions of demos. Synchronized with the JSS article.
- Additional changes and improvements in the help files (thanks to Steve Geinitz).
spam 0.21
NEW FEATURES
- New NEWS file, to work better with news() command.
The previous is available under ONEWS.
- New functions bandwidth, permutation, mle[.nomean][.spam], neg2loglikelihood[.spam].
- Renamed adiag.spam to bdiag.spam.
- Cleaned up argument naming with the rmvnorm.* suite.
INTERNAL CHANGES
- Various Fortran code, R code and help file improvements.
BUG FIXES
- Minor change in one of the demos (solves a 64bit issue).