big_cprodMat | R Documentation |
Cross-product between a Filebacked Big Matrix and a matrix.
big_cprodMat( X, A.row, ind.row = rows_along(X), ind.col = cols_along(X), ncores = 1, block.size = block_size(nrow(X), ncores), center = NULL, scale = NULL ) ## S4 method for signature 'FBM,matrix' crossprod(x, y) ## S4 method for signature 'FBM,matrix' tcrossprod(x, y) ## S4 method for signature 'matrix,FBM' crossprod(x, y) ## S4 method for signature 'matrix,FBM' tcrossprod(x, y)
X |
An object of class FBM. |
A.row |
A matrix with |
ind.row |
An optional vector of the row indices that are used. If not specified, all rows are used. Don't use negative indices. |
ind.col |
An optional vector of the column indices that are used. If not specified, all columns are used. Don't use negative indices. |
ncores |
Number of cores used. Default doesn't use parallelism. You may use nb_cores. |
block.size |
Maximum number of columns read at once. Default uses block_size. |
center |
Vector of same length of |
scale |
Vector of same length of |
x |
A 'double' FBM or a matrix. |
y |
A 'double' FBM or a matrix. |
X^T \cdot A.
Large matrix computations are made block-wise and won't be parallelized
in order to not have to reduce the size of these blocks.
Instead, you may use Microsoft R Open
or OpenBLAS in order to accelerate these block matrix computations.
You can also control the number of cores used with
bigparallelr::set_blas_ncores()
.
X <- big_attachExtdata() n <- nrow(X) m <- ncol(X) A <- matrix(0, n, 10); A[] <- rnorm(length(A)) test <- big_cprodMat(X, A) true <- crossprod(X[], A) all.equal(test, true) X2 <- big_copy(X, type = "double") all.equal(crossprod(X2, A), true) # subsetting ind.row <- sample(n, n/2) ind.col <- sample(m, m/2) tryCatch(test2 <- big_cprodMat(X, A, ind.row, ind.col), error = function(e) print(e)) # returns an error. You need to use the subset of A: test2 <- big_cprodMat(X, A[ind.row, ], ind.row, ind.col) true2 <- crossprod(X[ind.row, ind.col], A[ind.row, ]) all.equal(test2, true2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.