![]() |
LAPACK
3.4.1
LAPACK: Linear Algebra PACKage
|
00001 *> \brief \b DERRPOX 00002 * 00003 * =========== DOCUMENTATION =========== 00004 * 00005 * Online html documentation available at 00006 * http://www.netlib.org/lapack/explore-html/ 00007 * 00008 * Definition: 00009 * =========== 00010 * 00011 * SUBROUTINE DERRPO( PATH, NUNIT ) 00012 * 00013 * .. Scalar Arguments .. 00014 * CHARACTER*3 PATH 00015 * INTEGER NUNIT 00016 * .. 00017 * 00018 * 00019 *> \par Purpose: 00020 * ============= 00021 *> 00022 *> \verbatim 00023 *> 00024 *> DERRPO tests the error exits for the DOUBLE PRECISION routines 00025 *> for symmetric positive definite matrices. 00026 *> 00027 *> Note that this file is used only when the XBLAS are available, 00028 *> otherwise derrpo.f defines this subroutine. 00029 *> \endverbatim 00030 * 00031 * Arguments: 00032 * ========== 00033 * 00034 *> \param[in] PATH 00035 *> \verbatim 00036 *> PATH is CHARACTER*3 00037 *> The LAPACK path name for the routines to be tested. 00038 *> \endverbatim 00039 *> 00040 *> \param[in] NUNIT 00041 *> \verbatim 00042 *> NUNIT is INTEGER 00043 *> The unit number for output. 00044 *> \endverbatim 00045 * 00046 * Authors: 00047 * ======== 00048 * 00049 *> \author Univ. of Tennessee 00050 *> \author Univ. of California Berkeley 00051 *> \author Univ. of Colorado Denver 00052 *> \author NAG Ltd. 00053 * 00054 *> \date November 2011 00055 * 00056 *> \ingroup double_lin 00057 * 00058 * ===================================================================== 00059 SUBROUTINE DERRPO( PATH, NUNIT ) 00060 * 00061 * -- LAPACK test routine (version 3.4.0) -- 00062 * -- LAPACK is a software package provided by Univ. of Tennessee, -- 00063 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 00064 * November 2011 00065 * 00066 * .. Scalar Arguments .. 00067 CHARACTER*3 PATH 00068 INTEGER NUNIT 00069 * .. 00070 * 00071 * ===================================================================== 00072 * 00073 * .. Parameters .. 00074 INTEGER NMAX 00075 PARAMETER ( NMAX = 4 ) 00076 * .. 00077 * .. Local Scalars .. 00078 CHARACTER EQ 00079 CHARACTER*2 C2 00080 INTEGER I, INFO, J, N_ERR_BNDS, NPARAMS 00081 DOUBLE PRECISION ANRM, RCOND, BERR 00082 * .. 00083 * .. Local Arrays .. 00084 INTEGER IW( NMAX ) 00085 DOUBLE PRECISION A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ), 00086 $ R1( NMAX ), R2( NMAX ), W( 3*NMAX ), X( NMAX ), 00087 $ S( NMAX ), ERR_BNDS_N( NMAX, 3 ), 00088 $ ERR_BNDS_C( NMAX, 3), PARAMS( 1 ) 00089 * .. 00090 * .. External Functions .. 00091 LOGICAL LSAMEN 00092 EXTERNAL LSAMEN 00093 * .. 00094 * .. External Subroutines .. 00095 EXTERNAL ALAESM, CHKXER, DPBCON, DPBEQU, DPBRFS, DPBTF2, 00096 $ DPBTRF, DPBTRS, DPOCON, DPOEQU, DPORFS, DPOTF2, 00097 $ DPOTRF, DPOTRI, DPOTRS, DPPCON, DPPEQU, DPPRFS, 00098 $ DPPTRF, DPPTRI, DPPTRS, DPOEQUB, DPORFSX 00099 * .. 00100 * .. Scalars in Common .. 00101 LOGICAL LERR, OK 00102 CHARACTER*32 SRNAMT 00103 INTEGER INFOT, NOUT 00104 * .. 00105 * .. Common blocks .. 00106 COMMON / INFOC / INFOT, NOUT, OK, LERR 00107 COMMON / SRNAMC / SRNAMT 00108 * .. 00109 * .. Intrinsic Functions .. 00110 INTRINSIC DBLE 00111 * .. 00112 * .. Executable Statements .. 00113 * 00114 NOUT = NUNIT 00115 WRITE( NOUT, FMT = * ) 00116 C2 = PATH( 2: 3 ) 00117 * 00118 * Set the variables to innocuous values. 00119 * 00120 DO 20 J = 1, NMAX 00121 DO 10 I = 1, NMAX 00122 A( I, J ) = 1.D0 / DBLE( I+J ) 00123 AF( I, J ) = 1.D0 / DBLE( I+J ) 00124 10 CONTINUE 00125 B( J ) = 0.D0 00126 R1( J ) = 0.D0 00127 R2( J ) = 0.D0 00128 W( J ) = 0.D0 00129 X( J ) = 0.D0 00130 S( J ) = 0.D0 00131 IW( J ) = J 00132 20 CONTINUE 00133 OK = .TRUE. 00134 * 00135 IF( LSAMEN( 2, C2, 'PO' ) ) THEN 00136 * 00137 * Test error exits of the routines that use the Cholesky 00138 * decomposition of a symmetric positive definite matrix. 00139 * 00140 * DPOTRF 00141 * 00142 SRNAMT = 'DPOTRF' 00143 INFOT = 1 00144 CALL DPOTRF( '/', 0, A, 1, INFO ) 00145 CALL CHKXER( 'DPOTRF', INFOT, NOUT, LERR, OK ) 00146 INFOT = 2 00147 CALL DPOTRF( 'U', -1, A, 1, INFO ) 00148 CALL CHKXER( 'DPOTRF', INFOT, NOUT, LERR, OK ) 00149 INFOT = 4 00150 CALL DPOTRF( 'U', 2, A, 1, INFO ) 00151 CALL CHKXER( 'DPOTRF', INFOT, NOUT, LERR, OK ) 00152 * 00153 * DPOTF2 00154 * 00155 SRNAMT = 'DPOTF2' 00156 INFOT = 1 00157 CALL DPOTF2( '/', 0, A, 1, INFO ) 00158 CALL CHKXER( 'DPOTF2', INFOT, NOUT, LERR, OK ) 00159 INFOT = 2 00160 CALL DPOTF2( 'U', -1, A, 1, INFO ) 00161 CALL CHKXER( 'DPOTF2', INFOT, NOUT, LERR, OK ) 00162 INFOT = 4 00163 CALL DPOTF2( 'U', 2, A, 1, INFO ) 00164 CALL CHKXER( 'DPOTF2', INFOT, NOUT, LERR, OK ) 00165 * 00166 * DPOTRI 00167 * 00168 SRNAMT = 'DPOTRI' 00169 INFOT = 1 00170 CALL DPOTRI( '/', 0, A, 1, INFO ) 00171 CALL CHKXER( 'DPOTRI', INFOT, NOUT, LERR, OK ) 00172 INFOT = 2 00173 CALL DPOTRI( 'U', -1, A, 1, INFO ) 00174 CALL CHKXER( 'DPOTRI', INFOT, NOUT, LERR, OK ) 00175 INFOT = 4 00176 CALL DPOTRI( 'U', 2, A, 1, INFO ) 00177 CALL CHKXER( 'DPOTRI', INFOT, NOUT, LERR, OK ) 00178 * 00179 * DPOTRS 00180 * 00181 SRNAMT = 'DPOTRS' 00182 INFOT = 1 00183 CALL DPOTRS( '/', 0, 0, A, 1, B, 1, INFO ) 00184 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK ) 00185 INFOT = 2 00186 CALL DPOTRS( 'U', -1, 0, A, 1, B, 1, INFO ) 00187 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK ) 00188 INFOT = 3 00189 CALL DPOTRS( 'U', 0, -1, A, 1, B, 1, INFO ) 00190 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK ) 00191 INFOT = 5 00192 CALL DPOTRS( 'U', 2, 1, A, 1, B, 2, INFO ) 00193 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK ) 00194 INFOT = 7 00195 CALL DPOTRS( 'U', 2, 1, A, 2, B, 1, INFO ) 00196 CALL CHKXER( 'DPOTRS', INFOT, NOUT, LERR, OK ) 00197 * 00198 * DPORFS 00199 * 00200 SRNAMT = 'DPORFS' 00201 INFOT = 1 00202 CALL DPORFS( '/', 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, IW, 00203 $ INFO ) 00204 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK ) 00205 INFOT = 2 00206 CALL DPORFS( 'U', -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, 00207 $ IW, INFO ) 00208 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK ) 00209 INFOT = 3 00210 CALL DPORFS( 'U', 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, 00211 $ IW, INFO ) 00212 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK ) 00213 INFOT = 5 00214 CALL DPORFS( 'U', 2, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W, IW, 00215 $ INFO ) 00216 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK ) 00217 INFOT = 7 00218 CALL DPORFS( 'U', 2, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W, IW, 00219 $ INFO ) 00220 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK ) 00221 INFOT = 9 00222 CALL DPORFS( 'U', 2, 1, A, 2, AF, 2, B, 1, X, 2, R1, R2, W, IW, 00223 $ INFO ) 00224 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK ) 00225 INFOT = 11 00226 CALL DPORFS( 'U', 2, 1, A, 2, AF, 2, B, 2, X, 1, R1, R2, W, IW, 00227 $ INFO ) 00228 CALL CHKXER( 'DPORFS', INFOT, NOUT, LERR, OK ) 00229 * 00230 * DPORFSX 00231 * 00232 N_ERR_BNDS = 3 00233 NPARAMS = 0 00234 SRNAMT = 'DPORFSX' 00235 INFOT = 1 00236 CALL DPORFSX( '/', EQ, 0, 0, A, 1, AF, 1, S, B, 1, X, 1, 00237 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 00238 $ PARAMS, W, IW, INFO ) 00239 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK ) 00240 INFOT = 2 00241 CALL DPORFSX( 'U', EQ, -1, 0, A, 1, AF, 1, S, B, 1, X, 1, 00242 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 00243 $ PARAMS, W, IW, INFO ) 00244 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK ) 00245 EQ = 'N' 00246 INFOT = 3 00247 CALL DPORFSX( 'U', EQ, -1, 0, A, 1, AF, 1, S, B, 1, X, 1, 00248 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 00249 $ PARAMS, W, IW, INFO ) 00250 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK ) 00251 INFOT = 4 00252 CALL DPORFSX( 'U', EQ, 0, -1, A, 1, AF, 1, S, B, 1, X, 1, 00253 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 00254 $ PARAMS, W, IW, INFO ) 00255 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK ) 00256 INFOT = 6 00257 CALL DPORFSX( 'U', EQ, 2, 1, A, 1, AF, 2, S, B, 2, X, 2, 00258 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 00259 $ PARAMS, W, IW, INFO ) 00260 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK ) 00261 INFOT = 8 00262 CALL DPORFSX( 'U', EQ, 2, 1, A, 2, AF, 1, S, B, 2, X, 2, 00263 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 00264 $ PARAMS, W, IW, INFO ) 00265 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK ) 00266 INFOT = 11 00267 CALL DPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 1, X, 2, 00268 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 00269 $ PARAMS, W, IW, INFO ) 00270 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK ) 00271 INFOT = 13 00272 CALL DPORFSX( 'U', EQ, 2, 1, A, 2, AF, 2, S, B, 2, X, 1, 00273 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 00274 $ PARAMS, W, IW, INFO ) 00275 CALL CHKXER( 'DPORFSX', INFOT, NOUT, LERR, OK ) 00276 * 00277 * DPOCON 00278 * 00279 SRNAMT = 'DPOCON' 00280 INFOT = 1 00281 CALL DPOCON( '/', 0, A, 1, ANRM, RCOND, W, IW, INFO ) 00282 CALL CHKXER( 'DPOCON', INFOT, NOUT, LERR, OK ) 00283 INFOT = 2 00284 CALL DPOCON( 'U', -1, A, 1, ANRM, RCOND, W, IW, INFO ) 00285 CALL CHKXER( 'DPOCON', INFOT, NOUT, LERR, OK ) 00286 INFOT = 4 00287 CALL DPOCON( 'U', 2, A, 1, ANRM, RCOND, W, IW, INFO ) 00288 CALL CHKXER( 'DPOCON', INFOT, NOUT, LERR, OK ) 00289 * 00290 * DPOEQU 00291 * 00292 SRNAMT = 'DPOEQU' 00293 INFOT = 1 00294 CALL DPOEQU( -1, A, 1, R1, RCOND, ANRM, INFO ) 00295 CALL CHKXER( 'DPOEQU', INFOT, NOUT, LERR, OK ) 00296 INFOT = 3 00297 CALL DPOEQU( 2, A, 1, R1, RCOND, ANRM, INFO ) 00298 CALL CHKXER( 'DPOEQU', INFOT, NOUT, LERR, OK ) 00299 * 00300 * DPOEQUB 00301 * 00302 SRNAMT = 'DPOEQUB' 00303 INFOT = 1 00304 CALL DPOEQUB( -1, A, 1, R1, RCOND, ANRM, INFO ) 00305 CALL CHKXER( 'DPOEQUB', INFOT, NOUT, LERR, OK ) 00306 INFOT = 3 00307 CALL DPOEQUB( 2, A, 1, R1, RCOND, ANRM, INFO ) 00308 CALL CHKXER( 'DPOEQUB', INFOT, NOUT, LERR, OK ) 00309 * 00310 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN 00311 * 00312 * Test error exits of the routines that use the Cholesky 00313 * decomposition of a symmetric positive definite packed matrix. 00314 * 00315 * DPPTRF 00316 * 00317 SRNAMT = 'DPPTRF' 00318 INFOT = 1 00319 CALL DPPTRF( '/', 0, A, INFO ) 00320 CALL CHKXER( 'DPPTRF', INFOT, NOUT, LERR, OK ) 00321 INFOT = 2 00322 CALL DPPTRF( 'U', -1, A, INFO ) 00323 CALL CHKXER( 'DPPTRF', INFOT, NOUT, LERR, OK ) 00324 * 00325 * DPPTRI 00326 * 00327 SRNAMT = 'DPPTRI' 00328 INFOT = 1 00329 CALL DPPTRI( '/', 0, A, INFO ) 00330 CALL CHKXER( 'DPPTRI', INFOT, NOUT, LERR, OK ) 00331 INFOT = 2 00332 CALL DPPTRI( 'U', -1, A, INFO ) 00333 CALL CHKXER( 'DPPTRI', INFOT, NOUT, LERR, OK ) 00334 * 00335 * DPPTRS 00336 * 00337 SRNAMT = 'DPPTRS' 00338 INFOT = 1 00339 CALL DPPTRS( '/', 0, 0, A, B, 1, INFO ) 00340 CALL CHKXER( 'DPPTRS', INFOT, NOUT, LERR, OK ) 00341 INFOT = 2 00342 CALL DPPTRS( 'U', -1, 0, A, B, 1, INFO ) 00343 CALL CHKXER( 'DPPTRS', INFOT, NOUT, LERR, OK ) 00344 INFOT = 3 00345 CALL DPPTRS( 'U', 0, -1, A, B, 1, INFO ) 00346 CALL CHKXER( 'DPPTRS', INFOT, NOUT, LERR, OK ) 00347 INFOT = 6 00348 CALL DPPTRS( 'U', 2, 1, A, B, 1, INFO ) 00349 CALL CHKXER( 'DPPTRS', INFOT, NOUT, LERR, OK ) 00350 * 00351 * DPPRFS 00352 * 00353 SRNAMT = 'DPPRFS' 00354 INFOT = 1 00355 CALL DPPRFS( '/', 0, 0, A, AF, B, 1, X, 1, R1, R2, W, IW, 00356 $ INFO ) 00357 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK ) 00358 INFOT = 2 00359 CALL DPPRFS( 'U', -1, 0, A, AF, B, 1, X, 1, R1, R2, W, IW, 00360 $ INFO ) 00361 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK ) 00362 INFOT = 3 00363 CALL DPPRFS( 'U', 0, -1, A, AF, B, 1, X, 1, R1, R2, W, IW, 00364 $ INFO ) 00365 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK ) 00366 INFOT = 7 00367 CALL DPPRFS( 'U', 2, 1, A, AF, B, 1, X, 2, R1, R2, W, IW, 00368 $ INFO ) 00369 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK ) 00370 INFOT = 9 00371 CALL DPPRFS( 'U', 2, 1, A, AF, B, 2, X, 1, R1, R2, W, IW, 00372 $ INFO ) 00373 CALL CHKXER( 'DPPRFS', INFOT, NOUT, LERR, OK ) 00374 * 00375 * DPPCON 00376 * 00377 SRNAMT = 'DPPCON' 00378 INFOT = 1 00379 CALL DPPCON( '/', 0, A, ANRM, RCOND, W, IW, INFO ) 00380 CALL CHKXER( 'DPPCON', INFOT, NOUT, LERR, OK ) 00381 INFOT = 2 00382 CALL DPPCON( 'U', -1, A, ANRM, RCOND, W, IW, INFO ) 00383 CALL CHKXER( 'DPPCON', INFOT, NOUT, LERR, OK ) 00384 * 00385 * DPPEQU 00386 * 00387 SRNAMT = 'DPPEQU' 00388 INFOT = 1 00389 CALL DPPEQU( '/', 0, A, R1, RCOND, ANRM, INFO ) 00390 CALL CHKXER( 'DPPEQU', INFOT, NOUT, LERR, OK ) 00391 INFOT = 2 00392 CALL DPPEQU( 'U', -1, A, R1, RCOND, ANRM, INFO ) 00393 CALL CHKXER( 'DPPEQU', INFOT, NOUT, LERR, OK ) 00394 * 00395 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN 00396 * 00397 * Test error exits of the routines that use the Cholesky 00398 * decomposition of a symmetric positive definite band matrix. 00399 * 00400 * DPBTRF 00401 * 00402 SRNAMT = 'DPBTRF' 00403 INFOT = 1 00404 CALL DPBTRF( '/', 0, 0, A, 1, INFO ) 00405 CALL CHKXER( 'DPBTRF', INFOT, NOUT, LERR, OK ) 00406 INFOT = 2 00407 CALL DPBTRF( 'U', -1, 0, A, 1, INFO ) 00408 CALL CHKXER( 'DPBTRF', INFOT, NOUT, LERR, OK ) 00409 INFOT = 3 00410 CALL DPBTRF( 'U', 1, -1, A, 1, INFO ) 00411 CALL CHKXER( 'DPBTRF', INFOT, NOUT, LERR, OK ) 00412 INFOT = 5 00413 CALL DPBTRF( 'U', 2, 1, A, 1, INFO ) 00414 CALL CHKXER( 'DPBTRF', INFOT, NOUT, LERR, OK ) 00415 * 00416 * DPBTF2 00417 * 00418 SRNAMT = 'DPBTF2' 00419 INFOT = 1 00420 CALL DPBTF2( '/', 0, 0, A, 1, INFO ) 00421 CALL CHKXER( 'DPBTF2', INFOT, NOUT, LERR, OK ) 00422 INFOT = 2 00423 CALL DPBTF2( 'U', -1, 0, A, 1, INFO ) 00424 CALL CHKXER( 'DPBTF2', INFOT, NOUT, LERR, OK ) 00425 INFOT = 3 00426 CALL DPBTF2( 'U', 1, -1, A, 1, INFO ) 00427 CALL CHKXER( 'DPBTF2', INFOT, NOUT, LERR, OK ) 00428 INFOT = 5 00429 CALL DPBTF2( 'U', 2, 1, A, 1, INFO ) 00430 CALL CHKXER( 'DPBTF2', INFOT, NOUT, LERR, OK ) 00431 * 00432 * DPBTRS 00433 * 00434 SRNAMT = 'DPBTRS' 00435 INFOT = 1 00436 CALL DPBTRS( '/', 0, 0, 0, A, 1, B, 1, INFO ) 00437 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK ) 00438 INFOT = 2 00439 CALL DPBTRS( 'U', -1, 0, 0, A, 1, B, 1, INFO ) 00440 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK ) 00441 INFOT = 3 00442 CALL DPBTRS( 'U', 1, -1, 0, A, 1, B, 1, INFO ) 00443 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK ) 00444 INFOT = 4 00445 CALL DPBTRS( 'U', 0, 0, -1, A, 1, B, 1, INFO ) 00446 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK ) 00447 INFOT = 6 00448 CALL DPBTRS( 'U', 2, 1, 1, A, 1, B, 1, INFO ) 00449 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK ) 00450 INFOT = 8 00451 CALL DPBTRS( 'U', 2, 0, 1, A, 1, B, 1, INFO ) 00452 CALL CHKXER( 'DPBTRS', INFOT, NOUT, LERR, OK ) 00453 * 00454 * DPBRFS 00455 * 00456 SRNAMT = 'DPBRFS' 00457 INFOT = 1 00458 CALL DPBRFS( '/', 0, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, 00459 $ IW, INFO ) 00460 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK ) 00461 INFOT = 2 00462 CALL DPBRFS( 'U', -1, 0, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, 00463 $ IW, INFO ) 00464 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK ) 00465 INFOT = 3 00466 CALL DPBRFS( 'U', 1, -1, 0, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, 00467 $ IW, INFO ) 00468 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK ) 00469 INFOT = 4 00470 CALL DPBRFS( 'U', 0, 0, -1, A, 1, AF, 1, B, 1, X, 1, R1, R2, W, 00471 $ IW, INFO ) 00472 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK ) 00473 INFOT = 6 00474 CALL DPBRFS( 'U', 2, 1, 1, A, 1, AF, 2, B, 2, X, 2, R1, R2, W, 00475 $ IW, INFO ) 00476 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK ) 00477 INFOT = 8 00478 CALL DPBRFS( 'U', 2, 1, 1, A, 2, AF, 1, B, 2, X, 2, R1, R2, W, 00479 $ IW, INFO ) 00480 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK ) 00481 INFOT = 10 00482 CALL DPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 1, X, 2, R1, R2, W, 00483 $ IW, INFO ) 00484 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK ) 00485 INFOT = 12 00486 CALL DPBRFS( 'U', 2, 0, 1, A, 1, AF, 1, B, 2, X, 1, R1, R2, W, 00487 $ IW, INFO ) 00488 CALL CHKXER( 'DPBRFS', INFOT, NOUT, LERR, OK ) 00489 * 00490 * DPBCON 00491 * 00492 SRNAMT = 'DPBCON' 00493 INFOT = 1 00494 CALL DPBCON( '/', 0, 0, A, 1, ANRM, RCOND, W, IW, INFO ) 00495 CALL CHKXER( 'DPBCON', INFOT, NOUT, LERR, OK ) 00496 INFOT = 2 00497 CALL DPBCON( 'U', -1, 0, A, 1, ANRM, RCOND, W, IW, INFO ) 00498 CALL CHKXER( 'DPBCON', INFOT, NOUT, LERR, OK ) 00499 INFOT = 3 00500 CALL DPBCON( 'U', 1, -1, A, 1, ANRM, RCOND, W, IW, INFO ) 00501 CALL CHKXER( 'DPBCON', INFOT, NOUT, LERR, OK ) 00502 INFOT = 5 00503 CALL DPBCON( 'U', 2, 1, A, 1, ANRM, RCOND, W, IW, INFO ) 00504 CALL CHKXER( 'DPBCON', INFOT, NOUT, LERR, OK ) 00505 * 00506 * DPBEQU 00507 * 00508 SRNAMT = 'DPBEQU' 00509 INFOT = 1 00510 CALL DPBEQU( '/', 0, 0, A, 1, R1, RCOND, ANRM, INFO ) 00511 CALL CHKXER( 'DPBEQU', INFOT, NOUT, LERR, OK ) 00512 INFOT = 2 00513 CALL DPBEQU( 'U', -1, 0, A, 1, R1, RCOND, ANRM, INFO ) 00514 CALL CHKXER( 'DPBEQU', INFOT, NOUT, LERR, OK ) 00515 INFOT = 3 00516 CALL DPBEQU( 'U', 1, -1, A, 1, R1, RCOND, ANRM, INFO ) 00517 CALL CHKXER( 'DPBEQU', INFOT, NOUT, LERR, OK ) 00518 INFOT = 5 00519 CALL DPBEQU( 'U', 2, 1, A, 1, R1, RCOND, ANRM, INFO ) 00520 CALL CHKXER( 'DPBEQU', INFOT, NOUT, LERR, OK ) 00521 END IF 00522 * 00523 * Print a summary line. 00524 * 00525 CALL ALAESM( PATH, OK, NOUT ) 00526 * 00527 RETURN 00528 * 00529 * End of DERRPO 00530 * 00531 END