73 parameter ( nmax = 2 )
79 DOUBLE PRECISION A( nmax, nmax ), T( nmax, nmax ), W( nmax ),
80 $ b( nmax, nmax ), c( nmax, nmax )
92 COMMON / infoc / infot, nout, ok, lerr
93 COMMON / srnamc / srnamt
101 WRITE( nout, fmt = * )
107 a( i, j ) = 1.d0 / dble( i+j )
108 c( i, j ) = 1.d0 / dble( i+j )
109 t( i, j ) = 1.d0 / dble( i+j )
121 CALL dtpqrt( -1, 1, 0, 1, a, 1, b, 1, t, 1, w, info )
122 CALL chkxer(
'DTPQRT', infot, nout, lerr, ok )
124 CALL dtpqrt( 1, -1, 0, 1, a, 1, b, 1, t, 1, w, info )
125 CALL chkxer(
'DTPQRT', infot, nout, lerr, ok )
127 CALL dtpqrt( 0, 1, -1, 1, a, 1, b, 1, t, 1, w, info )
128 CALL chkxer(
'DTPQRT', infot, nout, lerr, ok )
130 CALL dtpqrt( 0, 1, 1, 1, a, 1, b, 1, t, 1, w, info )
131 CALL chkxer(
'DTPQRT', infot, nout, lerr, ok )
133 CALL dtpqrt( 0, 1, 0, 0, a, 1, b, 1, t, 1, w, info )
134 CALL chkxer(
'DTPQRT', infot, nout, lerr, ok )
136 CALL dtpqrt( 0, 1, 0, 2, a, 1, b, 1, t, 1, w, info )
137 CALL chkxer(
'DTPQRT', infot, nout, lerr, ok )
139 CALL dtpqrt( 1, 2, 0, 2, a, 1, b, 1, t, 1, w, info )
140 CALL chkxer(
'DTPQRT', infot, nout, lerr, ok )
142 CALL dtpqrt( 2, 1, 0, 1, a, 1, b, 1, t, 1, w, info )
143 CALL chkxer(
'DTPQRT', infot, nout, lerr, ok )
145 CALL dtpqrt( 2, 2, 1, 2, a, 2, b, 2, t, 1, w, info )
146 CALL chkxer(
'DTPQRT', infot, nout, lerr, ok )
152 CALL dtpqrt2( -1, 0, 0, a, 1, b, 1, t, 1, info )
153 CALL chkxer(
'DTPQRT2', infot, nout, lerr, ok )
155 CALL dtpqrt2( 0, -1, 0, a, 1, b, 1, t, 1, info )
156 CALL chkxer(
'DTPQRT2', infot, nout, lerr, ok )
158 CALL dtpqrt2( 0, 0, -1, a, 1, b, 1, t, 1, info )
159 CALL chkxer(
'DTPQRT2', infot, nout, lerr, ok )
161 CALL dtpqrt2( 2, 2, 0, a, 1, b, 2, t, 2, info )
162 CALL chkxer(
'DTPQRT2', infot, nout, lerr, ok )
164 CALL dtpqrt2( 2, 2, 0, a, 2, b, 1, t, 2, info )
165 CALL chkxer(
'DTPQRT2', infot, nout, lerr, ok )
167 CALL dtpqrt2( 2, 2, 0, a, 2, b, 2, t, 1, info )
168 CALL chkxer(
'DTPQRT2', infot, nout, lerr, ok )
174 CALL dtpmqrt(
'/',
'N', 0, 0, 0, 0, 1, a, 1, t, 1, b, 1, c, 1,
176 CALL chkxer(
'DTPMQRT', infot, nout, lerr, ok )
178 CALL dtpmqrt(
'L',
'/', 0, 0, 0, 0, 1, a, 1, t, 1, b, 1, c, 1,
180 CALL chkxer(
'DTPMQRT', infot, nout, lerr, ok )
182 CALL dtpmqrt(
'L',
'N', -1, 0, 0, 0, 1, a, 1, t, 1, b, 1, c, 1,
184 CALL chkxer(
'DTPMQRT', infot, nout, lerr, ok )
186 CALL dtpmqrt(
'L',
'N', 0, -1, 0, 0, 1, a, 1, t, 1, b, 1, c, 1,
188 CALL chkxer(
'DTPMQRT', infot, nout, lerr, ok )
190 CALL dtpmqrt(
'L',
'N', 0, 0, -1, 0, 1, a, 1, t, 1, b, 1, c, 1,
193 CALL dtpmqrt(
'L',
'N', 0, 0, 0, -1, 1, a, 1, t, 1, b, 1, c, 1,
195 CALL chkxer(
'DTPMQRT', infot, nout, lerr, ok )
197 CALL dtpmqrt(
'L',
'N', 0, 0, 0, 0, 0, a, 1, t, 1, b, 1, c, 1,
199 CALL chkxer(
'DTPMQRT', infot, nout, lerr, ok )
201 CALL dtpmqrt(
'R',
'N', 1, 2, 1, 1, 1, a, 1, t, 1, b, 1, c, 1,
203 CALL chkxer(
'DTPMQRT', infot, nout, lerr, ok )
205 CALL dtpmqrt(
'L',
'N', 2, 1, 1, 1, 1, a, 1, t, 1, b, 1, c, 1,
207 CALL chkxer(
'DTPMQRT', infot, nout, lerr, ok )
209 CALL dtpmqrt(
'R',
'N', 1, 1, 1, 1, 1, a, 1, t, 0, b, 1, c, 1,
211 CALL chkxer(
'DTPMQRT', infot, nout, lerr, ok )
213 CALL dtpmqrt(
'L',
'N', 1, 1, 1, 1, 1, a, 1, t, 1, b, 0, c, 1,
215 CALL chkxer(
'DTPMQRT', infot, nout, lerr, ok )
217 CALL dtpmqrt(
'L',
'N', 1, 1, 1, 1, 1, a, 1, t, 1, b, 1, c, 0,
219 CALL chkxer(
'DTPMQRT', infot, nout, lerr, ok )
223 CALL alaesm( path, ok, nout )
subroutine alaesm(PATH, OK, NOUT)
ALAESM
subroutine dtpmqrt(SIDE, TRANS, M, N, K, L, NB, V, LDV, T, LDT, A, LDA, B, LDB, WORK, INFO)
DTPMQRT
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine dtpqrt2(M, N, L, A, LDA, B, LDB, T, LDT, INFO)
DTPQRT2 computes a QR factorization of a real or complex "triangular-pentagonal" matrix, which is composed of a triangular block and a pentagonal block, using the compact WY representation for Q.
subroutine dtpqrt(M, N, L, NB, A, LDA, B, LDB, T, LDT, WORK, INFO)
DTPQRT
subroutine derrqrtp(PATH, NUNIT)
DERRQRTP