...
 
Commits (2)
Package: spam Package: spam
Type: Package Type: Package
Title: SPArse Matrix Title: SPArse Matrix
Version: 2.5-0 Version: 2.5-1
Date: 2019-12-05 Date: 2019-12-12
Authors@R: c(person("Reinhard", "Furrer", role = c("aut", "cre"), Authors@R: c(person("Reinhard", "Furrer", role = c("aut", "cre"),
email = "reinhard.furrer@math.uzh.ch"), email = "reinhard.furrer@math.uzh.ch"),
person("Florian", "Gerber", role = c("aut"), person("Florian", "Gerber", role = c("aut"),
...@@ -59,4 +59,3 @@ LazyData: true ...@@ -59,4 +59,3 @@ LazyData: true
License: LGPL-2 | BSD_3_clause + file LICENSE License: LGPL-2 | BSD_3_clause + file LICENSE
URL: https://www.math.uzh.ch/pages/spam/ URL: https://www.math.uzh.ch/pages/spam/
BugReports: https://git.math.uzh.ch/reinhard.furrer/spam/issues BugReports: https://git.math.uzh.ch/reinhard.furrer/spam/issues
RoxygenNote: 6.1.1
# spam 2.5-1
BUG FIXES
* fixing fortran linking warning.
# spam 2.5-0 # spam 2.5-0
SIGNIFICANT USER-VISIBLE CHANGES SIGNIFICANT USER-VISIBLE CHANGES
......
# HEADER ####################################################
# This is file spam/R/deprecated.R. #
# It is part of the R package spam, #
# --> https://CRAN.R-project.org/package=spam #
# --> https://CRAN.R-project.org/package=spam64 #
# --> https://git.math.uzh.ch/reinhard.furrer/spam #
# by Reinhard Furrer [aut, cre], Florian Gerber [aut], #
# Roman Flury [aut], Daniel Gerber [ctb], #
# Kaspar Moesinger [ctb] #
# HEADER END ################################################
validspamobject <- function( ...) {
# .Deprecated('validate_spam()')
message("`validspamobject()` is deprecated. Use `validate_spam()` directly")
validate_spam( ...)
}
spam.getOption <- function(...) {
# .Deprecated(msg="`spam.getOption( arg)` is deprecated.\n Use `getOption( spam.arg)` directly")
message("`spam.getOption( arg)` is deprecated. Use `getOption( spam.arg)` directly")
getOption(...)
}
spam.options <- function(...) {
# .Deprecated(msg="`spam.options( arg)` is deprecated.\n Use `options( spam.arg)` directly")
message("`spam.options( arg)` is deprecated. Use `options( spam.arg)` directly")
if (nargs() == 0) {
tmp <- names(options())
return(options()[ grep( "spam.", tmp)])
}
args <- list(...)
names(args) <- paste0("spam.", names(args))
do.call("options", args)
}
>spam_0.41: moved definitively to GIT. ChangeLog will consist of
`git log`
spam_0.41-0 2014-02-26 (RF)
- addressed several Rdevel CMD check --as-cran Notes.
- minor changes in tests/mle (improving speed)
- minor code tiding
- file header edits
spam_0.40-1 2014-02-20 (Florian Gerber)
- update grid_trace2() and grid_trace2.Rd
- eliminate bug in cov.mat() and correct typo in cov.Rd
add tests/covmat.R tests/covmat.Rout.save
changeset: 4:66173a00f913
tag: tip
user: Reinhard Furrer @ lappi <reinhard.furrer@math.uzh.ch>
date: Wed Aug 21 21:09:05 2013 +0200
summary: Adjusted DESCRIPTION, NEWS, ChangeLog for push to CRAN
changeset: 3:412496cbb8b3
user: Florian Gerber <florian.gerber@math.uzh.ch>
date: Tue Aug 20 15:36:34 2013 +0200
summary: gridBase NOT in dependency. comment germany.Rd about 'fields'
changeset: 2:2526f2c1d501
user: Florian Gerber <florian.gerber@math.uzh.ch>
date: Mon Aug 19 15:42:49 2013 +0200
summary: add plot grid_zoom() and grid_trace2() incl help files.
changeset: 1:2929fe7a2799
user: Florian Gerber <florian.gerber@math.uzh.ch>
date: Tue Aug 06 14:31:11 2013 +0200
summary: Test hg, small changes in spam0.30-0/man/mcmczoomPlot.Rd
changeset: 0:0029fc2741f4
user: Reinhard Furrer <reinhard.furrer@math.uzh.ch>
date: Mon Aug 05 13:53:20 2013 +0200
summary: First Version that runs...
This diff is collapsed.
This diff is collapsed.
% HEADER %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This is file spam/man/history.spam.Rd. %
% It is part of the R package spam, %
% --> https://CRAN.R-project.org/package=spam %
% --> https://CRAN.R-project.org/package=spam64 %
% --> https://git.math.uzh.ch/reinhard.furrer/spam %
% by Reinhard Furrer [aut, cre], Florian Gerber [ctb], %
% Roman Flury [ctb], Daniel Gerber [ctb], %
% Kaspar Moesinger [ctb] %
% HEADER END %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\name{history}
\alias{history.spam}
\alias{spam.history}
\alias{history}
\title{Brief Overview of the History}
\description{Brief overview of \code{spam}s history}
\usage{
spam.history()
}
\details{Many years ago, I required sparse matrix algebra capacities in
\R for my research. The packages available at that time where not
necessarily satisfying for my purpose. Hence, I started writing my own
functions, somewhat inspired by the package \code{SparseM}.
Over the years, I decided to write an \R package, called \code{spam}.
In mean time, we have tree significant sparse matrix packages posted
on CRAN. I believe that all three have their own niche of users.
I believe that \code{spam} is stable, useful but definitely not fully
matured. I appreciate all comments and remarks.
There is no need to maintain here a complete list of changes. Older
versions are available on CRAN (>0.11), each coming with a proper
history file.
}
\references{See also a more detailed description at
\url{http://www.math.uzh.ch/furrer/software/spam/history.shtml}.}
\seealso{\code{\link{todo}}.}
\examples{
\dontrun{
## A complete history of changes
file.show(system.file("NEWS", package = "spam"))
file.show(system.file("0NEWS", package = "spam"))
}
}
\keyword{internal}
% HEADER %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% This is file spam/man/todo.Rd. %
% It is part of the R package spam, %
% --> https://CRAN.R-project.org/package=spam %
% --> https://CRAN.R-project.org/package=spam64 %
% --> https://git.math.uzh.ch/reinhard.furrer/spam %
% by Reinhard Furrer [aut, cre], Florian Gerber [ctb], %
% Roman Flury [ctb], Daniel Gerber [ctb], %
% Kaspar Moesinger [ctb] %
% HEADER END %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\name{todo}
\alias{todo.spam}
\alias{todo}
\title{Small "ToDo" list}
\description{List of what needs to be done within \code{spam}
}
\usage{
todo()
}
\details{This is a non exhaustive list of where we need to work on spam
(of course the list is in random order):\cr
- extend demo(s)\cr
- write vignette\cr
- complete help files\cr
%Especially, there are still a few functions
%commented in various 'usage' sections (to avoid warnings when checking
%the library).\cr
- extend basic matrix operatation, comparisons, etc: \cr
\code{unique}, \code{duplicated}, ...
- improve subsetting via row extraction, incorporate matrix permutation\cr % xtrows
% - extend methods for \code{spam.chol.NgPeyton}: \cr
% e.g., \code{diag} => done
- implement other Cholesky routines (one eye glances to the LDL library). \cr
- what about an LU/SVD decomposition?\cr
% - implement \code{backsolve} and \code{forwardsolve} for \code{spam} class.\cr => done
% - it might be useful to implement certain lines of code in Fortran:
% say \code{rbind}, \code{cbind}, ...\cr => done
Any other items are welcome (\email{reinhard.furrer@math.uzh.ch}).\cr
}
\keyword{internal}
...@@ -912,8 +912,6 @@ C ...@@ -912,8 +912,6 @@ C
C*********************************************************************** C***********************************************************************
implicit none implicit none
C C
logical, external :: neZERO
INTEGER NSUPER INTEGER NSUPER
INTEGER LINDX(*) , XSUPER(*) INTEGER LINDX(*) , XSUPER(*)
INTEGER XLINDX(*) , XLNZ(*) INTEGER XLINDX(*) , XLNZ(*)
...@@ -943,11 +941,11 @@ C ------------------------- ...@@ -943,11 +941,11 @@ C -------------------------
CDIR$ IVDEP CDIR$ IVDEP
DO 400 IX = IXSTRT+1, IXSTOP DO 400 IX = IXSTRT+1, IXSTOP
I = LINDX(IPNT) I = LINDX(IPNT)
IF (neZERO(RHS(I))) T = T - LNZ(IX)*RHS(I) IF (abs(RHS(I)) .GT. 0.D0) T = T - LNZ(IX)*RHS(I)
IPNT = IPNT + 1 IPNT = IPNT + 1
400 CONTINUE 400 CONTINUE
IF(neZERO(T)) THEN IF(abs(T) .GT. 0.D0) THEN
RHS(JCOL) = T/LNZ(IXSTRT) RHS(JCOL) = T/LNZ(IXSTRT)
ELSE ELSE
RHS(JCOL) = 0.D0 RHS(JCOL) = 0.D0
...@@ -1002,8 +1000,6 @@ C ...@@ -1002,8 +1000,6 @@ C
C*********************************************************************** C***********************************************************************
C C
implicit none implicit none
logical, external :: neZERO
INTEGER NSUPER INTEGER NSUPER
INTEGER LINDX(*) , XSUPER(*) INTEGER LINDX(*) , XSUPER(*)
...@@ -1031,7 +1027,7 @@ C ------------------------ ...@@ -1031,7 +1027,7 @@ C ------------------------
DO 200 JCOL = FJCOL, LJCOL DO 200 JCOL = FJCOL, LJCOL
IXSTOP = XLNZ(JCOL+1) - 1 IXSTOP = XLNZ(JCOL+1) - 1
IF (neZERO(RHS(JCOL))) THEN IF (abs(RHS(JCOL)) .GT. 0.D0) THEN
T = RHS(JCOL)/LNZ(IXSTRT) T = RHS(JCOL)/LNZ(IXSTRT)
RHS(JCOL) = T RHS(JCOL) = T
IPNT = JPNT + 1 IPNT = JPNT + 1
...@@ -1094,7 +1090,6 @@ C ...@@ -1094,7 +1090,6 @@ C
C*********************************************************************** C***********************************************************************
C C
implicit none implicit none
logical, external :: neZERO
INTEGER NSUPER INTEGER NSUPER
INTEGER LINDX(*) , XSUPER(*) INTEGER LINDX(*) , XSUPER(*)
...@@ -1122,7 +1117,7 @@ C ------------------------ ...@@ -1122,7 +1117,7 @@ C ------------------------
DO 200 JCOL = FJCOL, LJCOL DO 200 JCOL = FJCOL, LJCOL
IXSTOP = XLNZ(JCOL+1) - 1 IXSTOP = XLNZ(JCOL+1) - 1
IF (neZERO(RHS(JCOL))) THEN IF (abs(RHS(JCOL)) .GT. 0.D0) THEN
T = RHS(JCOL)/LNZ(IXSTRT) T = RHS(JCOL)/LNZ(IXSTRT)
RHS(JCOL) = T RHS(JCOL) = T
IPNT = JPNT + 1 IPNT = JPNT + 1
...@@ -1155,11 +1150,11 @@ C ------------------------- ...@@ -1155,11 +1150,11 @@ C -------------------------
CDIR$ IVDEP CDIR$ IVDEP
DO 400 IX = IXSTRT+1, IXSTOP DO 400 IX = IXSTRT+1, IXSTOP
I = LINDX(IPNT) I = LINDX(IPNT)
IF(neZERO(RHS(I))) T = T - LNZ(IX)*RHS(I) IF(abs(RHS(I)) .GT. 0.D0) T = T - LNZ(IX)*RHS(I)
IPNT = IPNT + 1 IPNT = IPNT + 1
400 CONTINUE 400 CONTINUE
IF (neZERO(T)) THEN IF (abs(T) .GT. 0.D0) THEN
RHS(JCOL) = T/LNZ(IXSTRT) RHS(JCOL) = T/LNZ(IXSTRT)
ELSE ELSE
RHS(JCOL) = 0.D0 RHS(JCOL) = 0.D0
......
function eqZERO( a)
implicit none
logical eqZERO
double precision a
eqZERO = (abs( a) .LE. 1.1*epsilon( 0.0))
return
end function
function neZERO( a)
implicit none
logical neZERO
double precision a
neZERO = (abs( a) .GT. 1.1*epsilon( 0.0))
return
end function
function eqREAL( a, b)
implicit none
logical eqREAL
double precision a, b
eqREAL = (abs( a - b) .LE. 1.1*epsilon( 0.0))
return
end function
function neREAL( a, b)
implicit none
logical neREAL
c double precision eps
c parameter (eps = 1d-14)
double precision a, b
c neREAL = abs( a - b) .GT. eps
neREAL = (abs( a - b) .GT. 1.1*epsilon( 0.0))
return
end function
c
c\SCCS Information: @(#)
c FILE: debug.h SID: 2.3 DATE OF SID: 11/16/95 RELEASE: 2
c
c %---------------------------------%
c | See debug.doc for documentation |
c %---------------------------------%
integer logfil, ndigit, mgetv0,
& msaupd, msaup2, msaitr, mseigt, msapps, msgets, mseupd,
& mnaupd, mnaup2, mnaitr, mneigh, mnapps, mngets, mneupd,
& mcaupd, mcaup2, mcaitr, mceigh, mcapps, mcgets, mceupd
common /debug/
& logfil, ndigit, mgetv0,
& msaupd, msaup2, msaitr, mseigt, msapps, msgets, mseupd,
& mnaupd, mnaup2, mnaitr, mneigh, mnapps, mngets, mneupd,
& mcaupd, mcaup2, mcaitr, mceigh, mcapps, mcgets, mceupd
...@@ -83,8 +83,6 @@ c p power for minkowski ...@@ -83,8 +83,6 @@ c p power for minkowski
implicit none implicit none
logical, external :: eqREAL
double precision distfcn double precision distfcn
external distfcn external distfcn
...@@ -136,10 +134,10 @@ c in case nnz was too small, recall line to get a better estimate ...@@ -136,10 +134,10 @@ c in case nnz was too small, recall line to get a better estimate
endif endif
colindices(jja) = j colindices(jja) = j
if (eqREAL(p,2)) then if (abs(p-2) .le. 0.D0) then
entries(jja) = sqrt(tmp) entries(jja) = sqrt(tmp)
else else
if (eqREAL(p,1)) then if (abs(p-1) .le. 0.D0) then
entries(jja) = tmp entries(jja) = tmp
else else
entries(jja) = tmp**pinv entries(jja) = tmp**pinv
......
...@@ -12,6 +12,32 @@ c dseigt.f ...@@ -12,6 +12,32 @@ c dseigt.f
c dstqrb.f c dstqrb.f
c dsortr.f c dsortr.f
c c
c
c test for equal zero
c
function eqZERO( a)
implicit none
logical eqZERO
double precision a
eqZERO = (abs( a) .LE. 1.1*epsilon( 0.0))
return
end function
c
c test not equal to zero
c
function neZERO( a)
implicit none
logical neZERO
double precision a
neZERO = (abs( a) .GT. 1.1*epsilon( 0.0))
return
end function
c
c
c\BeginDoc c\BeginDoc
c c
c\Name: dseupd c\Name: dseupd
......
...@@ -85,17 +85,6 @@ c | time spent in the various stages of computation | ...@@ -85,17 +85,6 @@ c | time spent in the various stages of computation |
c | given by setting msaupd = 1. | c | given by setting msaupd = 1. |
c %-------------------------------------------------% c %-------------------------------------------------%
c c
cm include 'debug.h'
cm ndigit = -3
cm logfil = 6
cm msgets = 0
cm msaitr = 0
cm msapps = 0
cm msaupd = 0
cm msaup2 = 0
cm mseigt = 0
cm mseupd = 0
c
c %-------------------------------------------------% c %-------------------------------------------------%
c | The following sets dimensions for this problem. | c | The following sets dimensions for this problem. |
c %-------------------------------------------------% c %-------------------------------------------------%
...@@ -113,7 +102,6 @@ c ...@@ -113,7 +102,6 @@ c
else if (iwhich .eq. 9) then else if (iwhich .eq. 9) then
which = 'BE' which = 'BE'
else else
CcC callintpr(' Error: Invalid mode.', -1, 0, 0)
c c
goto 9000 goto 9000
end if end if
...@@ -231,8 +219,6 @@ c %--------------------------% ...@@ -231,8 +219,6 @@ c %--------------------------%
c | Error message. Check the | c | Error message. Check the |
c | documentation in DSAUPD. | c | documentation in DSAUPD. |
c %--------------------------% c %--------------------------%
c
c call errpr (info)
c c
goto 9000 goto 9000
c c
...@@ -277,8 +263,6 @@ c %------------------------------------% ...@@ -277,8 +263,6 @@ c %------------------------------------%
c | Error condition: | c | Error condition: |
c | Check the documentation of DSEUPD. | c | Check the documentation of DSEUPD. |
c %------------------------------------% c %------------------------------------%
c
c call errpr (ierr)
c c
goto 9000 goto 9000
c c
......
c *****************************************************************************
c
c print function for errorflags from __aupd/__eupd; debugging resp verbose purpose
c
subroutine errpr ( errf )
c
implicit none
c
integer errf
c
if ( errf .eq. 0 ) then
c
call intpr(' ', -1, 0, 0)
call intpr(' Normal exit', -1, 0, 0)
call intpr(' ', -1, 0, 0)
c
else if ( errf .gt. 0 ) then
c
if ( errf .eq. 1 ) then
c
call intpr(' ', -1, 0, 0)
call intpr(' Maximum number of iterations taken.', -1, 0, 0)
call intpr(' Increase the argument nitr or ncv.', -1, 0, 0)
call intpr(' ', -1, 0, 0)
c
end if
c
call intpr(' ', -1, 0, 0)
call intpr(' Workload of the requested eigenvalues is too high.',
& -1, 0, 0)
call intpr(' Increase nitr and decrease ncv.', -1, 0, 0)
call intpr(' ', -1, 0, 0)
c
else
c
call intpr(' ', -1, 0, 0)
call intpr(' ERROR in the Implicitly Restarted Arnoldi Process.',
& -1, 0, 0)
call intpr(' ', -1, 0, 0)
c
if ( errf .eq. -1 ) then
c
call intpr(' ', -1, 0, 0)
call intpr(' Dimension of input matrix is not positive.',
& -1, 0, 0)
call intpr(' ', -1, 0, 0)
c
else if ( errf .eq. -2 ) then
c
call intpr(' ', -1, 0, 0)
call intpr(' Requested eigenvalues must be positive.',
& -1, 0, 0)
call intpr(' ', -1, 0, 0)
c
else if ( errf .eq. -3 ) then
c
call intpr(' ', -1, 0, 0)
call intpr(' The number of requested eigenvalues is too high.',
& -1, 0, 0)
call intpr(' ', -1, 0, 0)
c
else if ( errf .eq. -4 ) then
c
call intpr(' ', -1, 0, 0)
call intpr(' The maximum number of Arnoldi update',
& -1, 0, 0)
call intpr(' iterations allowed must be greater than zero.',
& -1, 0, 0)
call intpr(' ', -1, 0, 0)
c
else if ( errf .eq. -5 ) then
c
call intpr(' ', -1, 0, 0)
call intpr(' WHICH must be one of LA,SA,LM,SM or LR,SR,LI,SI.',
& -1, 0, 0)
call intpr(' ', -1, 0, 0)
c
else if ( errf .eq. -14 ) then
c
call intpr(' ', -1, 0, 0)
call intpr(' The accuracy of the eigenvalues',
& -1, 0, 0)
call intpr(' is not sufficent enough.',
& -1, 0, 0)
call intpr(' ', -1, 0, 0)
c
else if ( errf .eq. -9999 ) then
c
call intpr(' ', -1, 0, 0)
call intpr(' Could not build an Arnoldi factorization',
& -1, 0, 0)
call intpr(' try to increase ncv and nitr.',
& -1, 0, 0)
call intpr(' ', -1, 0, 0)
c
else
c
call intpr(' ', -1, 0, 0)
call intpr(' Fatal error in fortran source, ',
& -1, 0, 0)
call intpr(' The ERRORFLAG is = ', -1, errf, 4)
call intpr(' ', -1, 0, 0)
c
end if
c
end if
c
end
c
SUBROUTINE SECOND( T )
*
REAL T
*
* -- LAPACK auxiliary routine (preliminary version) --
* Univ. of Tennessee, Univ. of California Berkeley, NAG Ltd.,
* Courant Institute, Argonne National Lab, and Rice University
* July 26, 1991
*
* Purpose
* =======
*
* SECOND returns the user time for a process in seconds.
* This version gets the time from the system function ETIME.
*
* .. Local Scalars ..
REAL T1
* ..
* .. Local Arrays ..
REAL TARRAY( 2 )
* ..
* .. External Functions ..
* REAL ETIME
* EXTERNAL ETIME
* ..
* .. Executable Statements ..
*
* T1 = ETIME( TARRAY )
* T = TARRAY( 1 )
RETURN
*
* End of SECOND
*
END
...@@ -1806,7 +1806,6 @@ c----------------------------------------------------------------------c ...@@ -1806,7 +1806,6 @@ c----------------------------------------------------------------------c
subroutine spamforward (n,p,x,b,l,jl,il) subroutine spamforward (n,p,x,b,l,jl,il)
implicit none implicit none
logical, external :: eqZERO
integer n, p, jl(*),il(n+1) integer n, p, jl(*),il(n+1)
double precision x(n,p), b(n,p), l(*) double precision x(n,p), b(n,p), l(*)
...@@ -1836,7 +1835,7 @@ c Reinhard Furrer June 2008, April 2012, Sept 2016, Nov 2019 ...@@ -1836,7 +1835,7 @@ c Reinhard Furrer June 2008, April 2012, Sept 2016, Nov 2019
c initialize k for next setting c initialize k for next setting
k=0 k=0
c if first diagonal element is zero, break c if first diagonal element is zero, break
if (eqZERO(l(1))) goto 5 if (abs(l(1)) .le. 0.D0) goto 5
c cycle over all columns of b c cycle over all columns of b
do i=1,p do i=1,p
...@@ -1850,7 +1849,7 @@ c first row has one element then cycle over all rows ...@@ -1850,7 +1849,7 @@ c first row has one element then cycle over all rows
t = t-l(j)*x(jl(j),i) t = t-l(j)*x(jl(j),i)
else else
if (jl(j) .eq. k) then if (jl(j) .eq. k) then
if (eqZERO(l(j))) goto 5 if (abs(l(j)) .le. 0.D0) goto 5
c diagonal element is not zero, hence we divide and leave the loop c diagonal element is not zero, hence we divide and leave the loop
x(k,i) = t / l(j) x(k,i) = t / l(j)
goto 3 goto 3
...@@ -1867,7 +1866,6 @@ c diagonal element is not zero, hence we divide and leave the loop ...@@ -1867,7 +1866,6 @@ c diagonal element is not zero, hence we divide and leave the loop
c----------------------------------------------------------------------- c-----------------------------------------------------------------------
subroutine spamback (n,p,x,b,r,jr,ir) subroutine spamback (n,p,x,b,r,jr,ir)
implicit none implicit none
logical, external :: eqZERO
integer n, p, jr(*),ir(n+1) integer n, p, jr(*),ir(n+1)
double precision x(n,p), b(n,p), r(*) double precision x(n,p), b(n,p), r(*)
...@@ -1892,7 +1890,7 @@ c-------------------------------------------------------------------- ...@@ -1892,7 +1890,7 @@ c--------------------------------------------------------------------
c Reinhard Furrer June 2008, April 2012, Sept 2016, Nov 2019 c Reinhard Furrer June 2008, April 2012, Sept 2016, Nov 2019
k = n+1 k = n+1
if (eqZERO( r(ir(n+1)-1))) goto 5 if (abs( r(ir(n+1)-1) ) .le. 0.D0) goto 5
do l=1,p do l=1,p
x(n,l) = b(n,l) / r(ir(n+1)-1) x(n,l) = b(n,l) / r(ir(n+1)-1)
do 3 k = n-1,1,-1 do 3 k = n-1,1,-1
...@@ -1902,7 +1900,7 @@ c Reinhard Furrer June 2008, April 2012, Sept 2016, Nov 2019 ...@@ -1902,7 +1900,7 @@ c Reinhard Furrer June 2008, April 2012, Sept 2016, Nov 2019
t = t - r(j)*x(jr(j),l) t = t - r(j)*x(jr(j),l)
else else
if (jr(j) .eq. k) then if (jr(j) .eq. k) then
if (eqZERO(r(j))) goto 5 if (abs(r(j)) .le. 0.D0) goto 5
c diagonal element is not zero, hence we divide and leave the loop c diagonal element is not zero, hence we divide and leave the loop
x(k,l) = t / r(j) x(k,l) = t / r(j)
goto 3 goto 3
......
c %--------------------------------%
c | See stat.doc for documentation |
c %--------------------------------%
c
c\SCCS Information: @(#)
c FILE: stat.h SID: 2.2 DATE OF SID: 11/16/95 RELEASE: 2
c
c real t0, t1, t2, t3, t4, t5
c save t0, t1, t2, t3, t4, t5
c
integer nopx, nbx, nrorth, nitref, nrstrt
real tsaupd, tsaup2, tsaitr, tseigt, tsgets, tsapps, tsconv,
& tnaupd, tnaup2, tnaitr, tneigh, tngets, tnapps, tnconv,
& tcaupd, tcaup2, tcaitr, tceigh, tcgets, tcapps, tcconv,
& tmvopx, tmvbx, tgetv0, titref, trvec
common /timing/
& nopx, nbx, nrorth, nitref, nrstrt,
& tsaupd, tsaup2, tsaitr, tseigt, tsgets, tsapps, tsconv,
& tnaupd, tnaup2, tnaitr, tneigh, tngets, tnapps, tnconv,
& tcaupd, tcaup2, tcaitr, tceigh, tcgets, tcapps, tcconv,
& tmvopx, tmvbx, tgetv0, titref, trvec
...@@ -42,7 +42,7 @@ Type 'q()' to quit R. ...@@ -42,7 +42,7 @@ Type 'q()' to quit R.
> library("spam") > library("spam")
Loading required package: dotCall64 Loading required package: dotCall64
Loading required package: grid Loading required package: grid
Spam version 2.5-0 (2019-12-05) is loaded. Spam version 2.5-1 (2019-12-12) is loaded.
Type 'help( Spam)' or 'demo( spam)' for a short introduction Type 'help( Spam)' or 'demo( spam)' for a short introduction
and overview of this package. and overview of this package.
Help for individual functions is also obtained by adding the Help for individual functions is also obtained by adding the
...@@ -255,4 +255,4 @@ default value for 'cex' in 'display' might not be the optimal choice ...@@ -255,4 +255,4 @@ default value for 'cex' in 'display' might not be the optimal choice
> >
> proc.time() > proc.time()
user system elapsed user system elapsed
2.028 0.136 2.157 2.068 0.152 2.214
...@@ -58,7 +58,7 @@ Loading required package: fields ...@@ -58,7 +58,7 @@ Loading required package: fields
Loading required package: spam Loading required package: spam
Loading required package: dotCall64 Loading required package: dotCall64
Loading required package: grid Loading required package: grid
Spam version 2.5-0 (2019-12-05) is loaded. Spam version 2.5-1 (2019-12-12) is loaded.
Type 'help( Spam)' or 'demo( spam)' for a short introduction Type 'help( Spam)' or 'demo( spam)' for a short introduction
and overview of this package. and overview of this package.
Help for individual functions is also obtained by adding the Help for individual functions is also obtained by adding the
...@@ -71,8 +71,8 @@ The following objects are masked from 'package:base': ...@@ -71,8 +71,8 @@ The following objects are masked from 'package:base':
backsolve, forwardsolve backsolve, forwardsolve
Loading required package: maps Loading required package: maps
See www.image.ucar.edu/~nychka/Fields for See https://github.com/NCAR/Fields for
a vignette and other supplements. an extensive vignette, other supplements and source code
> options(spam.structurebased=TRUE) > options(spam.structurebased=TRUE)
> >
> >
...@@ -284,4 +284,4 @@ See www.image.ucar.edu/~nychka/Fields for ...@@ -284,4 +284,4 @@ See www.image.ucar.edu/~nychka/Fields for
> >
> proc.time() > proc.time()
user system elapsed user system elapsed
1.512 0.156 1.678 1.564 0.212 1.777
...@@ -49,7 +49,7 @@ Type 'q()' to quit R. ...@@ -49,7 +49,7 @@ Type 'q()' to quit R.
> options( echo=FALSE) > options( echo=FALSE)
Loading required package: dotCall64 Loading required package: dotCall64
Loading required package: grid Loading required package: grid
Spam version 2.5-0 (2019-12-05) is loaded. Spam version 2.5-1 (2019-12-12) is loaded.
Type 'help( Spam)' or 'demo( spam)' for a short introduction Type 'help( Spam)' or 'demo( spam)' for a short introduction
and overview of this package. and overview of this package.
Help for individual functions is also obtained by adding the Help for individual functions is also obtained by adding the
...@@ -101,4 +101,4 @@ NULL ...@@ -101,4 +101,4 @@ NULL
> >
> proc.time() > proc.time()
user system elapsed user system elapsed
4.616 0.196 4.801 5.084 0.220 5.308
...@@ -31,7 +31,7 @@ Type 'q()' to quit R. ...@@ -31,7 +31,7 @@ Type 'q()' to quit R.
> options( echo=FALSE) > options( echo=FALSE)
Loading required package: dotCall64 Loading required package: dotCall64
Loading required package: grid Loading required package: grid
Spam version 2.5-0 (2019-12-05) is loaded. Spam version 2.5-1 (2019-12-12) is loaded.
Type 'help( Spam)' or 'demo( spam)' for a short introduction Type 'help( Spam)' or 'demo( spam)' for a short introduction
and overview of this package. and overview of this package.
Help for individual functions is also obtained by adding the Help for individual functions is also obtained by adding the
...@@ -39,4 +39,4 @@ suffix '.spam' to the function name, e.g. 'help( chol.spam)'. ...@@ -39,4 +39,4 @@ suffix '.spam' to the function name, e.g. 'help( chol.spam)'.
> >
> proc.time() > proc.time()
user system elapsed user system elapsed
1.000 0.048 1.045 1.008 0.112 1.114
...@@ -30,7 +30,7 @@ Type 'q()' to quit R. ...@@ -30,7 +30,7 @@ Type 'q()' to quit R.
> options( echo=FALSE) > options( echo=FALSE)
Loading required package: dotCall64 Loading required package: dotCall64
Loading required package: grid Loading required package: grid
Spam version 2.5-0 (2019-12-05) is loaded. Spam version 2.5-1 (2019-12-12) is loaded.
Type 'help( Spam)' or 'demo( spam)' for a short introduction Type 'help( Spam)' or 'demo( spam)' for a short introduction
and overview of this package. and overview of this package.
Help for individual functions is also obtained by adding the Help for individual functions is also obtained by adding the
...@@ -49,4 +49,4 @@ suffix '.spam' to the function name, e.g. 'help( chol.spam)'. ...@@ -49,4 +49,4 @@ suffix '.spam' to the function name, e.g. 'help( chol.spam)'.
> >
> proc.time() > proc.time()
user system elapsed user system elapsed
1.504 0.192 1.697 1.512 0.224 1.737
...@@ -29,7 +29,7 @@ Type 'q()' to quit R. ...@@ -29,7 +29,7 @@ Type 'q()' to quit R.
> options( echo=FALSE) > options( echo=FALSE)
Loading required package: dotCall64 Loading required package: dotCall64
Loading required package: grid Loading required package: grid
Spam version 2.5-0 (2019-12-05) is loaded. Spam version 2.5-1 (2019-12-12) is loaded.
Type 'help( Spam)' or 'demo( spam)' for a short introduction Type 'help( Spam)' or 'demo( spam)' for a short introduction
and overview of this package. and overview of this package.
Help for individual functions is also obtained by adding the Help for individual functions is also obtained by adding the
...@@ -59,4 +59,4 @@ Loading required package: evd ...@@ -59,4 +59,4 @@ Loading required package: evd
> >
> proc.time() > proc.time()
user system elapsed user system elapsed
2.240 0.224 2.485 2.396 0.252 2.675
...@@ -31,7 +31,7 @@ Type 'q()' to quit R. ...@@ -31,7 +31,7 @@ Type 'q()' to quit R.
> options( echo=FALSE) > options( echo=FALSE)
Loading required package: dotCall64 Loading required package: dotCall64
Loading required package: grid Loading required package: grid
Spam version 2.5-0 (2019-12-05) is loaded. Spam version 2.5-1 (2019-12-12) is loaded.
Type 'help( Spam)' or 'demo( spam)' for a short introduction Type 'help( Spam)' or 'demo( spam)' for a short introduction
and overview of this package. and overview of this package.
Help for individual functions is also obtained by adding the Help for individual functions is also obtained by adding the
...@@ -50,4 +50,4 @@ Class 'spam' (32-bit) ...@@ -50,4 +50,4 @@ Class 'spam' (32-bit)
> >
> proc.time() > proc.time()
user system elapsed user system elapsed
0.984 0.068 1.041 1.020 0.084 1.092
...@@ -35,7 +35,7 @@ Type 'q()' to quit R. ...@@ -35,7 +35,7 @@ Type 'q()' to quit R.
> options( echo=FALSE) > options( echo=FALSE)
Loading required package: dotCall64 Loading required package: dotCall64
Loading required package: grid Loading required package: grid
Spam version 2.5-0 (2019-12-05) is loaded. Spam version 2.5-1 (2019-12-12) is loaded.
Type 'help( Spam)' or 'demo( spam)' for a short introduction Type 'help( Spam)' or 'demo( spam)' for a short introduction
and overview of this package. and overview of this package.
Help for individual functions is also obtained by adding the Help for individual functions is also obtained by adding the
...@@ -79,4 +79,4 @@ Class 'spam' (32-bit) ...@@ -79,4 +79,4 @@ Class 'spam' (32-bit)
> >
> proc.time() > proc.time()
user system elapsed user system elapsed
1.672 0.084 1.741 2.092 0.108 2.186
...@@ -39,7 +39,7 @@ Type 'q()' to quit R. ...@@ -39,7 +39,7 @@ Type 'q()' to quit R.
> library("spam") > library("spam")
Loading required package: dotCall64 Loading required package: dotCall64
Loading required package: grid Loading required package: grid
Spam version 2.5-0 (2019-12-05) is loaded. Spam version 2.5-1 (2019-12-12) is loaded.
Type 'help( Spam)' or 'demo( spam)' for a short introduction Type 'help( Spam)' or 'demo( spam)' for a short introduction
and overview of this package. and overview of this package.
Help for individual functions is also obtained by adding the Help for individual functions is also obtained by adding the
...@@ -154,4 +154,4 @@ The following objects are masked from 'package:base': ...@@ -154,4 +154,4 @@ The following objects are masked from 'package:base':
> >
> proc.time() > proc.time()
user system elapsed user system elapsed
1.472 0.220 1.688 1.528 0.200 1.725
This diff is collapsed.