1*> \brief \b SERRSYX 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 SERRSY( 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*> SERRSY tests the error exits for the REAL routines 25*> for symmetric indefinite matrices. 26*> 27*> Note that this file is used only when the XBLAS are available, 28*> otherwise serrsy.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 single_lin 57* 58* ===================================================================== 59 SUBROUTINE SERRSY( 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 ), IW( NMAX ) 85 REAL A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ), 86 $ E( NMAX ), R1( NMAX ), R2( NMAX ), W( 3*NMAX ), 87 $ X( NMAX ), S( NMAX ), ERR_BNDS_N( NMAX, 3 ), 88 $ ERR_BNDS_C( NMAX, 3 ), PARAMS( 1 ) 89* .. 90* .. External Functions .. 91 LOGICAL LSAMEN 92 EXTERNAL LSAMEN 93* .. 94* .. External Subroutines .. 95 EXTERNAL ALAESM, CHKXER, SSPCON, SSPRFS, SSPTRF, SSPTRI, 96 $ SSPTRS, SSYCON, SSYCON_3, SSYCON_ROOK, SSYRFS, 97 $ SSYTF2, SSYTF2_RK, SSYTF2_ROOK, SSYTRF, 98 $ SSYTRF_RK, SSYTRF_ROOK, SSYTRI, SSYTRI_3, 99 $ SSYTRI_3X, SSYTRI_ROOK, SSYTRI2, SSYTRI2X, 100 $ SSYTRS, SSYTRS_3, SSYTRS_ROOK, SSYRFSX 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 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 ) = 1. / REAL( I+J ) 125 AF( I, J ) = 1. / REAL( I+J ) 126 10 CONTINUE 127 B( J ) = 0.E+0 128 E( J ) = 0.E+0 129 R1( J ) = 0.E+0 130 R2( J ) = 0.E+0 131 W( J ) = 0.E+0 132 X( J ) = 0.E+0 133 IP( J ) = J 134 IW( J ) = J 135 20 CONTINUE 136 ANRM = 1.0 137 RCOND = 1.0 138 OK = .TRUE. 139* 140 IF( LSAMEN( 2, C2, 'SY' ) ) THEN 141* 142* Test error exits of the routines that use factorization 143* of a symmetric indefinite matrix with patrial 144* (Bunch-Kaufman) pivoting. 145* 146* SSYTRF 147* 148 SRNAMT = 'SSYTRF' 149 INFOT = 1 150 CALL SSYTRF( '/', 0, A, 1, IP, W, 1, INFO ) 151 CALL CHKXER( 'SSYTRF', INFOT, NOUT, LERR, OK ) 152 INFOT = 2 153 CALL SSYTRF( 'U', -1, A, 1, IP, W, 1, INFO ) 154 CALL CHKXER( 'SSYTRF', INFOT, NOUT, LERR, OK ) 155 INFOT = 4 156 CALL SSYTRF( 'U', 2, A, 1, IP, W, 4, INFO ) 157 CALL CHKXER( 'SSYTRF', INFOT, NOUT, LERR, OK ) 158 INFOT = 7 159 CALL SSYTRF( 'U', 0, A, 1, IP, W, 0, INFO ) 160 CALL CHKXER( 'SSYTRF', INFOT, NOUT, LERR, OK ) 161 INFOT = 7 162 CALL SSYTRF( 'U', 0, A, 1, IP, W, -2, INFO ) 163 CALL CHKXER( 'SSYTRF', INFOT, NOUT, LERR, OK ) 164* 165* SSYTF2 166* 167 SRNAMT = 'SSYTF2' 168 INFOT = 1 169 CALL SSYTF2( '/', 0, A, 1, IP, INFO ) 170 CALL CHKXER( 'SSYTF2', INFOT, NOUT, LERR, OK ) 171 INFOT = 2 172 CALL SSYTF2( 'U', -1, A, 1, IP, INFO ) 173 CALL CHKXER( 'SSYTF2', INFOT, NOUT, LERR, OK ) 174 INFOT = 4 175 CALL SSYTF2( 'U', 2, A, 1, IP, INFO ) 176 CALL CHKXER( 'SSYTF2', INFOT, NOUT, LERR, OK ) 177* 178* SSYTRI 179* 180 SRNAMT = 'SSYTRI' 181 INFOT = 1 182 CALL SSYTRI( '/', 0, A, 1, IP, W, INFO ) 183 CALL CHKXER( 'SSYTRI', INFOT, NOUT, LERR, OK ) 184 INFOT = 2 185 CALL SSYTRI( 'U', -1, A, 1, IP, W, INFO ) 186 CALL CHKXER( 'SSYTRI', INFOT, NOUT, LERR, OK ) 187 INFOT = 4 188 CALL SSYTRI( 'U', 2, A, 1, IP, W, INFO ) 189 CALL CHKXER( 'SSYTRI', INFOT, NOUT, LERR, OK ) 190* 191* SSYTRI2 192* 193 SRNAMT = 'SSYTRI2' 194 INFOT = 1 195 CALL SSYTRI2( '/', 0, A, 1, IP, W, IW, INFO ) 196 CALL CHKXER( 'SSYTRI', INFOT, NOUT, LERR, OK ) 197 INFOT = 2 198 CALL SSYTRI2( 'U', -1, A, 1, IP, W, IW, INFO ) 199 CALL CHKXER( 'SSYTRI', INFOT, NOUT, LERR, OK ) 200 INFOT = 4 201 CALL SSYTRI2( 'U', 2, A, 1, IP, W, IW, INFO ) 202 CALL CHKXER( 'SSYTRI', INFOT, NOUT, LERR, OK ) 203* 204* SSYTRI2X 205* 206 SRNAMT = 'SSYTRI2X' 207 INFOT = 1 208 CALL SSYTRI2X( '/', 0, A, 1, IP, W, 1, INFO ) 209 CALL CHKXER( 'SSYTRI2X', INFOT, NOUT, LERR, OK ) 210 INFOT = 2 211 CALL SSYTRI2X( 'U', -1, A, 1, IP, W, 1, INFO ) 212 CALL CHKXER( 'SSYTRI2X', INFOT, NOUT, LERR, OK ) 213 INFOT = 4 214 CALL SSYTRI2X( 'U', 2, A, 1, IP, W, 1, INFO ) 215 CALL CHKXER( 'SSYTRI2X', INFOT, NOUT, LERR, OK ) 216* 217* SSYTRS 218* 219 SRNAMT = 'SSYTRS' 220 INFOT = 1 221 CALL SSYTRS( '/', 0, 0, A, 1, IP, B, 1, INFO ) 222 CALL CHKXER( 'SSYTRS', INFOT, NOUT, LERR, OK ) 223 INFOT = 2 224 CALL SSYTRS( 'U', -1, 0, A, 1, IP, B, 1, INFO ) 225 CALL CHKXER( 'SSYTRS', INFOT, NOUT, LERR, OK ) 226 INFOT = 3 227 CALL SSYTRS( 'U', 0, -1, A, 1, IP, B, 1, INFO ) 228 CALL CHKXER( 'SSYTRS', INFOT, NOUT, LERR, OK ) 229 INFOT = 5 230 CALL SSYTRS( 'U', 2, 1, A, 1, IP, B, 2, INFO ) 231 CALL CHKXER( 'SSYTRS', INFOT, NOUT, LERR, OK ) 232 INFOT = 8 233 CALL SSYTRS( 'U', 2, 1, A, 2, IP, B, 1, INFO ) 234 CALL CHKXER( 'SSYTRS', INFOT, NOUT, LERR, OK ) 235* 236* SSYRFS 237* 238 SRNAMT = 'SSYRFS' 239 INFOT = 1 240 CALL SSYRFS( '/', 0, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, W, 241 $ IW, INFO ) 242 CALL CHKXER( 'SSYRFS', INFOT, NOUT, LERR, OK ) 243 INFOT = 2 244 CALL SSYRFS( 'U', -1, 0, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, 245 $ W, IW, INFO ) 246 CALL CHKXER( 'SSYRFS', INFOT, NOUT, LERR, OK ) 247 INFOT = 3 248 CALL SSYRFS( 'U', 0, -1, A, 1, AF, 1, IP, B, 1, X, 1, R1, R2, 249 $ W, IW, INFO ) 250 CALL CHKXER( 'SSYRFS', INFOT, NOUT, LERR, OK ) 251 INFOT = 5 252 CALL SSYRFS( 'U', 2, 1, A, 1, AF, 2, IP, B, 2, X, 2, R1, R2, W, 253 $ IW, INFO ) 254 CALL CHKXER( 'SSYRFS', INFOT, NOUT, LERR, OK ) 255 INFOT = 7 256 CALL SSYRFS( 'U', 2, 1, A, 2, AF, 1, IP, B, 2, X, 2, R1, R2, W, 257 $ IW, INFO ) 258 CALL CHKXER( 'SSYRFS', INFOT, NOUT, LERR, OK ) 259 INFOT = 10 260 CALL SSYRFS( 'U', 2, 1, A, 2, AF, 2, IP, B, 1, X, 2, R1, R2, W, 261 $ IW, INFO ) 262 CALL CHKXER( 'SSYRFS', INFOT, NOUT, LERR, OK ) 263 INFOT = 12 264 CALL SSYRFS( 'U', 2, 1, A, 2, AF, 2, IP, B, 2, X, 1, R1, R2, W, 265 $ IW, INFO ) 266 CALL CHKXER( 'SSYRFS', INFOT, NOUT, LERR, OK ) 267* 268* SSYRFSX 269* 270 N_ERR_BNDS = 3 271 NPARAMS = 0 272 SRNAMT = 'SSYRFSX' 273 INFOT = 1 274 CALL SSYRFSX( '/', EQ, 0, 0, A, 1, AF, 1, IP, S, B, 1, X, 1, 275 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 276 $ PARAMS, W, IW, INFO ) 277 CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK ) 278 INFOT = 2 279 CALL SSYRFSX( 'U', EQ, -1, 0, A, 1, AF, 1, IP, S, B, 1, X, 1, 280 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 281 $ PARAMS, W, IW, INFO ) 282 CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK ) 283 EQ = 'N' 284 INFOT = 3 285 CALL SSYRFSX( 'U', EQ, -1, 0, A, 1, AF, 1, IP, S, B, 1, X, 1, 286 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 287 $ PARAMS, W, IW, INFO ) 288 CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK ) 289 INFOT = 4 290 CALL SSYRFSX( 'U', EQ, 0, -1, A, 1, AF, 1, IP, S, B, 1, X, 1, 291 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 292 $ PARAMS, W, IW, INFO ) 293 CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK ) 294 INFOT = 6 295 CALL SSYRFSX( 'U', EQ, 2, 1, A, 1, AF, 2, IP, S, B, 2, X, 2, 296 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 297 $ PARAMS, W, IW, INFO ) 298 CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK ) 299 INFOT = 8 300 CALL SSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 1, IP, S, B, 2, X, 2, 301 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 302 $ PARAMS, W, IW, INFO ) 303 CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK ) 304 INFOT = 12 305 CALL SSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 1, X, 2, 306 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 307 $ PARAMS, W, IW, INFO ) 308 CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK ) 309 INFOT = 14 310 CALL SSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 2, X, 1, 311 $ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS, 312 $ PARAMS, W, IW, INFO ) 313 CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK ) 314* 315* SSYCON 316* 317 SRNAMT = 'SSYCON' 318 INFOT = 1 319 CALL SSYCON( '/', 0, A, 1, IP, ANRM, RCOND, W, IW, INFO ) 320 CALL CHKXER( 'SSYCON', INFOT, NOUT, LERR, OK ) 321 INFOT = 2 322 CALL SSYCON( 'U', -1, A, 1, IP, ANRM, RCOND, W, IW, INFO ) 323 CALL CHKXER( 'SSYCON', INFOT, NOUT, LERR, OK ) 324 INFOT = 4 325 CALL SSYCON( 'U', 2, A, 1, IP, ANRM, RCOND, W, IW, INFO ) 326 CALL CHKXER( 'SSYCON', INFOT, NOUT, LERR, OK ) 327 INFOT = 6 328 CALL SSYCON( 'U', 1, A, 1, IP, -1.0, RCOND, W, IW, INFO ) 329 CALL CHKXER( 'SSYCON', INFOT, NOUT, LERR, OK ) 330* 331 ELSE IF( LSAMEN( 2, C2, 'SR' ) ) THEN 332* 333* Test error exits of the routines that use factorization 334* of a symmetric indefinite matrix with rook 335* (bounded Bunch-Kaufman) pivoting. 336* 337* SSYTRF_ROOK 338* 339 SRNAMT = 'SSYTRF_ROOK' 340 INFOT = 1 341 CALL SSYTRF_ROOK( '/', 0, A, 1, IP, W, 1, INFO ) 342 CALL CHKXER( 'SSYTRF_ROOK', INFOT, NOUT, LERR, OK ) 343 INFOT = 2 344 CALL SSYTRF_ROOK( 'U', -1, A, 1, IP, W, 1, INFO ) 345 CALL CHKXER( 'SSYTRF_ROOK', INFOT, NOUT, LERR, OK ) 346 INFOT = 4 347 CALL SSYTRF_ROOK( 'U', 2, A, 1, IP, W, 4, INFO ) 348 CALL CHKXER( 'SSYTRF_ROOK', INFOT, NOUT, LERR, OK ) 349 INFOT = 7 350 CALL SSYTRF_ROOK( 'U', 0, A, 1, IP, W, 0, INFO ) 351 CALL CHKXER( 'SSYTRF_ROOK', INFOT, NOUT, LERR, OK ) 352 INFOT = 7 353 CALL SSYTRF_ROOK( 'U', 0, A, 1, IP, W, -2, INFO ) 354 CALL CHKXER( 'SSYTRF_ROOK', INFOT, NOUT, LERR, OK ) 355* 356* SSYTF2_ROOK 357* 358 SRNAMT = 'SSYTF2_ROOK' 359 INFOT = 1 360 CALL SSYTF2_ROOK( '/', 0, A, 1, IP, INFO ) 361 CALL CHKXER( 'SSYTF2_ROOK', INFOT, NOUT, LERR, OK ) 362 INFOT = 2 363 CALL SSYTF2_ROOK( 'U', -1, A, 1, IP, INFO ) 364 CALL CHKXER( 'SSYTF2_ROOK', INFOT, NOUT, LERR, OK ) 365 INFOT = 4 366 CALL SSYTF2_ROOK( 'U', 2, A, 1, IP, INFO ) 367 CALL CHKXER( 'SSYTF2_ROOK', INFOT, NOUT, LERR, OK ) 368* 369* SSYTRI_ROOK 370* 371 SRNAMT = 'SSYTRI_ROOK' 372 INFOT = 1 373 CALL SSYTRI_ROOK( '/', 0, A, 1, IP, W, INFO ) 374 CALL CHKXER( 'SSYTRI_ROOK', INFOT, NOUT, LERR, OK ) 375 INFOT = 2 376 CALL SSYTRI_ROOK( 'U', -1, A, 1, IP, W, INFO ) 377 CALL CHKXER( 'SSYTRI_ROOK', INFOT, NOUT, LERR, OK ) 378 INFOT = 4 379 CALL SSYTRI_ROOK( 'U', 2, A, 1, IP, W, INFO ) 380 CALL CHKXER( 'SSYTRI_ROOK', INFOT, NOUT, LERR, OK ) 381* 382* SSYTRS_ROOK 383* 384 SRNAMT = 'SSYTRS_ROOK' 385 INFOT = 1 386 CALL SSYTRS_ROOK( '/', 0, 0, A, 1, IP, B, 1, INFO ) 387 CALL CHKXER( 'SSYTRS_ROOK', INFOT, NOUT, LERR, OK ) 388 INFOT = 2 389 CALL SSYTRS_ROOK( 'U', -1, 0, A, 1, IP, B, 1, INFO ) 390 CALL CHKXER( 'SSYTRS_ROOK', INFOT, NOUT, LERR, OK ) 391 INFOT = 3 392 CALL SSYTRS_ROOK( 'U', 0, -1, A, 1, IP, B, 1, INFO ) 393 CALL CHKXER( 'SSYTRS_ROOK', INFOT, NOUT, LERR, OK ) 394 INFOT = 5 395 CALL SSYTRS_ROOK( 'U', 2, 1, A, 1, IP, B, 2, INFO ) 396 CALL CHKXER( 'SSYTRS_ROOK', INFOT, NOUT, LERR, OK ) 397 INFOT = 8 398 CALL SSYTRS_ROOK( 'U', 2, 1, A, 2, IP, B, 1, INFO ) 399 CALL CHKXER( 'SSYTRS_ROOK', INFOT, NOUT, LERR, OK ) 400* 401* SSYCON_ROOK 402* 403 SRNAMT = 'SSYCON_ROOK' 404 INFOT = 1 405 CALL SSYCON_ROOK( '/', 0, A, 1, IP, ANRM, RCOND, W, IW, INFO ) 406 CALL CHKXER( 'SSYCON_ROOK', INFOT, NOUT, LERR, OK ) 407 INFOT = 2 408 CALL SSYCON_ROOK( 'U', -1, A, 1, IP, ANRM, RCOND, W, IW, INFO ) 409 CALL CHKXER( 'SSYCON_ROOK', INFOT, NOUT, LERR, OK ) 410 INFOT = 4 411 CALL SSYCON_ROOK( 'U', 2, A, 1, IP, ANRM, RCOND, W, IW, INFO ) 412 CALL CHKXER( 'SSYCON_ROOK', INFOT, NOUT, LERR, OK ) 413 INFOT = 6 414 CALL SSYCON_ROOK( 'U', 1, A, 1, IP, -1.0, RCOND, W, IW, INFO ) 415 CALL CHKXER( 'SSYCON_ROOK', INFOT, NOUT, LERR, OK ) 416* 417 ELSE IF( LSAMEN( 2, C2, 'SK' ) ) THEN 418* 419* Test error exits of the routines that use factorization 420* of a symmetric indefinite matrix with rook 421* (bounded Bunch-Kaufman) pivoting with the new storage 422* format for factors L ( or U) and D. 423* 424* L (or U) is stored in A, diagonal of D is stored on the 425* diagonal of A, subdiagonal of D is stored in a separate array E. 426* 427* SSYTRF_RK 428* 429 SRNAMT = 'SSYTRF_RK' 430 INFOT = 1 431 CALL SSYTRF_RK( '/', 0, A, 1, E, IP, W, 1, INFO ) 432 CALL CHKXER( 'SSYTRF_RK', INFOT, NOUT, LERR, OK ) 433 INFOT = 2 434 CALL SSYTRF_RK( 'U', -1, A, 1, E, IP, W, 1, INFO ) 435 CALL CHKXER( 'SSYTRF_RK', INFOT, NOUT, LERR, OK ) 436 INFOT = 4 437 CALL SSYTRF_RK( 'U', 2, A, 1, E, IP, W, 4, INFO ) 438 CALL CHKXER( 'SSYTRF_RK', INFOT, NOUT, LERR, OK ) 439 INFOT = 8 440 CALL SSYTRF_RK( 'U', 0, A, 1, E, IP, W, 0, INFO ) 441 CALL CHKXER( 'SSYTRF_RK', INFOT, NOUT, LERR, OK ) 442 INFOT = 8 443 CALL SSYTRF_RK( 'U', 0, A, 1, E, IP, W, -2, INFO ) 444 CALL CHKXER( 'SSYTRF_RK', INFOT, NOUT, LERR, OK ) 445* 446* SSYTF2_RK 447* 448 SRNAMT = 'SSYTF2_RK' 449 INFOT = 1 450 CALL SSYTF2_RK( '/', 0, A, 1, E, IP, INFO ) 451 CALL CHKXER( 'SSYTF2_RK', INFOT, NOUT, LERR, OK ) 452 INFOT = 2 453 CALL SSYTF2_RK( 'U', -1, A, 1, E, IP, INFO ) 454 CALL CHKXER( 'SSYTF2_RK', INFOT, NOUT, LERR, OK ) 455 INFOT = 4 456 CALL SSYTF2_RK( 'U', 2, A, 1, E, IP, INFO ) 457 CALL CHKXER( 'SSYTF2_RK', INFOT, NOUT, LERR, OK ) 458* 459* SSYTRI_3 460* 461 SRNAMT = 'SSYTRI_3' 462 INFOT = 1 463 CALL SSYTRI_3( '/', 0, A, 1, E, IP, W, 1, INFO ) 464 CALL CHKXER( 'SSYTRI_3', INFOT, NOUT, LERR, OK ) 465 INFOT = 2 466 CALL SSYTRI_3( 'U', -1, A, 1, E, IP, W, 1, INFO ) 467 CALL CHKXER( 'SSYTRI_3', INFOT, NOUT, LERR, OK ) 468 INFOT = 4 469 CALL SSYTRI_3( 'U', 2, A, 1, E, IP, W, 1, INFO ) 470 CALL CHKXER( 'SSYTRI_3', INFOT, NOUT, LERR, OK ) 471 INFOT = 8 472 CALL SSYTRI_3( 'U', 0, A, 1, E, IP, W, 0, INFO ) 473 CALL CHKXER( 'SSYTRI_3', INFOT, NOUT, LERR, OK ) 474 INFOT = 8 475 CALL SSYTRI_3( 'U', 0, A, 1, E, IP, W, -2, INFO ) 476 CALL CHKXER( 'SSYTRI_3', INFOT, NOUT, LERR, OK ) 477* 478* SSYTRI_3X 479* 480 SRNAMT = 'SSYTRI_3X' 481 INFOT = 1 482 CALL SSYTRI_3X( '/', 0, A, 1, E, IP, W, 1, INFO ) 483 CALL CHKXER( 'SSYTRI_3X', INFOT, NOUT, LERR, OK ) 484 INFOT = 2 485 CALL SSYTRI_3X( 'U', -1, A, 1, E, IP, W, 1, INFO ) 486 CALL CHKXER( 'SSYTRI_3X', INFOT, NOUT, LERR, OK ) 487 INFOT = 4 488 CALL SSYTRI_3X( 'U', 2, A, 1, E, IP, W, 1, INFO ) 489 CALL CHKXER( 'SSYTRI_3X', INFOT, NOUT, LERR, OK ) 490* 491* SSYTRS_3 492* 493 SRNAMT = 'SSYTRS_3' 494 INFOT = 1 495 CALL SSYTRS_3( '/', 0, 0, A, 1, E, IP, B, 1, INFO ) 496 CALL CHKXER( 'SSYTRS_3', INFOT, NOUT, LERR, OK ) 497 INFOT = 2 498 CALL SSYTRS_3( 'U', -1, 0, A, 1, E, IP, B, 1, INFO ) 499 CALL CHKXER( 'SSYTRS_3', INFOT, NOUT, LERR, OK ) 500 INFOT = 3 501 CALL SSYTRS_3( 'U', 0, -1, A, 1, E, IP, B, 1, INFO ) 502 CALL CHKXER( 'SSYTRS_3', INFOT, NOUT, LERR, OK ) 503 INFOT = 5 504 CALL SSYTRS_3( 'U', 2, 1, A, 1, E, IP, B, 2, INFO ) 505 CALL CHKXER( 'SSYTRS_3', INFOT, NOUT, LERR, OK ) 506 INFOT = 9 507 CALL SSYTRS_3( 'U', 2, 1, A, 2, E, IP, B, 1, INFO ) 508 CALL CHKXER( 'SSYTRS_3', INFOT, NOUT, LERR, OK ) 509* 510* SSYCON_3 511* 512 SRNAMT = 'SSYCON_3' 513 INFOT = 1 514 CALL SSYCON_3( '/', 0, A, 1, E, IP, ANRM, RCOND, W, IW, 515 $ INFO ) 516 CALL CHKXER( 'SSYCON_3', INFOT, NOUT, LERR, OK ) 517 INFOT = 2 518 CALL SSYCON_3( 'U', -1, A, 1, E, IP, ANRM, RCOND, W, IW, 519 $ INFO ) 520 CALL CHKXER( 'SSYCON_3', INFOT, NOUT, LERR, OK ) 521 INFOT = 4 522 CALL SSYCON_3( 'U', 2, A, 1, E, IP, ANRM, RCOND, W, IW, 523 $ INFO ) 524 CALL CHKXER( 'SSYCON_3', INFOT, NOUT, LERR, OK ) 525 INFOT = 7 526 CALL SSYCON_3( 'U', 1, A, 1, E, IP, -1.0E0, RCOND, W, IW, 527 $ INFO) 528 CALL CHKXER( 'SSYCON_3', INFOT, NOUT, LERR, OK ) 529* 530 ELSE IF( LSAMEN( 2, C2, 'SP' ) ) THEN 531* 532* Test error exits of the routines that use factorization 533* of a symmetric indefinite packed matrix with patrial 534* (Bunch-Kaufman) pivoting. 535* 536* SSPTRF 537* 538 SRNAMT = 'SSPTRF' 539 INFOT = 1 540 CALL SSPTRF( '/', 0, A, IP, INFO ) 541 CALL CHKXER( 'SSPTRF', INFOT, NOUT, LERR, OK ) 542 INFOT = 2 543 CALL SSPTRF( 'U', -1, A, IP, INFO ) 544 CALL CHKXER( 'SSPTRF', INFOT, NOUT, LERR, OK ) 545* 546* SSPTRI 547* 548 SRNAMT = 'SSPTRI' 549 INFOT = 1 550 CALL SSPTRI( '/', 0, A, IP, W, INFO ) 551 CALL CHKXER( 'SSPTRI', INFOT, NOUT, LERR, OK ) 552 INFOT = 2 553 CALL SSPTRI( 'U', -1, A, IP, W, INFO ) 554 CALL CHKXER( 'SSPTRI', INFOT, NOUT, LERR, OK ) 555* 556* SSPTRS 557* 558 SRNAMT = 'SSPTRS' 559 INFOT = 1 560 CALL SSPTRS( '/', 0, 0, A, IP, B, 1, INFO ) 561 CALL CHKXER( 'SSPTRS', INFOT, NOUT, LERR, OK ) 562 INFOT = 2 563 CALL SSPTRS( 'U', -1, 0, A, IP, B, 1, INFO ) 564 CALL CHKXER( 'SSPTRS', INFOT, NOUT, LERR, OK ) 565 INFOT = 3 566 CALL SSPTRS( 'U', 0, -1, A, IP, B, 1, INFO ) 567 CALL CHKXER( 'SSPTRS', INFOT, NOUT, LERR, OK ) 568 INFOT = 7 569 CALL SSPTRS( 'U', 2, 1, A, IP, B, 1, INFO ) 570 CALL CHKXER( 'SSPTRS', INFOT, NOUT, LERR, OK ) 571* 572* SSPRFS 573* 574 SRNAMT = 'SSPRFS' 575 INFOT = 1 576 CALL SSPRFS( '/', 0, 0, A, AF, IP, B, 1, X, 1, R1, R2, W, IW, 577 $ INFO ) 578 CALL CHKXER( 'SSPRFS', INFOT, NOUT, LERR, OK ) 579 INFOT = 2 580 CALL SSPRFS( 'U', -1, 0, A, AF, IP, B, 1, X, 1, R1, R2, W, IW, 581 $ INFO ) 582 CALL CHKXER( 'SSPRFS', INFOT, NOUT, LERR, OK ) 583 INFOT = 3 584 CALL SSPRFS( 'U', 0, -1, A, AF, IP, B, 1, X, 1, R1, R2, W, IW, 585 $ INFO ) 586 CALL CHKXER( 'SSPRFS', INFOT, NOUT, LERR, OK ) 587 INFOT = 8 588 CALL SSPRFS( 'U', 2, 1, A, AF, IP, B, 1, X, 2, R1, R2, W, IW, 589 $ INFO ) 590 CALL CHKXER( 'SSPRFS', INFOT, NOUT, LERR, OK ) 591 INFOT = 10 592 CALL SSPRFS( 'U', 2, 1, A, AF, IP, B, 2, X, 1, R1, R2, W, IW, 593 $ INFO ) 594 CALL CHKXER( 'SSPRFS', INFOT, NOUT, LERR, OK ) 595* 596* SSPCON 597* 598 SRNAMT = 'SSPCON' 599 INFOT = 1 600 CALL SSPCON( '/', 0, A, IP, ANRM, RCOND, W, IW, INFO ) 601 CALL CHKXER( 'SSPCON', INFOT, NOUT, LERR, OK ) 602 INFOT = 2 603 CALL SSPCON( 'U', -1, A, IP, ANRM, RCOND, W, IW, INFO ) 604 CALL CHKXER( 'SSPCON', INFOT, NOUT, LERR, OK ) 605 INFOT = 5 606 CALL SSPCON( 'U', 1, A, IP, -1.0, RCOND, W, IW, INFO ) 607 CALL CHKXER( 'SSPCON', INFOT, NOUT, LERR, OK ) 608 END IF 609* 610* Print a summary line. 611* 612 CALL ALAESM( PATH, OK, NOUT ) 613* 614 RETURN 615* 616* End of SERRSY 617* 618 END 619