Visible to Intel only — GUID: GUID-7CF65AD6-FB88-4D92-B11D-C2F0C28E10A6
Visible to Intel only — GUID: GUID-7CF65AD6-FB88-4D92-B11D-C2F0C28E10A6
?getrf_batch
Computes the LU factorization for 1 or more groups of general m-by-n matrices.
Syntax
call sgetrf_batch(m_array, n_array, A_array, lda_array, ipiv_array, group_size, group_count, info_array)
call dgetrf_batch(m_array, n_array, A_array, lda_array, ipiv_array, group_size, group_count, info_array)
call cgetrf_batch(m_array, n_array, A_array, lda_array, ipiv_array, group_size, group_count, info_array)
call zgetrf_batch(m_array, n_array, A_array, lda_array, ipiv_array, group_size, group_count, info_array)
Include Files
mkl.fi
Description
The ?getrf_batch routines are similar to the ?getrf counterparts, but instead compute the LU factorization for a group of general m-by-n matrices, processing one or more groups at once. Each group contains matrices with the same parameters.
The operation is defined as
i = 1 for g = 1 … group_count mg ng and ldag in m_array(g), n_array(g) and lda_array(g) for j = 1 … group_size(g) Ai, ipivi in A_array(i), ipiv_array(i) Ai := Pi * Li * Ui i = i + 1 end for end for
where Pi is a permutation matrix, Li is lower triangular with unit diagonal elements (lower trapezoidal if mg> ng) and Ui is upper triangular (upper trapezoidal if mg< ng). These routines use partial pivoting, with row interchanges.
Ai represents matrices stored at the addresses pointed to by A_array. The dimensions of each matrix is mg-by-ng, where mg and ng are the g-th elements of m_array and n_array, respectively. Similarly, ipivi represents the pivot arrays stored at addresses pointed to by ipiv_array, where the size of the pivoting arrays is min(mg, ng).
The number of entries in A_array and ipiv_array is total_batch_count, which is equal to the sum of all the entries in the array group_size.
Refer to ?getrf for a detailed description of the LU factorization of general matrices.
Input Parameters
- m_array
-
INTEGER. Array of size group_count. For the group g, mg = m_array(g) specifies the number of rows of the matrices Ai in group g.
The value of each element of m_array must be at least zero.
- n_array
-
INTEGER. Array of size group_count. For the group g, ng = n_array(g) specifies the number of columns of the matrices Ai in group g.
The value of each element of n_array must be at least zero.
- A_array
-
INTEGER*8 for Intel® 64 architecture
Array, size total_batch_count, of pointers to arrays used to store Ai matrices.
- lda_array
-
INTEGER. Array of size group_count. For group g, ldag = lda_array(g) specifies the leading dimension of the matricies Ai in group g, as declared in the calling (sub)program.
The value of ldag must be at least max(1, mg).
- group_count
-
INTEGER.
Specifies the number of groups. Must be at least 0.
- group_size
-
INTEGER.
Array of size group_count. The element group_size(g) specifies the number of matrices in group g. Each element in group_size must be at least 0.
Output Parameters
- A_array
-
Output array, overwritten by the total_batch_count LU-factored matrices. Each matrix Ai is overwritten by Li and Ui. The unit diagonal elements of Li are not stored.
- ipiv_array
-
INTEGER*8 for Intel® 64 architecture
Array, size total_batch_count, of pointers to the pivot arrays associated with the LU-factored Ai matrices.
- info_array
-
INTEGER.
Array of size total_batch_count, 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 Ui is 0. The factorization has been completed, but Ui is exactly singular. Division by 0 will occur if you use the factor Ui for solving a system of linear equations.
Related Information
Refer to ?getrf_batch_strided , which computes the LU factorization for a group of general m-by-n matrices that are allocated at a constant stride from each other in the same contiguous block of memory.