File: dlaqtr.l

package info (click to toggle)
lapack 3.1.1-1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 56,584 kB
  • ctags: 41,337
  • sloc: fortran: 513,960; perl: 8,226; makefile: 2,133; awk: 71; sh: 45
file content (113 lines) | stat: -rwxr-xr-x 2,951 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
.TH DLAQTR l "15 June 2000" "LAPACK version 3.0" ")"
.SH NAME
DLAQTR - solve the real quasi-triangular system  op(T)*p = scale*c, if LREAL = .TRUE
.SH SYNOPSIS
.TP 19
SUBROUTINE DLAQTR(
LTRAN, LREAL, N, T, LDT, B, W, SCALE, X, WORK,
INFO )
.TP 19
.ti +4
LOGICAL
LREAL, LTRAN
.TP 19
.ti +4
INTEGER
INFO, LDT, N
.TP 19
.ti +4
DOUBLE
PRECISION SCALE, W
.TP 19
.ti +4
DOUBLE
PRECISION B( * ), T( LDT, * ), WORK( * ), X( * )
.SH PURPOSE
DLAQTR solves the real quasi-triangular system op(T)*p = scale*c, if LREAL = .TRUE. 
or the complex quasi-triangular systems
.br

           op(T + iB)*(p+iq) = scale*(c+id),  if LREAL = .FALSE.

in real arithmetic, where T is upper quasi-triangular.
.br
If LREAL = .FALSE., then the first diagonal block of T must be
1 by 1, B is the specially structured matrix
.br

               B = [ b(1) b(2) ... b(n) ]
.br
                   [       w            ]
.br
                   [           w        ]
.br
                   [              .     ]
.br
                   [                 w  ]
.br

op(A) = A or A', A' denotes the conjugate transpose of
.br
matrix A.
.br

On input, X = [ c ].  On output, X = [ p ].
.br
              [ d ]                  [ q ]
.br

This subroutine is designed for the condition number estimation
in routine DTRSNA.
.br

.SH ARGUMENTS
.TP 8
LTRAN   (input) LOGICAL
On entry, LTRAN specifies the option of conjugate transpose:
= .FALSE.,    op(T+i*B) = T+i*B,
= .TRUE.,     op(T+i*B) = (T+i*B)'.
.TP 8
LREAL   (input) LOGICAL
On entry, LREAL specifies the input matrix structure:
= .FALSE.,    the input is complex
= .TRUE.,     the input is real
.TP 8
N       (input) INTEGER
On entry, N specifies the order of T+i*B. N >= 0.
.TP 8
T       (input) DOUBLE PRECISION array, dimension (LDT,N)
On entry, T contains a matrix in Schur canonical form.
If LREAL = .FALSE., then the first diagonal block of T mu
be 1 by 1.
.TP 8
LDT     (input) INTEGER
The leading dimension of the matrix T. LDT >= max(1,N).
.TP 8
B       (input) DOUBLE PRECISION array, dimension (N)
On entry, B contains the elements to form the matrix
B as described above.
If LREAL = .TRUE., B is not referenced.
.TP 8
W       (input) DOUBLE PRECISION
On entry, W is the diagonal element of the matrix B.
If LREAL = .TRUE., W is not referenced.
.TP 8
SCALE   (output) DOUBLE PRECISION
On exit, SCALE is the scale factor.
.TP 8
X       (input/output) DOUBLE PRECISION array, dimension (2*N)
On entry, X contains the right hand side of the system.
On exit, X is overwritten by the solution.
.TP 8
WORK    (workspace) DOUBLE PRECISION array, dimension (N)
.TP 8
INFO    (output) INTEGER
On exit, INFO is set to
0: successful exit.
.br
1: the some diagonal 1 by 1 block has been perturbed by
a small number SMIN to keep nonsingularity.
2: the some diagonal 2 by 2 block has been perturbed by
a small number in DLALN2 to keep nonsingularity.
NOTE: In the interests of speed, this routine does not
check the inputs for errors.