(S|D|C|Z)TRSV

Single, double, single complex, and double complex TRSV.

Description

Solves one of the following systems of equations for triangle A:

A\mult x = b

or

\trans{A}\mult x = b

or

\herm{A}\mult x = b

BLAS Interface

void strsv(const char *UPLO, const char *TRANS, const char *DIAG, const qml_long *N,
           const float *A, const qml_long *LDA, float *X, const qml_long *INCX);

void dtrsv(const char *UPLO, const char *TRANS, const char *DIAG, const qml_long *N,
           const double *A, const qml_long *LDA, double *X, const qml_long *INCX);

void ctrsv(const char *UPLO, const char *TRANS, const char *DIAG, const qml_long *N,
           const qml_single_complex *A, const qml_long *LDA,
           qml_single_complex *X, const qml_long *INCX);

void ztrsv(const char *UPLO, const char *TRANS, const char *DIAG, const qml_long *N,
           const qml_double_complex *A, const qml_long *LDA,
           qml_double_complex *X, const qml_long *INCX);

CBLAS Interface

void cblas_strsv(const CBLAS_ORDER ORDER, const CBLAS_UPLO UPLO,
                 const CBLAS_TRANSPOSE TRANS, const CBLAS_DIAG DIAG,
                 const qml_long N, const float *A, const qml_long LDA,
                 float *X, const qml_long INCX);

void cblas_dtrsv(const CBLAS_ORDER ORDER, const CBLAS_UPLO UPLO,
                 const CBLAS_TRANSPOSE TRANS, const CBLAS_DIAG DIAG,
                 const qml_long N, const double *A, const qml_long LDA,
                 double *X, const qml_long INCX);

void cblas_ctrsv(const CBLAS_ORDER ORDER, const CBLAS_UPLO UPLO,
                 const CBLAS_TRANSPOSE TRANS, const CBLAS_DIAG DIAG,
                 const qml_long N, const qml_single_complex *A,
                 const qml_long LDA, qml_single_complex *X,
                 const qml_long INCX);

void cblas_ztrsv(const CBLAS_ORDER ORDER, const CBLAS_UPLO UPLO,
                 const CBLAS_TRANSPOSE TRANS, const CBLAS_DIAG DIAG,
                 const qml_long N, const qml_double_complex *A,
                 const qml_long LDA, qml_double_complex *X,
                 const qml_long INCX);

Arguments

UPLO Specify whether the upper or lower triangle of matrix A will be used
TRANS Specifies which equation is solved:
Non-Transpose: A\mult x = b
Transpose: \trans{A}\mult x = b
Complex Conjugate Transpose: \herm{A}\mult x = b
DIAG Whether the diagonal is unit or not
N Order of matrix A
A Input matrix A
LDA Leading dimension of matrix A, with \fvar{LDA} \ge \fvar{K}+1
X Input vector, must be at least: (\fvar{N}-1)\mult\abs{\fvar{INCX}} + 1
On output, overwritten with solution vector
INCX Distance between individual elements in X