| bdblockMult | R Documentation |
Performs efficient matrix multiplication using block-based algorithms. The function supports various input combinations (matrix-matrix, matrix-vector, vector-vector) and provides options for parallel processing and block-based computation.
bdblockMult(
A,
B,
block_size = NULL,
paral = NULL,
byBlocks = TRUE,
threads = NULL
)
A |
Matrix or vector. First input operand. |
B |
Matrix or vector. Second input operand. |
block_size |
Integer. Block size for computation. If NULL, uses maximum allowed block size. |
paral |
Logical. If TRUE, enables parallel computation. Default is FALSE. |
byBlocks |
Logical. If TRUE (default), forces block-based computation for large matrices. Can be set to FALSE to disable blocking. |
threads |
Integer. Number of threads for parallel computation. If NULL, uses half of available threads or maximum allowed threads. |
This function implements block-based matrix multiplication algorithms optimized for cache efficiency and memory usage. Key features:
Input combinations supported:
Matrix-matrix multiplication
Matrix-vector multiplication (both left and right)
Vector-vector multiplication
Performance optimizations:
Block-based computation for cache efficiency
Parallel processing for large matrices
Automatic block size selection
Memory-efficient implementation
The function automatically selects the appropriate multiplication method based on input types and sizes. For large matrices (>2.25e+08 elements), block-based computation is used by default.
Matrix or vector containing the result of A * B.
Golub, G. H., & Van Loan, C. F. (2013). Matrix Computations, 4th Edition. Johns Hopkins University Press.
Kumar, V. et al. (1994). Introduction to Parallel Computing: Design and Analysis of Algorithms. Benjamin/Cummings Publishing Company.
bdblockSum for block-based matrix addition
bdblockSubstract for block-based matrix subtraction
# Matrix-matrix multiplication
N <- 2500
M <- 400
nc <- 4
set.seed(555)
mat <- matrix(rnorm(N*M, mean=0, sd=10), N, M)
# Parallel block multiplication
result <- bdblockMult(mat, mat,
paral = TRUE,
threads = nc)
# Matrix-vector multiplication
vec <- rnorm(M)
result_mv <- bdblockMult(mat, vec,
paral = TRUE,
threads = nc)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.