Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
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_?tppack

Copies a triangular/symmetric matrix or submatrix from standard full format to standard packed format.

Syntax

call mkl_stppack (uplo, trans, n, ap, i, j, rows, cols, a, lda, info )

call mkl_dtppack (uplo, trans, n, ap, i, j, rows, cols, a, lda, info )

call mkl_ctppack (uplo, trans, n, ap, i, j, rows, cols, a, lda, info )

call mkl_ztppack (uplo, trans, n, ap, i, j, rows, cols, a, lda, info )

call mkl_tppack (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 full format to packed format

APi:i+rows-1, j:j+cols-1 := op(A)

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 the matrix AP are skipped.

Input Parameters

The data types are given for the Fortran interface.

uplo

CHARACTER*1. Specifies whether the 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 A is transposed or not.

If trans = 'N', no transpose: op(A) = A.

If trans = 'T',transpose: op(A) = AT.

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

n

INTEGER. The order of the matrix AP; n ≥ 0

i, j

INTEGER. Coordinates of the left upper corner of the destination submatrix in AP.

If uplo=’U’, 1 ijn.

If uplo=’L’, 1 jin.

rows

INTEGER. Number of rows in the destination submatrix. 0 rowsn - i + 1.

cols

INTEGER. Number of columns in the destination submatrix. 0 colsn - j + 1.

a

REAL for mkl_stppack

DOUBLE PRECISION for mkl_dtppack

COMPLEX for mkl_ctppack

DOUBLE COMPLEX for mkl_ztppack

Pointer to the source submatrix.

Array a(lda, *) contains the rows-by-cols submatrix stored as unpacked rows-by-columns if trans = ’N’, or unpacked columns-by-rows if trans = ’T’ or trans = ’C’. The size of a must be at least lda*cols for trans = 'N' or lda*rows for trans='T' or trans='C'.

NOTE:

If there are elements outside of the triangular part of AP, they are skipped and are not copied from a.

lda

INTEGER. The leading dimension of the array a.

lda max(1, rows) for trans = 'N' and and lda max(1, cols) for trans='T' or trans='C'.

Output Parameters

ap

REAL for mkl_stppack

DOUBLE PRECISION for mkl_dtppack

COMPLEX for mkl_ctppack

DOUBLE COMPLEX for mkl_ztppack

Array of 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). The submatrix of ap from row i to row i + rows - 1 and column j to column j + cols - 1 is overwritten with a copy of the source matrix.

info

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