1*> \brief \b CERRVX 2* 3* =========== DOCUMENTATION =========== 4* 5* Online html documentation available at 6* http://www.netlib.org/lapack/explore-html/ 7* 8* Definition: 9* =========== 10* 11* SUBROUTINE CERRVX( PATH, NUNIT ) 12* 13* .. Scalar Arguments .. 14* CHARACTER*3 PATH 15* INTEGER NUNIT 16* .. 17* 18* 19*> \par Purpose: 20* ============= 21*> 22*> \verbatim 23*> 24*> CERRVX tests the error exits for the COMPLEX driver routines 25*> for solving linear systems of equations. 26*> \endverbatim 27* 28* Arguments: 29* ========== 30* 31*> \param[in] PATH 32*> \verbatim 33*> PATH is CHARACTER*3 34*> The LAPACK path name for the routines to be tested. 35*> \endverbatim 36*> 37*> \param[in] NUNIT 38*> \verbatim 39*> NUNIT is INTEGER 40*> The unit number for output. 41*> \endverbatim 42* 43* Authors: 44* ======== 45* 46*> \author Univ. of Tennessee 47*> \author Univ. of California Berkeley 48*> \author Univ. of Colorado Denver 49*> \author NAG Ltd. 50* 51*> \date November 2017 52* 53*> \ingroup complex_lin 54* 55* ===================================================================== 56 SUBROUTINE CERRVX( PATH, NUNIT ) 57* 58* -- LAPACK test routine (version 3.8.0) -- 59* -- LAPACK is a software package provided by Univ. of Tennessee, -- 60* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 61* November 2017 62* 63* .. Scalar Arguments .. 64 CHARACTER*3 PATH 65 INTEGER NUNIT 66* .. 67* 68* ===================================================================== 69* 70* .. Parameters .. 71 INTEGER NMAX 72 PARAMETER ( NMAX = 4 ) 73* .. 74* .. Local Scalars .. 75 CHARACTER EQ 76 CHARACTER*2 C2 77 INTEGER I, INFO, J 78 REAL RCOND 79* .. 80* .. Local Arrays .. 81 INTEGER IP( NMAX ) 82 REAL C( NMAX ), R( NMAX ), R1( NMAX ), R2( NMAX ), 83 $ RF( NMAX ), RW( NMAX ) 84 COMPLEX A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ), 85 $ E( NMAX ), W( 2*NMAX ), X( NMAX ) 86* .. 87* .. External Functions .. 88 LOGICAL LSAMEN 89 EXTERNAL LSAMEN 90* .. 91* .. External Subroutines .. 92 EXTERNAL CGBSV, CGBSVX, CGESV, CGESVX, CGTSV, CGTSVX, 93 $ CHESV, CHESV_RK ,CHESV_ROOK, CHESVX, CHKXER, 94 $ CHPSV, CHPSVX, CPBSV, CPBSVX, CPOSV, CPOSVX, 95 $ CPPSV, CPPSVX, CPTSV, CPTSVX, CSPSV, CSPSVX, 96 $ CSYSV, CSYSV_AA, CSYSV_RK, CSYSV_ROOK, 97 $ CSYSVX, CSYSV_AA_2STAGE 98* .. 99* .. Scalars in Common .. 100 LOGICAL LERR, OK 101 CHARACTER*32 SRNAMT 102 INTEGER INFOT, NOUT 103* .. 104* .. Common blocks .. 105 COMMON / INFOC / INFOT, NOUT, OK, LERR 106 COMMON / SRNAMC / SRNAMT 107* .. 108* .. Intrinsic Functions .. 109 INTRINSIC CMPLX, REAL 110* .. 111* .. Executable Statements .. 112* 113 NOUT = NUNIT 114 WRITE( NOUT, FMT = * ) 115 C2 = PATH( 2: 3 ) 116* 117* Set the variables to innocuous values. 118* 119 DO 20 J = 1, NMAX 120 DO 10 I = 1, NMAX 121 A( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) ) 122 AF( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) ) 123 10 CONTINUE 124 B( J ) = 0.E+0 125 E( J ) = 0.E+0 126 R1( J ) = 0.E+0 127 R2( J ) = 0.E+0 128 W( J ) = 0.E+0 129 X( J ) = 0.E+0 130 C( J ) = 0.E+0 131 R( J ) = 0.E+0 132 IP( J ) = J 133 20 CONTINUE 134 EQ = ' ' 135 OK = .TRUE. 136* 137 IF( LSAMEN( 2, C2, 'GE' ) ) THEN 138* 139* CGESV 140* 141 SRNAMT = 'CGESV ' 142 INFOT = 1 143 CALL CGESV( -1, 0, A, 1, IP, B, 1, INFO ) 144 CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK ) 145 INFOT = 2 146 CALL CGESV( 0, -1, A, 1, IP, B, 1, INFO ) 147 CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK ) 148 INFOT = 4 149 CALL CGESV( 2, 1, A, 1, IP, B, 2, INFO ) 150 CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK ) 151 INFOT = 7 152 CALL CGESV( 2, 1, A, 2, IP, B, 1, INFO ) 153 CALL CHKXER( 'CGESV ', INFOT, NOUT, LERR, OK ) 154* 155* CGESVX 156* 157 SRNAMT = 'CGESVX' 158 INFOT = 1 159 CALL CGESVX( '/', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 160 $ X, 1, RCOND, R1, R2, W, RW, INFO ) 161 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK ) 162 INFOT = 2 163 CALL CGESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 164 $ X, 1, RCOND, R1, R2, W, RW, INFO ) 165 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK ) 166 INFOT = 3 167 CALL CGESVX( 'N', 'N', -1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 168 $ X, 1, RCOND, R1, R2, W, RW, INFO ) 169 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK ) 170 INFOT = 4 171 CALL CGESVX( 'N', 'N', 0, -1, A, 1, AF, 1, IP, EQ, R, C, B, 1, 172 $ X, 1, RCOND, R1, R2, W, RW, INFO ) 173 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK ) 174 INFOT = 6 175 CALL CGESVX( 'N', 'N', 2, 1, A, 1, AF, 2, IP, EQ, R, C, B, 2, 176 $ X, 2, RCOND, R1, R2, W, RW, INFO ) 177 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK ) 178 INFOT = 8 179 CALL CGESVX( 'N', 'N', 2, 1, A, 2, AF, 1, IP, EQ, R, C, B, 2, 180 $ X, 2, RCOND, R1, R2, W, RW, INFO ) 181 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK ) 182 INFOT = 10 183 EQ = '/' 184 CALL CGESVX( 'F', 'N', 0, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 185 $ X, 1, RCOND, R1, R2, W, RW, INFO ) 186 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK ) 187 INFOT = 11 188 EQ = 'R' 189 CALL CGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 190 $ X, 1, RCOND, R1, R2, W, RW, INFO ) 191 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK ) 192 INFOT = 12 193 EQ = 'C' 194 CALL CGESVX( 'F', 'N', 1, 0, A, 1, AF, 1, IP, EQ, R, C, B, 1, 195 $ X, 1, RCOND, R1, R2, W, RW, INFO ) 196 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK ) 197 INFOT = 14 198 CALL CGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 1, 199 $ X, 2, RCOND, R1, R2, W, RW, INFO ) 200 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK ) 201 INFOT = 16 202 CALL CGESVX( 'N', 'N', 2, 1, A, 2, AF, 2, IP, EQ, R, C, B, 2, 203 $ X, 1, RCOND, R1, R2, W, RW, INFO ) 204 CALL CHKXER( 'CGESVX', INFOT, NOUT, LERR, OK ) 205* 206 ELSE IF( LSAMEN( 2, C2, 'GB' ) ) THEN 207* 208* CGBSV 209* 210 SRNAMT = 'CGBSV ' 211 INFOT = 1 212 CALL CGBSV( -1, 0, 0, 0, A, 1, IP, B, 1, INFO ) 213 CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK ) 214 INFOT = 2 215 CALL CGBSV( 1, -1, 0, 0, A, 1, IP, B, 1, INFO ) 216 CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK ) 217 INFOT = 3 218 CALL CGBSV( 1, 0, -1, 0, A, 1, IP, B, 1, INFO ) 219 CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK ) 220 INFOT = 4 221 CALL CGBSV( 0, 0, 0, -1, A, 1, IP, B, 1, INFO ) 222 CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK ) 223 INFOT = 6 224 CALL CGBSV( 1, 1, 1, 0, A, 3, IP, B, 1, INFO ) 225 CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK ) 226 INFOT = 9 227 CALL CGBSV( 2, 0, 0, 0, A, 1, IP, B, 1, INFO ) 228 CALL CHKXER( 'CGBSV ', INFOT, NOUT, LERR, OK ) 229* 230* CGBSVX 231* 232 SRNAMT = 'CGBSVX' 233 INFOT = 1 234 CALL CGBSVX( '/', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 235 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 236 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK ) 237 INFOT = 2 238 CALL CGBSVX( 'N', '/', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 239 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 240 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK ) 241 INFOT = 3 242 CALL CGBSVX( 'N', 'N', -1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 243 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 244 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK ) 245 INFOT = 4 246 CALL CGBSVX( 'N', 'N', 1, -1, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 247 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 248 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK ) 249 INFOT = 5 250 CALL CGBSVX( 'N', 'N', 1, 0, -1, 0, A, 1, AF, 1, IP, EQ, R, C, 251 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 252 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK ) 253 INFOT = 6 254 CALL CGBSVX( 'N', 'N', 0, 0, 0, -1, A, 1, AF, 1, IP, EQ, R, C, 255 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 256 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK ) 257 INFOT = 8 258 CALL CGBSVX( 'N', 'N', 1, 1, 1, 0, A, 2, AF, 4, IP, EQ, R, C, 259 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 260 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK ) 261 INFOT = 10 262 CALL CGBSVX( 'N', 'N', 1, 1, 1, 0, A, 3, AF, 3, IP, EQ, R, C, 263 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 264 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK ) 265 INFOT = 12 266 EQ = '/' 267 CALL CGBSVX( 'F', 'N', 0, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 268 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 269 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK ) 270 INFOT = 13 271 EQ = 'R' 272 CALL CGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 273 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 274 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK ) 275 INFOT = 14 276 EQ = 'C' 277 CALL CGBSVX( 'F', 'N', 1, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 278 $ B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 279 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK ) 280 INFOT = 16 281 CALL CGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 282 $ B, 1, X, 2, RCOND, R1, R2, W, RW, INFO ) 283 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK ) 284 INFOT = 18 285 CALL CGBSVX( 'N', 'N', 2, 0, 0, 0, A, 1, AF, 1, IP, EQ, R, C, 286 $ B, 2, X, 1, RCOND, R1, R2, W, RW, INFO ) 287 CALL CHKXER( 'CGBSVX', INFOT, NOUT, LERR, OK ) 288* 289 ELSE IF( LSAMEN( 2, C2, 'GT' ) ) THEN 290* 291* CGTSV 292* 293 SRNAMT = 'CGTSV ' 294 INFOT = 1 295 CALL CGTSV( -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, 296 $ INFO ) 297 CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK ) 298 INFOT = 2 299 CALL CGTSV( 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, 300 $ INFO ) 301 CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK ) 302 INFOT = 7 303 CALL CGTSV( 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), B, 1, INFO ) 304 CALL CHKXER( 'CGTSV ', INFOT, NOUT, LERR, OK ) 305* 306* CGTSVX 307* 308 SRNAMT = 'CGTSVX' 309 INFOT = 1 310 CALL CGTSVX( '/', 'N', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 311 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 312 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 313 CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK ) 314 INFOT = 2 315 CALL CGTSVX( 'N', '/', 0, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 316 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 317 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 318 CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK ) 319 INFOT = 3 320 CALL CGTSVX( 'N', 'N', -1, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 321 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 322 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 323 CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK ) 324 INFOT = 4 325 CALL CGTSVX( 'N', 'N', 0, -1, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 326 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 327 $ IP, B, 1, X, 1, RCOND, R1, R2, W, RW, INFO ) 328 CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK ) 329 INFOT = 14 330 CALL CGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 331 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 332 $ IP, B, 1, X, 2, RCOND, R1, R2, W, RW, INFO ) 333 CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK ) 334 INFOT = 16 335 CALL CGTSVX( 'N', 'N', 2, 0, A( 1, 1 ), A( 1, 2 ), A( 1, 3 ), 336 $ AF( 1, 1 ), AF( 1, 2 ), AF( 1, 3 ), AF( 1, 4 ), 337 $ IP, B, 2, X, 1, RCOND, R1, R2, W, RW, INFO ) 338 CALL CHKXER( 'CGTSVX', INFOT, NOUT, LERR, OK ) 339* 340 ELSE IF( LSAMEN( 2, C2, 'PO' ) ) THEN 341* 342* CPOSV 343* 344 SRNAMT = 'CPOSV ' 345 INFOT = 1 346 CALL CPOSV( '/', 0, 0, A, 1, B, 1, INFO ) 347 CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK ) 348 INFOT = 2 349 CALL CPOSV( 'U', -1, 0, A, 1, B, 1, INFO ) 350 CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK ) 351 INFOT = 3 352 CALL CPOSV( 'U', 0, -1, A, 1, B, 1, INFO ) 353 CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK ) 354 INFOT = 5 355 CALL CPOSV( 'U', 2, 0, A, 1, B, 2, INFO ) 356 CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK ) 357 INFOT = 7 358 CALL CPOSV( 'U', 2, 0, A, 2, B, 1, INFO ) 359 CALL CHKXER( 'CPOSV ', INFOT, NOUT, LERR, OK ) 360* 361* CPOSVX 362* 363 SRNAMT = 'CPOSVX' 364 INFOT = 1 365 CALL CPOSVX( '/', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 366 $ RCOND, R1, R2, W, RW, INFO ) 367 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK ) 368 INFOT = 2 369 CALL CPOSVX( 'N', '/', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 370 $ RCOND, R1, R2, W, RW, INFO ) 371 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK ) 372 INFOT = 3 373 CALL CPOSVX( 'N', 'U', -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 374 $ RCOND, R1, R2, W, RW, INFO ) 375 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK ) 376 INFOT = 4 377 CALL CPOSVX( 'N', 'U', 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 1, 378 $ RCOND, R1, R2, W, RW, INFO ) 379 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK ) 380 INFOT = 6 381 CALL CPOSVX( 'N', 'U', 2, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2, 382 $ RCOND, R1, R2, W, RW, INFO ) 383 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK ) 384 INFOT = 8 385 CALL CPOSVX( 'N', 'U', 2, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2, 386 $ RCOND, R1, R2, W, RW, INFO ) 387 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK ) 388 INFOT = 9 389 EQ = '/' 390 CALL CPOSVX( 'F', 'U', 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 391 $ RCOND, R1, R2, W, RW, INFO ) 392 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK ) 393 INFOT = 10 394 EQ = 'Y' 395 CALL CPOSVX( 'F', 'U', 1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 396 $ RCOND, R1, R2, W, RW, INFO ) 397 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK ) 398 INFOT = 12 399 CALL CPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 1, X, 2, 400 $ RCOND, R1, R2, W, RW, INFO ) 401 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK ) 402 INFOT = 14 403 CALL CPOSVX( 'N', 'U', 2, 0, A, 2, AF, 2, EQ, C, B, 2, X, 1, 404 $ RCOND, R1, R2, W, RW, INFO ) 405 CALL CHKXER( 'CPOSVX', INFOT, NOUT, LERR, OK ) 406* 407 ELSE IF( LSAMEN( 2, C2, 'PP' ) ) THEN 408* 409* CPPSV 410* 411 SRNAMT = 'CPPSV ' 412 INFOT = 1 413 CALL CPPSV( '/', 0, 0, A, B, 1, INFO ) 414 CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK ) 415 INFOT = 2 416 CALL CPPSV( 'U', -1, 0, A, B, 1, INFO ) 417 CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK ) 418 INFOT = 3 419 CALL CPPSV( 'U', 0, -1, A, B, 1, INFO ) 420 CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK ) 421 INFOT = 6 422 CALL CPPSV( 'U', 2, 0, A, B, 1, INFO ) 423 CALL CHKXER( 'CPPSV ', INFOT, NOUT, LERR, OK ) 424* 425* CPPSVX 426* 427 SRNAMT = 'CPPSVX' 428 INFOT = 1 429 CALL CPPSVX( '/', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 430 $ R1, R2, W, RW, INFO ) 431 CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK ) 432 INFOT = 2 433 CALL CPPSVX( 'N', '/', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 434 $ R1, R2, W, RW, INFO ) 435 CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK ) 436 INFOT = 3 437 CALL CPPSVX( 'N', 'U', -1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 438 $ R1, R2, W, RW, INFO ) 439 CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK ) 440 INFOT = 4 441 CALL CPPSVX( 'N', 'U', 0, -1, A, AF, EQ, C, B, 1, X, 1, RCOND, 442 $ R1, R2, W, RW, INFO ) 443 CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK ) 444 INFOT = 7 445 EQ = '/' 446 CALL CPPSVX( 'F', 'U', 0, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 447 $ R1, R2, W, RW, INFO ) 448 CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK ) 449 INFOT = 8 450 EQ = 'Y' 451 CALL CPPSVX( 'F', 'U', 1, 0, A, AF, EQ, C, B, 1, X, 1, RCOND, 452 $ R1, R2, W, RW, INFO ) 453 CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK ) 454 INFOT = 10 455 CALL CPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 1, X, 2, RCOND, 456 $ R1, R2, W, RW, INFO ) 457 CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK ) 458 INFOT = 12 459 CALL CPPSVX( 'N', 'U', 2, 0, A, AF, EQ, C, B, 2, X, 1, RCOND, 460 $ R1, R2, W, RW, INFO ) 461 CALL CHKXER( 'CPPSVX', INFOT, NOUT, LERR, OK ) 462* 463 ELSE IF( LSAMEN( 2, C2, 'PB' ) ) THEN 464* 465* CPBSV 466* 467 SRNAMT = 'CPBSV ' 468 INFOT = 1 469 CALL CPBSV( '/', 0, 0, 0, A, 1, B, 1, INFO ) 470 CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK ) 471 INFOT = 2 472 CALL CPBSV( 'U', -1, 0, 0, A, 1, B, 1, INFO ) 473 CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK ) 474 INFOT = 3 475 CALL CPBSV( 'U', 1, -1, 0, A, 1, B, 1, INFO ) 476 CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK ) 477 INFOT = 4 478 CALL CPBSV( 'U', 0, 0, -1, A, 1, B, 1, INFO ) 479 CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK ) 480 INFOT = 6 481 CALL CPBSV( 'U', 1, 1, 0, A, 1, B, 2, INFO ) 482 CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK ) 483 INFOT = 8 484 CALL CPBSV( 'U', 2, 0, 0, A, 1, B, 1, INFO ) 485 CALL CHKXER( 'CPBSV ', INFOT, NOUT, LERR, OK ) 486* 487* CPBSVX 488* 489 SRNAMT = 'CPBSVX' 490 INFOT = 1 491 CALL CPBSVX( '/', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 492 $ RCOND, R1, R2, W, RW, INFO ) 493 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK ) 494 INFOT = 2 495 CALL CPBSVX( 'N', '/', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 496 $ RCOND, R1, R2, W, RW, INFO ) 497 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK ) 498 INFOT = 3 499 CALL CPBSVX( 'N', 'U', -1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 500 $ 1, RCOND, R1, R2, W, RW, INFO ) 501 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK ) 502 INFOT = 4 503 CALL CPBSVX( 'N', 'U', 1, -1, 0, A, 1, AF, 1, EQ, C, B, 1, X, 504 $ 1, RCOND, R1, R2, W, RW, INFO ) 505 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK ) 506 INFOT = 5 507 CALL CPBSVX( 'N', 'U', 0, 0, -1, A, 1, AF, 1, EQ, C, B, 1, X, 508 $ 1, RCOND, R1, R2, W, RW, INFO ) 509 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK ) 510 INFOT = 7 511 CALL CPBSVX( 'N', 'U', 1, 1, 0, A, 1, AF, 2, EQ, C, B, 2, X, 2, 512 $ RCOND, R1, R2, W, RW, INFO ) 513 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK ) 514 INFOT = 9 515 CALL CPBSVX( 'N', 'U', 1, 1, 0, A, 2, AF, 1, EQ, C, B, 2, X, 2, 516 $ RCOND, R1, R2, W, RW, INFO ) 517 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK ) 518 INFOT = 10 519 EQ = '/' 520 CALL CPBSVX( 'F', 'U', 0, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 521 $ RCOND, R1, R2, W, RW, INFO ) 522 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK ) 523 INFOT = 11 524 EQ = 'Y' 525 CALL CPBSVX( 'F', 'U', 1, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 1, 526 $ RCOND, R1, R2, W, RW, INFO ) 527 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK ) 528 INFOT = 13 529 CALL CPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 1, X, 2, 530 $ RCOND, R1, R2, W, RW, INFO ) 531 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK ) 532 INFOT = 15 533 CALL CPBSVX( 'N', 'U', 2, 0, 0, A, 1, AF, 1, EQ, C, B, 2, X, 1, 534 $ RCOND, R1, R2, W, RW, INFO ) 535 CALL CHKXER( 'CPBSVX', INFOT, NOUT, LERR, OK ) 536* 537 ELSE IF( LSAMEN( 2, C2, 'PT' ) ) THEN 538* 539* CPTSV 540* 541 SRNAMT = 'CPTSV ' 542 INFOT = 1 543 CALL CPTSV( -1, 0, R, A( 1, 1 ), B, 1, INFO ) 544 CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK ) 545 INFOT = 2 546 CALL CPTSV( 0, -1, R, A( 1, 1 ), B, 1, INFO ) 547 CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK ) 548 INFOT = 6 549 CALL CPTSV( 2, 0, R, A( 1, 1 ), B, 1, INFO ) 550 CALL CHKXER( 'CPTSV ', INFOT, NOUT, LERR, OK ) 551* 552* CPTSVX 553* 554 SRNAMT = 'CPTSVX' 555 INFOT = 1 556 CALL CPTSVX( '/', 0, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X, 557 $ 1, RCOND, R1, R2, W, RW, INFO ) 558 CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK ) 559 INFOT = 2 560 CALL CPTSVX( 'N', -1, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X, 561 $ 1, RCOND, R1, R2, W, RW, INFO ) 562 CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK ) 563 INFOT = 3 564 CALL CPTSVX( 'N', 0, -1, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X, 565 $ 1, RCOND, R1, R2, W, RW, INFO ) 566 CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK ) 567 INFOT = 9 568 CALL CPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 1, X, 569 $ 2, RCOND, R1, R2, W, RW, INFO ) 570 CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK ) 571 INFOT = 11 572 CALL CPTSVX( 'N', 2, 0, R, A( 1, 1 ), RF, AF( 1, 1 ), B, 2, X, 573 $ 1, RCOND, R1, R2, W, RW, INFO ) 574 CALL CHKXER( 'CPTSVX', INFOT, NOUT, LERR, OK ) 575* 576 ELSE IF( LSAMEN( 2, C2, 'HE' ) ) THEN 577* 578* CHESV 579* 580 SRNAMT = 'CHESV ' 581 INFOT = 1 582 CALL CHESV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) 583 CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK ) 584 INFOT = 2 585 CALL CHESV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) 586 CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK ) 587 INFOT = 3 588 CALL CHESV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) 589 CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK ) 590 INFOT = 5 591 CALL CHESV( 'U', 2, 0, A, 1, IP, B, 2, W, 1, INFO ) 592 CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK ) 593 INFOT = 8 594 CALL CHESV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) 595 CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK ) 596 INFOT = 10 597 CALL CHESV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO ) 598 CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK ) 599 INFOT = 10 600 CALL CHESV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO ) 601 CALL CHKXER( 'CHESV ', INFOT, NOUT, LERR, OK ) 602* 603* CHESVX 604* 605 SRNAMT = 'CHESVX' 606 INFOT = 1 607 CALL CHESVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, 608 $ RCOND, R1, R2, W, 1, RW, INFO ) 609 CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK ) 610 INFOT = 2 611 CALL CHESVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, 612 $ RCOND, R1, R2, W, 1, RW, INFO ) 613 CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK ) 614 INFOT = 3 615 CALL CHESVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, 616 $ RCOND, R1, R2, W, 1, RW, INFO ) 617 CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK ) 618 INFOT = 4 619 CALL CHESVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, 620 $ RCOND, R1, R2, W, 1, RW, INFO ) 621 CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK ) 622 INFOT = 6 623 CALL CHESVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2, 624 $ RCOND, R1, R2, W, 4, RW, INFO ) 625 CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK ) 626 INFOT = 8 627 CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2, 628 $ RCOND, R1, R2, W, 4, RW, INFO ) 629 CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK ) 630 INFOT = 11 631 CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2, 632 $ RCOND, R1, R2, W, 4, RW, INFO ) 633 CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK ) 634 INFOT = 13 635 CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1, 636 $ RCOND, R1, R2, W, 4, RW, INFO ) 637 CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK ) 638 INFOT = 18 639 CALL CHESVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2, 640 $ RCOND, R1, R2, W, 3, RW, INFO ) 641 CALL CHKXER( 'CHESVX', INFOT, NOUT, LERR, OK ) 642* 643 ELSE IF( LSAMEN( 2, C2, 'HR' ) ) THEN 644* 645* CHESV_ROOK 646* 647 SRNAMT = 'CHESV_ROOK' 648 INFOT = 1 649 CALL CHESV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) 650 CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK ) 651 INFOT = 2 652 CALL CHESV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) 653 CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK ) 654 INFOT = 3 655 CALL CHESV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) 656 CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK ) 657 INFOT = 8 658 CALL CHESV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) 659 CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK ) 660 INFOT = 10 661 CALL CHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO ) 662 CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK ) 663 INFOT = 10 664 CALL CHESV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO ) 665 CALL CHKXER( 'CHESV_ROOK', INFOT, NOUT, LERR, OK ) 666* 667 ELSE IF( LSAMEN( 2, C2, 'HK' ) ) THEN 668* 669* CHESV_RK 670* 671* Test error exits of the driver that uses factorization 672* of a symmetric indefinite matrix with rook 673* (bounded Bunch-Kaufman) pivoting with the new storage 674* format for factors L ( or U) and D. 675* 676* L (or U) is stored in A, diagonal of D is stored on the 677* diagonal of A, subdiagonal of D is stored in a separate array E. 678* 679 SRNAMT = 'CHESV_RK' 680 INFOT = 1 681 CALL CHESV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO ) 682 CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK ) 683 INFOT = 2 684 CALL CHESV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO ) 685 CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK ) 686 INFOT = 3 687 CALL CHESV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO ) 688 CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK ) 689 INFOT = 5 690 CALL CHESV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO ) 691 CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK ) 692 INFOT = 9 693 CALL CHESV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO ) 694 CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK ) 695 INFOT = 11 696 CALL CHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO ) 697 CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK ) 698 INFOT = 11 699 CALL CHESV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO ) 700 CALL CHKXER( 'CHESV_RK', INFOT, NOUT, LERR, OK ) 701* 702 ELSE IF( LSAMEN( 2, C2, 'HA' ) ) THEN 703* 704* CHESV_AASEN 705* 706 SRNAMT = 'CHESV_AA' 707 INFOT = 1 708 CALL CHESV_AA( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) 709 CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK ) 710 INFOT = 2 711 CALL CHESV_AA( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) 712 CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK ) 713 INFOT = 3 714 CALL CHESV_AA( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) 715 CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK ) 716 INFOT = 8 717 CALL CHESV_AA( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) 718 CALL CHKXER( 'CHESV_AA', INFOT, NOUT, LERR, OK ) 719* 720 ELSE IF( LSAMEN( 2, C2, 'H2' ) ) THEN 721* 722* CHESV_AASEN_2STAGE 723* 724 SRNAMT = 'CHESV_AA_2STAGE' 725 INFOT = 1 726 CALL CHESV_AA_2STAGE( '/', 0, 0, A, 1, A, 1, IP, IP, B, 1, 727 $ W, 1, INFO ) 728 CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 729 INFOT = 2 730 CALL CHESV_AA_2STAGE( 'U', -1, 0, A, 1, A, 1, IP, IP, B, 1, 731 $ W, 1, INFO ) 732 CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 733 INFOT = 3 734 CALL CHESV_AA_2STAGE( 'U', 0, -1, A, 1, A, 1, IP, IP, B, 1, 735 $ W, 1, INFO ) 736 CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 737 INFOT = 5 738 CALL CHESV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1, 739 $ W, 1, INFO ) 740 CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 741 INFOT = 11 742 CALL CHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1, 743 $ W, 1, INFO ) 744 CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 745 INFOT = 7 746 CALL CHESV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2, 747 $ W, 1, INFO ) 748 CALL CHKXER( 'CHESV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 749* 750 ELSE IF( LSAMEN( 2, C2, 'S2' ) ) THEN 751* 752* CSYSV_AASEN_2STAGE 753* 754 SRNAMT = 'CSYSV_AA_2STAGE' 755 INFOT = 1 756 CALL CSYSV_AA_2STAGE( '/', 0, 0, A, 1, A, 1, IP, IP, B, 1, 757 $ W, 1, INFO ) 758 CALL CHKXER( 'CSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 759 INFOT = 2 760 CALL CSYSV_AA_2STAGE( 'U', -1, 0, A, 1, A, 1, IP, IP, B, 1, 761 $ W, 1, INFO ) 762 CALL CHKXER( 'CSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 763 INFOT = 3 764 CALL CSYSV_AA_2STAGE( 'U', 0, -1, A, 1, A, 1, IP, IP, B, 1, 765 $ W, 1, INFO ) 766 CALL CHKXER( 'CSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 767 INFOT = 5 768 CALL CSYSV_AA_2STAGE( 'U', 2, 1, A, 1, A, 1, IP, IP, B, 1, 769 $ W, 1, INFO ) 770 CALL CHKXER( 'CSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 771 INFOT = 11 772 CALL CSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 8, IP, IP, B, 1, 773 $ W, 1, INFO ) 774 CALL CHKXER( 'CSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 775 INFOT = 7 776 CALL CSYSV_AA_2STAGE( 'U', 2, 1, A, 2, A, 1, IP, IP, B, 2, 777 $ W, 1, INFO ) 778 CALL CHKXER( 'CSYSV_AA_2STAGE', INFOT, NOUT, LERR, OK ) 779* 780 ELSE IF( LSAMEN( 2, C2, 'HP' ) ) THEN 781* 782* CHPSV 783* 784 SRNAMT = 'CHPSV ' 785 INFOT = 1 786 CALL CHPSV( '/', 0, 0, A, IP, B, 1, INFO ) 787 CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK ) 788 INFOT = 2 789 CALL CHPSV( 'U', -1, 0, A, IP, B, 1, INFO ) 790 CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK ) 791 INFOT = 3 792 CALL CHPSV( 'U', 0, -1, A, IP, B, 1, INFO ) 793 CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK ) 794 INFOT = 7 795 CALL CHPSV( 'U', 2, 0, A, IP, B, 1, INFO ) 796 CALL CHKXER( 'CHPSV ', INFOT, NOUT, LERR, OK ) 797* 798* CHPSVX 799* 800 SRNAMT = 'CHPSVX' 801 INFOT = 1 802 CALL CHPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 803 $ R2, W, RW, INFO ) 804 CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK ) 805 INFOT = 2 806 CALL CHPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 807 $ R2, W, RW, INFO ) 808 CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK ) 809 INFOT = 3 810 CALL CHPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 811 $ R2, W, RW, INFO ) 812 CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK ) 813 INFOT = 4 814 CALL CHPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1, 815 $ R2, W, RW, INFO ) 816 CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK ) 817 INFOT = 9 818 CALL CHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1, 819 $ R2, W, RW, INFO ) 820 CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK ) 821 INFOT = 11 822 CALL CHPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1, 823 $ R2, W, RW, INFO ) 824 CALL CHKXER( 'CHPSVX', INFOT, NOUT, LERR, OK ) 825* 826 ELSE IF( LSAMEN( 2, C2, 'SY' ) ) THEN 827* 828* CSYSV 829* 830 SRNAMT = 'CSYSV ' 831 INFOT = 1 832 CALL CSYSV( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) 833 CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK ) 834 INFOT = 2 835 CALL CSYSV( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) 836 CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK ) 837 INFOT = 3 838 CALL CSYSV( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) 839 CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK ) 840 INFOT = 8 841 CALL CSYSV( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) 842 CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK ) 843 INFOT = 10 844 CALL CSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO ) 845 CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK ) 846 INFOT = 10 847 CALL CSYSV( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO ) 848 CALL CHKXER( 'CSYSV ', INFOT, NOUT, LERR, OK ) 849* 850* CSYSVX 851* 852 SRNAMT = 'CSYSVX' 853 INFOT = 1 854 CALL CSYSVX( '/', 'U', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, 855 $ RCOND, R1, R2, W, 1, RW, INFO ) 856 CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK ) 857 INFOT = 2 858 CALL CSYSVX( 'N', '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, 859 $ RCOND, R1, R2, W, 1, RW, INFO ) 860 CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK ) 861 INFOT = 3 862 CALL CSYSVX( 'N', 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, 863 $ RCOND, R1, R2, W, 1, RW, INFO ) 864 CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK ) 865 INFOT = 4 866 CALL CSYSVX( 'N', 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, 867 $ RCOND, R1, R2, W, 1, RW, INFO ) 868 CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK ) 869 INFOT = 6 870 CALL CSYSVX( 'N', 'U', 2, 0, A, 1, AF, 2, IP, B, 2, X, 2, 871 $ RCOND, R1, R2, W, 4, RW, INFO ) 872 CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK ) 873 INFOT = 8 874 CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 1, IP, B, 2, X, 2, 875 $ RCOND, R1, R2, W, 4, RW, INFO ) 876 CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK ) 877 INFOT = 11 878 CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 1, X, 2, 879 $ RCOND, R1, R2, W, 4, RW, INFO ) 880 CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK ) 881 INFOT = 13 882 CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 1, 883 $ RCOND, R1, R2, W, 4, RW, INFO ) 884 CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK ) 885 INFOT = 18 886 CALL CSYSVX( 'N', 'U', 2, 0, A, 2, AF, 2, IP, B, 2, X, 2, 887 $ RCOND, R1, R2, W, 3, RW, INFO ) 888 CALL CHKXER( 'CSYSVX', INFOT, NOUT, LERR, OK ) 889* 890 ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN 891* 892* CSYSV_ROOK 893* 894 SRNAMT = 'CSYSV_ROOK' 895 INFOT = 1 896 CALL CSYSV_ROOK( '/', 0, 0, A, 1, IP, B, 1, W, 1, INFO ) 897 CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK ) 898 INFOT = 2 899 CALL CSYSV_ROOK( 'U', -1, 0, A, 1, IP, B, 1, W, 1, INFO ) 900 CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK ) 901 INFOT = 3 902 CALL CSYSV_ROOK( 'U', 0, -1, A, 1, IP, B, 1, W, 1, INFO ) 903 CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK ) 904 INFOT = 8 905 CALL CSYSV_ROOK( 'U', 2, 0, A, 2, IP, B, 1, W, 1, INFO ) 906 CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK ) 907 INFOT = 10 908 CALL CSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, 0, INFO ) 909 CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK ) 910 INFOT = 10 911 CALL CSYSV_ROOK( 'U', 0, 0, A, 1, IP, B, 1, W, -2, INFO ) 912 CALL CHKXER( 'CSYSV_ROOK', INFOT, NOUT, LERR, OK ) 913* 914 ELSE IF( LSAMEN( 2, C2, 'SK' ) ) THEN 915* 916* CSYSV_RK 917* 918* Test error exits of the driver that uses factorization 919* of a symmetric indefinite matrix with rook 920* (bounded Bunch-Kaufman) pivoting with the new storage 921* format for factors L ( or U) and D. 922* 923* L (or U) is stored in A, diagonal of D is stored on the 924* diagonal of A, subdiagonal of D is stored in a separate array E. 925* 926 SRNAMT = 'CSYSV_RK' 927 INFOT = 1 928 CALL CSYSV_RK( '/', 0, 0, A, 1, E, IP, B, 1, W, 1, INFO ) 929 CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK ) 930 INFOT = 2 931 CALL CSYSV_RK( 'U', -1, 0, A, 1, E, IP, B, 1, W, 1, INFO ) 932 CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK ) 933 INFOT = 3 934 CALL CSYSV_RK( 'U', 0, -1, A, 1, E, IP, B, 1, W, 1, INFO ) 935 CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK ) 936 INFOT = 5 937 CALL CSYSV_RK( 'U', 2, 0, A, 1, E, IP, B, 2, W, 1, INFO ) 938 CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK ) 939 INFOT = 9 940 CALL CSYSV_RK( 'U', 2, 0, A, 2, E, IP, B, 1, W, 1, INFO ) 941 CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK ) 942 INFOT = 11 943 CALL CSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, 0, INFO ) 944 CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK ) 945 INFOT = 11 946 CALL CSYSV_RK( 'U', 0, 0, A, 1, E, IP, B, 1, W, -2, INFO ) 947 CALL CHKXER( 'CSYSV_RK', INFOT, NOUT, LERR, OK ) 948* 949 ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN 950* 951* CSPSV 952* 953 SRNAMT = 'CSPSV ' 954 INFOT = 1 955 CALL CSPSV( '/', 0, 0, A, IP, B, 1, INFO ) 956 CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK ) 957 INFOT = 2 958 CALL CSPSV( 'U', -1, 0, A, IP, B, 1, INFO ) 959 CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK ) 960 INFOT = 3 961 CALL CSPSV( 'U', 0, -1, A, IP, B, 1, INFO ) 962 CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK ) 963 INFOT = 7 964 CALL CSPSV( 'U', 2, 0, A, IP, B, 1, INFO ) 965 CALL CHKXER( 'CSPSV ', INFOT, NOUT, LERR, OK ) 966* 967* CSPSVX 968* 969 SRNAMT = 'CSPSVX' 970 INFOT = 1 971 CALL CSPSVX( '/', 'U', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 972 $ R2, W, RW, INFO ) 973 CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK ) 974 INFOT = 2 975 CALL CSPSVX( 'N', '/', 0, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 976 $ R2, W, RW, INFO ) 977 CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK ) 978 INFOT = 3 979 CALL CSPSVX( 'N', 'U', -1, 0, A, AF, IP, B, 1, X, 1, RCOND, R1, 980 $ R2, W, RW, INFO ) 981 CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK ) 982 INFOT = 4 983 CALL CSPSVX( 'N', 'U', 0, -1, A, AF, IP, B, 1, X, 1, RCOND, R1, 984 $ R2, W, RW, INFO ) 985 CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK ) 986 INFOT = 9 987 CALL CSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 1, X, 2, RCOND, R1, 988 $ R2, W, RW, INFO ) 989 CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK ) 990 INFOT = 11 991 CALL CSPSVX( 'N', 'U', 2, 0, A, AF, IP, B, 2, X, 1, RCOND, R1, 992 $ R2, W, RW, INFO ) 993 CALL CHKXER( 'CSPSVX', INFOT, NOUT, LERR, OK ) 994 END IF 995* 996* Print a summary line. 997* 998 IF( OK ) THEN 999 WRITE( NOUT, FMT = 9999 )PATH 1000 ELSE 1001 WRITE( NOUT, FMT = 9998 )PATH 1002 END IF 1003* 1004 9999 FORMAT( 1X, A3, ' drivers passed the tests of the error exits' ) 1005 9998 FORMAT( ' *** ', A3, ' drivers failed the tests of the error ', 1006 $ 'exits ***' ) 1007* 1008 RETURN 1009* 1010* End of CERRVX 1011* 1012 END 1013