Nothing
# HEADER ####################################################
# This is file spam/tests/testthat/test-eigen.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 ################################################
rm(list = ls())
source("helper.R")
context("test-eigen.R")
options(spam.force64 = FALSE)
nEV <- 50
prec2020 <- precmat.GMRFreglat(20,20)
dn_gmrf <- spam::precmat.GMRFreglat(20, 20, c(.4,.3,.2,.1),'m2p4')
dn_gmrf[1:10, 1] <- 100
test_that("check format of return", {
spameigen <- eigen.spam(prec2020, nev = nEV, control = list(spamflag = TRUE, mode = 'LM'), only.values = FALSE)
nsys_spameigen <- eigen.spam(dn_gmrf, nev = nEV, control = list(spamflag = TRUE, mode = 'LM'), only.values = FALSE)
expect_true(is(spameigen, "list"))
expect_true(is(spameigen$values, "numeric"))
expect_true(is(spameigen$vectors, "matrix"))
expect_true(is(nsys_spameigen, "list"))
expect_true(is(nsys_spameigen$values, "complex"))
expect_true(is(nsys_spameigen$vectors, "matrix"))
})
test_that("eigenvalues", {
baseeigen <- eigen(prec2020, only.values = TRUE)
spameigenL <- eigen.spam(prec2020, nev = nEV, control = list(spamflag = T, mode = 'LM'), only.values = TRUE)
spameigenS <- eigen.spam(prec2020, nev = nEV, control = list(spamflag = T, mode = 'SM'), only.values = TRUE)
spamtest_eq(head(baseeigen$values, nEV), head(spameigenL$values, nEV), relative = FALSE)
spamtest_eq(tail(baseeigen$values, nEV), tail(spameigenS$values, nEV), relative = FALSE)
nsys_baseeigen <- eigen(dn_gmrf, only.values = TRUE)
nsys_spameigenL <- eigen.spam(dn_gmrf, nev = nEV, control = list(spamflag = T, mode = 'LR', ncv = 400), only.values = TRUE, symmetric = FALSE)
nsys_spameigenS <- eigen.spam(dn_gmrf, nev = nEV, control = list(spamflag = T, mode = 'SR'), only.values = TRUE)
# spamtest_eq(head(nsys_baseeigen$values, nEV), head(nsys_spameigenL$values, nEV), relative = FALSE)
# spamtest_eq(tail(nsys_baseeigen$values, nEV), tail(nsys_spameigenS$values, nEV), relative = TRUE)
})
test_that("eigenvectors", {
baseeigen <- eigen(prec2020, only.values = FALSE)
spameigenL <- eigen.spam(prec2020, nev = nEV, control = list(spamflag = T, mode = 'LM'), only.values = FALSE)
spameigenS <- eigen.spam(prec2020, nev = nEV, control = list(spamflag = T, mode = 'SM'), only.values = FALSE)
for (i in 1:nEV) {spamtest_eq(sqrt(sum(spameigenL$vectors[, i]^2)), 1) }
for (i in 1:nEV) {spamtest_eq(sqrt(sum(spameigenS$vectors[, i]^2)), 1) }
for (i in 1:nEV) {spamtest_eq(as.matrix(prec2020)%*%spameigenL$vectors[, i], spameigenL$vectors[, i]*spameigenL$values[i]) }
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.