File: dlaqtr

package info (click to toggle)
ruby-lapack 1.7.2-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 29,304 kB
  • ctags: 3,419
  • sloc: ansic: 190,572; ruby: 3,937; makefile: 4
file content (134 lines) | stat: -rw-r--r-- 4,267 bytes parent folder | download | duplicates (5)
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
--- 
:name: dlaqtr
:md5sum: 3ddbfae11a027af905ef99908a20b4bc
:category: :subroutine
:arguments: 
- ltran: 
    :type: logical
    :intent: input
- lreal: 
    :type: logical
    :intent: input
- n: 
    :type: integer
    :intent: input
- t: 
    :type: doublereal
    :intent: input
    :dims: 
    - ldt
    - n
- ldt: 
    :type: integer
    :intent: input
- b: 
    :type: doublereal
    :intent: input
    :dims: 
    - n
- w: 
    :type: doublereal
    :intent: input
- scale: 
    :type: doublereal
    :intent: output
- x: 
    :type: doublereal
    :intent: input/output
    :dims: 
    - 2*n
- work: 
    :type: doublereal
    :intent: workspace
    :dims: 
    - n
- info: 
    :type: integer
    :intent: output
:substitutions: {}

:fortran_help: "      SUBROUTINE DLAQTR( LTRAN, LREAL, N, T, LDT, B, W, SCALE, X, WORK, INFO )\n\n\
  *  Purpose\n\
  *  =======\n\
  *\n\
  *  DLAQTR solves the real quasi-triangular system\n\
  *\n\
  *               op(T)*p = scale*c,               if LREAL = .TRUE.\n\
  *\n\
  *  or the complex quasi-triangular systems\n\
  *\n\
  *             op(T + iB)*(p+iq) = scale*(c+id),  if LREAL = .FALSE.\n\
  *\n\
  *  in real arithmetic, where T is upper quasi-triangular.\n\
  *  If LREAL = .FALSE., then the first diagonal block of T must be\n\
  *  1 by 1, B is the specially structured matrix\n\
  *\n\
  *                 B = [ b(1) b(2) ... b(n) ]\n\
  *                     [       w            ]\n\
  *                     [           w        ]\n\
  *                     [              .     ]\n\
  *                     [                 w  ]\n\
  *\n\
  *  op(A) = A or A', A' denotes the conjugate transpose of\n\
  *  matrix A.\n\
  *\n\
  *  On input, X = [ c ].  On output, X = [ p ].\n\
  *                [ d ]                  [ q ]\n\
  *\n\
  *  This subroutine is designed for the condition number estimation\n\
  *  in routine DTRSNA.\n\
  *\n\n\
  *  Arguments\n\
  *  =========\n\
  *\n\
  *  LTRAN   (input) LOGICAL\n\
  *          On entry, LTRAN specifies the option of conjugate transpose:\n\
  *             = .FALSE.,    op(T+i*B) = T+i*B,\n\
  *             = .TRUE.,     op(T+i*B) = (T+i*B)'.\n\
  *\n\
  *  LREAL   (input) LOGICAL\n\
  *          On entry, LREAL specifies the input matrix structure:\n\
  *             = .FALSE.,    the input is complex\n\
  *             = .TRUE.,     the input is real\n\
  *\n\
  *  N       (input) INTEGER\n\
  *          On entry, N specifies the order of T+i*B. N >= 0.\n\
  *\n\
  *  T       (input) DOUBLE PRECISION array, dimension (LDT,N)\n\
  *          On entry, T contains a matrix in Schur canonical form.\n\
  *          If LREAL = .FALSE., then the first diagonal block of T mu\n\
  *          be 1 by 1.\n\
  *\n\
  *  LDT     (input) INTEGER\n\
  *          The leading dimension of the matrix T. LDT >= max(1,N).\n\
  *\n\
  *  B       (input) DOUBLE PRECISION array, dimension (N)\n\
  *          On entry, B contains the elements to form the matrix\n\
  *          B as described above.\n\
  *          If LREAL = .TRUE., B is not referenced.\n\
  *\n\
  *  W       (input) DOUBLE PRECISION\n\
  *          On entry, W is the diagonal element of the matrix B.\n\
  *          If LREAL = .TRUE., W is not referenced.\n\
  *\n\
  *  SCALE   (output) DOUBLE PRECISION\n\
  *          On exit, SCALE is the scale factor.\n\
  *\n\
  *  X       (input/output) DOUBLE PRECISION array, dimension (2*N)\n\
  *          On entry, X contains the right hand side of the system.\n\
  *          On exit, X is overwritten by the solution.\n\
  *\n\
  *  WORK    (workspace) DOUBLE PRECISION array, dimension (N)\n\
  *\n\
  *  INFO    (output) INTEGER\n\
  *          On exit, INFO is set to\n\
  *             0: successful exit.\n\
  *               1: the some diagonal 1 by 1 block has been perturbed by\n\
  *                  a small number SMIN to keep nonsingularity.\n\
  *               2: the some diagonal 2 by 2 block has been perturbed by\n\
  *                  a small number in DLALN2 to keep nonsingularity.\n\
  *          NOTE: In the interests of speed, this routine does not\n\
  *                check the inputs for errors.\n\
  *\n\n\
  * =====================================================================\n\
  *\n"