matmult_block_diagonal {lgspline} | R Documentation |
Multiply Block Diagonal Matrices in Parallel
Description
Multiplies two lists of matrices that form block diagonal structures, with optional parallel processing.
Usage
matmult_block_diagonal(
A,
B,
K,
parallel,
cl,
chunk_size,
num_chunks,
rem_chunks
)
Arguments
A |
List of matrices forming first block diagonal matrix |
B |
List of matrices forming second block diagonal matrix |
K |
Number of blocks minus 1 ( |
parallel |
Logical; whether to use parallel processing |
cl |
Cluster object for parallel processing |
chunk_size |
Number of blocks per chunk for parallel processing |
num_chunks |
Number of chunks for parallel processing |
rem_chunks |
Remaining blocks after chunking |
Details
When parallel=TRUE
, splits computation into chunks processed in parallel.
Handles remainder chunks separately. Uses matmult_block_diagonal_cpp()
for
actual multiplication.
The function expects A and B to contain corresponding blocks that can be matrix multiplied.
Value
List containing products of corresponding blocks
Examples
A <- list(matrix(1:4,2,2), matrix(5:8,2,2))
B <- list(matrix(1:4,2,2), matrix(5:8,2,2))
matmult_block_diagonal(A, B, K=1, parallel=FALSE, cl=NULL,
chunk_size=1, num_chunks=1, rem_chunks=0)