/*! solve A*x=y using zgbsv\n The argument is zcovector y. y is overwritten and become the solution x. A is also overwritten. */ inline long zgbmatrix::zgbsv(zcovector& vec) { #ifdef CPPL_VERBOSE std::cerr << "# [MARK] zgbmatrix::zgbsv(zcovector&)" << std::endl; #endif//CPPL_VERBOSE #ifdef CPPL_DEBUG if(M!=N || N!=vec.L){ std::cerr << "[ERROR] zgbmatrix::zgbsv(zcovector&) " << std::endl << "These matrix and vector cannot be solved." << std::endl << "Your input was (" << M << "x" << N << ") and (" << vec.L << ")." << std::endl; exit(1); } #endif//CPPL_DEBUG zgbmatrix newmat(M,N,KL,KU+KL); for(long i=0; i<M; i++){ for(long j=max(0,i-KL); j<min(n,i+KU+1); j++){ newmat(i,j) =operator()(i,j); }} long NRHS(1), LDAB(2*KL+KU+1), *IPIV(new long[N]), LDB(vec.L), INFO(1); zgbsv_(N, KL, KU, NRHS, newmat.Array, LDAB, IPIV, vec.Array, LDB, INFO); delete [] IPIV; swap(*this,newmat); if(INFO!=0){ std::cerr << "[WARNING] zgbmatrix::zgbsv(zcovector&) " << "Serious trouble happend. INFO = "<< INFO << "." << std::endl; } return INFO; }
/*! Complex band solver using ZGBSV * * n Size of the matrix (number of equations) * kl Number of subdiagonals * ku Number of superdiagonals * nrhs Number of RHS vectors to solve * ab Array values (2D array) * ldab Leading dim. size of ab = 2*KL+KU+1 * ipiv output integer array containing pivot permutation * b RHS vectors, and solution * ldb length of b (= n) * info output status * * This code is about 25% faster than NR * Timing for 260 points (s): NR: 5.698204e-05, LAPACK: 4.410744e-05 */ void cband_solve(dcomplex **a, int n, int m1, int m2, dcomplex *b) { int kl, ku, nrhs; int ldab, ldb; int info; nrhs = 1; kl = m1; ku = m2; ldab = 2*kl + ku + 1; ldb = n; static int *ipiv; static int len = 0, alen = 0; static fcmplx *x, *AB; if(alen < ldab*n) { if(alen > 0) delete[] AB; AB = new fcmplx[ldab*n]; alen = ldab*n; } if(len < n) { if(len > 0) { delete[] ipiv; delete[] x; } ipiv = new int[n]; x = new fcmplx[n]; len = n; } // Copy RHS data for(int i=0;i<n;i++) { x[i].r = b[i].Real(); x[i].i = b[i].Imag(); } // Put matrix elements into AB(ldab, N) (FORTRAN -> loops over ldab fastest) // A is organised into rows, but AB is in columns. First kl not set for(int j=0;j<n;j++) { for(int i=0;i<=(ku+kl); i++) { // AB(kl + i, j) = A[j - ku + i][kl+ku - i] if( ((j - ku + i) >= 0) && ((j - ku + i) < n) ) { AB[j*ldab + kl + i].r = a[j - ku + i][kl+ku - i].Real(); AB[j*ldab + kl + i].i = a[j - ku + i][kl+ku - i].Imag(); } } } zgbsv_(&n, &kl, &ku, &nrhs, AB, &ldab, ipiv, x, &ldb, &info); // Copy result back for(int i=0;i<n;i++) { b[i] = dcomplex(x[i].r, x[i].i); } }
/* Main program */ int main() { /* Locals */ int n = N, info,i,j; int iter = 1; /* Local arrays */ static complex A2[N][N]; static complex B2[N][N]; static complex A[N][N]; static complex U[N][N]; static complex b[N]; srand (1337); static int ipiv[N]; int max = 0; int min = 0; int mu = 3; int ml = 3; int md = ml+mu+1; complex sumA = 0; complex sumU = 0; complex ratio = 0; //Initialize random band matrix for (i=0;i<n;i++){ for (j=0; j<n; j++){ A2[i][j]=0; B2[i][j]=0; U[i][j]=0; } } for (j=0;j<n;j++){ max = 0 > j-mu ? 0 : j-mu ; min = n < j+ml+1 ? n : j+ml+1 ; for(i=max;i<min;i++){ A2[i][j] = ((1 - ( 20.0 * rand() / ( RAND_MAX + 1.0 ) )),(1 - ( 20.0 * rand() / ( RAND_MAX + 1.0 )))); } } for (i=0;i<n;i++){ for (j=0;j<n;j++){ A[i][j]=A2[i][j]; } } for (i=0;i<n;i++){ U[i][i]=1; } /// B2(ML+MU+1+i-j,j) = A(i,j) for max(1,j-MU)<=i<=min(N,j+ML) for (j=0;j<n;j++){ max = (0 < j-mu) ? j-mu : 0 ; min = (n < j+ml+1) ? n : j+ml+1 ; for(i=max;i<min;i++){ B2[j][md+i-j-1]= A[j][i]; } } printf( "Matrix A\n" ); for( i = 0; i < n; i++ ) { for( j = 0; j < n; j++ ) printf( " (%6.2f ,%6.2f) ", A[j][i] ); printf( "\n" ); } printf( "Compressed A\n" ); for( i = 0; i < n; i++ ) { for( j = 0; j < n; j++ ) printf( " (%6.2f, %6.2f)", B2[j][i] ); printf( "\n" ); } printf( "Enter General Factor\n" ); for (i=0;i<iter;i++){ // printf( "Enter General Factor\n" ); zgetrf_(&n, &n, A2, &n, ipiv, &info); // printf( "%d",info ); // printf( "Enter Inversion\n" ); zgetri_( &n, A2, &n, ipiv, b, &n, &info ); // printf( "%d",info ); // printf( "Exit inversion\n" ); } printf( "\nExit inversion\n" ); printf( "Entering Banded Solve\n" ); for (i=0;i<iter;i++){ zgbsv_( &n, &ml, &mu, &n, B2, &n, ipiv, U, &n, &info ); // printf( "%d",info ); } printf( "Exited Banded Solve\n" ); for (i=0;i<N;i++){ for (j=0;j<N;j++){ sumA = A2[j][i]+sumA; sumU = U[j][i]+sumU; } } ratio = sumA/sumU; printf( "Accuracy - %f\n",ratio ); printf( "%d\n",info ); printf( "Inversed A\n" ); for( i = 0; i < n; i++ ) { for( j = 0; j < n; j++ ) printf( " (%6.8f, %6.2f)", A2[j][i] ); printf( "\n" ); } printf( "Inversed A (solve)\n" ); for( i = 0; i < n; i++ ) { for( j = 0; j < n; j++ ) printf( " (%6.8f, %6.2f)", U[j][i] ); printf( "\n" ); } exit( 0 ); }
/* Subroutine */ int zerrvx_(char *path, integer *nunit) { /* Format strings */ static char fmt_9999[] = "(1x,a3,\002 drivers passed the tests of the er" "ror exits\002)"; static char fmt_9998[] = "(\002 *** \002,a3,\002 drivers failed the test" "s of the error \002,\002exits ***\002)"; /* System generated locals */ integer i__1; doublereal d__1, d__2; doublecomplex z__1; /* Builtin functions */ integer s_wsle(cilist *), e_wsle(void); /* Subroutine */ int s_copy(char *, char *, ftnlen, ftnlen); integer s_wsfe(cilist *), do_fio(integer *, char *, ftnlen), e_wsfe(void); /* Local variables */ doublecomplex a[16] /* was [4][4] */, b[4]; doublereal c__[4]; integer i__, j; doublereal r__[4]; doublecomplex w[8], x[4]; char c2[2]; doublereal r1[4], r2[4]; doublecomplex af[16] /* was [4][4] */; char eq[1]; doublereal rf[4]; integer ip[4]; doublereal rw[4]; integer info; doublereal rcond; extern /* Subroutine */ int zgbsv_(integer *, integer *, integer *, integer *, doublecomplex *, integer *, integer *, doublecomplex *, integer *, integer *), zgesv_(integer *, integer *, doublecomplex *, integer *, integer *, doublecomplex *, integer *, integer *), zhesv_(char *, integer *, integer *, doublecomplex *, integer *, integer *, doublecomplex *, integer *, doublecomplex * , integer *, integer *), zpbsv_(char *, integer *, integer *, integer *, doublecomplex *, integer *, doublecomplex *, integer *, integer *), zhpsv_(char *, integer *, integer *, doublecomplex *, integer *, doublecomplex *, integer *, integer *), zgtsv_(integer *, integer *, doublecomplex *, doublecomplex *, doublecomplex *, doublecomplex *, integer *, integer *), zposv_(char *, integer *, integer *, doublecomplex *, integer *, doublecomplex *, integer *, integer *), zppsv_( char *, integer *, integer *, doublecomplex *, doublecomplex *, integer *, integer *), zspsv_(char *, integer *, integer * , doublecomplex *, integer *, doublecomplex *, integer *, integer *), zptsv_(integer *, integer *, doublereal *, doublecomplex *, doublecomplex *, integer *, integer *), zsysv_( char *, integer *, integer *, doublecomplex *, integer *, integer *, doublecomplex *, integer *, doublecomplex *, integer *, integer *); extern logical lsamen_(integer *, char *, char *); extern /* Subroutine */ int chkxer_(char *, integer *, integer *, logical *, logical *), zgbsvx_(char *, char *, integer *, integer *, integer *, integer *, doublecomplex *, integer *, doublecomplex *, integer *, integer *, char *, doublereal *, doublereal *, doublecomplex *, integer *, doublecomplex *, integer *, doublereal *, doublereal *, doublereal *, doublecomplex *, doublereal *, integer *), zgesvx_(char *, char *, integer *, integer *, doublecomplex *, integer *, doublecomplex *, integer *, integer *, char *, doublereal *, doublereal *, doublecomplex *, integer *, doublecomplex *, integer *, doublereal *, doublereal *, doublereal *, doublecomplex *, doublereal *, integer *), zhesvx_(char *, char *, integer *, integer *, doublecomplex *, integer *, doublecomplex *, integer *, integer *, doublecomplex *, integer *, doublecomplex *, integer *, doublereal *, doublereal *, doublereal *, doublecomplex *, integer *, doublereal *, integer *), zpbsvx_(char *, char *, integer *, integer *, integer *, doublecomplex *, integer *, doublecomplex *, integer *, char *, doublereal *, doublecomplex *, integer *, doublecomplex *, integer *, doublereal *, doublereal *, doublereal *, doublecomplex *, doublereal *, integer *), zhpsvx_(char *, char *, integer *, integer *, doublecomplex *, doublecomplex *, integer *, doublecomplex *, integer *, doublecomplex *, integer *, doublereal *, doublereal *, doublereal *, doublecomplex *, doublereal *, integer *), zgtsvx_(char *, char *, integer *, integer *, doublecomplex *, doublecomplex *, doublecomplex *, doublecomplex *, doublecomplex *, doublecomplex * , doublecomplex *, integer *, doublecomplex *, integer *, doublecomplex *, integer *, doublereal *, doublereal *, doublereal *, doublecomplex *, doublereal *, integer *), zposvx_(char *, char *, integer *, integer *, doublecomplex *, integer *, doublecomplex *, integer *, char *, doublereal *, doublecomplex *, integer *, doublecomplex *, integer *, doublereal *, doublereal *, doublereal *, doublecomplex *, doublereal *, integer *), zppsvx_(char *, char *, integer *, integer *, doublecomplex *, doublecomplex *, char *, doublereal *, doublecomplex *, integer *, doublecomplex *, integer *, doublereal *, doublereal *, doublereal *, doublecomplex *, doublereal *, integer *), zspsvx_(char *, char *, integer *, integer *, doublecomplex *, doublecomplex *, integer *, doublecomplex *, integer *, doublecomplex *, integer *, doublereal *, doublereal *, doublereal *, doublecomplex *, doublereal *, integer *), zptsvx_(char *, integer *, integer *, doublereal *, doublecomplex *, doublereal *, doublecomplex *, doublecomplex *, integer *, doublecomplex *, integer *, doublereal *, doublereal *, doublereal *, doublecomplex *, doublereal *, integer *), zsysvx_(char *, char *, integer *, integer *, doublecomplex *, integer *, doublecomplex *, integer *, integer *, doublecomplex *, integer *, doublecomplex *, integer *, doublereal *, doublereal * , doublereal *, doublecomplex *, integer *, doublereal *, integer *); /* Fortran I/O blocks */ static cilist io___1 = { 0, 0, 0, 0, 0 }; static cilist io___20 = { 0, 0, 0, fmt_9999, 0 }; static cilist io___21 = { 0, 0, 0, fmt_9998, 0 }; /* -- LAPACK test routine (version 3.1.1) -- */ /* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. */ /* January 2007 */ /* .. Scalar Arguments .. */ /* .. */ /* Purpose */ /* ======= */ /* ZERRVX tests the error exits for the COMPLEX*16 driver routines */ /* for solving linear systems of equations. */ /* Arguments */ /* ========= */ /* PATH (input) CHARACTER*3 */ /* The LAPACK path name for the routines to be tested. */ /* NUNIT (input) INTEGER */ /* The unit number for output. */ /* ===================================================================== */ /* .. Parameters .. */ /* .. */ /* .. Local Scalars .. */ /* .. */ /* .. Local Arrays .. */ /* .. */ /* .. External Functions .. */ /* .. */ /* .. External Subroutines .. */ /* .. */ /* .. Scalars in Common .. */ /* .. */ /* .. Common blocks .. */ /* .. */ /* .. Intrinsic Functions .. */ /* .. */ /* .. Executable Statements .. */ infoc_1.nout = *nunit; io___1.ciunit = infoc_1.nout; s_wsle(&io___1); e_wsle(); s_copy(c2, path + 1, (ftnlen)2, (ftnlen)2); /* Set the variables to innocuous values. */ for (j = 1; j <= 4; ++j) { for (i__ = 1; i__ <= 4; ++i__) { i__1 = i__ + (j << 2) - 5; d__1 = 1. / (doublereal) (i__ + j); d__2 = -1. / (doublereal) (i__ + j); z__1.r = d__1, z__1.i = d__2; a[i__1].r = z__1.r, a[i__1].i = z__1.i; i__1 = i__ + (j << 2) - 5; d__1 = 1. / (doublereal) (i__ + j); d__2 = -1. / (doublereal) (i__ + j); z__1.r = d__1, z__1.i = d__2; af[i__1].r = z__1.r, af[i__1].i = z__1.i; /* L10: */ } i__1 = j - 1; b[i__1].r = 0., b[i__1].i = 0.; r1[j - 1] = 0.; r2[j - 1] = 0.; i__1 = j - 1; w[i__1].r = 0., w[i__1].i = 0.; i__1 = j - 1; x[i__1].r = 0., x[i__1].i = 0.; c__[j - 1] = 0.; r__[j - 1] = 0.; ip[j - 1] = j; /* L20: */ } *(unsigned char *)eq = ' '; infoc_1.ok = TRUE_; if (lsamen_(&c__2, c2, "GE")) { /* ZGESV */ s_copy(srnamc_1.srnamt, "ZGESV ", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zgesv_(&c_n1, &c__0, a, &c__1, ip, b, &c__1, &info); chkxer_("ZGESV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zgesv_(&c__0, &c_n1, a, &c__1, ip, b, &c__1, &info); chkxer_("ZGESV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 4; zgesv_(&c__2, &c__1, a, &c__1, ip, b, &c__2, &info); chkxer_("ZGESV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 7; zgesv_(&c__2, &c__1, a, &c__2, ip, b, &c__1, &info); chkxer_("ZGESV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); /* ZGESVX */ s_copy(srnamc_1.srnamt, "ZGESVX", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zgesvx_("/", "N", &c__0, &c__0, a, &c__1, af, &c__1, ip, eq, r__, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZGESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zgesvx_("N", "/", &c__0, &c__0, a, &c__1, af, &c__1, ip, eq, r__, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZGESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zgesvx_("N", "N", &c_n1, &c__0, a, &c__1, af, &c__1, ip, eq, r__, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZGESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 4; zgesvx_("N", "N", &c__0, &c_n1, a, &c__1, af, &c__1, ip, eq, r__, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZGESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 6; zgesvx_("N", "N", &c__2, &c__1, a, &c__1, af, &c__2, ip, eq, r__, c__, b, &c__2, x, &c__2, &rcond, r1, r2, w, rw, &info); chkxer_("ZGESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 8; zgesvx_("N", "N", &c__2, &c__1, a, &c__2, af, &c__1, ip, eq, r__, c__, b, &c__2, x, &c__2, &rcond, r1, r2, w, rw, &info); chkxer_("ZGESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 10; *(unsigned char *)eq = '/'; zgesvx_("F", "N", &c__0, &c__0, a, &c__1, af, &c__1, ip, eq, r__, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZGESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 11; *(unsigned char *)eq = 'R'; zgesvx_("F", "N", &c__1, &c__0, a, &c__1, af, &c__1, ip, eq, r__, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZGESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 12; *(unsigned char *)eq = 'C'; zgesvx_("F", "N", &c__1, &c__0, a, &c__1, af, &c__1, ip, eq, r__, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZGESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 14; zgesvx_("N", "N", &c__2, &c__1, a, &c__2, af, &c__2, ip, eq, r__, c__, b, &c__1, x, &c__2, &rcond, r1, r2, w, rw, &info); chkxer_("ZGESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 16; zgesvx_("N", "N", &c__2, &c__1, a, &c__2, af, &c__2, ip, eq, r__, c__, b, &c__2, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZGESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); } else if (lsamen_(&c__2, c2, "GB")) { /* ZGBSV */ s_copy(srnamc_1.srnamt, "ZGBSV ", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zgbsv_(&c_n1, &c__0, &c__0, &c__0, a, &c__1, ip, b, &c__1, &info); chkxer_("ZGBSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zgbsv_(&c__1, &c_n1, &c__0, &c__0, a, &c__1, ip, b, &c__1, &info); chkxer_("ZGBSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zgbsv_(&c__1, &c__0, &c_n1, &c__0, a, &c__1, ip, b, &c__1, &info); chkxer_("ZGBSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 4; zgbsv_(&c__0, &c__0, &c__0, &c_n1, a, &c__1, ip, b, &c__1, &info); chkxer_("ZGBSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 6; zgbsv_(&c__1, &c__1, &c__1, &c__0, a, &c__3, ip, b, &c__1, &info); chkxer_("ZGBSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 9; zgbsv_(&c__2, &c__0, &c__0, &c__0, a, &c__1, ip, b, &c__1, &info); chkxer_("ZGBSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); /* ZGBSVX */ s_copy(srnamc_1.srnamt, "ZGBSVX", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zgbsvx_("/", "N", &c__0, &c__0, &c__0, &c__0, a, &c__1, af, &c__1, ip, eq, r__, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, & info); chkxer_("ZGBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zgbsvx_("N", "/", &c__0, &c__0, &c__0, &c__0, a, &c__1, af, &c__1, ip, eq, r__, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, & info); chkxer_("ZGBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zgbsvx_("N", "N", &c_n1, &c__0, &c__0, &c__0, a, &c__1, af, &c__1, ip, eq, r__, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, & info); chkxer_("ZGBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 4; zgbsvx_("N", "N", &c__1, &c_n1, &c__0, &c__0, a, &c__1, af, &c__1, ip, eq, r__, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, & info); chkxer_("ZGBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 5; zgbsvx_("N", "N", &c__1, &c__0, &c_n1, &c__0, a, &c__1, af, &c__1, ip, eq, r__, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, & info); chkxer_("ZGBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 6; zgbsvx_("N", "N", &c__0, &c__0, &c__0, &c_n1, a, &c__1, af, &c__1, ip, eq, r__, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, & info); chkxer_("ZGBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 8; zgbsvx_("N", "N", &c__1, &c__1, &c__1, &c__0, a, &c__2, af, &c__4, ip, eq, r__, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, & info); chkxer_("ZGBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 10; zgbsvx_("N", "N", &c__1, &c__1, &c__1, &c__0, a, &c__3, af, &c__3, ip, eq, r__, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, & info); chkxer_("ZGBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 12; *(unsigned char *)eq = '/'; zgbsvx_("F", "N", &c__0, &c__0, &c__0, &c__0, a, &c__1, af, &c__1, ip, eq, r__, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, & info); chkxer_("ZGBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 13; *(unsigned char *)eq = 'R'; zgbsvx_("F", "N", &c__1, &c__0, &c__0, &c__0, a, &c__1, af, &c__1, ip, eq, r__, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, & info); chkxer_("ZGBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 14; *(unsigned char *)eq = 'C'; zgbsvx_("F", "N", &c__1, &c__0, &c__0, &c__0, a, &c__1, af, &c__1, ip, eq, r__, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, & info); chkxer_("ZGBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 16; zgbsvx_("N", "N", &c__2, &c__0, &c__0, &c__0, a, &c__1, af, &c__1, ip, eq, r__, c__, b, &c__1, x, &c__2, &rcond, r1, r2, w, rw, & info); chkxer_("ZGBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 18; zgbsvx_("N", "N", &c__2, &c__0, &c__0, &c__0, a, &c__1, af, &c__1, ip, eq, r__, c__, b, &c__2, x, &c__1, &rcond, r1, r2, w, rw, & info); chkxer_("ZGBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); } else if (lsamen_(&c__2, c2, "GT")) { /* ZGTSV */ s_copy(srnamc_1.srnamt, "ZGTSV ", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zgtsv_(&c_n1, &c__0, a, &a[4], &a[8], b, &c__1, &info); chkxer_("ZGTSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zgtsv_(&c__0, &c_n1, a, &a[4], &a[8], b, &c__1, &info); chkxer_("ZGTSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 7; zgtsv_(&c__2, &c__0, a, &a[4], &a[8], b, &c__1, &info); chkxer_("ZGTSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); /* ZGTSVX */ s_copy(srnamc_1.srnamt, "ZGTSVX", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zgtsvx_("/", "N", &c__0, &c__0, a, &a[4], &a[8], af, &af[4], &af[8], & af[12], ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZGTSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zgtsvx_("N", "/", &c__0, &c__0, a, &a[4], &a[8], af, &af[4], &af[8], & af[12], ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZGTSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zgtsvx_("N", "N", &c_n1, &c__0, a, &a[4], &a[8], af, &af[4], &af[8], & af[12], ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZGTSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 4; zgtsvx_("N", "N", &c__0, &c_n1, a, &a[4], &a[8], af, &af[4], &af[8], & af[12], ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZGTSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 14; zgtsvx_("N", "N", &c__2, &c__0, a, &a[4], &a[8], af, &af[4], &af[8], & af[12], ip, b, &c__1, x, &c__2, &rcond, r1, r2, w, rw, &info); chkxer_("ZGTSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 16; zgtsvx_("N", "N", &c__2, &c__0, a, &a[4], &a[8], af, &af[4], &af[8], & af[12], ip, b, &c__2, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZGTSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); } else if (lsamen_(&c__2, c2, "PO")) { /* ZPOSV */ s_copy(srnamc_1.srnamt, "ZPOSV ", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zposv_("/", &c__0, &c__0, a, &c__1, b, &c__1, &info); chkxer_("ZPOSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zposv_("U", &c_n1, &c__0, a, &c__1, b, &c__1, &info); chkxer_("ZPOSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zposv_("U", &c__0, &c_n1, a, &c__1, b, &c__1, &info); chkxer_("ZPOSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 5; zposv_("U", &c__2, &c__0, a, &c__1, b, &c__2, &info); chkxer_("ZPOSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 7; zposv_("U", &c__2, &c__0, a, &c__2, b, &c__1, &info); chkxer_("ZPOSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); /* ZPOSVX */ s_copy(srnamc_1.srnamt, "ZPOSVX", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zposvx_("/", "U", &c__0, &c__0, a, &c__1, af, &c__1, eq, c__, b, & c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPOSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zposvx_("N", "/", &c__0, &c__0, a, &c__1, af, &c__1, eq, c__, b, & c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPOSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zposvx_("N", "U", &c_n1, &c__0, a, &c__1, af, &c__1, eq, c__, b, & c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPOSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 4; zposvx_("N", "U", &c__0, &c_n1, a, &c__1, af, &c__1, eq, c__, b, & c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPOSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 6; zposvx_("N", "U", &c__2, &c__0, a, &c__1, af, &c__2, eq, c__, b, & c__2, x, &c__2, &rcond, r1, r2, w, rw, &info); chkxer_("ZPOSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 8; zposvx_("N", "U", &c__2, &c__0, a, &c__2, af, &c__1, eq, c__, b, & c__2, x, &c__2, &rcond, r1, r2, w, rw, &info); chkxer_("ZPOSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 9; *(unsigned char *)eq = '/'; zposvx_("F", "U", &c__0, &c__0, a, &c__1, af, &c__1, eq, c__, b, & c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPOSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 10; *(unsigned char *)eq = 'Y'; zposvx_("F", "U", &c__1, &c__0, a, &c__1, af, &c__1, eq, c__, b, & c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPOSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 12; zposvx_("N", "U", &c__2, &c__0, a, &c__2, af, &c__2, eq, c__, b, & c__1, x, &c__2, &rcond, r1, r2, w, rw, &info); chkxer_("ZPOSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 14; zposvx_("N", "U", &c__2, &c__0, a, &c__2, af, &c__2, eq, c__, b, & c__2, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPOSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); } else if (lsamen_(&c__2, c2, "PP")) { /* ZPPSV */ s_copy(srnamc_1.srnamt, "ZPPSV ", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zppsv_("/", &c__0, &c__0, a, b, &c__1, &info); chkxer_("ZPPSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zppsv_("U", &c_n1, &c__0, a, b, &c__1, &info); chkxer_("ZPPSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zppsv_("U", &c__0, &c_n1, a, b, &c__1, &info); chkxer_("ZPPSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 6; zppsv_("U", &c__2, &c__0, a, b, &c__1, &info); chkxer_("ZPPSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); /* ZPPSVX */ s_copy(srnamc_1.srnamt, "ZPPSVX", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zppsvx_("/", "U", &c__0, &c__0, a, af, eq, c__, b, &c__1, x, &c__1, & rcond, r1, r2, w, rw, &info); chkxer_("ZPPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zppsvx_("N", "/", &c__0, &c__0, a, af, eq, c__, b, &c__1, x, &c__1, & rcond, r1, r2, w, rw, &info); chkxer_("ZPPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zppsvx_("N", "U", &c_n1, &c__0, a, af, eq, c__, b, &c__1, x, &c__1, & rcond, r1, r2, w, rw, &info); chkxer_("ZPPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 4; zppsvx_("N", "U", &c__0, &c_n1, a, af, eq, c__, b, &c__1, x, &c__1, & rcond, r1, r2, w, rw, &info); chkxer_("ZPPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 7; *(unsigned char *)eq = '/'; zppsvx_("F", "U", &c__0, &c__0, a, af, eq, c__, b, &c__1, x, &c__1, & rcond, r1, r2, w, rw, &info); chkxer_("ZPPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 8; *(unsigned char *)eq = 'Y'; zppsvx_("F", "U", &c__1, &c__0, a, af, eq, c__, b, &c__1, x, &c__1, & rcond, r1, r2, w, rw, &info); chkxer_("ZPPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 10; zppsvx_("N", "U", &c__2, &c__0, a, af, eq, c__, b, &c__1, x, &c__2, & rcond, r1, r2, w, rw, &info); chkxer_("ZPPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 12; zppsvx_("N", "U", &c__2, &c__0, a, af, eq, c__, b, &c__2, x, &c__1, & rcond, r1, r2, w, rw, &info); chkxer_("ZPPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); } else if (lsamen_(&c__2, c2, "PB")) { /* ZPBSV */ s_copy(srnamc_1.srnamt, "ZPBSV ", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zpbsv_("/", &c__0, &c__0, &c__0, a, &c__1, b, &c__1, &info) ; chkxer_("ZPBSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zpbsv_("U", &c_n1, &c__0, &c__0, a, &c__1, b, &c__1, &info) ; chkxer_("ZPBSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zpbsv_("U", &c__1, &c_n1, &c__0, a, &c__1, b, &c__1, &info) ; chkxer_("ZPBSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 4; zpbsv_("U", &c__0, &c__0, &c_n1, a, &c__1, b, &c__1, &info) ; chkxer_("ZPBSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 6; zpbsv_("U", &c__1, &c__1, &c__0, a, &c__1, b, &c__2, &info) ; chkxer_("ZPBSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 8; zpbsv_("U", &c__2, &c__0, &c__0, a, &c__1, b, &c__1, &info) ; chkxer_("ZPBSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); /* ZPBSVX */ s_copy(srnamc_1.srnamt, "ZPBSVX", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zpbsvx_("/", "U", &c__0, &c__0, &c__0, a, &c__1, af, &c__1, eq, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zpbsvx_("N", "/", &c__0, &c__0, &c__0, a, &c__1, af, &c__1, eq, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zpbsvx_("N", "U", &c_n1, &c__0, &c__0, a, &c__1, af, &c__1, eq, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 4; zpbsvx_("N", "U", &c__1, &c_n1, &c__0, a, &c__1, af, &c__1, eq, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 5; zpbsvx_("N", "U", &c__0, &c__0, &c_n1, a, &c__1, af, &c__1, eq, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 7; zpbsvx_("N", "U", &c__1, &c__1, &c__0, a, &c__1, af, &c__2, eq, c__, b, &c__2, x, &c__2, &rcond, r1, r2, w, rw, &info); chkxer_("ZPBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 9; zpbsvx_("N", "U", &c__1, &c__1, &c__0, a, &c__2, af, &c__1, eq, c__, b, &c__2, x, &c__2, &rcond, r1, r2, w, rw, &info); chkxer_("ZPBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 10; *(unsigned char *)eq = '/'; zpbsvx_("F", "U", &c__0, &c__0, &c__0, a, &c__1, af, &c__1, eq, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 11; *(unsigned char *)eq = 'Y'; zpbsvx_("F", "U", &c__1, &c__0, &c__0, a, &c__1, af, &c__1, eq, c__, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 13; zpbsvx_("N", "U", &c__2, &c__0, &c__0, a, &c__1, af, &c__1, eq, c__, b, &c__1, x, &c__2, &rcond, r1, r2, w, rw, &info); chkxer_("ZPBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 15; zpbsvx_("N", "U", &c__2, &c__0, &c__0, a, &c__1, af, &c__1, eq, c__, b, &c__2, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPBSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); } else if (lsamen_(&c__2, c2, "PT")) { /* ZPTSV */ s_copy(srnamc_1.srnamt, "ZPTSV ", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zptsv_(&c_n1, &c__0, r__, a, b, &c__1, &info); chkxer_("ZPTSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zptsv_(&c__0, &c_n1, r__, a, b, &c__1, &info); chkxer_("ZPTSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 6; zptsv_(&c__2, &c__0, r__, a, b, &c__1, &info); chkxer_("ZPTSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); /* ZPTSVX */ s_copy(srnamc_1.srnamt, "ZPTSVX", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zptsvx_("/", &c__0, &c__0, r__, a, rf, af, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPTSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zptsvx_("N", &c_n1, &c__0, r__, a, rf, af, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPTSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zptsvx_("N", &c__0, &c_n1, r__, a, rf, af, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPTSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 9; zptsvx_("N", &c__2, &c__0, r__, a, rf, af, b, &c__1, x, &c__2, &rcond, r1, r2, w, rw, &info); chkxer_("ZPTSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 11; zptsvx_("N", &c__2, &c__0, r__, a, rf, af, b, &c__2, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZPTSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); } else if (lsamen_(&c__2, c2, "HE")) { /* ZHESV */ s_copy(srnamc_1.srnamt, "ZHESV ", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zhesv_("/", &c__0, &c__0, a, &c__1, ip, b, &c__1, w, &c__1, &info); chkxer_("ZHESV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zhesv_("U", &c_n1, &c__0, a, &c__1, ip, b, &c__1, w, &c__1, &info); chkxer_("ZHESV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zhesv_("U", &c__0, &c_n1, a, &c__1, ip, b, &c__1, w, &c__1, &info); chkxer_("ZHESV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 5; zhesv_("U", &c__2, &c__0, a, &c__1, ip, b, &c__2, w, &c__1, &info); chkxer_("ZHESV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 8; zhesv_("U", &c__2, &c__0, a, &c__2, ip, b, &c__1, w, &c__1, &info); chkxer_("ZHESV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); /* ZHESVX */ s_copy(srnamc_1.srnamt, "ZHESVX", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zhesvx_("/", "U", &c__0, &c__0, a, &c__1, af, &c__1, ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, &c__1, rw, &info); chkxer_("ZHESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zhesvx_("N", "/", &c__0, &c__0, a, &c__1, af, &c__1, ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, &c__1, rw, &info); chkxer_("ZHESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zhesvx_("N", "U", &c_n1, &c__0, a, &c__1, af, &c__1, ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, &c__1, rw, &info); chkxer_("ZHESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 4; zhesvx_("N", "U", &c__0, &c_n1, a, &c__1, af, &c__1, ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, &c__1, rw, &info); chkxer_("ZHESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 6; zhesvx_("N", "U", &c__2, &c__0, a, &c__1, af, &c__2, ip, b, &c__2, x, &c__2, &rcond, r1, r2, w, &c__4, rw, &info); chkxer_("ZHESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 8; zhesvx_("N", "U", &c__2, &c__0, a, &c__2, af, &c__1, ip, b, &c__2, x, &c__2, &rcond, r1, r2, w, &c__4, rw, &info); chkxer_("ZHESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 11; zhesvx_("N", "U", &c__2, &c__0, a, &c__2, af, &c__2, ip, b, &c__1, x, &c__2, &rcond, r1, r2, w, &c__4, rw, &info); chkxer_("ZHESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 13; zhesvx_("N", "U", &c__2, &c__0, a, &c__2, af, &c__2, ip, b, &c__2, x, &c__1, &rcond, r1, r2, w, &c__4, rw, &info); chkxer_("ZHESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 18; zhesvx_("N", "U", &c__2, &c__0, a, &c__2, af, &c__2, ip, b, &c__2, x, &c__2, &rcond, r1, r2, w, &c__3, rw, &info); chkxer_("ZHESVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); } else if (lsamen_(&c__2, c2, "HP")) { /* ZHPSV */ s_copy(srnamc_1.srnamt, "ZHPSV ", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zhpsv_("/", &c__0, &c__0, a, ip, b, &c__1, &info); chkxer_("ZHPSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zhpsv_("U", &c_n1, &c__0, a, ip, b, &c__1, &info); chkxer_("ZHPSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zhpsv_("U", &c__0, &c_n1, a, ip, b, &c__1, &info); chkxer_("ZHPSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 7; zhpsv_("U", &c__2, &c__0, a, ip, b, &c__1, &info); chkxer_("ZHPSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); /* ZHPSVX */ s_copy(srnamc_1.srnamt, "ZHPSVX", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zhpsvx_("/", "U", &c__0, &c__0, a, af, ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZHPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zhpsvx_("N", "/", &c__0, &c__0, a, af, ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZHPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zhpsvx_("N", "U", &c_n1, &c__0, a, af, ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZHPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 4; zhpsvx_("N", "U", &c__0, &c_n1, a, af, ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZHPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 9; zhpsvx_("N", "U", &c__2, &c__0, a, af, ip, b, &c__1, x, &c__2, &rcond, r1, r2, w, rw, &info); chkxer_("ZHPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 11; zhpsvx_("N", "U", &c__2, &c__0, a, af, ip, b, &c__2, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZHPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); } else if (lsamen_(&c__2, c2, "SY")) { /* ZSYSV */ s_copy(srnamc_1.srnamt, "ZSYSV ", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zsysv_("/", &c__0, &c__0, a, &c__1, ip, b, &c__1, w, &c__1, &info); chkxer_("ZSYSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zsysv_("U", &c_n1, &c__0, a, &c__1, ip, b, &c__1, w, &c__1, &info); chkxer_("ZSYSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zsysv_("U", &c__0, &c_n1, a, &c__1, ip, b, &c__1, w, &c__1, &info); chkxer_("ZSYSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 8; zsysv_("U", &c__2, &c__0, a, &c__2, ip, b, &c__1, w, &c__1, &info); chkxer_("ZSYSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); /* ZSYSVX */ s_copy(srnamc_1.srnamt, "ZSYSVX", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zsysvx_("/", "U", &c__0, &c__0, a, &c__1, af, &c__1, ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, &c__1, rw, &info); chkxer_("ZSYSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zsysvx_("N", "/", &c__0, &c__0, a, &c__1, af, &c__1, ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, &c__1, rw, &info); chkxer_("ZSYSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zsysvx_("N", "U", &c_n1, &c__0, a, &c__1, af, &c__1, ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, &c__1, rw, &info); chkxer_("ZSYSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 4; zsysvx_("N", "U", &c__0, &c_n1, a, &c__1, af, &c__1, ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, &c__1, rw, &info); chkxer_("ZSYSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 6; zsysvx_("N", "U", &c__2, &c__0, a, &c__1, af, &c__2, ip, b, &c__2, x, &c__2, &rcond, r1, r2, w, &c__4, rw, &info); chkxer_("ZSYSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 8; zsysvx_("N", "U", &c__2, &c__0, a, &c__2, af, &c__1, ip, b, &c__2, x, &c__2, &rcond, r1, r2, w, &c__4, rw, &info); chkxer_("ZSYSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 11; zsysvx_("N", "U", &c__2, &c__0, a, &c__2, af, &c__2, ip, b, &c__1, x, &c__2, &rcond, r1, r2, w, &c__4, rw, &info); chkxer_("ZSYSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 13; zsysvx_("N", "U", &c__2, &c__0, a, &c__2, af, &c__2, ip, b, &c__2, x, &c__1, &rcond, r1, r2, w, &c__4, rw, &info); chkxer_("ZSYSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 18; zsysvx_("N", "U", &c__2, &c__0, a, &c__2, af, &c__2, ip, b, &c__2, x, &c__2, &rcond, r1, r2, w, &c__3, rw, &info); chkxer_("ZSYSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); } else if (lsamen_(&c__2, c2, "SP")) { /* ZSPSV */ s_copy(srnamc_1.srnamt, "ZSPSV ", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zspsv_("/", &c__0, &c__0, a, ip, b, &c__1, &info); chkxer_("ZSPSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zspsv_("U", &c_n1, &c__0, a, ip, b, &c__1, &info); chkxer_("ZSPSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zspsv_("U", &c__0, &c_n1, a, ip, b, &c__1, &info); chkxer_("ZSPSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 7; zspsv_("U", &c__2, &c__0, a, ip, b, &c__1, &info); chkxer_("ZSPSV ", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); /* ZSPSVX */ s_copy(srnamc_1.srnamt, "ZSPSVX", (ftnlen)6, (ftnlen)6); infoc_1.infot = 1; zspsvx_("/", "U", &c__0, &c__0, a, af, ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZSPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 2; zspsvx_("N", "/", &c__0, &c__0, a, af, ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZSPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 3; zspsvx_("N", "U", &c_n1, &c__0, a, af, ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZSPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 4; zspsvx_("N", "U", &c__0, &c_n1, a, af, ip, b, &c__1, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZSPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 9; zspsvx_("N", "U", &c__2, &c__0, a, af, ip, b, &c__1, x, &c__2, &rcond, r1, r2, w, rw, &info); chkxer_("ZSPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); infoc_1.infot = 11; zspsvx_("N", "U", &c__2, &c__0, a, af, ip, b, &c__2, x, &c__1, &rcond, r1, r2, w, rw, &info); chkxer_("ZSPSVX", &infoc_1.infot, &infoc_1.nout, &infoc_1.lerr, & infoc_1.ok); } /* Print a summary line. */ if (infoc_1.ok) { io___20.ciunit = infoc_1.nout; s_wsfe(&io___20); do_fio(&c__1, path, (ftnlen)3); e_wsfe(); } else { io___21.ciunit = infoc_1.nout; s_wsfe(&io___21); do_fio(&c__1, path, (ftnlen)3); e_wsfe(); } return 0; /* End of ZERRVX */ } /* zerrvx_ */