\donttest{
# Matrix-matrix subtraction
N <- 2500
M <- 400
nc <- 4
set.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 subtraction
result <- bdblockSubstract(mat1, mat2,
paral = TRUE,
threads = nc)
# Matrix-vector subtraction
vec <- rnorm(M)
result_mv <- bdblockSubstract(mat1, vec,
paral = TRUE,
threads = nc)
}bdblockSubstract
bdblockSubstract
LINEAR_ALGEBRA
1 Description
Performs efficient matrix subtraction 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.
2 Usage
bdblockSubstract(A, B, block_size = NULL, paral = NULL, byBlocks = TRUE, threads = NULL)3 Arguments
| 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. |
4 Value
Matrix or vector containing the result of A - B.
5 Details
This function implements block-based matrix subtraction algorithms optimized for cache efficiency and memory usage. Key features: - Input combinations supported: - Matrix-matrix subtraction - Matrix-vector subtraction (both left and right) - Vector-vector subtraction - 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 subtraction method based on input types and sizes. For large matrices (>2.25e+08 elements), block-based computation is used by default.
6 Examples
7 See Also
- bdblockSum for block-based matrix addition
- bdblockMult for block-based matrix multiplication