Rate This Document
Findability
Accuracy
Completeness
Readability

?trmv

That is, , , or . x is a vector including n elements, and A is an n*n unit or non-unit triangular matrix.

Interface Definition

C interface:

void cblas_strmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, const BLASINT N, const float *A, const BLASINT lda, float *X, const BLASINT incX);

void cblas_dtrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, const BLASINT N, const double *A, const BLASINT lda, double *X, const BLASINT incX);

void cblas_ctrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, const BLASINT N, const void *A, const BLASINT lda, void *X, const BLASINT incX);

void cblas_ztrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, const BLASINT N, const void *A, const BLASINT lda, void *X, const BLASINT incX);

Fortran interface:

CALL STRMV(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)

CALL DTRMV(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)

CALL CTRMV(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)

CALL ZTRMV(UPLO, TRANS, DIAG, N, A, LDA, X, INCX)

Parameters

Parameter

Type

Description

Input/Output

order

Enumeration type CBLAS_ORDER

Indicates whether the matrix is in row- or column-major order.

Input

Uplo

Enumeration type CBLAS_UPLO

Indicates whether to use the upper triangle or lower triangle of matrix A.

  • If Uplo = CblasUpper, the upper triangle of A is used.
  • If Uplo = CblasLower, the lower triangle of A is used.

Input

TransA

Enumeration type CBLAS_TRANSPOSE

Indicates whether matrix A is a conventional matrix, a transpose matrix, or a conjugate matrix.

  • If trans = CblasNoTrans, then .
  • If trans = CblasTrans, then .
  • If trans = CblasConjTrans, then .

Input

Diag

Enumeration type CBLAS_DIAG

Indicates whether A is a unit trigonometric matrix.

  • If Diag = CblasUnit, A is a unit triangular matrix.
  • If Diag = CblasNonUnit, A is not a unit triangular matrix.

Input

N

Integer

Order of the matrix A. N must be greater than or equal to 0.

Input

A

  • Single-precision floating-point type for strmv
  • Double-precision floating-point type for dtrmv
  • Single-precision complex type for ctrmv
  • Double-precision complex type for ztrmv

Triangular matrix. The minimum matrix size is lda*N.

Input

lda

Integer

Leading dimension of matrix A. The value of lda must be greater than or equal to max(1, N).

Input

X

  • Single-precision floating-point type for strmv
  • Double-precision floating-point type for dtrmv
  • Single-precision complex type for ctrmv
  • Double-precision complex type for ztrmv

Vector X. The vector scale is at least (1+(N-1)*abs(incX)).

Input/Output

incX

Integer

Increment for elements in X. The value cannot be 0.

Input

Dependency

#include "kblas.h"

Examples

C interface:

    int  n = 4, incx = 1; 
    float x[4] = {4.0, 3.0, 2.0, 1.0}; 
    /** 
    *          |  .   2.0  1.0  1.0 | 
    *   A   =  |  .    .   1.0  2.0 | 
    *          |  .    .    .   1.0 | 
    *          |  .    .    .    .  | 
    **/ 
    float a[16] = {0, 0, 0, 0, 
                   2.0, 0, 0, 0, 
                   1.0, 1.0, 0, 0, 
                   1.0, 2.0, 1.0, 0}; 
 
    cblas_strmv(CblasColMajor, CblasUpper, CblasTrans, CblasUnit, n, a, 4, x, incx); 
    /** 
    * Output x = |4.0, 11.0, 9.0, 13.0| 
    **/

Fortran interface:

      INTEGER :: N=4, INCX=1 
      REAL(4) :: X(4), AP(16) 
      DATA X/4.0, 3.0, 2.0, 1.0/ 
      DATA A/0, 0, 0, 0, 
     $       2.0, 0, 0, 0, 
     $       1.0, 1.0, 0, 0, 
     $       1.0, 2.0, 1.0, 0/ 
      EXTERNAL STRMV 
      CALL STRMV('U', 'T', 'U', N, A, 4, X, INCX) 
 
*     Output X = |4.0, 11.0, 9.0, 13.0|