Developer Reference for Intel® oneAPI Math Kernel Library for C
mkl_?tpunpack
Copies a triangular/symmetric matrix or submatrix from standard packed format to full format.
Syntax
lapack_int LAPACKE_mkl_stpunpack ( int matrix_layout , char uplo , char trans , lapack_int n , constfloat* ap , lapack_int i , lapack_int j , lapack_int rows , lapack_int cols , float* a , lapack_int lda );
lapack_int LAPACKE_mkl_dtpunpack ( int matrix_layout , char uplo , char trans , lapack_int n , constdouble* ap , lapack_int i , lapack_int j , lapack_int rows , lapack_int cols , double* a , lapack_int lda );
lapack_int LAPACKE_mkl_ctpunpack ( int matrix_layout , char uplo , char trans , lapack_int n , constMKL_Complex8* ap , lapack_int i , lapack_int j , lapack_int rows , lapack_int cols , :code:`` MKL_Complex8* a , lapack_int lda );
lapack_int LAPACKE_mkl_ztpunpack ( int matrix_layout , char uplo , char trans , lapack_int n , constMKL_Complex16* ap , lapack_int i , lapack_int j , lapack_int rows , lapack_int cols , MKL_Complex16* a , lapack_int lda );
Include Files
mkl.h
Description
The routine copies a triangular or symmetric matrix or its submatrix from standard packed format to full format.
A := op(AP_{i:i+rows-1, j:j+cols-1})
Standard packed formats include:
TP: triangular packed storage
SP: symmetric indefinite packed storage
HP: Hermitian indefinite packed storage
PP: symmetric or Hermitian positive definite packed storage
Full formats include:
GE: general
TR: triangular
SY: symmetric indefinite
HE: Hermitian indefinite
PO: symmetric or Hermitian positive definite
Input Parameters
A <datatype> placeholder, if present, is used for the C interface data types in the C interface section above. See C Interface Conventions for the C interface principal conventions and type definitions.
matrix_layout
Specifies whether matrix storage layout is row major ( LAPACK_ROW_MAJOR ) or column major ( LAPACK_COL_MAJOR ).
uplo
Specifies whether matrix AP is upper or lower triangular.
If uplo = ‘U’, AP is upper triangular.
If uplo = ‘L’: AP is lower triangular.
trans
Specifies whether or not the copied block of AP is transposed.
If trans = ‘N’, no transpose: op(AP) = AP .
If trans = ‘T’,transpose: op(AP) = AP^{T} .
If trans = ‘C’,conjugate transpose: op(AP) = AP^{H} . For real data this is the same as trans = ‘T’.
n
The order of the matrix AP ; n ≥ 0.
ap
Array, size at least max(1, n(n+1)/2). The array ap contains either the upper or the lower triangular part of the matrix AP (as specified by uplo ) in packed storage (see Matrix Storage Schemes ). It is the source for the submatrix of AP from row i to row i + rows - 1 and column j to column j + cols - 1 to be copied.
i, j
Coordinates of left upper corner of the submatrix in AP to copy.
If uplo =’U’, 1 ≤ i ≤ j ≤ n .
If uplo =’L’, 1 ≤ j ≤ i ≤ n .
rows
Number of rows to copy. 0 ≤ rows ≤ n - i + 1.
cols
Number of columns to copy. 0 ≤ cols ≤ n - j + 1.
lda
The leading dimension of array a .
trans = ‘N’ trans =’T’ or trans =’C’ matrix_layout = LAPACK_COL_MAJOR lda ≥ max(1, rows ) lda ≥ max(1, cols ) matrix_layout = LAPACK_ROW_MAJOR lda ≥ max(1, cols ) lda ≥ max(1, rows )
Output Parameters
a
Pointer to the destination matrix. On exit, array a is overwritten with a copy of the unpacked rows -by- cols submatrix of ap unpacked rows-by-columns if trans = ’N’, or unpacked columns-by-rows if trans = ’T’ or trans = ’C’.
The size of a is trans = ‘N’ trans =’T’ or trans =’C’ matrix_layout = LAPACK_COL_MAJOR lda * colslda * rowsmatrix_layout = LAPACK_ROW_MAJOR lda * rowslda * cols
Return Values
This function returns a value info . If info =0, the execution is successful. If info = - i , the i -th parameter had an illegal value.