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

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804