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

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

Syntax

lapack_int LAPACKE_mkl_stppack (int matrix_layout, char uplo, char trans, lapack_int n, float* ap, lapack_int i, lapack_int j, lapack_int rows, lapack_int cols, const float* a, lapack_int lda);

lapack_int LAPACKE_mkl_dtppack (int matrix_layout, char uplo, char trans, lapack_int n, double* ap, lapack_int i, lapack_int j, lapack_int rows, lapack_int cols, const double* a, lapack_int lda);

lapack_int LAPACKE_mkl_ctppack (int matrix_layout, char uplo, char trans, lapack_int n, MKL_Complex8* ap, lapack_int i, lapack_int j, lapack_int rows, lapack_int cols, const MKL_Complex8* a, lapack_int lda);

lapack_int LAPACKE_mkl_ztppack (int matrix_layout, char uplo, char trans, lapack_int n, MKL_Complex16* ap, lapack_int i, lapack_int j, lapack_int rows, lapack_int cols, const MKL_Complex16* a, lapack_int lda);

Include Files

  • mkl.h

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

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.

uplo

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

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

The order of the matrix AP; n ≥ 0

i, j

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

If uplo=’U’, 1 ijn.

If uplo=’L’, 1 jin.

rows

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

cols

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

a

Pointer to the source submatrix.

Array a 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 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, they are skipped and are not copied from a.

lda

The leading dimension of the 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

ap

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.

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.