Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
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

?trmvt

Performs matrix-vector operations.

Syntax

void strmvt (const char* uplo, const MKL_INT* n, const float* t, const MKL_INT* ldt, float* x, const MKL_INT* incx, const float* y, const MKL_INT* incy, float* w, const MKL_INT* incw, const float* z, const MKL_INT* incz);

void dtrmvt (const char* uplo, const MKL_INT* n, const double* t, const MKL_INT* ldt, double* x, const MKL_INT* incx, const double* y, const MKL_INT* incy, double* w, const MKL_INT* incw, const double* z, const MKL_INT* incz);

void ctrmvt (const char* uplo, const MKL_INT* n, const MKL_Complex8* t, const MKL_INT* ldt, MKL_Complex8* x, const MKL_INT* incx, const MKL_Complex8* y, const MKL_INT* incy, MKL_Complex8* w, const MKL_INT* incw, const MKL_Complex8* z, const MKL_INT* incz);

void ztrmvt (const char* uplo, const MKL_INT* n, const MKL_Complex16* t, const MKL_INT* ldt, MKL_Complex16* x, const MKL_INT* incx, const MKL_Complex16* y, const MKL_INT* incy, MKL_Complex16* w, const MKL_INT* incw, const MKL_Complex16* z, const MKL_INT* incz);

Include Files

  • mkl_scalapack.h

Description

?trmvt performs the matrix-vector operations as follows:

strmvt and dtrmvt:   x := T' *y, and w := T *z

ctrmvt and ztrmvt:   x := conjg( T' ) *y, and w := T *z,

where x is an n element vector and T is an n-by-n upper or lower triangular matrix.

Input Parameters

uplo

On entry, uplo specifies whether the matrix is an upper or lower triangular matrix as follows:

uplo = 'U' or 'u'

A is an upper triangular matrix.

uplo = 'L' or 'l'

A is a lower triangular matrix.

Unchanged on exit.

n

On entry, n specifies the order of the matrix A. n must be at least zero.

Unchanged on exit.

t

Array of size ( ldt, n ).

Before entry with uplo = 'U' or 'u', the leading n-by-n upper triangular part of the array t must contain the upper triangular matrix and the strictly lower triangular part of t is not referenced.

Before entry with uplo = 'L' or 'l', the leading n-by-n lower triangular part of the array t must contain the lower triangular matrix and the strictly upper triangular part of t is not referenced.

ldt

On entry, lda specifies the first dimension of A as declared in the calling (sub) program. lda must be at least max( 1, n ).

Unchanged on exit.

incx

On entry, incx specifies the increment for the elements of x. incx must not be zero.

Unchanged on exit.

y

Array of size at least ( 1 + ( n - 1 )*abs( incy ) ).

Before entry, the incremented array y must contain the n element vector y.

Unchanged on exit.

incy

On entry, incy specifies the increment for the elements of y. incy must not be zero.

Unchanged on exit.

incw

On entry, incw specifies the increment for the elements of w. incw must not be zero.

Unchanged on exit.

z

Array of size at least ( 1 + ( n - 1 )*abs( incz ) ).

Before entry, the incremented array z must contain the n element vector z.

Unchanged on exit.

incz

On entry, incz specifies the increment for the elements of z. incz must not be zero.

Unchanged on exit.

Output Parameters

t

Before entry with uplo = 'U' or 'u', the leading n-by-n upper triangular part of the array t must contain the upper triangular matrix and the strictly lower triangular part of t is not referenced.

Before entry with uplo = 'L' or 'l', the leading n-by-n lower triangular part of the array t must contain the lower triangular matrix and the strictly upper triangular part of t is not referenced.

x

Array of size at least ( 1 + ( n - 1 )*abs( incx ) ).

On exit, x = T' * y.

w

Array of size at least ( 1 + ( n - 1 )*abs( incw ) ).

On exit, w = T * z.