Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
mkl_?tpunpack
Copies a triangular/symmetric matrix or submatrix from standard packed format to full format.
Syntax
call mkl_stpunpack ( uplo , trans , n , ap , i , j , rows , cols , a , lda , info )
call mkl_dtpunpack ( uplo , trans , n , ap , i , j , rows , cols , a , lda , info )
call mkl_ctpunpack ( uplo , trans , n , ap , i , j , rows , cols , a , lda , info )
call mkl_ztpunpack ( uplo , trans , n , ap , i , j , rows , cols , a , lda , info )
call mkl_tpunpack ( ap , i , j , rows , cols , a [ , uplo ] [ , trans ] [ , info ] )
Include Files
mkl.fi, mkl_lapack.f90
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
The data types are given for the Fortran interface.
uplo
CHARACTER*1. Specifies whether matrix AP is upper or lower triangular.
If uplo = ‘U’, AP is upper triangular.
If uplo = ‘L’: AP is lower triangular.
trans
CHARACTER*1. 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
INTEGER. The order of the matrix AP ; n ≥ 0.
ap
REAL for mkl_stpunpack
DOUBLE PRECISION for mkl_dtpunpack
COMPLEX for mkl_ctpunpack
DOUBLE COMPLEX for mkl_ztpunpack
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
INTEGER. 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
INTEGER. Number of rows to copy. 0 ≤ rows ≤ n - i + 1.
cols
INTEGER. Number of columns to copy. 0 ≤ cols ≤ n - j + 1.
lda
INTEGER. The leading dimension of array a .
lda ≥ max(1, rows ) for trans = ‘N’ and and lda ≥ max(1, cols ) for trans =’T’ or trans =’C’.
Output Parameters
a
REAL for mkl_stpunpack
DOUBLE PRECISION for mkl_dtpunpack
COMPLEX for mkl_ctpunpack
DOUBLE COMPLEX for mkl_ztpunpack
Pointer to the destination matrix. The size of a must be at least lda * cols for trans = ‘N’ or lda * rows for trans =’T’ or trans =’C’. 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’.
info
INTEGER.
If info =0, the execution is successful. If info = - i , the i -th parameter had an illegal value.
Return Values
No return value, info is an Output Parameter.