
Multiplies two lists of matrices that form block diagonal structures, with optional parallel processing.
matmult_block_diagonal(
A,
B,
K,
parallel,
cl,
chunk_size,
num_chunks,
rem_chunks
)
List containing products of corresponding blocks
List of matrices forming first block diagonal matrix
List of matrices forming second block diagonal matrix
Number of blocks minus 1 (
Logical; whether to use parallel processing
Cluster object for parallel processing
Number of blocks per chunk for parallel processing
Number of chunks for parallel processing
Remaining blocks after chunking
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.
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)
Run the code above in your browser using DataLab