Computes a group of out-of-place scaled matrix additions using general matrices.
call mkl_somatadd_batch_strided(ordering, transa, transb, rows, cols, alpha, A, lda, stridea, beta, B, ldb, strideb, C, ldc, stridec, batch_size);
call mkl_domatadd_batch_strided(ordering, transa, transb, rows, cols, alpha, A, lda, stridea, beta, B, ldb, strideb, C, ldc, stridec, batch_size);
call mkl_comatadd_batch_strided(ordering, transa, transb, rows, cols, alpha, A, lda, stridea, beta, B, ldb, strideb, C, ldc, stridec, batch_size);
call mkl_zomatadd_batch_strided(ordering, transa, transb, rows, cols, alpha, A, lda, stridea, beta, B, ldb, strideb, C, ldc, stridec, batch_size);
The mkl_omatadd_batch_strided routines perform a series of scaled matrix additions. They are similar to the mkl_omatadd routines, but the mkl_omatadd_batch_strided routines perform matrix operations with a group of matrices.
The matrices A, B, and C are stored at a constant stride from each other in memory, given by the parameters stridea, strideb, and stridec. The operation is defined as:
for i = 0 … batch_size – 1 A is a matrix at offset i * stridea in the array a B is a matrix at offset i * strideb in the array b C is a matrix at offset i * stridec in the array c C = alpha * op(A) + beta * op(B) end for
where:
The input arrays a and b contain all the input matrices, and the single output array c contains all the output matrices. The locations of the individual matrices within the array are given by stride lengths, while the number of matrices is given by the batch_size parameter.