big_prodMat | R Documentation |
Product between a Filebacked Big Matrix and a matrix.
big_prodMat( X, A.col, 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' x %*% y ## S4 method for signature 'matrix,FBM' x %*% y
X |
An object of class FBM. |
A.col |
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 \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, m, 10); A[] <- rnorm(length(A)) test <- big_prodMat(X, A) true <- X[] %*% A all.equal(test, true) X2 <- big_copy(X, type = "double") all.equal(X2 %*% A, true) # subsetting ind.row <- sample(n, n/2) ind.col <- sample(m, m/2) tryCatch(test2 <- big_prodMat(X, A, ind.row, ind.col), error = function(e) print(e)) # returns an error. You need to use the subset of A: test2 <- big_prodMat(X, A[ind.col, ], ind.row, ind.col) true2 <- X[ind.row, ind.col] %*% A[ind.col, ] all.equal(test2, true2)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.