Developer Reference

  • 2021.1
  • 12/04/2020
  • Public Content
Contents

cblas_?trsv

Solves a system of linear equations whose coefficients are in a triangular matrix.

Syntax

void
cblas_strsv
(
const
CBLAS_LAYOUT
Layout
,
const
CBLAS_UPLO
uplo
,
const
CBLAS_TRANSPOSE
trans
,
const
CBLAS_DIAG
diag
,
const
MKL_INT
n
,
const
float
*a
,
const
MKL_INT
lda
,
float
*x
,
const
MKL_INT
incx
);
void
cblas_dtrsv
(
const
CBLAS_LAYOUT
Layout
,
const
CBLAS_UPLO
uplo
,
const
CBLAS_TRANSPOSE
trans
,
const
CBLAS_DIAG
diag
,
const
MKL_INT
n
,
const
double
*a
,
const
MKL_INT
lda
,
double
*x
,
const
MKL_INT
incx
);
void
cblas_ctrsv
(
const
CBLAS_LAYOUT
Layout
,
const
CBLAS_UPLO
uplo
,
const
CBLAS_TRANSPOSE
trans
,
const
CBLAS_DIAG
diag
,
const
MKL_INT
n
,
const
void
*a
,
const
MKL_INT
lda
,
void
*x
,
const
MKL_INT
incx
);
void
cblas_ztrsv
(
const
CBLAS_LAYOUT
Layout
,
const
CBLAS_UPLO
uplo
,
const
CBLAS_TRANSPOSE
trans
,
const
CBLAS_DIAG
diag
,
const
MKL_INT
n
,
const
void
*a
,
const
MKL_INT
lda
,
void
*x
,
const
MKL_INT
incx
);
Include Files
  • mkl.h
Description
The
?trsv
routines solve one of the systems of equations:
A
*
x
=
b
, or
A
'*
x
=
b
, or
conjg(
A
')*
x
=
b
,
where:
b
and
x
are
n
-element vectors,
A
is an
n
-by-
n
unit, or non-unit, upper or lower triangular matrix.
The routine does not test for singularity or near-singularity.
Such tests must be performed before calling this routine.
Input Parameters
Layout
Specifies whether two-dimensional array storage is row-major (
CblasRowMajor
) or column-major (
CblasColMajor
).
uplo
Specifies whether the matrix
A
is upper or lower triangular:
uplo
=
CblasUpper
if
uplo
=
CblasLower
, then the matrix is low triangular.
trans
Specifies the systems of equations:
if
trans
=
CblasNoTrans
, then
A
*
x
=
b
;
if
trans
=
CblasTrans
, then
A
'*
x
=
b
;
if
trans
=
CblasConjTrans
, then
oconjg(
A
')*
x
=
b
.
diag
Specifies whether the matrix
A
is unit triangular:
if
diag
=
CblasUnit
then the matrix is unit triangular;
if
diag
=
CblasNonUnit
, then the matrix is not unit triangular.
n
Specifies the order of the matrix
A
. The value of
n
must be at least zero.
a
Array, size
lda
*
n
. Before entry with
uplo
=
CblasUpper
, the leading
n
-by-
n
upper triangular part of the array
a
must contain the upper triangular matrix and the strictly lower triangular part of
a
is not referenced. Before entry with
uplo
=
CblasLower
, the leading
n
-by-
n
lower triangular part of the array
a
must contain the lower triangular matrix and the strictly upper triangular part of
a
is not referenced.
When
diag
=
CblasUnit
, the diagonal elements of
a
are not referenced either, but are assumed to be unity.
lda
Specifies the leading dimension of
a
as declared in the calling (sub)program. The value of
lda
must be at least
max(1,
n
)
.
x
Array, size at least
(1 + (
n
- 1)*abs(
incx
))
. Before entry, the incremented array
x
must contain the
n
-element right-hand side vector
b
.
incx
Specifies the increment for the elements of
x
.
The value of
incx
must not be zero.
Output Parameters
x
Overwritten with the solution vector
x
.

Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.