Developer Reference

Contents

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
,
 const
float* 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
,
 const
double* 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
,
 const
MKL_Complex8* ap
,
lapack_int i
,
lapack_int j
,
lapack_int rows
,
lapack_int cols
,
 
MKL_Complex8* a
,
 lapack_int lda 
);
lapack_int LAPACKE_mkl_ztpunpack
(
 int matrix_layout
,
 char uplo
,
char trans
,
 lapack_int n
,
 const
MKL_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
Any elements of the copied submatrix rectangular outside of the triangular part of
AP
are skipped.
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
*
cols
lda
*
rows
matrix_layout
=
LAPACK_ROW_MAJOR
lda
*
rows
lda
*
cols
If there are elements outside of the triangular part of
ap
indicated by
uplo
, they are skipped and are not copied to
a
.
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.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.