File: dorgbr

package info (click to toggle)
ruby-lapack 1.8.1-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster
  • size: 28,552 kB
  • sloc: ansic: 191,612; ruby: 3,934; makefile: 8
file content (129 lines) | stat: -rwxr-xr-x 4,454 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
--- 
:name: dorgbr
:md5sum: 77e112eb51464cf117c5be590352f159
:category: :subroutine
:arguments: 
- vect: 
    :type: char
    :intent: input
- m: 
    :type: integer
    :intent: input
- n: 
    :type: integer
    :intent: input
- k: 
    :type: integer
    :intent: input
- a: 
    :type: doublereal
    :intent: input/output
    :dims: 
    - lda
    - n
- lda: 
    :type: integer
    :intent: input
- tau: 
    :type: doublereal
    :intent: input
    :dims: 
    - MIN(m,k)
- work: 
    :type: doublereal
    :intent: output
    :dims: 
    - MAX(1,lwork)
- lwork: 
    :type: integer
    :intent: input
    :option: true
    :default: MIN(m,n)
- info: 
    :type: integer
    :intent: output
:substitutions: {}

:fortran_help: "      SUBROUTINE DORGBR( VECT, M, N, K, A, LDA, TAU, WORK, LWORK, INFO )\n\n\
  *  Purpose\n\
  *  =======\n\
  *\n\
  *  DORGBR generates one of the real orthogonal matrices Q or P**T\n\
  *  determined by DGEBRD when reducing a real matrix A to bidiagonal\n\
  *  form: A = Q * B * P**T.  Q and P**T are defined as products of\n\
  *  elementary reflectors H(i) or G(i) respectively.\n\
  *\n\
  *  If VECT = 'Q', A is assumed to have been an M-by-K matrix, and Q\n\
  *  is of order M:\n\
  *  if m >= k, Q = H(1) H(2) . . . H(k) and DORGBR returns the first n\n\
  *  columns of Q, where m >= n >= k;\n\
  *  if m < k, Q = H(1) H(2) . . . H(m-1) and DORGBR returns Q as an\n\
  *  M-by-M matrix.\n\
  *\n\
  *  If VECT = 'P', A is assumed to have been a K-by-N matrix, and P**T\n\
  *  is of order N:\n\
  *  if k < n, P**T = G(k) . . . G(2) G(1) and DORGBR returns the first m\n\
  *  rows of P**T, where n >= m >= k;\n\
  *  if k >= n, P**T = G(n-1) . . . G(2) G(1) and DORGBR returns P**T as\n\
  *  an N-by-N matrix.\n\
  *\n\n\
  *  Arguments\n\
  *  =========\n\
  *\n\
  *  VECT    (input) CHARACTER*1\n\
  *          Specifies whether the matrix Q or the matrix P**T is\n\
  *          required, as defined in the transformation applied by DGEBRD:\n\
  *          = 'Q':  generate Q;\n\
  *          = 'P':  generate P**T.\n\
  *\n\
  *  M       (input) INTEGER\n\
  *          The number of rows of the matrix Q or P**T to be returned.\n\
  *          M >= 0.\n\
  *\n\
  *  N       (input) INTEGER\n\
  *          The number of columns of the matrix Q or P**T to be returned.\n\
  *          N >= 0.\n\
  *          If VECT = 'Q', M >= N >= min(M,K);\n\
  *          if VECT = 'P', N >= M >= min(N,K).\n\
  *\n\
  *  K       (input) INTEGER\n\
  *          If VECT = 'Q', the number of columns in the original M-by-K\n\
  *          matrix reduced by DGEBRD.\n\
  *          If VECT = 'P', the number of rows in the original K-by-N\n\
  *          matrix reduced by DGEBRD.\n\
  *          K >= 0.\n\
  *\n\
  *  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)\n\
  *          On entry, the vectors which define the elementary reflectors,\n\
  *          as returned by DGEBRD.\n\
  *          On exit, the M-by-N matrix Q or P**T.\n\
  *\n\
  *  LDA     (input) INTEGER\n\
  *          The leading dimension of the array A. LDA >= max(1,M).\n\
  *\n\
  *  TAU     (input) DOUBLE PRECISION array, dimension\n\
  *                                (min(M,K)) if VECT = 'Q'\n\
  *                                (min(N,K)) if VECT = 'P'\n\
  *          TAU(i) must contain the scalar factor of the elementary\n\
  *          reflector H(i) or G(i), which determines Q or P**T, as\n\
  *          returned by DGEBRD in its array argument TAUQ or TAUP.\n\
  *\n\
  *  WORK    (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))\n\
  *          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n\
  *\n\
  *  LWORK   (input) INTEGER\n\
  *          The dimension of the array WORK. LWORK >= max(1,min(M,N)).\n\
  *          For optimum performance LWORK >= min(M,N)*NB, where NB\n\
  *          is the optimal blocksize.\n\
  *\n\
  *          If LWORK = -1, then a workspace query is assumed; the routine\n\
  *          only calculates the optimal size of the WORK array, returns\n\
  *          this value as the first entry of the WORK array, and no error\n\
  *          message related to LWORK is issued by XERBLA.\n\
  *\n\
  *  INFO    (output) INTEGER\n\
  *          = 0:  successful exit\n\
  *          < 0:  if INFO = -i, the i-th argument had an illegal value\n\
  *\n\n\
  *  =====================================================================\n\
  *\n"