Intel® oneAPI Math Kernel Library Developer Reference - Fortran
Computes the inverses of a group of LU factored matrices that are stored at a constant stride from each other in a contiguous block of memory.
call sgetri_oop_batch_strided(n, A, lda, ipiv, stride_ipiv, Ainv, ldainv, stride_ainv, batch_size, info)
call dgetri_oop_batch_strided(n, A, lda, ipiv, stride_ipiv, Ainv, ldainv, stride_ainv, batch_size, info)
call cgetri_oop_batch_strided(n, A, lda, ipiv, stride_ipiv, Ainv, ldainv, stride_ainv, batch_size, info)
call zgetri_oop_batch_strided(n, A, lda, ipiv, stride_ipiv, Ainv, ldainv, stride_ainv, batch_size, info)
mkl.fi
The ?getri_oop_batch_strided routines are similar to the ?getri counterparts, but instead compute the inverses for a group of LU factored matrices.
All matrices have the same parameters (matrix size, leading dimension) and are stored at constant stride_a from each other in a contiguous block of memory. The output arrays are stored at constant stride_ainv from each other in a contiguous block of memory. Their respective pivot arrays associated with each of the LU-factored Ai matrices are stored at constant stride_ipiv from each other.
The operation is defined as
for i = 0 … batch_size-1 Ai is a matrix at offset i * stride_a from A ipivi is an array at offset i * stride_ipiv from ipiv Ainvio is a matrix at offset i * stride_ainv from Ainv Ainvi := inv(Pi * Li* Ui) end for
where Pi is a permutation matrix, Li is lower triangular with unit diagonal elements (lower trapezoidal if m>n), and Ui is upper triangular (upper trapezoidal if m<n). The routine uses partial pivoting, with row interchanges.
INTEGER. The number of columns in the Ai matrices; n ≥ 0.
REAL for sgetri_oop_batch_strided
DOUBLE PRECISION for dgetri_oop_batch_strided
COMPLEX for cgetri_oop_batch_strided
DOUBLE COMPLEX for zgetri_oop_batch_strided
Array, size total_batch_count, of pointers to the Ai matrices.
The A array of size at least stride_a * batch_size holding the Ai matrices.
INTEGER. Specifies the leading dimension of the Ai matrices; lda ≥ n.
INTEGER. Stride between two consecutive Ai matrices; ; stride_a ≥ lda * n.
INTEGER. Specifies the leading dimension of the Ainvi matrices; ldainv ≥ n.
INTEGER. Stride between two consecutive Ainvi matrices; ; stride_ainv ≥ ldainv * n.
Stride between two consecutive pivot arrays; stride_ipiv ≥ n.
INTEGER.
Number of Ai matrices to be factorized. Must be at least 0.
Array holding the inverses Ainvi matrices. Each matrix is overwritten by their respective Li and Uifactors. The unit diagonal elements of L are not stored.
INTEGER.
Array of size batch_size, which reports the factorization status for each matrix.
If info(i) = 0, the execution is successful for Ai.
If info(i) = -j, the j-th parameter had an illegal value for Ai.
If info(i) = j, the j-th diagonal element of the factor Ui is 0, Ui is exactly singular. Division by - will occur if you use the factor Ui to solve a system of linear equations.