Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
?getrfnp_batch_strided
Computes the LU factorization, without pivoting, of a group of general m-by-n matrices that are stored at a constant stride from each other in a contiguous block of memory.
Syntax
call sgetrfnp_batch_strided ( m , n , A , lda , stride_a , batch_size , info )
call dgetrfnp_batch_strided ( m , n , A , lda , stride_a , batch_size , info )
call cgetrfnp_batch_strided ( m , n , A , lda , stride_a , batch_size , info )
call zgetrfnp_batch_strided ( m , n , A , lda , stride_a , batch_size , info )
Include Files
mkl.fi
Description
The ?getrfnp_batch_strided routines are similar to the ?getrfnp counterparts, but instead compute the LU factorization for a group of general m -by- n matrices.
All matrices A have the same parameters (matrix size, leading dimension) and are stored at constant stride_a from each other in a single block of memory. The operation is defined as
for i = 0 … batch_size-1
A(i) is a matrix at offset i * stride_a from A
A(i) := L(i) * U(i)
end for
where L(i) is lower triangular with unit diagonal elements (lower trapezoidal if m > n ) and U(i) is upper triangular (upper trapezoidal if m < n ). The routine does not perform any pivoting.
Input Parameters
m
INTEGER . The number of rows in the A matrices: m ≥ 0.
n
INTEGER . The number of columns in the A(i) matrices: n ≥ 0.
- A
-
REAL for sgetrfnp_batch_strided DOUBLE PRECISION for dgetrfnp_batch_strided COMPLEX for cgetrfnp_batch_strided DOUBLE COMPLEX for zgetrfnp_batch_strided The A array of size at least stride_a * batch_size holding the A(i) matrices.
lda
INTEGER . Specifies the leading dimension of the A(i) matrices; lda ≥ max(1, m ).
- stride_a
-
INTEGER . Stride between two consecutive A(i) matrices; stride_a ≥ lda * n .
- batch_size
-
INTEGER . Number of A(i) matrices to be factorized. Must be at least 0.
Output Parameters
- A
-
Array holding the LU-factored A(i) matrices. Each matrix is overwritten by their respective L(i) and U(i) factors. The unit diagonal elements of L are not stored.
info
INTEGER. Array of size at least batch_size , which reports the factorization status for each matrix:
If info(i) = 0, the execution is successful for A(i) .
If info(i) = - j , the j -th parameter had an illegal value for A(i) .
If info(i) = j , the j -th diagonal element of U(i) is 0. The factorization has been completed, but U(i) is exactly singular. Division by 0 will occur if you use the factor U(i) for solving a system of linear equations.
After calling this routine with m = n , you can call the following:
?getrsnp_batch_strided (Solves a group of systems of linear equations, each with an LU-factored square coefficient matrix and multiple right hand sides.)
to solve systems of linear equations of the form
\[A_i X_i = B_i, \quad A_i^T X_i = B_i, \quad \text{or} \quad A_i^H X_i = B_i\]
with the group of LU-factored matrices.