Developer Reference

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

p?trsv

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

Syntax

void pstrsv
(
const char
*uplo
,
const char
*trans
,
const char
*diag
,
const MKL_INT
*n
,
const float
*a
,
const MKL_INT
*ia
,
const MKL_INT
*ja
,
const MKL_INT
*desca
,
float
*x
,
const MKL_INT
*ix
,
const MKL_INT
*jx
,
const MKL_INT
*descx
,
const MKL_INT
*incx
);
void pdtrsv
(
const char
*uplo
,
const char
*trans
,
const char
*diag
,
const MKL_INT
*n
,
const double
*a
,
const MKL_INT
*ia
,
const MKL_INT
*ja
,
const MKL_INT
*desca
,
double
*x
,
const MKL_INT
*ix
,
const MKL_INT
*jx
,
const MKL_INT
*descx
,
const MKL_INT
*incx
);
void pctrsv
(
const char
*uplo
,
const char
*trans
,
const char
*diag
,
const MKL_INT
*n
,
const MKL_Complex8
*a
,
const MKL_INT
*ia
,
const MKL_INT
*ja
,
const MKL_INT
*desca
,
MKL_Complex8
*x
,
const MKL_INT
*ix
,
const MKL_INT
*jx
,
const MKL_INT
*descx
,
const MKL_INT
*incx
);
void pztrsv
(
const char
*uplo
,
const char
*trans
,
const char
*diag
,
const MKL_INT
*n
,
const MKL_Complex16
*a
,
const MKL_INT
*ia
,
const MKL_INT
*ja
,
const MKL_INT
*desca
,
MKL_Complex16
*x
,
const MKL_INT
*ix
,
const MKL_INT
*jx
,
const MKL_INT
*descx
,
const MKL_INT
*incx
);
Include Files
  • mkl_pblas.h
Description
The
p?trsv
routines solve one of the systems of equations:
sub(
A
)*sub(
x
) =
b
, or
sub(
A
)'*sub(
x
) =
b
, or
conjg(sub(
A
)')*sub(
x
) =
b
,
where:
sub(
A
)
is a
n
-by-
n
unit, or non-unit, upper or lower triangular distributed matrix,
sub(
A
) =
A
(
ia
:
ia
+
n
-1,
ja
:
ja
+
n
-1)
,
b
and
sub(
x
)
are
n
-element distributed vectors,
sub(
x
)
denotes
X
(
ix
,
jx
:
jx
+
n
-1)
if
incx
=
m_x
, and
X
(
ix
:
ix
+
n
-1,
jx
)
if
incx
= 1,
.
The routine does not test for singularity or near-singularity. Such tests must be performed before calling this routine.
Input Parameters
uplo
(global) Specifies whether the distributed matrix
sub(
A
)
is upper or lower triangular:
if
uplo
=
'U'
or
'u'
, then the matrix is upper triangular;
if
uplo
=
'L'
or
'l'
, then the matrix is low triangular.
trans
(global) Specifies the form of the system of equations:
if
transa
= '
N
'
or
'
n
'
, then
sub(
A
)*sub(
x
) =
b
;
if
transa
= '
T
'
or
'
t
'
, then
sub(
A
)'*sub(
x
) =
b
;
if
transa
= '
C
'
or
'
c
'
, then
conjg(sub(
A
)')*sub(
x
) =
b
.
diag
(global) Specifies whether the matrix
sub(
A
)
is unit triangular:
if
diag
=
'U'
or
'u'
then the matrix is unit triangular;
if
diag
=
'N'
or
'n'
, then the matrix is not unit triangular.
n
(global) Specifies the order of the distributed matrix
sub(
A
)
,
n
0.
a
(local)
Array, size at least
(
lld_a
, LOCq(1,
ja
+
n
-1))
.
Before entry with
uplo
=
'U'
or
'u'
, this array contains the local entries corresponding to the entries of the upper triangular distributed matrix
sub(
A
)
, and the local entries corresponding to the entries of the strictly lower triangular part of the distributed matrix
sub(
A
)
is not referenced.
Before entry with
uplo
=
'L'
or
'l'
, this array contains the local entries corresponding to the entries of the lower triangular distributed matrix
sub(
A
)
, and the local entries corresponding to the entries of the strictly upper triangular part of the distributed matrix
sub(
A
)
is not referenced .
When
diag
=
'U'
or
'u'
, the local entries corresponding to the diagonal elements of the submatrix
sub(
A
)
are not referenced either, but are assumed to be unity.
ia
,
ja
(global) The row and column indices in the distributed matrix
A
indicating the first row and the first column of the submatrix
sub(
A
)
, respectively.
desca
(global and local) array of dimension 9. The array descriptor of the distributed matrix
A
.
x
(local)
Array, size at least
(
jx
-1)*
m_x
+
ix
+(
n
-1)*abs(
incx
))
.
This array contains the entries of the distributed vector
sub(
x
)
. Before entry,
sub(
x
)
must contain the
n
-element right-hand side distributed vector
b
.
ix
,
jx
(global) The row and column indices in the distributed matrix
X
indicating the first row and the first column of the submatrix
sub(
x
)
, respectively.
descx
(global and local) array of dimension 9. The array descriptor of the distributed matrix
X
.
incx
(global) Specifies the increment for the elements of
sub(
x
)
. Only two values are supported, namely 1 and
m_x
.
incx
must not be zero.
Output Parameters
x
Overwritten with the solution vector.

Product and Performance Information

1

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