Visible to Intel only — GUID: GUID-6D0F0092-4508-4147-8686-B09910C5DCB1
Visible to Intel only — GUID: GUID-6D0F0092-4508-4147-8686-B09910C5DCB1
?getri_oop_batch_strided
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.
Syntax
call sgetri_oop_batch_strided(n, A, lda, stride_a, ipiv, stride_ipiv, Ainv, ldainv, stride_ainv, batch_size, info)
call dgetri_oop_batch_strided(n, A, lda, stride_a, ipiv, stride_ipiv, Ainv, ldainv, stride_ainv, batch_size, info)
call cgetri_oop_batch_strided(n, A, lda, stride_a, ipiv, stride_ipiv, Ainv, ldainv, stride_ainv, batch_size, info)
call zgetri_oop_batch_strided(n, A, lda, stride_a, ipiv, stride_ipiv, Ainv, ldainv, stride_ainv, batch_size, info)
Include Files
mkl.fi
Description
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 Ainvi 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.
Input Parameters
- n
-
INTEGER. The number of columns in the Ai matrices; n ≥ 0.
- A
-
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
The A array of size at least stride_a * batch_size holding the Ai matrices.
- lda
-
INTEGER. Specifies the leading dimension of the Ai matrices; lda ≥ n.
- stride_a
-
INTEGER. Stride between two consecutive Ai matrices; ; stride_a ≥ lda * n.
- ipiv
- INTEGER.
Array of size at least stride_ipiv * batch_size, holding the pivot array associated with each of the LU-factored Ai matrices, as returned by ?getrf_batch_strided.
- stride_ipiv
- INTEGER.
Stride between two consecutive pivot arrays; stride_ipiv ≥ n.
- ldainv
-
INTEGER. Specifies the leading dimension of the Ainvi matrices; ldainv ≥ n.
- stride_ainv
-
INTEGER. Stride between two consecutive Ainvi matrices; ; stride_ainv ≥ ldainv * n.
- batch_size
-
INTEGER.
Number of Ai matrices to be factorized. Must be at least 0.
Output Parameters
- Ainv
-
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.
- info
-
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.