Nothing
library(DelayedArray)
library(Matrix)
SPAWN <- function(nr, nc, mode) {
mat <- Matrix::rsparsematrix(nr, nc, density=0.3)
if (mode!=1L) {
if (mode==0L) {
mat <- mat != 0
}
output <- list(
as.matrix(mat),
mat,
as(mat, "SparseArraySeed")
)
} else {
mat <- as.matrix(round(mat)) # necessary to ignore zeroes in SparseArraySeed coercion.
output <- list(
mat,
as(mat, "SparseArraySeed")
)
storage.mode(output[[1]]) <- "integer"
storage.mode(output[[2]]@nzdata) <- "integer"
}
# Testing a scrambled version of the SparseArraySeed.
n <- length(output)
sas <- output[[n]]
shuffle <- sample(length(sas@nzdata))
sas@nzdata <- sas@nzdata[shuffle]
sas@nzindex <- sas@nzindex[shuffle,,drop=FALSE]
output[[n + 1L]] <- sas
output
}
CONVERT <- function(x, mode) {
if (mode==0) {
storage.mode(x) <- "integer" # as logical conversion goes via integer truncation.
x <- x != 0L
} else {
storage.mode(x) <- c("integer", "double")[mode]
}
dimnames(x) <- NULL
x
}
CHECK_IDENTITY <- function(ref, mat, mode) {
ref <- CONVERT(ref, mode)
dimnames(ref) <- NULL
if (mode==0L) {
mat <- !!mat # due to the fact that logicals are integers, so non-1 values behave weirdly.
}
expect_identical(ref, mat)
}
CHECK_SPARSE_IDENTITY <- function(ref, mat, mode) {
ref <- CONVERT(ref, mode)
if (mode==0L) {
ref <- as(ref, "lgCMatrix")
expect_s4_class(mat, "lgCMatrix")
mat <- as(!!as.matrix(mat), "lgCMatrix") # for much the same reasons as above.
} else {
ref <- as(ref, "dgCMatrix")
}
expect_identical(ref, mat)
}
SLICE_COLUMNS <- function(x, order, starts, ends) {
for (o in order) {
y <- x[starts[o]:ends[o],o]
x[,o] <- vector(typeof(y), 1L)
x[starts[o]:ends[o],o] <- y
}
x
}
SLICE_ROWS <- function(x, order, starts, ends) {
for (o in order) {
y <- x[o,starts[o]:ends[o]]
x[o,] <- vector(typeof(y), 1L)
x[o,starts[o]:ends[o]] <- y
}
x
}
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.