root / man / man3 / HPL_dtrsv.3
Historique | Voir | Annoter | Télécharger (3,71 ko)
1 |
.TH HPL_dtrsv 3 "September 10, 2008" "HPL 2.0" "HPL Library Functions" |
---|---|
2 |
.SH NAME |
3 |
HPL_dtrsv \- x := A^{-1} x. |
4 |
.SH SYNOPSIS |
5 |
\fB\&#include "hpl.h"\fR |
6 |
|
7 |
\fB\&void\fR |
8 |
\fB\&HPL_dtrsv(\fR |
9 |
\fB\&const enum HPL_ORDER\fR |
10 |
\fI\&ORDER\fR, |
11 |
\fB\&const enum HPL_UPLO\fR |
12 |
\fI\&UPLO\fR, |
13 |
\fB\&const enum HPL_TRANS\fR |
14 |
\fI\&TRANS\fR, |
15 |
\fB\&const enum HPL_DIAG\fR |
16 |
\fI\&DIAG\fR, |
17 |
\fB\&const int\fR |
18 |
\fI\&N\fR, |
19 |
\fB\&const double *\fR |
20 |
\fI\&A\fR, |
21 |
\fB\&const int\fR |
22 |
\fI\&LDA\fR, |
23 |
\fB\&double *\fR |
24 |
\fI\&X\fR, |
25 |
\fB\&const int\fR |
26 |
\fI\&INCX\fR |
27 |
\fB\&);\fR |
28 |
.SH DESCRIPTION |
29 |
\fB\&HPL_dtrsv\fR |
30 |
solves one of the systems of equations |
31 |
|
32 |
A * x = b, or A^T * x = b, |
33 |
|
34 |
where b and x are n-element vectors and A is an n by n non-unit, or |
35 |
unit, upper or lower triangular matrix. |
36 |
|
37 |
No test for singularity or near-singularity is included in this |
38 |
routine. Such tests must be performed before calling this routine. |
39 |
.SH ARGUMENTS |
40 |
.TP 8 |
41 |
ORDER (local input) const enum HPL_ORDER |
42 |
On entry, ORDER specifies the storage format of the operands |
43 |
as follows: |
44 |
ORDER = HplRowMajor, |
45 |
ORDER = HplColumnMajor. |
46 |
.TP 8 |
47 |
UPLO (local input) const enum HPL_UPLO |
48 |
On entry, UPLO specifies whether the upper or lower |
49 |
triangular part of the array A is to be referenced. When |
50 |
UPLO==HplUpper, only the upper triangular part of A is to be |
51 |
referenced, otherwise only the lower triangular part of A is |
52 |
to be referenced. |
53 |
.TP 8 |
54 |
TRANS (local input) const enum HPL_TRANS |
55 |
On entry, TRANS specifies the equations to be solved as |
56 |
follows: |
57 |
TRANS==HplNoTrans A * x = b, |
58 |
TRANS==HplTrans A^T * x = b. |
59 |
.TP 8 |
60 |
DIAG (local input) const enum HPL_DIAG |
61 |
On entry, DIAG specifies whether A is unit triangular or |
62 |
not. When DIAG==HplUnit, A is assumed to be unit triangular, |
63 |
and otherwise, A is not assumed to be unit triangular. |
64 |
.TP 8 |
65 |
N (local input) const int |
66 |
On entry, N specifies the order of the matrix A. N must be at |
67 |
least zero. |
68 |
.TP 8 |
69 |
A (local input) const double * |
70 |
On entry, A points to an array of size equal to or greater |
71 |
than LDA * n. Before entry with UPLO==HplUpper, the leading |
72 |
n by n upper triangular part of the array A must contain the |
73 |
upper triangular matrix and the strictly lower triangular |
74 |
part of A is not referenced. When UPLO==HplLower on entry, |
75 |
the leading n by n lower triangular part of the array A must |
76 |
contain the lower triangular matrix and the strictly upper |
77 |
triangular part of A is not referenced. |
78 |
|
79 |
Note that when DIAG==HplUnit, the diagonal elements of A |
80 |
not referenced either, but are assumed to be unity. |
81 |
.TP 8 |
82 |
LDA (local input) const int |
83 |
On entry, LDA specifies the leading dimension of A as |
84 |
declared in the calling (sub) program. LDA must be at |
85 |
least MAX(1,n). |
86 |
.TP 8 |
87 |
X (local input/output) double * |
88 |
On entry, X is an incremented array of dimension at least |
89 |
( 1 + ( n - 1 ) * abs( INCX ) ) that contains the vector x. |
90 |
Before entry, the incremented array X must contain the n |
91 |
element right-hand side vector b. On exit, X is overwritten |
92 |
with the solution vector x. |
93 |
.TP 8 |
94 |
INCX (local input) const int |
95 |
On entry, INCX specifies the increment for the elements of X. |
96 |
INCX must not be zero. |
97 |
.SH EXAMPLE |
98 |
\fI\&#include "hpl.h"\fR |
99 |
|
100 |
int main(int argc, char *argv[]) |
101 |
.br |
102 |
{ |
103 |
.br |
104 |
double a[2*2], x[2]; |
105 |
.br |
106 |
a[0] = 4.0; a[1] = 1.0; a[2] = 2.0; a[3] = 5.0; |
107 |
.br |
108 |
x[0] = 2.0; x[1] = 1.0; |
109 |
.br |
110 |
HPL_dtrsv( HplColumnMajor, HplLower, HplNoTrans, |
111 |
.br |
112 |
HplNoUnit, a, 2, x, 1 ); |
113 |
.br |
114 |
printf("x=[%f,%f]\en", x[0], x[1]); |
115 |
.br |
116 |
exit(0); return(0); |
117 |
.br |
118 |
} |
119 |
.SH SEE ALSO |
120 |
.BR HPL_dger \ (3), |
121 |
.BR HPL_dgemv \ (3). |