Performs efficient matrix addition 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.
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.
4 Value
Matrix or vector containing the result of A + B.
5 Details
This function implements block-based matrix addition algorithms optimized for cache efficiency and memory usage. Key features: - Input combinations supported: - Matrix-matrix addition - Matrix-vector addition (both left and right) - Vector-vector addition - Performance optimizations: - Block-based computation for cache efficiency - Parallel processing for large matrices - Automatic method selection based on input size - Memory-efficient implementation
The function automatically selects the appropriate addition method based on input types and sizes. For large matrices (>2.25e+08 elements), block-based computation is used by default.
---title: "bdblockSum"subtitle: "bdblockSum"---<span class="category-badge blockwise_ops">BLOCKWISE_OPS</span>## DescriptionPerforms efficient matrix addition using block-based algorithms. The functionsupports various input combinations (matrix-matrix, matrix-vector, vector-vector)and provides options for parallel processing and block-based computation.## Usage```rbdblockSum(A, B, block_size =NULL, paral =NULL, byBlocks =TRUE, threads =NULL)```## Arguments::: {.param-table}| Parameter | Description ||-----------|-------------||`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. |:::## Value::: {.return-value}Matrix or vector containing the result of A + B.:::## DetailsThis function implements block-based matrix addition algorithms optimizedfor cache efficiency and memory usage. Key features:- Input combinations supported: - Matrix-matrix addition - Matrix-vector addition (both left and right) - Vector-vector addition- Performance optimizations: - Block-based computation for cache efficiency - Parallel processing for large matrices - Automatic method selection based on input size - Memory-efficient implementationThe function automatically selects the appropriate addition method basedon input types and sizes. For large matrices (>2.25e+08 elements), block-basedcomputation is used by default.## Examples```{r}#| eval: false#| code-fold: showlibrary(BigDataStatMeth)# Matrix-matrix additionN <-2500M <-400nc <-4set.seed(555)mat1 <-matrix(rnorm(N*M, mean=0, sd=10), N, M)mat2 <-matrix(rnorm(N*M, mean=0, sd=10), N, M)# Parallel block additionresult <-bdblockSum(mat1, mat2,paral =TRUE,threads = nc)# Matrix-vector additionvec <-rnorm(M)result_mv <-bdblockSum(mat1, vec,paral =TRUE,threads = nc)```## See Also::: {.see-also}- [bdblockSubstract](bdblockSubstract.html) for block-based matrix subtraction- [bdblockMult](bdblockMult.html) for block-based matrix multiplication:::