## ----style, echo = FALSE, results = 'asis', message=FALSE--------------------- BiocStyle::markdown() ## ----Setting 1, echo=TRUE----------------------------------------------------- suppressPackageStartupMessages(library("DelayedTensor")) suppressPackageStartupMessages(library("DelayedArray")) suppressPackageStartupMessages(library("HDF5Array")) suppressPackageStartupMessages(library("DelayedRandomArray")) darr1 <- RandomUnifArray(c(2,3,4)) darr2 <- RandomUnifArray(c(2,3,4)) ## ----Setting 2, echo=TRUE----------------------------------------------------- DelayedTensor::setSparse(as.sparse=FALSE) ## ----Setting 3, echo=TRUE----------------------------------------------------- DelayedTensor::setVerbose(as.verbose=FALSE) ## ----Setting 4, echo=TRUE----------------------------------------------------- setAutoBlockSize(size=1E+8) ## ----Setting 5, echo=TRUE----------------------------------------------------- # tmpdir <- paste(sample(c(letters,1:9), 10), collapse="") # dir.create(tmpdir, recursive=TRUE)) tmpdir <- tempdir() setHDF5DumpDir(tmpdir) ## ----Setting 6, echo=TRUE----------------------------------------------------- DelayedTensor::getSparse() DelayedTensor::getVerbose() getAutoBlockSize() getHDF5DumpDir() ## ----Unfold/Fold operations 1, echo=TRUE-------------------------------------- dmat1 <- DelayedTensor::unfold(darr1, row_idx=c(1,2), col_idx=3) dmat1 ## ----Unfold/Fold operations 2, echo=TRUE-------------------------------------- dmat1_to_darr1 <- DelayedTensor::fold(dmat1, row_idx=c(1,2), col_idx=3, modes=dim(darr1)) dmat1_to_darr1 identical(as.array(darr1), as.array(dmat1_to_darr1)) ## ----Unfold/Fold operations 3, echo=TRUE-------------------------------------- dmat2 <- DelayedTensor::k_unfold(darr1, m=1) dmat2_to_darr1 <- k_fold(dmat2, m=1, modes=dim(darr1)) identical(as.array(darr1), as.array(dmat2_to_darr1)) dmat3 <- DelayedTensor::k_unfold(darr1, m=2) dmat3_to_darr1 <- k_fold(dmat3, m=2, modes=dim(darr1)) identical(as.array(darr1), as.array(dmat3_to_darr1)) dmat4 <- DelayedTensor::k_unfold(darr1, m=3) dmat4_to_darr1 <- k_fold(dmat4, m=3, modes=dim(darr1)) identical(as.array(darr1), as.array(dmat4_to_darr1)) ## ----Unfold/Fold operations 4, echo=TRUE-------------------------------------- dmat8 <- DelayedTensor::cs_unfold(darr1, m=1) dmat8_to_darr1 <- DelayedTensor::cs_fold(dmat8, m=1, modes=dim(darr1)) identical(as.array(darr1), as.array(dmat8_to_darr1)) dmat9 <- DelayedTensor::cs_unfold(darr1, m=2) dmat9_to_darr1 <- DelayedTensor::cs_fold(dmat9, m=2, modes=dim(darr1)) identical(as.array(darr1), as.array(dmat9_to_darr1)) dmat10 <- DelayedTensor::cs_unfold(darr1, m=3) dmat10_to_darr1 <- DelayedTensor::cs_fold(dmat10, m=3, modes=dim(darr1)) identical(as.array(darr1), as.array(dmat10_to_darr1)) ## ----Unfold/Fold operations 5, echo=TRUE-------------------------------------- dmat11 <- DelayedTensor::matvec(darr1) dmat11_darr1 <- DelayedTensor::unmatvec(dmat11, modes=dim(darr1)) identical(as.array(darr1), as.array(dmat11_darr1)) ## ----Unfold/Fold operations 7, echo=TRUE-------------------------------------- dmatZ <- RandomUnifArray(c(10,4)) DelayedTensor::ttm(darr1, dmatZ, m=3) ## ----Unfold/Fold operations 6, echo=TRUE-------------------------------------- dmatX <- RandomUnifArray(c(10,2)) dmatY <- RandomUnifArray(c(10,3)) dlizt <- list(dmatX = dmatX, dmatY = dmatY) DelayedTensor::ttl(darr1, dlizt, ms=c(1,2)) ## ----Vectorization, echo=TRUE------------------------------------------------- DelayedTensor::vec(darr1) ## ----Norm operations 1, echo=TRUE--------------------------------------------- DelayedTensor::fnorm(darr1) ## ----Norm operations 2, echo=TRUE--------------------------------------------- DelayedTensor::innerProd(darr1, darr2) ## ----Outer Product, echo=TRUE------------------------------------------------- DelayedTensor::outerProd(darr1[,,1], darr2[,,1]) ## ----Diagonal operations 1, echo=TRUE----------------------------------------- dgdarr <- DelayedTensor::DelayedDiagonalArray(c(5,6,7), 1:5) dgdarr ## ----Diagonal operations 2, echo=TRUE----------------------------------------- DelayedTensor::diag(dgdarr) ## ----Diagonal operations 3, echo=TRUE----------------------------------------- DelayedTensor::diag(dgdarr) <- c(1111, 2222, 3333, 4444, 5555) DelayedTensor::diag(dgdarr) ## ----Mode-wise operations 1, echo=TRUE---------------------------------------- DelayedTensor::modeSum(darr1, m=1) DelayedTensor::modeSum(darr1, m=2) DelayedTensor::modeSum(darr1, m=3) ## ----Mode-wise operations 2, echo=TRUE---------------------------------------- DelayedTensor::modeMean(darr1, m=1) DelayedTensor::modeMean(darr1, m=2) DelayedTensor::modeMean(darr1, m=3) ## ----Tensor product operations 1, echo=TRUE----------------------------------- prod_h <- DelayedTensor::hadamard(darr1, darr2) dim(prod_h) ## ----Tensor product operations 2, echo=TRUE----------------------------------- prod_hl <- DelayedTensor::hadamard_list(list(darr1, darr2)) dim(prod_hl) ## ----Tensor product operations 3, echo=TRUE----------------------------------- prod_kron <- DelayedTensor::kronecker(darr1, darr2) dim(prod_kron) ## ----Tensor product operations 4, echo=TRUE----------------------------------- prod_kronl <- DelayedTensor::kronecker_list(list(darr1, darr2)) dim(prod_kronl) ## ----Tensor product operations 5, echo=TRUE----------------------------------- prod_kr <- DelayedTensor::khatri_rao(darr1[,,1], darr2[,,1]) dim(prod_kr) ## ----Tensor product operations 6, echo=TRUE----------------------------------- prod_krl <- DelayedTensor::khatri_rao_list(list(darr1[,,1], darr2[,,1])) dim(prod_krl) ## ----Utilities 1, echo=TRUE--------------------------------------------------- str(DelayedTensor::list_rep(darr1, 3)) ## ----Utilities 2, echo=TRUE--------------------------------------------------- dim(DelayedTensor::modebind_list(list(darr1, darr2), m=1)) dim(DelayedTensor::modebind_list(list(darr1, darr2), m=2)) dim(DelayedTensor::modebind_list(list(darr1, darr2), m=3)) ## ----Utilities 3, echo=TRUE--------------------------------------------------- dim(DelayedTensor::rbind_list(list(darr1[,,1], darr2[,,1]))) ## ----Utilities 4, echo=TRUE--------------------------------------------------- dim(DelayedTensor::cbind_list(list(darr1[,,1], darr2[,,1]))) ## ----sessionInfo, echo=FALSE-------------------------------------------------- sessionInfo()