# SCM Repository

[matrix] View of /pkg/tests/group-methods.R
 [matrix] / pkg / tests / group-methods.R

# View of /pkg/tests/group-methods.R

Wed Sep 28 19:34:31 2005 UTC (13 years, 10 months ago) by maechler
File size: 1015 byte(s)
`more "Compare" and some "!" methods; expm() for sparse; updated tests`
```### Testing the group methods

library(Matrix)
set.seed(2001)

mm <- Matrix(rnorm(50 * 7), nc = 7)
xpx <- crossprod(mm)# -> "factors" in mm !
round(xpx, 3) # works via "Math2"

y <- rnorm(nrow(mm))
xpy <- crossprod(mm, y)
res <- solve(xpx, xpy)
signif(res, 4) # 7 x 1 Matrix

## exp(): component wise
signif(dd <- (expm(xpx) - exp(xpx)) / 1e34, 3)# 7 x 7

stopifnot(validObject(xpx),
validObject(xpy),
validObject(dd))

## "Math" also, for log() and [l]gamma() which need special treatment
stopifnot(identical(exp(res)@x, exp(res@x)),
identical(log(abs(res))@x, log(abs((res@x)))),
identical(lgamma(res)@x, lgamma(res@x)))

###--- sparse matrices ---------

m <- Matrix(c(0,0,2:0), 3,5)
(mC <- as(m, "dgCMatrix"))
sm <- sin(mC)
stopifnot(class(sm) == class(mC),
dim(sm) == dim(mC),
class(0 + 100*mC) == class(mC),
all.equal(0.1 * ((0 + 100*mC)/10), mC),
all.equal(sqrt(mC ^ 2), mC))

cat('Time elapsed: ', proc.time(),'\n') # "stats"
```