Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of 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(APi: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

NOTE:

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) = APT.

If trans = 'C',conjugate transpose: op(AP) = APH. For real data this is the same as trans = 'T'.

n

The order of the matrix APn  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 ijn.

If uplo=’L’, 1 jin.

rows

Number of rows to copy. 0 rowsn - i + 1.

cols

Number of columns to copy. 0 colsn - 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

NOTE:

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.