Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 3/22/2024
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

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,  lapack.f90

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

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

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

n

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

If uplo=’L’, 1 jin.

rows

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

cols

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

NOTE:

If there are elements outside of the triangular part of ap indicated by uplo, they are skipped and are not copied to a.

info

INTEGER. If info=0, the execution is successful. If info = -i, the i-th parameter had an illegal value.