1*> \brief \b CERRSYX 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 CERRSY( 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*> CERRSY tests the error exits for the COMPLEX routines 25*> for symmetric indefinite matrices. 26*> 27*> Note that this file is used only when the XBLAS are available, 28*> otherwise cerrsy.f defines this subroutine. 29*> \endverbatim 30* 31* Arguments: 32* ========== 33* 34*> \param[in] PATH 35*> \verbatim 36*> PATH is CHARACTER*3 37*> The LAPACK path name for the routines to be tested. 38*> \endverbatim 39*> 40*> \param[in] NUNIT 41*> \verbatim 42*> NUNIT is INTEGER 43*> The unit number for output. 44*> \endverbatim 45* 46* Authors: 47* ======== 48* 49*> \author Univ. of Tennessee 50*> \author Univ. of California Berkeley 51*> \author Univ. of Colorado Denver 52*> \author NAG Ltd. 53* 54*> \date December 2016 55* 56*> \ingroup complex_lin 57* 58* ===================================================================== 59 SUBROUTINE CERRSY( PATH, NUNIT ) 60* 61* -- LAPACK test routine (version 3.7.0) -- 62* -- LAPACK is a software package provided by Univ. of Tennessee, -- 63* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- 64* December 2016 65* 66* .. Scalar Arguments .. 67 CHARACTER*3 PATH 68 INTEGER NUNIT 69* .. 70* 71* ===================================================================== 72* 73* .. Parameters .. 74 INTEGER NMAX 75 PARAMETER ( NMAX = 4 ) 76* .. 77* .. Local Scalars .. 78 CHARACTER EQ 79 CHARACTER*2 C2 80 INTEGER I, INFO, J, N_ERR_BNDS, NPARAMS 81 REAL ANRM, RCOND, BERR 82* .. 83* .. Local Arrays .. 84 INTEGER IP( NMAX ) 85 REAL R( NMAX ), R1( NMAX ), R2( NMAX ), 86 $ S( NMAX ), ERR_BNDS_N( NMAX, 3 ), 87 $ ERR_BNDS_C( NMAX, 3 ), PARAMS( 1 ) 88 COMPLEX A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ), 89 $ E( NMAX), W( 2*NMAX ), X( NMAX ) 90* .. 91* .. External Functions .. 92 LOGICAL LSAMEN 93 EXTERNAL LSAMEN 94* .. 95* .. External Subroutines .. 96 EXTERNAL ALAESM, CHKXER, CSPCON, CSPRFS, CSPTRF, CSPTRI, 97 $ CSPTRS, CSYCON, CSYRFS, CSYTF2, CSYTRF, CSYTRI, 98 $ CSYTRI2, CSYTRS, CSYRFSX, CSYCON_ROOK, 99 $ CSYTF2_ROOK, CSYTRF_ROOK, CSYTRI_ROOK, 100 $ CSYTRS_ROOK 101* .. 102* .. Scalars in Common .. 103 LOGICAL LERR, OK 104 CHARACTER*32 SRNAMT 105 INTEGER INFOT, NOUT 106* .. 107* .. Common blocks .. 108 COMMON / INFOC / INFOT, NOUT, OK, LERR 109 COMMON / SRNAMC / SRNAMT 110* .. 111* .. Intrinsic Functions .. 112 INTRINSIC CMPLX, REAL 113* .. 114* .. Executable Statements .. 115* 116 NOUT = NUNIT 117 WRITE( NOUT, FMT = * ) 118 C2 = PATH( 2: 3 ) 119* 120* Set the variables to innocuous values. 121* 122 DO 20 J = 1, NMAX 123 DO 10 I = 1, NMAX 124 A( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) ) 125 AF( I, J ) = CMPLX( 1. / REAL( I+J ), -1. / REAL( I+J ) ) 126 10 CONTINUE 127 B( J ) = 0.E0 128 E( J ) = 0.E0 129 R1( J ) = 0.E0 130 R2( J ) = 0.E0 131 W( J ) = 0.E0 132 X( J ) = 0.E0 133 IP( J ) = J 134 20 CONTINUE 135 ANRM = 1.0 136 OK = .TRUE. 137 138 IF( LSAMEN( 2, C2, 'SY' ) ) THEN 139* 140* Test error exits of the routines that use factorization 141* of a symmetric indefinite matrix with patrial 142* (Bunch-Kaufman) diagonal pivoting method. 143* 144* CSYTRF 145* 146 SRNAMT = 'CSYTRF' 147 INFOT = 1 148 CALL CSYTRF( '/', 0, A, 1, IP, W, 1, INFO ) 149 CALL CHKXER( 'CSYTRF', INFOT, NOUT, LERR, OK ) 150 INFOT = 2 151 CALL CSYTRF( 'U', -1, A, 1, IP, W, 1, INFO ) 152 CALL CHKXER( 'CSYTRF', INFOT, NOUT, LERR, OK ) 153 INFOT = 4 154 CALL CSYTRF( 'U', 2, A, 1, IP, W, 4, INFO ) 155 CALL CHKXER( 'CSYTRF', INFOT, NOUT, LERR, OK ) 156 INFOT = 7 157 CALL CSYTRF( 'U', 0, A, 1, IP, W, 0, INFO ) 158 CALL CHKXER( 'CSYTRF', INFOT, NOUT, LERR, OK ) 159 INFOT = 7 160 CALL CSYTRF( 'U', 0, A, 1, IP, W, -2, INFO ) 161 CALL CHKXER( 'CSYTRF', INFOT, NOUT, LERR, OK ) 162* 163* CSYTF2 164* 165 SRNAMT = 'CSYTF2' 166 INFOT = 1 167 CALL CSYTF2( '/', 0, A, 1, IP, INFO ) 168 CALL CHKXER( 'CSYTF2', INFOT, NOUT, LERR, OK ) 169 INFOT = 2 170 CALL CSYTF2( 'U', -1, A, 1, IP, INFO ) 171 CALL CHKXER( 'CSYTF2', INFOT, NOUT, LERR, OK ) 172 INFOT = 4 173 CALL CSYTF2( 'U', 2, A, 1, IP, INFO ) 174 CALL CHKXER( 'CSYTF2', INFOT, NOUT, LERR, OK ) 175* 176* CSYTRI 177* 178 SRNAMT = 'CSYTRI' 179 INFOT = 1 180 CALL CSYTRI( '/', 0, A, 1, IP, W, INFO ) 181 CALL CHKXER( 'CSYTRI', INFOT, NOUT, LERR, OK ) 182 INFOT = 2 183 CALL CSYTRI( 'U', -1, A, 1, IP, W, INFO ) 184 CALL CHKXER( 'CSYTRI', INFOT, NOUT, LERR, OK ) 185 INFOT = 4 186 CALL CSYTRI( 'U', 2, A, 1, IP, W, INFO ) 187 CALL CHKXER( 'CSYTRI', INFOT, NOUT, LERR, OK ) 188* 189* CSYTRI2 190* 191 SRNAMT = 'CSYTRI2' 192 INFOT = 1 193 CALL CSYTRI2( '/', 0, A, 1, IP, W, 1, INFO ) 194 CALL CHKXER( 'CSYTRI2', INFOT, NOUT, LERR, OK ) 195 INFOT = 2 196 CALL CSYTRI2( 'U', -1, A, 1, IP, W, 1, INFO ) 197 CALL CHKXER( 'CSYTRI2', INFOT, NOUT, LERR, OK ) 198 INFOT = 4 199 CALL CSYTRI2( 'U', 2, A, 1, IP, W, 1, INFO ) 200 CALL CHKXER( 'CSYTRI2', INFOT, NOUT, LERR, OK ) 201* 202* CSYTRI2X 203* 204 SRNAMT = 'CSYTRI2X' 205 INFOT = 1 206 CALL CSYTRI2X( '/', 0, A, 1, IP, W, 1, INFO ) 207 CALL CHKXER( 'CSYTRI2X', INFOT, NOUT, LERR, OK ) 208 INFOT = 2 209 CALL CSYTRI2X( 'U', -1, A, 1, IP, W, 1, INFO ) 210 CALL CHKXER( 'CSYTRI2X', INFOT, NOUT, LERR, OK ) 211 INFOT = 4 212 CALL CSYTRI2X( 'U', 2, A, 1, IP, W, 1, INFO ) 213 CALL CHKXER( 'CSYTRI2X', INFOT, NOUT, LERR, OK ) 214* 215* CSYTRS 216* 217 SRNAMT = 'CSYTRS' 218 INFOT = 1 219 CALL CSYTRS( '/', 0, 0, A, 1, IP, B, 1, INFO ) 220 CALL CHKXER( 'CSYTRS', INFOT, NOUT, LERR, OK ) 221 INFOT = 2 222 CALL CSYTRS( 'U', -1, 0, A, 1, IP, B, 1, INFO ) 223 CALL CHKXER( 'CSYTRS', INFOT, NOUT, LERR, OK ) 224 INFOT = 3 225 CALL CSYTRS( 'U', 0, -1, A, 1, IP, B, 1, INFO ) 226 CALL CHKXER( 'CSYTRS', INFOT, NOUT, LERR, OK ) 227 INFOT = 5 228 CALL CSYTRS( 'U', 2, 1, A, 1, IP, B, 2, INFO ) 229 CALL CHKXER( 'CSYTRS', INFOT, NOUT, LERR, OK ) 230 INFOT = 8 231 CALL CSYTRS( 'U', 2, 1, A, 2, IP, B, 1, INFO ) 232 CALL CHKXER( 'CSYTRS', INFOT, NOUT, LERR, OK ) 233* 234* CSYRFS 235* 236 SRNAMT = 'CSYRFS' 237 INFOT = 1 238 CALL CSYRFS( '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, W, 239 $ R, INFO ) 240 CALL CHKXER( 'CSYRFS', INFOT, NOUT, LERR, OK ) 241 INFOT = 2 242 CALL CSYRFS( 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, 243 $ W, R, INFO ) 244 CALL CHKXER( 'CSYRFS', INFOT, NOUT, LERR, OK ) 245 INFOT = 3 246 CALL CSYRFS( 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, 247 $ W, R, INFO ) 248 CALL CHKXER( 'CSYRFS', INFOT, NOUT, LERR, OK ) 249 INFOT = 5 250 CALL CSYRFS( 'U', 2, 1, A, 1, AF, 2, IP, B, 2, X, 2, R1, R2, W, 251 $ R, INFO ) 252 CALL CHKXER( 'CSYRFS', INFOT, NOUT, LERR, OK ) 253 INFOT = 7 254 CALL CSYRFS( 'U', 2, 1, A, 2, AF, 1, IP, B, 2, X, 2, R1, R2, W, 255 $ R, INFO ) 256 CALL CHKXER( 'CSYRFS', INFOT, NOUT, LERR, OK ) 257 INFOT = 10 258 CALL CSYRFS( 'U', 2, 1, A, 2, AF, 2, IP, B, 1, X, 2, R1, R2, W, 259 $ R, INFO ) 260 CALL CHKXER( 'CSYRFS', INFOT, NOUT, LERR, OK ) 261 INFOT = 12 262 CALL CSYRFS( 'U', 2, 1, A, 2, AF, 2, IP, B, 2, X, 1, R1, R2, W, 263 $ R, INFO ) 264 CALL CHKXER( 'CSYRFS', INFOT, NOUT, LERR, OK ) 265* 266* CSYRFSX 267* 268 N_ERR_BNDS = 3 269 NPARAMS = 0 270 SRNAMT = 'CSYRFSX' 271 INFOT = 1 272 CALL CSYRFSX( '/', EQ, 0, 0, A, 1, AF, 1, IP, S, B, 1, X, 1, 273 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 274 $ PARAMS, W, R, INFO ) 275 CALL CHKXER( 'CSYRFSX', INFOT, NOUT, LERR, OK ) 276 INFOT = 2 277 CALL CSYRFSX( 'U', EQ, -1, 0, A, 1, AF, 1, IP, S, B, 1, X, 1, 278 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 279 $ PARAMS, W, R, INFO ) 280 CALL CHKXER( 'CSYRFSX', INFOT, NOUT, LERR, OK ) 281 EQ = 'N' 282 INFOT = 3 283 CALL CSYRFSX( 'U', EQ, -1, 0, A, 1, AF, 1, IP, S, B, 1, X, 1, 284 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 285 $ PARAMS, W, R, INFO ) 286 CALL CHKXER( 'CSYRFSX', INFOT, NOUT, LERR, OK ) 287 INFOT = 4 288 CALL CSYRFSX( 'U', EQ, 0, -1, A, 1, AF, 1, IP, S, B, 1, X, 1, 289 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 290 $ PARAMS, W, R, INFO ) 291 CALL CHKXER( 'CSYRFSX', INFOT, NOUT, LERR, OK ) 292 INFOT = 6 293 CALL CSYRFSX( 'U', EQ, 2, 1, A, 1, AF, 2, IP, S, B, 2, X, 2, 294 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 295 $ PARAMS, W, R, INFO ) 296 CALL CHKXER( 'CSYRFSX', INFOT, NOUT, LERR, OK ) 297 INFOT = 8 298 CALL CSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 1, IP, S, B, 2, X, 2, 299 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 300 $ PARAMS, W, R, INFO ) 301 CALL CHKXER( 'CSYRFSX', INFOT, NOUT, LERR, OK ) 302 INFOT = 12 303 CALL CSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 1, X, 2, 304 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 305 $ PARAMS, W, R, INFO ) 306 CALL CHKXER( 'CSYRFSX', INFOT, NOUT, LERR, OK ) 307 INFOT = 14 308 CALL CSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 2, X, 1, 309 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 310 $ PARAMS, W, R, INFO ) 311 CALL CHKXER( 'CSYRFSX', INFOT, NOUT, LERR, OK ) 312* 313* CSYCON 314* 315 SRNAMT = 'CSYCON' 316 INFOT = 1 317 CALL CSYCON( '/', 0, A, 1, IP, ANRM, RCOND, W, INFO ) 318 CALL CHKXER( 'CSYCON', INFOT, NOUT, LERR, OK ) 319 INFOT = 2 320 CALL CSYCON( 'U', -1, A, 1, IP, ANRM, RCOND, W, INFO ) 321 CALL CHKXER( 'CSYCON', INFOT, NOUT, LERR, OK ) 322 INFOT = 4 323 CALL CSYCON( 'U', 2, A, 1, IP, ANRM, RCOND, W, INFO ) 324 CALL CHKXER( 'CSYCON', INFOT, NOUT, LERR, OK ) 325 INFOT = 6 326 CALL CSYCON( 'U', 1, A, 1, IP, -ANRM, RCOND, W, INFO ) 327 CALL CHKXER( 'CSYCON', INFOT, NOUT, LERR, OK ) 328* 329 ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN 330* 331* Test error exits of the routines that use factorization 332* of a symmetric indefinite matrix with rook 333* (bounded Bunch-Kaufman) diagonal pivoting method. 334* 335* CSYTRF_ROOK 336* 337 SRNAMT = 'CSYTRF_ROOK' 338 INFOT = 1 339 CALL CSYTRF_ROOK( '/', 0, A, 1, IP, W, 1, INFO ) 340 CALL CHKXER( 'CSYTRF_ROOK', INFOT, NOUT, LERR, OK ) 341 INFOT = 2 342 CALL CSYTRF_ROOK( 'U', -1, A, 1, IP, W, 1, INFO ) 343 CALL CHKXER( 'CSYTRF_ROOK', INFOT, NOUT, LERR, OK ) 344 INFOT = 4 345 CALL CSYTRF_ROOK( 'U', 2, A, 1, IP, W, 4, INFO ) 346 CALL CHKXER( 'CSYTRF_ROOK', INFOT, NOUT, LERR, OK ) 347 INFOT = 7 348 CALL CSYTRF_ROOK( 'U', 0, A, 1, IP, W, 0, INFO ) 349 CALL CHKXER( 'CSYTRF_ROOK', INFOT, NOUT, LERR, OK ) 350 INFOT = 7 351 CALL CSYTRF_ROOK( 'U', 0, A, 1, IP, W, -2, INFO ) 352 CALL CHKXER( 'CSYTRF_ROOK', INFOT, NOUT, LERR, OK ) 353* 354* CSYTF2_ROOK 355* 356 SRNAMT = 'CSYTF2_ROOK' 357 INFOT = 1 358 CALL CSYTF2_ROOK( '/', 0, A, 1, IP, INFO ) 359 CALL CHKXER( 'CSYTF2_ROOK', INFOT, NOUT, LERR, OK ) 360 INFOT = 2 361 CALL CSYTF2_ROOK( 'U', -1, A, 1, IP, INFO ) 362 CALL CHKXER( 'CSYTF2_ROOK', INFOT, NOUT, LERR, OK ) 363 INFOT = 4 364 CALL CSYTF2_ROOK( 'U', 2, A, 1, IP, INFO ) 365 CALL CHKXER( 'CSYTF2_ROOK', INFOT, NOUT, LERR, OK ) 366* 367* CSYTRI_ROOK 368* 369 SRNAMT = 'CSYTRI_ROOK' 370 INFOT = 1 371 CALL CSYTRI_ROOK( '/', 0, A, 1, IP, W, INFO ) 372 CALL CHKXER( 'CSYTRI_ROOK', INFOT, NOUT, LERR, OK ) 373 INFOT = 2 374 CALL CSYTRI_ROOK( 'U', -1, A, 1, IP, W, INFO ) 375 CALL CHKXER( 'CSYTRI_ROOK', INFOT, NOUT, LERR, OK ) 376 INFOT = 4 377 CALL CSYTRI_ROOK( 'U', 2, A, 1, IP, W, INFO ) 378 CALL CHKXER( 'CSYTRI_ROOK', INFOT, NOUT, LERR, OK ) 379* 380* CSYTRS_ROOK 381* 382 SRNAMT = 'CSYTRS_ROOK' 383 INFOT = 1 384 CALL CSYTRS_ROOK( '/', 0, 0, A, 1, IP, B, 1, INFO ) 385 CALL CHKXER( 'CSYTRS_ROOK', INFOT, NOUT, LERR, OK ) 386 INFOT = 2 387 CALL CSYTRS_ROOK( 'U', -1, 0, A, 1, IP, B, 1, INFO ) 388 CALL CHKXER( 'CSYTRS_ROOK', INFOT, NOUT, LERR, OK ) 389 INFOT = 3 390 CALL CSYTRS_ROOK( 'U', 0, -1, A, 1, IP, B, 1, INFO ) 391 CALL CHKXER( 'CSYTRS_ROOK', INFOT, NOUT, LERR, OK ) 392 INFOT = 5 393 CALL CSYTRS_ROOK( 'U', 2, 1, A, 1, IP, B, 2, INFO ) 394 CALL CHKXER( 'CSYTRS_ROOK', INFOT, NOUT, LERR, OK ) 395 INFOT = 8 396 CALL CSYTRS_ROOK( 'U', 2, 1, A, 2, IP, B, 1, INFO ) 397 CALL CHKXER( 'CSYTRS_ROOK', INFOT, NOUT, LERR, OK ) 398* 399* CSYCON_ROOK 400* 401 SRNAMT = 'CSYCON_ROOK' 402 INFOT = 1 403 CALL CSYCON_ROOK( '/', 0, A, 1, IP, ANRM, RCOND, W, INFO ) 404 CALL CHKXER( 'CSYCON_ROOK', INFOT, NOUT, LERR, OK ) 405 INFOT = 2 406 CALL CSYCON_ROOK( 'U', -1, A, 1, IP, ANRM, RCOND, W, INFO ) 407 CALL CHKXER( 'CSYCON_ROOK', INFOT, NOUT, LERR, OK ) 408 INFOT = 4 409 CALL CSYCON_ROOK( 'U', 2, A, 1, IP, ANRM, RCOND, W, INFO ) 410 CALL CHKXER( 'CSYCON_ROOK', INFOT, NOUT, LERR, OK ) 411 INFOT = 6 412 CALL CSYCON_ROOK( 'U', 1, A, 1, IP, -ANRM, RCOND, W, INFO ) 413 CALL CHKXER( 'CSYCON_ROOK', INFOT, NOUT, LERR, OK ) 414* 415 ELSE IF( LSAMEN( 2, C2, 'SK' ) ) THEN 416* 417* Test error exits of the routines that use factorization 418* of a symmetric indefinite matrix with rook 419* (bounded Bunch-Kaufman) pivoting with the new storage 420* format for factors L ( or U) and D. 421* 422* L (or U) is stored in A, diagonal of D is stored on the 423* diagonal of A, subdiagonal of D is stored in a separate array E. 424* 425* CSYTRF_RK 426* 427 SRNAMT = 'CSYTRF_RK' 428 INFOT = 1 429 CALL CSYTRF_RK( '/', 0, A, 1, E, IP, W, 1, INFO ) 430 CALL CHKXER( 'CSYTRF_RK', INFOT, NOUT, LERR, OK ) 431 INFOT = 2 432 CALL CSYTRF_RK( 'U', -1, A, 1, E, IP, W, 1, INFO ) 433 CALL CHKXER( 'CSYTRF_RK', INFOT, NOUT, LERR, OK ) 434 INFOT = 4 435 CALL CSYTRF_RK( 'U', 2, A, 1, E, IP, W, 4, INFO ) 436 CALL CHKXER( 'CSYTRF_RK', INFOT, NOUT, LERR, OK ) 437 INFOT = 8 438 CALL CSYTRF_RK( 'U', 0, A, 1, E, IP, W, 0, INFO ) 439 CALL CHKXER( 'CSYTRF_RK', INFOT, NOUT, LERR, OK ) 440 INFOT = 8 441 CALL CSYTRF_RK( 'U', 0, A, 1, E, IP, W, -2, INFO ) 442 CALL CHKXER( 'CSYTRF_RK', INFOT, NOUT, LERR, OK ) 443* 444* CSYTF2_RK 445* 446 SRNAMT = 'CSYTF2_RK' 447 INFOT = 1 448 CALL CSYTF2_RK( '/', 0, A, 1, E, IP, INFO ) 449 CALL CHKXER( 'CSYTF2_RK', INFOT, NOUT, LERR, OK ) 450 INFOT = 2 451 CALL CSYTF2_RK( 'U', -1, A, 1, E, IP, INFO ) 452 CALL CHKXER( 'CSYTF2_RK', INFOT, NOUT, LERR, OK ) 453 INFOT = 4 454 CALL CSYTF2_RK( 'U', 2, A, 1, E, IP, INFO ) 455 CALL CHKXER( 'CSYTF2_RK', INFOT, NOUT, LERR, OK ) 456* 457* CSYTRI_3 458* 459 SRNAMT = 'CSYTRI_3' 460 INFOT = 1 461 CALL CSYTRI_3( '/', 0, A, 1, E, IP, W, 1, INFO ) 462 CALL CHKXER( 'CSYTRI_3', INFOT, NOUT, LERR, OK ) 463 INFOT = 2 464 CALL CSYTRI_3( 'U', -1, A, 1, E, IP, W, 1, INFO ) 465 CALL CHKXER( 'CSYTRI_3', INFOT, NOUT, LERR, OK ) 466 INFOT = 4 467 CALL CSYTRI_3( 'U', 2, A, 1, E, IP, W, 1, INFO ) 468 CALL CHKXER( 'CSYTRI_3', INFOT, NOUT, LERR, OK ) 469 INFOT = 8 470 CALL CSYTRI_3( 'U', 0, A, 1, E, IP, W, 0, INFO ) 471 CALL CHKXER( 'CSYTRI_3', INFOT, NOUT, LERR, OK ) 472 INFOT = 8 473 CALL CSYTRI_3( 'U', 0, A, 1, E, IP, W, -2, INFO ) 474 CALL CHKXER( 'CSYTRI_3', INFOT, NOUT, LERR, OK ) 475* 476* CSYTRI_3X 477* 478 SRNAMT = 'CSYTRI_3X' 479 INFOT = 1 480 CALL CSYTRI_3X( '/', 0, A, 1, E, IP, W, 1, INFO ) 481 CALL CHKXER( 'CSYTRI_3X', INFOT, NOUT, LERR, OK ) 482 INFOT = 2 483 CALL CSYTRI_3X( 'U', -1, A, 1, E, IP, W, 1, INFO ) 484 CALL CHKXER( 'CSYTRI_3X', INFOT, NOUT, LERR, OK ) 485 INFOT = 4 486 CALL CSYTRI_3X( 'U', 2, A, 1, E, IP, W, 1, INFO ) 487 CALL CHKXER( 'CSYTRI_3X', INFOT, NOUT, LERR, OK ) 488* 489* CSYTRS_3 490* 491 SRNAMT = 'CSYTRS_3' 492 INFOT = 1 493 CALL CSYTRS_3( '/', 0, 0, A, 1, E, IP, B, 1, INFO ) 494 CALL CHKXER( 'CSYTRS_3', INFOT, NOUT, LERR, OK ) 495 INFOT = 2 496 CALL CSYTRS_3( 'U', -1, 0, A, 1, E, IP, B, 1, INFO ) 497 CALL CHKXER( 'CSYTRS_3', INFOT, NOUT, LERR, OK ) 498 INFOT = 3 499 CALL CSYTRS_3( 'U', 0, -1, A, 1, E, IP, B, 1, INFO ) 500 CALL CHKXER( 'CSYTRS_3', INFOT, NOUT, LERR, OK ) 501 INFOT = 5 502 CALL CSYTRS_3( 'U', 2, 1, A, 1, E, IP, B, 2, INFO ) 503 CALL CHKXER( 'CSYTRS_3', INFOT, NOUT, LERR, OK ) 504 INFOT = 9 505 CALL CSYTRS_3( 'U', 2, 1, A, 2, E, IP, B, 1, INFO ) 506 CALL CHKXER( 'CSYTRS_3', INFOT, NOUT, LERR, OK ) 507* 508* CSYCON_3 509* 510 SRNAMT = 'CSYCON_3' 511 INFOT = 1 512 CALL CSYCON_3( '/', 0, A, 1, E, IP, ANRM, RCOND, W, INFO ) 513 CALL CHKXER( 'CSYCON_3', INFOT, NOUT, LERR, OK ) 514 INFOT = 2 515 CALL CSYCON_3( 'U', -1, A, 1, E, IP, ANRM, RCOND, W, INFO ) 516 CALL CHKXER( 'CSYCON_3', INFOT, NOUT, LERR, OK ) 517 INFOT = 4 518 CALL CSYCON_3( 'U', 2, A, 1, E, IP, ANRM, RCOND, W, INFO ) 519 CALL CHKXER( 'CSYCON_3', INFOT, NOUT, LERR, OK ) 520 INFOT = 7 521 CALL CSYCON_3( 'U', 1, A, 1, E, IP, -1.0E0, RCOND, W, INFO) 522 CALL CHKXER( 'CSYCON_3', INFOT, NOUT, LERR, OK ) 523* 524 ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN 525* 526* Test error exits of the routines that use factorization 527* of a symmetric indefinite packed matrix with patrial 528* (Bunch-Kaufman) diagonal pivoting method. 529* 530* CSPTRF 531* 532 SRNAMT = 'CSPTRF' 533 INFOT = 1 534 CALL CSPTRF( '/', 0, A, IP, INFO ) 535 CALL CHKXER( 'CSPTRF', INFOT, NOUT, LERR, OK ) 536 INFOT = 2 537 CALL CSPTRF( 'U', -1, A, IP, INFO ) 538 CALL CHKXER( 'CSPTRF', INFOT, NOUT, LERR, OK ) 539* 540* CSPTRI 541* 542 SRNAMT = 'CSPTRI' 543 INFOT = 1 544 CALL CSPTRI( '/', 0, A, IP, W, INFO ) 545 CALL CHKXER( 'CSPTRI', INFOT, NOUT, LERR, OK ) 546 INFOT = 2 547 CALL CSPTRI( 'U', -1, A, IP, W, INFO ) 548 CALL CHKXER( 'CSPTRI', INFOT, NOUT, LERR, OK ) 549* 550* CSPTRS 551* 552 SRNAMT = 'CSPTRS' 553 INFOT = 1 554 CALL CSPTRS( '/', 0, 0, A, IP, B, 1, INFO ) 555 CALL CHKXER( 'CSPTRS', INFOT, NOUT, LERR, OK ) 556 INFOT = 2 557 CALL CSPTRS( 'U', -1, 0, A, IP, B, 1, INFO ) 558 CALL CHKXER( 'CSPTRS', INFOT, NOUT, LERR, OK ) 559 INFOT = 3 560 CALL CSPTRS( 'U', 0, -1, A, IP, B, 1, INFO ) 561 CALL CHKXER( 'CSPTRS', INFOT, NOUT, LERR, OK ) 562 INFOT = 7 563 CALL CSPTRS( 'U', 2, 1, A, IP, B, 1, INFO ) 564 CALL CHKXER( 'CSPTRS', INFOT, NOUT, LERR, OK ) 565* 566* CSPRFS 567* 568 SRNAMT = 'CSPRFS' 569 INFOT = 1 570 CALL CSPRFS( '/', 0, 0, A, AF, IP, B, 1, X, 1, R1, R2, W, R, 571 $ INFO ) 572 CALL CHKXER( 'CSPRFS', INFOT, NOUT, LERR, OK ) 573 INFOT = 2 574 CALL CSPRFS( 'U', -1, 0, A, AF, IP, B, 1, X, 1, R1, R2, W, R, 575 $ INFO ) 576 CALL CHKXER( 'CSPRFS', INFOT, NOUT, LERR, OK ) 577 INFOT = 3 578 CALL CSPRFS( 'U', 0, -1, A, AF, IP, B, 1, X, 1, R1, R2, W, R, 579 $ INFO ) 580 CALL CHKXER( 'CSPRFS', INFOT, NOUT, LERR, OK ) 581 INFOT = 8 582 CALL CSPRFS( 'U', 2, 1, A, AF, IP, B, 1, X, 2, R1, R2, W, R, 583 $ INFO ) 584 CALL CHKXER( 'CSPRFS', INFOT, NOUT, LERR, OK ) 585 INFOT = 10 586 CALL CSPRFS( 'U', 2, 1, A, AF, IP, B, 2, X, 1, R1, R2, W, R, 587 $ INFO ) 588 CALL CHKXER( 'CSPRFS', INFOT, NOUT, LERR, OK ) 589* 590* CSPCON 591* 592 SRNAMT = 'CSPCON' 593 INFOT = 1 594 CALL CSPCON( '/', 0, A, IP, ANRM, RCOND, W, INFO ) 595 CALL CHKXER( 'CSPCON', INFOT, NOUT, LERR, OK ) 596 INFOT = 2 597 CALL CSPCON( 'U', -1, A, IP, ANRM, RCOND, W, INFO ) 598 CALL CHKXER( 'CSPCON', INFOT, NOUT, LERR, OK ) 599 INFOT = 5 600 CALL CSPCON( 'U', 1, A, IP, -ANRM, RCOND, W, INFO ) 601 CALL CHKXER( 'CSPCON', INFOT, NOUT, LERR, OK ) 602 END IF 603* 604* Print a summary line. 605* 606 CALL ALAESM( PATH, OK, NOUT ) 607* 608 RETURN 609* 610* End of CERRSY 611* 612 END 613