#ifndef LAPACK_WRAP_
#define LAPACK_WRAP_

extern int cbdsqr_(char *uplo, integer * n, integer * ncvt, integer * nru,
		   integer * ncc, real * d__, real * e, complex * vt,
		   integer * ldvt, complex * u, integer * ldu, complex * c__,
		   integer * ldc, real * rwork, integer * info,
		   ftnlen uplo_len);
extern int cgbbrd_(char *vect, integer * m, integer * n, integer * ncc,
		   integer * kl, integer * ku, complex * ab, integer * ldab,
		   real * d__, real * e, complex * q, integer * ldq,
		   complex * pt, integer * ldpt, complex * c__, integer * ldc,
		   complex * work, real * rwork, integer * info,
		   ftnlen vect_len);
extern int cgbcon_(char *norm, integer * n, integer * kl, integer * ku,
		   complex * ab, integer * ldab, integer * ipiv, real * anorm,
		   real * rcond, complex * work, real * rwork, integer * info,
		   ftnlen norm_len);
extern int cgbequ_(integer * m, integer * n, integer * kl, integer * ku,
		   complex * ab, integer * ldab, real * r__, real * c__,
		   real * rowcnd, real * colcnd, real * amax, integer * info);
extern int cgbrfs_(char *trans, integer * n, integer * kl, integer * ku,
		   integer * nrhs, complex * ab, integer * ldab,
		   complex * afb, integer * ldafb, integer * ipiv,
		   complex * b, integer * ldb, complex * x, integer * ldx,
		   real * ferr, real * berr, complex * work, real * rwork,
		   integer * info, ftnlen trans_len);
extern int cgbsv_(integer * n, integer * kl, integer * ku, integer * nrhs,
		  complex * ab, integer * ldab, integer * ipiv, complex * b,
		  integer * ldb, integer * info);
extern int cgbsvx_(char *fact, char *trans, integer * n, integer * kl,
		   integer * ku, integer * nrhs, complex * ab, integer * ldab,
		   complex * afb, integer * ldafb, integer * ipiv,
		   char *equed, real * r__, real * c__, complex * b,
		   integer * ldb, complex * x, integer * ldx, real * rcond,
		   real * ferr, real * berr, complex * work, real * rwork,
		   integer * info, ftnlen fact_len, ftnlen trans_len,
		   ftnlen equed_len);
extern int cgbtf2_(integer * m, integer * n, integer * kl, integer * ku,
		   complex * ab, integer * ldab, integer * ipiv,
		   integer * info);
extern int cgbtrf_(integer * m, integer * n, integer * kl, integer * ku,
		   complex * ab, integer * ldab, integer * ipiv,
		   integer * info);
extern int cgbtrs_(char *trans, integer * n, integer * kl, integer * ku,
		   integer * nrhs, complex * ab, integer * ldab,
		   integer * ipiv, complex * b, integer * ldb, integer * info,
		   ftnlen trans_len);
extern int cgebak_(char *job, char *side, integer * n, integer * ilo,
		   integer * ihi, real * scale, integer * m, complex * v,
		   integer * ldv, integer * info, ftnlen job_len,
		   ftnlen side_len);
extern int cgebal_(char *job, integer * n, complex * a, integer * lda,
		   integer * ilo, integer * ihi, real * scale, integer * info,
		   ftnlen job_len);
extern int cgebd2_(integer * m, integer * n, complex * a, integer * lda,
		   real * d__, real * e, complex * tauq, complex * taup,
		   complex * work, integer * info);
extern int cgebrd_(integer * m, integer * n, complex * a, integer * lda,
		   real * d__, real * e, complex * tauq, complex * taup,
		   complex * work, integer * lwork, integer * info);
extern int cgecon_(char *norm, integer * n, complex * a, integer * lda,
		   real * anorm, real * rcond, complex * work, real * rwork,
		   integer * info, ftnlen norm_len);
extern int cgeequ_(integer * m, integer * n, complex * a, integer * lda,
		   real * r__, real * c__, real * rowcnd, real * colcnd,
		   real * amax, integer * info);
extern int cgees_(char *jobvs, char *sort, L_fp select, integer * n,
		  complex * a, integer * lda, integer * sdim, complex * w,
		  complex * vs, integer * ldvs, complex * work,
		  integer * lwork, real * rwork, logical * bwork,
		  integer * info, ftnlen jobvs_len, ftnlen sort_len);
extern int cgeesx_(char *jobvs, char *sort, L_fp select, char *sense,
		   integer * n, complex * a, integer * lda, integer * sdim,
		   complex * w, complex * vs, integer * ldvs, real * rconde,
		   real * rcondv, complex * work, integer * lwork,
		   real * rwork, logical * bwork, integer * info,
		   ftnlen jobvs_len, ftnlen sort_len, ftnlen sense_len);
extern int cgeev_(char *jobvl, char *jobvr, integer * n, complex * a,
		  integer * lda, complex * w, complex * vl, integer * ldvl,
		  complex * vr, integer * ldvr, complex * work,
		  integer * lwork, real * rwork, integer * info,
		  ftnlen jobvl_len, ftnlen jobvr_len);
extern int cgeevx_(char *balanc, char *jobvl, char *jobvr, char *sense,
		   integer * n, complex * a, integer * lda, complex * w,
		   complex * vl, integer * ldvl, complex * vr, integer * ldvr,
		   integer * ilo, integer * ihi, real * scale, real * abnrm,
		   real * rconde, real * rcondv, complex * work,
		   integer * lwork, real * rwork, integer * info,
		   ftnlen balanc_len, ftnlen jobvl_len, ftnlen jobvr_len,
		   ftnlen sense_len);
extern int cgegs_(char *jobvsl, char *jobvsr, integer * n, complex * a,
		  integer * lda, complex * b, integer * ldb, complex * alpha,
		  complex * beta, complex * vsl, integer * ldvsl,
		  complex * vsr, integer * ldvsr, complex * work,
		  integer * lwork, real * rwork, integer * info,
		  ftnlen jobvsl_len, ftnlen jobvsr_len);
extern int cgegv_(char *jobvl, char *jobvr, integer * n, complex * a,
		  integer * lda, complex * b, integer * ldb, complex * alpha,
		  complex * beta, complex * vl, integer * ldvl, complex * vr,
		  integer * ldvr, complex * work, integer * lwork,
		  real * rwork, integer * info, ftnlen jobvl_len,
		  ftnlen jobvr_len);
extern int cgehd2_(integer * n, integer * ilo, integer * ihi, complex * a,
		   integer * lda, complex * tau, complex * work,
		   integer * info);
extern int cgehrd_(integer * n, integer * ilo, integer * ihi, complex * a,
		   integer * lda, complex * tau, complex * work,
		   integer * lwork, integer * info);
extern int cgelq2_(integer * m, integer * n, complex * a, integer * lda,
		   complex * tau, complex * work, integer * info);
extern int cgelqf_(integer * m, integer * n, complex * a, integer * lda,
		   complex * tau, complex * work, integer * lwork,
		   integer * info);
extern int cgels_(char *trans, integer * m, integer * n, integer * nrhs,
		  complex * a, integer * lda, complex * b, integer * ldb,
		  complex * work, integer * lwork, integer * info,
		  ftnlen trans_len);
extern int cgelsd_(integer * m, integer * n, integer * nrhs, complex * a,
		   integer * lda, complex * b, integer * ldb, real * s,
		   real * rcond, integer * rank, complex * work,
		   integer * lwork, real * rwork, integer * iwork,
		   integer * info);
extern int cgelss_(integer * m, integer * n, integer * nrhs, complex * a,
		   integer * lda, complex * b, integer * ldb, real * s,
		   real * rcond, integer * rank, complex * work,
		   integer * lwork, real * rwork, integer * info);
extern int cgelsx_(integer * m, integer * n, integer * nrhs, complex * a,
		   integer * lda, complex * b, integer * ldb, integer * jpvt,
		   real * rcond, integer * rank, complex * work, real * rwork,
		   integer * info);
extern int cgelsy_(integer * m, integer * n, integer * nrhs, complex * a,
		   integer * lda, complex * b, integer * ldb, integer * jpvt,
		   real * rcond, integer * rank, complex * work,
		   integer * lwork, real * rwork, integer * info);
extern int cgeql2_(integer * m, integer * n, complex * a, integer * lda,
		   complex * tau, complex * work, integer * info);
extern int cgeqlf_(integer * m, integer * n, complex * a, integer * lda,
		   complex * tau, complex * work, integer * lwork,
		   integer * info);
extern int cgeqp3_(integer * m, integer * n, complex * a, integer * lda,
		   integer * jpvt, complex * tau, complex * work,
		   integer * lwork, real * rwork, integer * info);
extern int cgeqpf_(integer * m, integer * n, complex * a, integer * lda,
		   integer * jpvt, complex * tau, complex * work,
		   real * rwork, integer * info);
extern int cgeqr2_(integer * m, integer * n, complex * a, integer * lda,
		   complex * tau, complex * work, integer * info);
extern int cgeqrf_(integer * m, integer * n, complex * a, integer * lda,
		   complex * tau, complex * work, integer * lwork,
		   integer * info);
extern int cgerfs_(char *trans, integer * n, integer * nrhs, complex * a,
		   integer * lda, complex * af, integer * ldaf,
		   integer * ipiv, complex * b, integer * ldb, complex * x,
		   integer * ldx, real * ferr, real * berr, complex * work,
		   real * rwork, integer * info, ftnlen trans_len);
extern int cgerq2_(integer * m, integer * n, complex * a, integer * lda,
		   complex * tau, complex * work, integer * info);
extern int cgerqf_(integer * m, integer * n, complex * a, integer * lda,
		   complex * tau, complex * work, integer * lwork,
		   integer * info);
extern int cgesc2_(integer * n, complex * a, integer * lda, complex * rhs,
		   integer * ipiv, integer * jpiv, real * scale);
extern int cgesdd_(char *jobz, integer * m, integer * n, complex * a,
		   integer * lda, real * s, complex * u, integer * ldu,
		   complex * vt, integer * ldvt, complex * work,
		   integer * lwork, real * rwork, integer * iwork,
		   integer * info, ftnlen jobz_len);
extern int cgesv_(integer * n, integer * nrhs, complex * a, integer * lda,
		  integer * ipiv, complex * b, integer * ldb, integer * info);
extern int cgesvd_(char *jobu, char *jobvt, integer * m, integer * n,
		   complex * a, integer * lda, real * s, complex * u,
		   integer * ldu, complex * vt, integer * ldvt,
		   complex * work, integer * lwork, real * rwork,
		   integer * info, ftnlen jobu_len, ftnlen jobvt_len);
extern int cgesvx_(char *fact, char *trans, integer * n, integer * nrhs,
		   complex * a, integer * lda, complex * af, integer * ldaf,
		   integer * ipiv, char *equed, real * r__, real * c__,
		   complex * b, integer * ldb, complex * x, integer * ldx,
		   real * rcond, real * ferr, real * berr, complex * work,
		   real * rwork, integer * info, ftnlen fact_len,
		   ftnlen trans_len, ftnlen equed_len);
extern int cgetc2_(integer * n, complex * a, integer * lda, integer * ipiv,
		   integer * jpiv, integer * info);
extern int cgetf2_(integer * m, integer * n, complex * a, integer * lda,
		   integer * ipiv, integer * info);
extern int cgetrf_(integer * m, integer * n, complex * a, integer * lda,
		   integer * ipiv, integer * info);
extern int cgetri_(integer * n, complex * a, integer * lda, integer * ipiv,
		   complex * work, integer * lwork, integer * info);
extern int cgetrs_(char *trans, integer * n, integer * nrhs, complex * a,
		   integer * lda, integer * ipiv, complex * b, integer * ldb,
		   integer * info, ftnlen trans_len);
extern int cggbak_(char *job, char *side, integer * n, integer * ilo,
		   integer * ihi, real * lscale, real * rscale, integer * m,
		   complex * v, integer * ldv, integer * info, ftnlen job_len,
		   ftnlen side_len);
extern int cggbal_(char *job, integer * n, complex * a, integer * lda,
		   complex * b, integer * ldb, integer * ilo, integer * ihi,
		   real * lscale, real * rscale, real * work, integer * info,
		   ftnlen job_len);
extern int cgges_(char *jobvsl, char *jobvsr, char *sort, L_fp selctg,
		  integer * n, complex * a, integer * lda, complex * b,
		  integer * ldb, integer * sdim, complex * alpha,
		  complex * beta, complex * vsl, integer * ldvsl,
		  complex * vsr, integer * ldvsr, complex * work,
		  integer * lwork, real * rwork, logical * bwork,
		  integer * info, ftnlen jobvsl_len, ftnlen jobvsr_len,
		  ftnlen sort_len);
extern int cggesx_(char *jobvsl, char *jobvsr, char *sort, L_fp selctg,
		   char *sense, integer * n, complex * a, integer * lda,
		   complex * b, integer * ldb, integer * sdim,
		   complex * alpha, complex * beta, complex * vsl,
		   integer * ldvsl, complex * vsr, integer * ldvsr,
		   real * rconde, real * rcondv, complex * work,
		   integer * lwork, real * rwork, integer * iwork,
		   integer * liwork, logical * bwork, integer * info,
		   ftnlen jobvsl_len, ftnlen jobvsr_len, ftnlen sort_len,
		   ftnlen sense_len);
extern int cggev_(char *jobvl, char *jobvr, integer * n, complex * a,
		  integer * lda, complex * b, integer * ldb, complex * alpha,
		  complex * beta, complex * vl, integer * ldvl, complex * vr,
		  integer * ldvr, complex * work, integer * lwork,
		  real * rwork, integer * info, ftnlen jobvl_len,
		  ftnlen jobvr_len);
extern int cggevx_(char *balanc, char *jobvl, char *jobvr, char *sense,
		   integer * n, complex * a, integer * lda, complex * b,
		   integer * ldb, complex * alpha, complex * beta,
		   complex * vl, integer * ldvl, complex * vr, integer * ldvr,
		   integer * ilo, integer * ihi, real * lscale, real * rscale,
		   real * abnrm, real * bbnrm, real * rconde, real * rcondv,
		   complex * work, integer * lwork, real * rwork,
		   integer * iwork, logical * bwork, integer * info,
		   ftnlen balanc_len, ftnlen jobvl_len, ftnlen jobvr_len,
		   ftnlen sense_len);
extern int cggglm_(integer * n, integer * m, integer * p, complex * a,
		   integer * lda, complex * b, integer * ldb, complex * d__,
		   complex * x, complex * y, complex * work, integer * lwork,
		   integer * info);
extern int cgghrd_(char *compq, char *compz, integer * n, integer * ilo,
		   integer * ihi, complex * a, integer * lda, complex * b,
		   integer * ldb, complex * q, integer * ldq, complex * z__,
		   integer * ldz, integer * info, ftnlen compq_len,
		   ftnlen compz_len);
extern int cgglse_(integer * m, integer * n, integer * p, complex * a,
		   integer * lda, complex * b, integer * ldb, complex * c__,
		   complex * d__, complex * x, complex * work,
		   integer * lwork, integer * info);
extern int cggqrf_(integer * n, integer * m, integer * p, complex * a,
		   integer * lda, complex * taua, complex * b, integer * ldb,
		   complex * taub, complex * work, integer * lwork,
		   integer * info);
extern int cggrqf_(integer * m, integer * p, integer * n, complex * a,
		   integer * lda, complex * taua, complex * b, integer * ldb,
		   complex * taub, complex * work, integer * lwork,
		   integer * info);
extern int cggsvd_(char *jobu, char *jobv, char *jobq, integer * m,
		   integer * n, integer * p, integer * k, integer * l,
		   complex * a, integer * lda, complex * b, integer * ldb,
		   real * alpha, real * beta, complex * u, integer * ldu,
		   complex * v, integer * ldv, complex * q, integer * ldq,
		   complex * work, real * rwork, integer * iwork,
		   integer * info, ftnlen jobu_len, ftnlen jobv_len,
		   ftnlen jobq_len);
extern int cggsvp_(char *jobu, char *jobv, char *jobq, integer * m,
		   integer * p, integer * n, complex * a, integer * lda,
		   complex * b, integer * ldb, real * tola, real * tolb,
		   integer * k, integer * l, complex * u, integer * ldu,
		   complex * v, integer * ldv, complex * q, integer * ldq,
		   integer * iwork, real * rwork, complex * tau,
		   complex * work, integer * info, ftnlen jobu_len,
		   ftnlen jobv_len, ftnlen jobq_len);
extern int cgtcon_(char *norm, integer * n, complex * dl, complex * d__,
		   complex * du, complex * du2, integer * ipiv, real * anorm,
		   real * rcond, complex * work, integer * info,
		   ftnlen norm_len);
extern int cgtrfs_(char *trans, integer * n, integer * nrhs, complex * dl,
		   complex * d__, complex * du, complex * dlf, complex * df,
		   complex * duf, complex * du2, integer * ipiv, complex * b,
		   integer * ldb, complex * x, integer * ldx, real * ferr,
		   real * berr, complex * work, real * rwork, integer * info,
		   ftnlen trans_len);
extern int cgtsv_(integer * n, integer * nrhs, complex * dl, complex * d__,
		  complex * du, complex * b, integer * ldb, integer * info);
extern int cgtsvx_(char *fact, char *trans, integer * n, integer * nrhs,
		   complex * dl, complex * d__, complex * du, complex * dlf,
		   complex * df, complex * duf, complex * du2, integer * ipiv,
		   complex * b, integer * ldb, complex * x, integer * ldx,
		   real * rcond, real * ferr, real * berr, complex * work,
		   real * rwork, integer * info, ftnlen fact_len,
		   ftnlen trans_len);
extern int cgttrf_(integer * n, complex * dl, complex * d__, complex * du,
		   complex * du2, integer * ipiv, integer * info);
extern int cgttrs_(char *trans, integer * n, integer * nrhs, complex * dl,
		   complex * d__, complex * du, complex * du2, integer * ipiv,
		   complex * b, integer * ldb, integer * info,
		   ftnlen trans_len);
extern int cgtts2_(integer * itrans, integer * n, integer * nrhs,
		   complex * dl, complex * d__, complex * du, complex * du2,
		   integer * ipiv, complex * b, integer * ldb);
extern int chbev_(char *jobz, char *uplo, integer * n, integer * kd,
		  complex * ab, integer * ldab, real * w, complex * z__,
		  integer * ldz, complex * work, real * rwork, integer * info,
		  ftnlen jobz_len, ftnlen uplo_len);
extern int chbevd_(char *jobz, char *uplo, integer * n, integer * kd,
		   complex * ab, integer * ldab, real * w, complex * z__,
		   integer * ldz, complex * work, integer * lwork,
		   real * rwork, integer * lrwork, integer * iwork,
		   integer * liwork, integer * info, ftnlen jobz_len,
		   ftnlen uplo_len);
extern int chbevx_(char *jobz, char *range, char *uplo, integer * n,
		   integer * kd, complex * ab, integer * ldab, complex * q,
		   integer * ldq, real * vl, real * vu, integer * il,
		   integer * iu, real * abstol, integer * m, real * w,
		   complex * z__, integer * ldz, complex * work, real * rwork,
		   integer * iwork, integer * ifail, integer * info,
		   ftnlen jobz_len, ftnlen range_len, ftnlen uplo_len);
extern int chbgst_(char *vect, char *uplo, integer * n, integer * ka,
		   integer * kb, complex * ab, integer * ldab, complex * bb,
		   integer * ldbb, complex * x, integer * ldx, complex * work,
		   real * rwork, integer * info, ftnlen vect_len,
		   ftnlen uplo_len);
extern int chbgv_(char *jobz, char *uplo, integer * n, integer * ka,
		  integer * kb, complex * ab, integer * ldab, complex * bb,
		  integer * ldbb, real * w, complex * z__, integer * ldz,
		  complex * work, real * rwork, integer * info,
		  ftnlen jobz_len, ftnlen uplo_len);
extern int chbgvd_(char *jobz, char *uplo, integer * n, integer * ka,
		   integer * kb, complex * ab, integer * ldab, complex * bb,
		   integer * ldbb, real * w, complex * z__, integer * ldz,
		   complex * work, integer * lwork, real * rwork,
		   integer * lrwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen jobz_len, ftnlen uplo_len);
extern int chbgvx_(char *jobz, char *range, char *uplo, integer * n,
		   integer * ka, integer * kb, complex * ab, integer * ldab,
		   complex * bb, integer * ldbb, complex * q, integer * ldq,
		   real * vl, real * vu, integer * il, integer * iu,
		   real * abstol, integer * m, real * w, complex * z__,
		   integer * ldz, complex * work, real * rwork,
		   integer * iwork, integer * ifail, integer * info,
		   ftnlen jobz_len, ftnlen range_len, ftnlen uplo_len);
extern int chbtrd_(char *vect, char *uplo, integer * n, integer * kd,
		   complex * ab, integer * ldab, real * d__, real * e,
		   complex * q, integer * ldq, complex * work, integer * info,
		   ftnlen vect_len, ftnlen uplo_len);
extern int checon_(char *uplo, integer * n, complex * a, integer * lda,
		   integer * ipiv, real * anorm, real * rcond, complex * work,
		   integer * info, ftnlen uplo_len);
extern int cheev_(char *jobz, char *uplo, integer * n, complex * a,
		  integer * lda, real * w, complex * work, integer * lwork,
		  real * rwork, integer * info, ftnlen jobz_len,
		  ftnlen uplo_len);
extern int cheevd_(char *jobz, char *uplo, integer * n, complex * a,
		   integer * lda, real * w, complex * work, integer * lwork,
		   real * rwork, integer * lrwork, integer * iwork,
		   integer * liwork, integer * info, ftnlen jobz_len,
		   ftnlen uplo_len);
extern int cheevr_(char *jobz, char *range, char *uplo, integer * n,
		   complex * a, integer * lda, real * vl, real * vu,
		   integer * il, integer * iu, real * abstol, integer * m,
		   real * w, complex * z__, integer * ldz, integer * isuppz,
		   complex * work, integer * lwork, real * rwork,
		   integer * lrwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen jobz_len, ftnlen range_len,
		   ftnlen uplo_len);
extern int cheevx_(char *jobz, char *range, char *uplo, integer * n,
		   complex * a, integer * lda, real * vl, real * vu,
		   integer * il, integer * iu, real * abstol, integer * m,
		   real * w, complex * z__, integer * ldz, complex * work,
		   integer * lwork, real * rwork, integer * iwork,
		   integer * ifail, integer * info, ftnlen jobz_len,
		   ftnlen range_len, ftnlen uplo_len);
extern int chegs2_(integer * itype, char *uplo, integer * n, complex * a,
		   integer * lda, complex * b, integer * ldb, integer * info,
		   ftnlen uplo_len);
extern int chegst_(integer * itype, char *uplo, integer * n, complex * a,
		   integer * lda, complex * b, integer * ldb, integer * info,
		   ftnlen uplo_len);
extern int chegv_(integer * itype, char *jobz, char *uplo, integer * n,
		  complex * a, integer * lda, complex * b, integer * ldb,
		  real * w, complex * work, integer * lwork, real * rwork,
		  integer * info, ftnlen jobz_len, ftnlen uplo_len);
extern int chegvd_(integer * itype, char *jobz, char *uplo, integer * n,
		   complex * a, integer * lda, complex * b, integer * ldb,
		   real * w, complex * work, integer * lwork, real * rwork,
		   integer * lrwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen jobz_len, ftnlen uplo_len);
extern int chegvx_(integer * itype, char *jobz, char *range, char *uplo,
		   integer * n, complex * a, integer * lda, complex * b,
		   integer * ldb, real * vl, real * vu, integer * il,
		   integer * iu, real * abstol, integer * m, real * w,
		   complex * z__, integer * ldz, complex * work,
		   integer * lwork, real * rwork, integer * iwork,
		   integer * ifail, integer * info, ftnlen jobz_len,
		   ftnlen range_len, ftnlen uplo_len);
extern int cherfs_(char *uplo, integer * n, integer * nrhs, complex * a,
		   integer * lda, complex * af, integer * ldaf,
		   integer * ipiv, complex * b, integer * ldb, complex * x,
		   integer * ldx, real * ferr, real * berr, complex * work,
		   real * rwork, integer * info, ftnlen uplo_len);
extern int chesv_(char *uplo, integer * n, integer * nrhs, complex * a,
		  integer * lda, integer * ipiv, complex * b, integer * ldb,
		  complex * work, integer * lwork, integer * info,
		  ftnlen uplo_len);
extern int chesvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   complex * a, integer * lda, complex * af, integer * ldaf,
		   integer * ipiv, complex * b, integer * ldb, complex * x,
		   integer * ldx, real * rcond, real * ferr, real * berr,
		   complex * work, integer * lwork, real * rwork,
		   integer * info, ftnlen fact_len, ftnlen uplo_len);
extern int chetd2_(char *uplo, integer * n, complex * a, integer * lda,
		   real * d__, real * e, complex * tau, integer * info,
		   ftnlen uplo_len);
extern int chetf2_(char *uplo, integer * n, complex * a, integer * lda,
		   integer * ipiv, integer * info, ftnlen uplo_len);
extern int chetrd_(char *uplo, integer * n, complex * a, integer * lda,
		   real * d__, real * e, complex * tau, complex * work,
		   integer * lwork, integer * info, ftnlen uplo_len);
extern int chetrf_(char *uplo, integer * n, complex * a, integer * lda,
		   integer * ipiv, complex * work, integer * lwork,
		   integer * info, ftnlen uplo_len);
extern int chetri_(char *uplo, integer * n, complex * a, integer * lda,
		   integer * ipiv, complex * work, integer * info,
		   ftnlen uplo_len);
extern int chetrs_(char *uplo, integer * n, integer * nrhs, complex * a,
		   integer * lda, integer * ipiv, complex * b, integer * ldb,
		   integer * info, ftnlen uplo_len);
extern int chgeqz_(char *job, char *compq, char *compz, integer * n,
		   integer * ilo, integer * ihi, complex * a, integer * lda,
		   complex * b, integer * ldb, complex * alpha,
		   complex * beta, complex * q, integer * ldq, complex * z__,
		   integer * ldz, complex * work, integer * lwork,
		   real * rwork, integer * info, ftnlen job_len,
		   ftnlen compq_len, ftnlen compz_len);
extern int chpcon_(char *uplo, integer * n, complex * ap, integer * ipiv,
		   real * anorm, real * rcond, complex * work, integer * info,
		   ftnlen uplo_len);
extern int chpev_(char *jobz, char *uplo, integer * n, complex * ap, real * w,
		  complex * z__, integer * ldz, complex * work, real * rwork,
		  integer * info, ftnlen jobz_len, ftnlen uplo_len);
extern int chpevd_(char *jobz, char *uplo, integer * n, complex * ap,
		   real * w, complex * z__, integer * ldz, complex * work,
		   integer * lwork, real * rwork, integer * lrwork,
		   integer * iwork, integer * liwork, integer * info,
		   ftnlen jobz_len, ftnlen uplo_len);
extern int chpevx_(char *jobz, char *range, char *uplo, integer * n,
		   complex * ap, real * vl, real * vu, integer * il,
		   integer * iu, real * abstol, integer * m, real * w,
		   complex * z__, integer * ldz, complex * work, real * rwork,
		   integer * iwork, integer * ifail, integer * info,
		   ftnlen jobz_len, ftnlen range_len, ftnlen uplo_len);
extern int chpgst_(integer * itype, char *uplo, integer * n, complex * ap,
		   complex * bp, integer * info, ftnlen uplo_len);
extern int chpgv_(integer * itype, char *jobz, char *uplo, integer * n,
		  complex * ap, complex * bp, real * w, complex * z__,
		  integer * ldz, complex * work, real * rwork, integer * info,
		  ftnlen jobz_len, ftnlen uplo_len);
extern int chpgvd_(integer * itype, char *jobz, char *uplo, integer * n,
		   complex * ap, complex * bp, real * w, complex * z__,
		   integer * ldz, complex * work, integer * lwork,
		   real * rwork, integer * lrwork, integer * iwork,
		   integer * liwork, integer * info, ftnlen jobz_len,
		   ftnlen uplo_len);
extern int chpgvx_(integer * itype, char *jobz, char *range, char *uplo,
		   integer * n, complex * ap, complex * bp, real * vl,
		   real * vu, integer * il, integer * iu, real * abstol,
		   integer * m, real * w, complex * z__, integer * ldz,
		   complex * work, real * rwork, integer * iwork,
		   integer * ifail, integer * info, ftnlen jobz_len,
		   ftnlen range_len, ftnlen uplo_len);
extern int chprfs_(char *uplo, integer * n, integer * nrhs, complex * ap,
		   complex * afp, integer * ipiv, complex * b, integer * ldb,
		   complex * x, integer * ldx, real * ferr, real * berr,
		   complex * work, real * rwork, integer * info,
		   ftnlen uplo_len);
extern int chpsv_(char *uplo, integer * n, integer * nrhs, complex * ap,
		  integer * ipiv, complex * b, integer * ldb, integer * info,
		  ftnlen uplo_len);
extern int chpsvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   complex * ap, complex * afp, integer * ipiv, complex * b,
		   integer * ldb, complex * x, integer * ldx, real * rcond,
		   real * ferr, real * berr, complex * work, real * rwork,
		   integer * info, ftnlen fact_len, ftnlen uplo_len);
extern int chptrd_(char *uplo, integer * n, complex * ap, real * d__,
		   real * e, complex * tau, integer * info, ftnlen uplo_len);
extern int chptrf_(char *uplo, integer * n, complex * ap, integer * ipiv,
		   integer * info, ftnlen uplo_len);
extern int chptri_(char *uplo, integer * n, complex * ap, integer * ipiv,
		   complex * work, integer * info, ftnlen uplo_len);
extern int chptrs_(char *uplo, integer * n, integer * nrhs, complex * ap,
		   integer * ipiv, complex * b, integer * ldb, integer * info,
		   ftnlen uplo_len);
extern int chsein_(char *side, char *eigsrc, char *initv, logical * select,
		   integer * n, complex * h__, integer * ldh, complex * w,
		   complex * vl, integer * ldvl, complex * vr, integer * ldvr,
		   integer * mm, integer * m, complex * work, real * rwork,
		   integer * ifaill, integer * ifailr, integer * info,
		   ftnlen side_len, ftnlen eigsrc_len, ftnlen initv_len);
extern int chseqr_(char *job, char *compz, integer * n, integer * ilo,
		   integer * ihi, complex * h__, integer * ldh, complex * w,
		   complex * z__, integer * ldz, complex * work,
		   integer * lwork, integer * info, ftnlen job_len,
		   ftnlen compz_len);
extern int clabrd_(integer * m, integer * n, integer * nb, complex * a,
		   integer * lda, real * d__, real * e, complex * tauq,
		   complex * taup, complex * x, integer * ldx, complex * y,
		   integer * ldy);
extern int clacgv_(integer * n, complex * x, integer * incx);
extern int clacon_(integer * n, complex * v, complex * x, real * est,
		   integer * kase);
extern int clacp2_(char *uplo, integer * m, integer * n, real * a,
		   integer * lda, complex * b, integer * ldb,
		   ftnlen uplo_len);
extern int clacpy_(char *uplo, integer * m, integer * n, complex * a,
		   integer * lda, complex * b, integer * ldb,
		   ftnlen uplo_len);
extern int clacrm_(integer * m, integer * n, complex * a, integer * lda,
		   real * b, integer * ldb, complex * c__, integer * ldc,
		   real * rwork);
extern int clacrt_(integer * n, complex * cx, integer * incx, complex * cy,
		   integer * incy, complex * c__, complex * s);
extern C_f cladiv_(complex * ret_val, complex * x, complex * y);
extern int claed0_(integer * qsiz, integer * n, real * d__, real * e,
		   complex * q, integer * ldq, complex * qstore,
		   integer * ldqs, real * rwork, integer * iwork,
		   integer * info);
extern int claed7_(integer * n, integer * cutpnt, integer * qsiz,
		   integer * tlvls, integer * curlvl, integer * curpbm,
		   real * d__, complex * q, integer * ldq, real * rho,
		   integer * indxq, real * qstore, integer * qptr,
		   integer * prmptr, integer * perm, integer * givptr,
		   integer * givcol, real * givnum, complex * work,
		   real * rwork, integer * iwork, integer * info);
extern int claed8_(integer * k, integer * n, integer * qsiz, complex * q,
		   integer * ldq, real * d__, real * rho, integer * cutpnt,
		   real * z__, real * dlamda, complex * q2, integer * ldq2,
		   real * w, integer * indxp, integer * indx, integer * indxq,
		   integer * perm, integer * givptr, integer * givcol,
		   real * givnum, integer * info);
extern int claein_(logical * rightv, logical * noinit, integer * n,
		   complex * h__, integer * ldh, complex * w, complex * v,
		   complex * b, integer * ldb, real * rwork, real * eps3,
		   real * smlnum, integer * info);
extern int claesy_(complex * a, complex * b, complex * c__, complex * rt1,
		   complex * rt2, complex * evscal, complex * cs1,
		   complex * sn1);
extern int claev2_(complex * a, complex * b, complex * c__, real * rt1,
		   real * rt2, real * cs1, complex * sn1);
extern int clags2_(logical * upper, real * a1, complex * a2, real * a3,
		   real * b1, complex * b2, real * b3, real * csu,
		   complex * snu, real * csv, complex * snv, real * csq,
		   complex * snq);
extern int clagtm_(char *trans, integer * n, integer * nrhs, real * alpha,
		   complex * dl, complex * d__, complex * du, complex * x,
		   integer * ldx, real * beta, complex * b, integer * ldb,
		   ftnlen trans_len);
extern int clahef_(char *uplo, integer * n, integer * nb, integer * kb,
		   complex * a, integer * lda, integer * ipiv, complex * w,
		   integer * ldw, integer * info, ftnlen uplo_len);
extern int clahqr_(logical * wantt, logical * wantz, integer * n,
		   integer * ilo, integer * ihi, complex * h__, integer * ldh,
		   complex * w, integer * iloz, integer * ihiz, complex * z__,
		   integer * ldz, integer * info);
extern int clahrd_(integer * n, integer * k, integer * nb, complex * a,
		   integer * lda, complex * tau, complex * t, integer * ldt,
		   complex * y, integer * ldy);
extern int claic1_(integer * job, integer * j, complex * x, real * sest,
		   complex * w, complex * gamma, real * sestpr, complex * s,
		   complex * c__);
extern int clals0_(integer * icompq, integer * nl, integer * nr,
		   integer * sqre, integer * nrhs, complex * b, integer * ldb,
		   complex * bx, integer * ldbx, integer * perm,
		   integer * givptr, integer * givcol, integer * ldgcol,
		   real * givnum, integer * ldgnum, real * poles, real * difl,
		   real * difr, real * z__, integer * k, real * c__, real * s,
		   real * rwork, integer * info);
extern int clalsa_(integer * icompq, integer * smlsiz, integer * n,
		   integer * nrhs, complex * b, integer * ldb, complex * bx,
		   integer * ldbx, real * u, integer * ldu, real * vt,
		   integer * k, real * difl, real * difr, real * z__,
		   real * poles, integer * givptr, integer * givcol,
		   integer * ldgcol, integer * perm, real * givnum,
		   real * c__, real * s, real * rwork, integer * iwork,
		   integer * info);
extern int clalsd_(char *uplo, integer * smlsiz, integer * n, integer * nrhs,
		   real * d__, real * e, complex * b, integer * ldb,
		   real * rcond, integer * rank, complex * work, real * rwork,
		   integer * iwork, integer * info, ftnlen uplo_len);
extern E_f clangb_(char *norm, integer * n, integer * kl, integer * ku,
		   complex * ab, integer * ldab, real * work,
		   ftnlen norm_len);
extern E_f clange_(char *norm, integer * m, integer * n, complex * a,
		   integer * lda, real * work, ftnlen norm_len);
extern E_f clangt_(char *norm, integer * n, complex * dl, complex * d__,
		   complex * du, ftnlen norm_len);
extern E_f clanhb_(char *norm, char *uplo, integer * n, integer * k,
		   complex * ab, integer * ldab, real * work, ftnlen norm_len,
		   ftnlen uplo_len);
extern E_f clanhe_(char *norm, char *uplo, integer * n, complex * a,
		   integer * lda, real * work, ftnlen norm_len,
		   ftnlen uplo_len);
extern E_f clanhp_(char *norm, char *uplo, integer * n, complex * ap,
		   real * work, ftnlen norm_len, ftnlen uplo_len);
extern E_f clanhs_(char *norm, integer * n, complex * a, integer * lda,
		   real * work, ftnlen norm_len);
extern E_f clanht_(char *norm, integer * n, real * d__, complex * e,
		   ftnlen norm_len);
extern E_f clansb_(char *norm, char *uplo, integer * n, integer * k,
		   complex * ab, integer * ldab, real * work, ftnlen norm_len,
		   ftnlen uplo_len);
extern E_f clansp_(char *norm, char *uplo, integer * n, complex * ap,
		   real * work, ftnlen norm_len, ftnlen uplo_len);
extern E_f clansy_(char *norm, char *uplo, integer * n, complex * a,
		   integer * lda, real * work, ftnlen norm_len,
		   ftnlen uplo_len);
extern E_f clantb_(char *norm, char *uplo, char *diag, integer * n,
		   integer * k, complex * ab, integer * ldab, real * work,
		   ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern E_f clantp_(char *norm, char *uplo, char *diag, integer * n,
		   complex * ap, real * work, ftnlen norm_len,
		   ftnlen uplo_len, ftnlen diag_len);
extern E_f clantr_(char *norm, char *uplo, char *diag, integer * m,
		   integer * n, complex * a, integer * lda, real * work,
		   ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern int clapll_(integer * n, complex * x, integer * incx, complex * y,
		   integer * incy, real * ssmin);
extern int clapmt_(logical * forwrd, integer * m, integer * n, complex * x,
		   integer * ldx, integer * k);
extern int claqgb_(integer * m, integer * n, integer * kl, integer * ku,
		   complex * ab, integer * ldab, real * r__, real * c__,
		   real * rowcnd, real * colcnd, real * amax, char *equed,
		   ftnlen equed_len);
extern int claqge_(integer * m, integer * n, complex * a, integer * lda,
		   real * r__, real * c__, real * rowcnd, real * colcnd,
		   real * amax, char *equed, ftnlen equed_len);
extern int claqhb_(char *uplo, integer * n, integer * kd, complex * ab,
		   integer * ldab, real * s, real * scond, real * amax,
		   char *equed, ftnlen uplo_len, ftnlen equed_len);
extern int claqhe_(char *uplo, integer * n, complex * a, integer * lda,
		   real * s, real * scond, real * amax, char *equed,
		   ftnlen uplo_len, ftnlen equed_len);
extern int claqhp_(char *uplo, integer * n, complex * ap, real * s,
		   real * scond, real * amax, char *equed, ftnlen uplo_len,
		   ftnlen equed_len);
extern int claqp2_(integer * m, integer * n, integer * offset, complex * a,
		   integer * lda, integer * jpvt, complex * tau, real * vn1,
		   real * vn2, complex * work);
extern int claqps_(integer * m, integer * n, integer * offset, integer * nb,
		   integer * kb, complex * a, integer * lda, integer * jpvt,
		   complex * tau, real * vn1, real * vn2, complex * auxv,
		   complex * f, integer * ldf);
extern int claqsb_(char *uplo, integer * n, integer * kd, complex * ab,
		   integer * ldab, real * s, real * scond, real * amax,
		   char *equed, ftnlen uplo_len, ftnlen equed_len);
extern int claqsp_(char *uplo, integer * n, complex * ap, real * s,
		   real * scond, real * amax, char *equed, ftnlen uplo_len,
		   ftnlen equed_len);
extern int claqsy_(char *uplo, integer * n, complex * a, integer * lda,
		   real * s, real * scond, real * amax, char *equed,
		   ftnlen uplo_len, ftnlen equed_len);
extern int clar1v_(integer * n, integer * b1, integer * bn, real * sigma,
		   real * d__, real * l, real * ld, real * lld, real * gersch,
		   complex * z__, real * ztz, real * mingma, integer * r__,
		   integer * isuppz, real * work);
extern int clar2v_(integer * n, complex * x, complex * y, complex * z__,
		   integer * incx, real * c__, complex * s, integer * incc);
extern int clarcm_(integer * m, integer * n, real * a, integer * lda,
		   complex * b, integer * ldb, complex * c__, integer * ldc,
		   real * rwork);
extern int clarf_(char *side, integer * m, integer * n, complex * v,
		  integer * incv, complex * tau, complex * c__, integer * ldc,
		  complex * work, ftnlen side_len);
extern int clarfb_(char *side, char *trans, char *direct, char *storev,
		   integer * m, integer * n, integer * k, complex * v,
		   integer * ldv, complex * t, integer * ldt, complex * c__,
		   integer * ldc, complex * work, integer * ldwork,
		   ftnlen side_len, ftnlen trans_len, ftnlen direct_len,
		   ftnlen storev_len);
extern int clarfg_(integer * n, complex * alpha, complex * x, integer * incx,
		   complex * tau);
extern int clarft_(char *direct, char *storev, integer * n, integer * k,
		   complex * v, integer * ldv, complex * tau, complex * t,
		   integer * ldt, ftnlen direct_len, ftnlen storev_len);
extern int clarfx_(char *side, integer * m, integer * n, complex * v,
		   complex * tau, complex * c__, integer * ldc,
		   complex * work, ftnlen side_len);
extern int clargv_(integer * n, complex * x, integer * incx, complex * y,
		   integer * incy, real * c__, integer * incc);
extern int clarnv_(integer * idist, integer * iseed, integer * n,
		   complex * x);
extern int clarrv_(integer * n, real * d__, real * l, integer * isplit,
		   integer * m, real * w, integer * iblock, real * gersch,
		   real * tol, complex * z__, integer * ldz, integer * isuppz,
		   real * work, integer * iwork, integer * info);
extern int clartg_(complex * f, complex * g, real * cs, complex * sn,
		   complex * r__);
extern int clartv_(integer * n, complex * x, integer * incx, complex * y,
		   integer * incy, real * c__, complex * s, integer * incc);
extern int clarz_(char *side, integer * m, integer * n, integer * l,
		  complex * v, integer * incv, complex * tau, complex * c__,
		  integer * ldc, complex * work, ftnlen side_len);
extern int clarzb_(char *side, char *trans, char *direct, char *storev,
		   integer * m, integer * n, integer * k, integer * l,
		   complex * v, integer * ldv, complex * t, integer * ldt,
		   complex * c__, integer * ldc, complex * work,
		   integer * ldwork, ftnlen side_len, ftnlen trans_len,
		   ftnlen direct_len, ftnlen storev_len);
extern int clarzt_(char *direct, char *storev, integer * n, integer * k,
		   complex * v, integer * ldv, complex * tau, complex * t,
		   integer * ldt, ftnlen direct_len, ftnlen storev_len);
extern int clascl_(char *type__, integer * kl, integer * ku, real * cfrom,
		   real * cto, integer * m, integer * n, complex * a,
		   integer * lda, integer * info, ftnlen type_len);
extern int claset_(char *uplo, integer * m, integer * n, complex * alpha,
		   complex * beta, complex * a, integer * lda,
		   ftnlen uplo_len);
extern int clasr_(char *side, char *pivot, char *direct, integer * m,
		  integer * n, real * c__, real * s, complex * a,
		  integer * lda, ftnlen side_len, ftnlen pivot_len,
		  ftnlen direct_len);
extern int classq_(integer * n, complex * x, integer * incx, real * scale,
		   real * sumsq);
extern int claswp_(integer * n, complex * a, integer * lda, integer * k1,
		   integer * k2, integer * ipiv, integer * incx);
extern int clasyf_(char *uplo, integer * n, integer * nb, integer * kb,
		   complex * a, integer * lda, integer * ipiv, complex * w,
		   integer * ldw, integer * info, ftnlen uplo_len);
extern int clatbs_(char *uplo, char *trans, char *diag, char *normin,
		   integer * n, integer * kd, complex * ab, integer * ldab,
		   complex * x, real * scale, real * cnorm, integer * info,
		   ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len,
		   ftnlen normin_len);
extern int clatdf_(integer * ijob, integer * n, complex * z__, integer * ldz,
		   complex * rhs, real * rdsum, real * rdscal, integer * ipiv,
		   integer * jpiv);
extern int clatps_(char *uplo, char *trans, char *diag, char *normin,
		   integer * n, complex * ap, complex * x, real * scale,
		   real * cnorm, integer * info, ftnlen uplo_len,
		   ftnlen trans_len, ftnlen diag_len, ftnlen normin_len);
extern int clatrd_(char *uplo, integer * n, integer * nb, complex * a,
		   integer * lda, real * e, complex * tau, complex * w,
		   integer * ldw, ftnlen uplo_len);
extern int clatrs_(char *uplo, char *trans, char *diag, char *normin,
		   integer * n, complex * a, integer * lda, complex * x,
		   real * scale, real * cnorm, integer * info,
		   ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len,
		   ftnlen normin_len);
extern int clatrz_(integer * m, integer * n, integer * l, complex * a,
		   integer * lda, complex * tau, complex * work);
extern int clatzm_(char *side, integer * m, integer * n, complex * v,
		   integer * incv, complex * tau, complex * c1, complex * c2,
		   integer * ldc, complex * work, ftnlen side_len);
extern int clauu2_(char *uplo, integer * n, complex * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int clauum_(char *uplo, integer * n, complex * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int cpbcon_(char *uplo, integer * n, integer * kd, complex * ab,
		   integer * ldab, real * anorm, real * rcond, complex * work,
		   real * rwork, integer * info, ftnlen uplo_len);
extern int cpbequ_(char *uplo, integer * n, integer * kd, complex * ab,
		   integer * ldab, real * s, real * scond, real * amax,
		   integer * info, ftnlen uplo_len);
extern int cpbrfs_(char *uplo, integer * n, integer * kd, integer * nrhs,
		   complex * ab, integer * ldab, complex * afb,
		   integer * ldafb, complex * b, integer * ldb, complex * x,
		   integer * ldx, real * ferr, real * berr, complex * work,
		   real * rwork, integer * info, ftnlen uplo_len);
extern int cpbstf_(char *uplo, integer * n, integer * kd, complex * ab,
		   integer * ldab, integer * info, ftnlen uplo_len);
extern int cpbsv_(char *uplo, integer * n, integer * kd, integer * nrhs,
		  complex * ab, integer * ldab, complex * b, integer * ldb,
		  integer * info, ftnlen uplo_len);
extern int cpbsvx_(char *fact, char *uplo, integer * n, integer * kd,
		   integer * nrhs, complex * ab, integer * ldab,
		   complex * afb, integer * ldafb, char *equed, real * s,
		   complex * b, integer * ldb, complex * x, integer * ldx,
		   real * rcond, real * ferr, real * berr, complex * work,
		   real * rwork, integer * info, ftnlen fact_len,
		   ftnlen uplo_len, ftnlen equed_len);
extern int cpbtf2_(char *uplo, integer * n, integer * kd, complex * ab,
		   integer * ldab, integer * info, ftnlen uplo_len);
extern int cpbtrf_(char *uplo, integer * n, integer * kd, complex * ab,
		   integer * ldab, integer * info, ftnlen uplo_len);
extern int cpbtrs_(char *uplo, integer * n, integer * kd, integer * nrhs,
		   complex * ab, integer * ldab, complex * b, integer * ldb,
		   integer * info, ftnlen uplo_len);
extern int cpocon_(char *uplo, integer * n, complex * a, integer * lda,
		   real * anorm, real * rcond, complex * work, real * rwork,
		   integer * info, ftnlen uplo_len);
extern int cpoequ_(integer * n, complex * a, integer * lda, real * s,
		   real * scond, real * amax, integer * info);
extern int cporfs_(char *uplo, integer * n, integer * nrhs, complex * a,
		   integer * lda, complex * af, integer * ldaf, complex * b,
		   integer * ldb, complex * x, integer * ldx, real * ferr,
		   real * berr, complex * work, real * rwork, integer * info,
		   ftnlen uplo_len);
extern int cposv_(char *uplo, integer * n, integer * nrhs, complex * a,
		  integer * lda, complex * b, integer * ldb, integer * info,
		  ftnlen uplo_len);
extern int cposvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   complex * a, integer * lda, complex * af, integer * ldaf,
		   char *equed, real * s, complex * b, integer * ldb,
		   complex * x, integer * ldx, real * rcond, real * ferr,
		   real * berr, complex * work, real * rwork, integer * info,
		   ftnlen fact_len, ftnlen uplo_len, ftnlen equed_len);
extern int cpotf2_(char *uplo, integer * n, complex * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int cpotrf_(char *uplo, integer * n, complex * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int cpotri_(char *uplo, integer * n, complex * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int cpotrs_(char *uplo, integer * n, integer * nrhs, complex * a,
		   integer * lda, complex * b, integer * ldb, integer * info,
		   ftnlen uplo_len);
extern int cppcon_(char *uplo, integer * n, complex * ap, real * anorm,
		   real * rcond, complex * work, real * rwork, integer * info,
		   ftnlen uplo_len);
extern int cppequ_(char *uplo, integer * n, complex * ap, real * s,
		   real * scond, real * amax, integer * info,
		   ftnlen uplo_len);
extern int cpprfs_(char *uplo, integer * n, integer * nrhs, complex * ap,
		   complex * afp, complex * b, integer * ldb, complex * x,
		   integer * ldx, real * ferr, real * berr, complex * work,
		   real * rwork, integer * info, ftnlen uplo_len);
extern int cppsv_(char *uplo, integer * n, integer * nrhs, complex * ap,
		  complex * b, integer * ldb, integer * info,
		  ftnlen uplo_len);
extern int cppsvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   complex * ap, complex * afp, char *equed, real * s,
		   complex * b, integer * ldb, complex * x, integer * ldx,
		   real * rcond, real * ferr, real * berr, complex * work,
		   real * rwork, integer * info, ftnlen fact_len,
		   ftnlen uplo_len, ftnlen equed_len);
extern int cpptrf_(char *uplo, integer * n, complex * ap, integer * info,
		   ftnlen uplo_len);
extern int cpptri_(char *uplo, integer * n, complex * ap, integer * info,
		   ftnlen uplo_len);
extern int cpptrs_(char *uplo, integer * n, integer * nrhs, complex * ap,
		   complex * b, integer * ldb, integer * info,
		   ftnlen uplo_len);
extern int cptcon_(integer * n, real * d__, complex * e, real * anorm,
		   real * rcond, real * rwork, integer * info);
extern int cpteqr_(char *compz, integer * n, real * d__, real * e,
		   complex * z__, integer * ldz, real * work, integer * info,
		   ftnlen compz_len);
extern int cptrfs_(char *uplo, integer * n, integer * nrhs, real * d__,
		   complex * e, real * df, complex * ef, complex * b,
		   integer * ldb, complex * x, integer * ldx, real * ferr,
		   real * berr, complex * work, real * rwork, integer * info,
		   ftnlen uplo_len);
extern int cptsv_(integer * n, integer * nrhs, real * d__, complex * e,
		  complex * b, integer * ldb, integer * info);
extern int cptsvx_(char *fact, integer * n, integer * nrhs, real * d__,
		   complex * e, real * df, complex * ef, complex * b,
		   integer * ldb, complex * x, integer * ldx, real * rcond,
		   real * ferr, real * berr, complex * work, real * rwork,
		   integer * info, ftnlen fact_len);
extern int cpttrf_(integer * n, real * d__, complex * e, integer * info);
extern int cpttrs_(char *uplo, integer * n, integer * nrhs, real * d__,
		   complex * e, complex * b, integer * ldb, integer * info,
		   ftnlen uplo_len);
extern int cptts2_(integer * iuplo, integer * n, integer * nrhs, real * d__,
		   complex * e, complex * b, integer * ldb);
extern int crot_(integer * n, complex * cx, integer * incx, complex * cy,
		 integer * incy, real * c__, complex * s);
extern int cspcon_(char *uplo, integer * n, complex * ap, integer * ipiv,
		   real * anorm, real * rcond, complex * work, integer * info,
		   ftnlen uplo_len);
extern int cspmv_(char *uplo, integer * n, complex * alpha, complex * ap,
		  complex * x, integer * incx, complex * beta, complex * y,
		  integer * incy, ftnlen uplo_len);
extern int cspr_(char *uplo, integer * n, complex * alpha, complex * x,
		 integer * incx, complex * ap, ftnlen uplo_len);
extern int csprfs_(char *uplo, integer * n, integer * nrhs, complex * ap,
		   complex * afp, integer * ipiv, complex * b, integer * ldb,
		   complex * x, integer * ldx, real * ferr, real * berr,
		   complex * work, real * rwork, integer * info,
		   ftnlen uplo_len);
extern int cspsv_(char *uplo, integer * n, integer * nrhs, complex * ap,
		  integer * ipiv, complex * b, integer * ldb, integer * info,
		  ftnlen uplo_len);
extern int cspsvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   complex * ap, complex * afp, integer * ipiv, complex * b,
		   integer * ldb, complex * x, integer * ldx, real * rcond,
		   real * ferr, real * berr, complex * work, real * rwork,
		   integer * info, ftnlen fact_len, ftnlen uplo_len);
extern int csptrf_(char *uplo, integer * n, complex * ap, integer * ipiv,
		   integer * info, ftnlen uplo_len);
extern int csptri_(char *uplo, integer * n, complex * ap, integer * ipiv,
		   complex * work, integer * info, ftnlen uplo_len);
extern int csptrs_(char *uplo, integer * n, integer * nrhs, complex * ap,
		   integer * ipiv, complex * b, integer * ldb, integer * info,
		   ftnlen uplo_len);
extern int csrot_(integer * n, complex * cx, integer * incx, complex * cy,
		  integer * incy, real * c__, real * s);
extern int csrscl_(integer * n, real * sa, complex * sx, integer * incx);
extern int cstedc_(char *compz, integer * n, real * d__, real * e,
		   complex * z__, integer * ldz, complex * work,
		   integer * lwork, real * rwork, integer * lrwork,
		   integer * iwork, integer * liwork, integer * info,
		   ftnlen compz_len);
extern int cstegr_(char *jobz, char *range, integer * n, real * d__, real * e,
		   real * vl, real * vu, integer * il, integer * iu,
		   real * abstol, integer * m, real * w, complex * z__,
		   integer * ldz, integer * isuppz, real * work,
		   integer * lwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen jobz_len, ftnlen range_len);
extern int cstein_(integer * n, real * d__, real * e, integer * m, real * w,
		   integer * iblock, integer * isplit, complex * z__,
		   integer * ldz, real * work, integer * iwork,
		   integer * ifail, integer * info);
extern int csteqr_(char *compz, integer * n, real * d__, real * e,
		   complex * z__, integer * ldz, real * work, integer * info,
		   ftnlen compz_len);
extern int csycon_(char *uplo, integer * n, complex * a, integer * lda,
		   integer * ipiv, real * anorm, real * rcond, complex * work,
		   integer * info, ftnlen uplo_len);
extern int csymv_(char *uplo, integer * n, complex * alpha, complex * a,
		  integer * lda, complex * x, integer * incx, complex * beta,
		  complex * y, integer * incy, ftnlen uplo_len);
extern int csyr_(char *uplo, integer * n, complex * alpha, complex * x,
		 integer * incx, complex * a, integer * lda, ftnlen uplo_len);
extern int csyrfs_(char *uplo, integer * n, integer * nrhs, complex * a,
		   integer * lda, complex * af, integer * ldaf,
		   integer * ipiv, complex * b, integer * ldb, complex * x,
		   integer * ldx, real * ferr, real * berr, complex * work,
		   real * rwork, integer * info, ftnlen uplo_len);
extern int csysv_(char *uplo, integer * n, integer * nrhs, complex * a,
		  integer * lda, integer * ipiv, complex * b, integer * ldb,
		  complex * work, integer * lwork, integer * info,
		  ftnlen uplo_len);
extern int csysvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   complex * a, integer * lda, complex * af, integer * ldaf,
		   integer * ipiv, complex * b, integer * ldb, complex * x,
		   integer * ldx, real * rcond, real * ferr, real * berr,
		   complex * work, integer * lwork, real * rwork,
		   integer * info, ftnlen fact_len, ftnlen uplo_len);
extern int csytf2_(char *uplo, integer * n, complex * a, integer * lda,
		   integer * ipiv, integer * info, ftnlen uplo_len);
extern int csytrf_(char *uplo, integer * n, complex * a, integer * lda,
		   integer * ipiv, complex * work, integer * lwork,
		   integer * info, ftnlen uplo_len);
extern int csytri_(char *uplo, integer * n, complex * a, integer * lda,
		   integer * ipiv, complex * work, integer * info,
		   ftnlen uplo_len);
extern int csytrs_(char *uplo, integer * n, integer * nrhs, complex * a,
		   integer * lda, integer * ipiv, complex * b, integer * ldb,
		   integer * info, ftnlen uplo_len);
extern int ctbcon_(char *norm, char *uplo, char *diag, integer * n,
		   integer * kd, complex * ab, integer * ldab, real * rcond,
		   complex * work, real * rwork, integer * info,
		   ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern int ctbrfs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * kd, integer * nrhs, complex * ab, integer * ldab,
		   complex * b, integer * ldb, complex * x, integer * ldx,
		   real * ferr, real * berr, complex * work, real * rwork,
		   integer * info, ftnlen uplo_len, ftnlen trans_len,
		   ftnlen diag_len);
extern int ctbtrs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * kd, integer * nrhs, complex * ab, integer * ldab,
		   complex * b, integer * ldb, integer * info,
		   ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
extern int ctgevc_(char *side, char *howmny, logical * select, integer * n,
		   complex * a, integer * lda, complex * b, integer * ldb,
		   complex * vl, integer * ldvl, complex * vr, integer * ldvr,
		   integer * mm, integer * m, complex * work, real * rwork,
		   integer * info, ftnlen side_len, ftnlen howmny_len);
extern int ctgex2_(logical * wantq, logical * wantz, integer * n, complex * a,
		   integer * lda, complex * b, integer * ldb, complex * q,
		   integer * ldq, complex * z__, integer * ldz, integer * j1,
		   integer * info);
extern int ctgexc_(logical * wantq, logical * wantz, integer * n, complex * a,
		   integer * lda, complex * b, integer * ldb, complex * q,
		   integer * ldq, complex * z__, integer * ldz,
		   integer * ifst, integer * ilst, integer * info);
extern int ctgsen_(integer * ijob, logical * wantq, logical * wantz,
		   logical * select, integer * n, complex * a, integer * lda,
		   complex * b, integer * ldb, complex * alpha,
		   complex * beta, complex * q, integer * ldq, complex * z__,
		   integer * ldz, integer * m, real * pl, real * pr,
		   real * dif, complex * work, integer * lwork,
		   integer * iwork, integer * liwork, integer * info);
extern int ctgsja_(char *jobu, char *jobv, char *jobq, integer * m,
		   integer * p, integer * n, integer * k, integer * l,
		   complex * a, integer * lda, complex * b, integer * ldb,
		   real * tola, real * tolb, real * alpha, real * beta,
		   complex * u, integer * ldu, complex * v, integer * ldv,
		   complex * q, integer * ldq, complex * work,
		   integer * ncycle, integer * info, ftnlen jobu_len,
		   ftnlen jobv_len, ftnlen jobq_len);
extern int ctgsna_(char *job, char *howmny, logical * select, integer * n,
		   complex * a, integer * lda, complex * b, integer * ldb,
		   complex * vl, integer * ldvl, complex * vr, integer * ldvr,
		   real * s, real * dif, integer * mm, integer * m,
		   complex * work, integer * lwork, integer * iwork,
		   integer * info, ftnlen job_len, ftnlen howmny_len);
extern int ctgsy2_(char *trans, integer * ijob, integer * m, integer * n,
		   complex * a, integer * lda, complex * b, integer * ldb,
		   complex * c__, integer * ldc, complex * d__, integer * ldd,
		   complex * e, integer * lde, complex * f, integer * ldf,
		   real * scale, real * rdsum, real * rdscal, integer * info,
		   ftnlen trans_len);
extern int ctgsyl_(char *trans, integer * ijob, integer * m, integer * n,
		   complex * a, integer * lda, complex * b, integer * ldb,
		   complex * c__, integer * ldc, complex * d__, integer * ldd,
		   complex * e, integer * lde, complex * f, integer * ldf,
		   real * scale, real * dif, complex * work, integer * lwork,
		   integer * iwork, integer * info, ftnlen trans_len);
extern int ctpcon_(char *norm, char *uplo, char *diag, integer * n,
		   complex * ap, real * rcond, complex * work, real * rwork,
		   integer * info, ftnlen norm_len, ftnlen uplo_len,
		   ftnlen diag_len);
extern int ctprfs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * nrhs, complex * ap, complex * b, integer * ldb,
		   complex * x, integer * ldx, real * ferr, real * berr,
		   complex * work, real * rwork, integer * info,
		   ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
extern int ctptri_(char *uplo, char *diag, integer * n, complex * ap,
		   integer * info, ftnlen uplo_len, ftnlen diag_len);
extern int ctptrs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * nrhs, complex * ap, complex * b, integer * ldb,
		   integer * info, ftnlen uplo_len, ftnlen trans_len,
		   ftnlen diag_len);
extern int ctrcon_(char *norm, char *uplo, char *diag, integer * n,
		   complex * a, integer * lda, real * rcond, complex * work,
		   real * rwork, integer * info, ftnlen norm_len,
		   ftnlen uplo_len, ftnlen diag_len);
extern int ctrevc_(char *side, char *howmny, logical * select, integer * n,
		   complex * t, integer * ldt, complex * vl, integer * ldvl,
		   complex * vr, integer * ldvr, integer * mm, integer * m,
		   complex * work, real * rwork, integer * info,
		   ftnlen side_len, ftnlen howmny_len);
extern int ctrexc_(char *compq, integer * n, complex * t, integer * ldt,
		   complex * q, integer * ldq, integer * ifst, integer * ilst,
		   integer * info, ftnlen compq_len);
extern int ctrrfs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * nrhs, complex * a, integer * lda, complex * b,
		   integer * ldb, complex * x, integer * ldx, real * ferr,
		   real * berr, complex * work, real * rwork, integer * info,
		   ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
extern int ctrsen_(char *job, char *compq, logical * select, integer * n,
		   complex * t, integer * ldt, complex * q, integer * ldq,
		   complex * w, integer * m, real * s, real * sep,
		   complex * work, integer * lwork, integer * info,
		   ftnlen job_len, ftnlen compq_len);
extern int ctrsna_(char *job, char *howmny, logical * select, integer * n,
		   complex * t, integer * ldt, complex * vl, integer * ldvl,
		   complex * vr, integer * ldvr, real * s, real * sep,
		   integer * mm, integer * m, complex * work,
		   integer * ldwork, real * rwork, integer * info,
		   ftnlen job_len, ftnlen howmny_len);
extern int ctrsyl_(char *trana, char *tranb, integer * isgn, integer * m,
		   integer * n, complex * a, integer * lda, complex * b,
		   integer * ldb, complex * c__, integer * ldc, real * scale,
		   integer * info, ftnlen trana_len, ftnlen tranb_len);
extern int ctrti2_(char *uplo, char *diag, integer * n, complex * a,
		   integer * lda, integer * info, ftnlen uplo_len,
		   ftnlen diag_len);
extern int ctrtri_(char *uplo, char *diag, integer * n, complex * a,
		   integer * lda, integer * info, ftnlen uplo_len,
		   ftnlen diag_len);
extern int ctrtrs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * nrhs, complex * a, integer * lda, complex * b,
		   integer * ldb, integer * info, ftnlen uplo_len,
		   ftnlen trans_len, ftnlen diag_len);
extern int ctzrqf_(integer * m, integer * n, complex * a, integer * lda,
		   complex * tau, integer * info);
extern int ctzrzf_(integer * m, integer * n, complex * a, integer * lda,
		   complex * tau, complex * work, integer * lwork,
		   integer * info);
extern int cung2l_(integer * m, integer * n, integer * k, complex * a,
		   integer * lda, complex * tau, complex * work,
		   integer * info);
extern int cung2r_(integer * m, integer * n, integer * k, complex * a,
		   integer * lda, complex * tau, complex * work,
		   integer * info);
extern int cungbr_(char *vect, integer * m, integer * n, integer * k,
		   complex * a, integer * lda, complex * tau, complex * work,
		   integer * lwork, integer * info, ftnlen vect_len);
extern int cunghr_(integer * n, integer * ilo, integer * ihi, complex * a,
		   integer * lda, complex * tau, complex * work,
		   integer * lwork, integer * info);
extern int cungl2_(integer * m, integer * n, integer * k, complex * a,
		   integer * lda, complex * tau, complex * work,
		   integer * info);
extern int cunglq_(integer * m, integer * n, integer * k, complex * a,
		   integer * lda, complex * tau, complex * work,
		   integer * lwork, integer * info);
extern int cungql_(integer * m, integer * n, integer * k, complex * a,
		   integer * lda, complex * tau, complex * work,
		   integer * lwork, integer * info);
extern int cungqr_(integer * m, integer * n, integer * k, complex * a,
		   integer * lda, complex * tau, complex * work,
		   integer * lwork, integer * info);
extern int cungr2_(integer * m, integer * n, integer * k, complex * a,
		   integer * lda, complex * tau, complex * work,
		   integer * info);
extern int cungrq_(integer * m, integer * n, integer * k, complex * a,
		   integer * lda, complex * tau, complex * work,
		   integer * lwork, integer * info);
extern int cungtr_(char *uplo, integer * n, complex * a, integer * lda,
		   complex * tau, complex * work, integer * lwork,
		   integer * info, ftnlen uplo_len);
extern int cunm2l_(char *side, char *trans, integer * m, integer * n,
		   integer * k, complex * a, integer * lda, complex * tau,
		   complex * c__, integer * ldc, complex * work,
		   integer * info, ftnlen side_len, ftnlen trans_len);
extern int cunm2r_(char *side, char *trans, integer * m, integer * n,
		   integer * k, complex * a, integer * lda, complex * tau,
		   complex * c__, integer * ldc, complex * work,
		   integer * info, ftnlen side_len, ftnlen trans_len);
extern int cunmbr_(char *vect, char *side, char *trans, integer * m,
		   integer * n, integer * k, complex * a, integer * lda,
		   complex * tau, complex * c__, integer * ldc,
		   complex * work, integer * lwork, integer * info,
		   ftnlen vect_len, ftnlen side_len, ftnlen trans_len);
extern int cunmhr_(char *side, char *trans, integer * m, integer * n,
		   integer * ilo, integer * ihi, complex * a, integer * lda,
		   complex * tau, complex * c__, integer * ldc,
		   complex * work, integer * lwork, integer * info,
		   ftnlen side_len, ftnlen trans_len);
extern int cunml2_(char *side, char *trans, integer * m, integer * n,
		   integer * k, complex * a, integer * lda, complex * tau,
		   complex * c__, integer * ldc, complex * work,
		   integer * info, ftnlen side_len, ftnlen trans_len);
extern int cunmlq_(char *side, char *trans, integer * m, integer * n,
		   integer * k, complex * a, integer * lda, complex * tau,
		   complex * c__, integer * ldc, complex * work,
		   integer * lwork, integer * info, ftnlen side_len,
		   ftnlen trans_len);
extern int cunmql_(char *side, char *trans, integer * m, integer * n,
		   integer * k, complex * a, integer * lda, complex * tau,
		   complex * c__, integer * ldc, complex * work,
		   integer * lwork, integer * info, ftnlen side_len,
		   ftnlen trans_len);
extern int cunmqr_(char *side, char *trans, integer * m, integer * n,
		   integer * k, complex * a, integer * lda, complex * tau,
		   complex * c__, integer * ldc, complex * work,
		   integer * lwork, integer * info, ftnlen side_len,
		   ftnlen trans_len);
extern int cunmr2_(char *side, char *trans, integer * m, integer * n,
		   integer * k, complex * a, integer * lda, complex * tau,
		   complex * c__, integer * ldc, complex * work,
		   integer * info, ftnlen side_len, ftnlen trans_len);
extern int cunmr3_(char *side, char *trans, integer * m, integer * n,
		   integer * k, integer * l, complex * a, integer * lda,
		   complex * tau, complex * c__, integer * ldc,
		   complex * work, integer * info, ftnlen side_len,
		   ftnlen trans_len);
extern int cunmrq_(char *side, char *trans, integer * m, integer * n,
		   integer * k, complex * a, integer * lda, complex * tau,
		   complex * c__, integer * ldc, complex * work,
		   integer * lwork, integer * info, ftnlen side_len,
		   ftnlen trans_len);
extern int cunmrz_(char *side, char *trans, integer * m, integer * n,
		   integer * k, integer * l, complex * a, integer * lda,
		   complex * tau, complex * c__, integer * ldc,
		   complex * work, integer * lwork, integer * info,
		   ftnlen side_len, ftnlen trans_len);
extern int cunmtr_(char *side, char *uplo, char *trans, integer * m,
		   integer * n, complex * a, integer * lda, complex * tau,
		   complex * c__, integer * ldc, complex * work,
		   integer * lwork, integer * info, ftnlen side_len,
		   ftnlen uplo_len, ftnlen trans_len);
extern int cupgtr_(char *uplo, integer * n, complex * ap, complex * tau,
		   complex * q, integer * ldq, complex * work, integer * info,
		   ftnlen uplo_len);
extern int cupmtr_(char *side, char *uplo, char *trans, integer * m,
		   integer * n, complex * ap, complex * tau, complex * c__,
		   integer * ldc, complex * work, integer * info,
		   ftnlen side_len, ftnlen uplo_len, ftnlen trans_len);
extern int dbdsdc_(char *uplo, char *compq, integer * n, doublereal * d__,
		   doublereal * e, doublereal * u, integer * ldu,
		   doublereal * vt, integer * ldvt, doublereal * q,
		   integer * iq, doublereal * work, integer * iwork,
		   integer * info, ftnlen uplo_len, ftnlen compq_len);
extern int dbdsqr_(char *uplo, integer * n, integer * ncvt, integer * nru,
		   integer * ncc, doublereal * d__, doublereal * e,
		   doublereal * vt, integer * ldvt, doublereal * u,
		   integer * ldu, doublereal * c__, integer * ldc,
		   doublereal * work, integer * info, ftnlen uplo_len);
extern int ddisna_(char *job, integer * m, integer * n, doublereal * d__,
		   doublereal * sep, integer * info, ftnlen job_len);
extern int dgbbrd_(char *vect, integer * m, integer * n, integer * ncc,
		   integer * kl, integer * ku, doublereal * ab,
		   integer * ldab, doublereal * d__, doublereal * e,
		   doublereal * q, integer * ldq, doublereal * pt,
		   integer * ldpt, doublereal * c__, integer * ldc,
		   doublereal * work, integer * info, ftnlen vect_len);
extern int dgbcon_(char *norm, integer * n, integer * kl, integer * ku,
		   doublereal * ab, integer * ldab, integer * ipiv,
		   doublereal * anorm, doublereal * rcond, doublereal * work,
		   integer * iwork, integer * info, ftnlen norm_len);
extern int dgbequ_(integer * m, integer * n, integer * kl, integer * ku,
		   doublereal * ab, integer * ldab, doublereal * r__,
		   doublereal * c__, doublereal * rowcnd, doublereal * colcnd,
		   doublereal * amax, integer * info);
extern int dgbrfs_(char *trans, integer * n, integer * kl, integer * ku,
		   integer * nrhs, doublereal * ab, integer * ldab,
		   doublereal * afb, integer * ldafb, integer * ipiv,
		   doublereal * b, integer * ldb, doublereal * x,
		   integer * ldx, doublereal * ferr, doublereal * berr,
		   doublereal * work, integer * iwork, integer * info,
		   ftnlen trans_len);
extern int dgbsv_(integer * n, integer * kl, integer * ku, integer * nrhs,
		  doublereal * ab, integer * ldab, integer * ipiv,
		  doublereal * b, integer * ldb, integer * info);
extern int dgbsvx_(char *fact, char *trans, integer * n, integer * kl,
		   integer * ku, integer * nrhs, doublereal * ab,
		   integer * ldab, doublereal * afb, integer * ldafb,
		   integer * ipiv, char *equed, doublereal * r__,
		   doublereal * c__, doublereal * b, integer * ldb,
		   doublereal * x, integer * ldx, doublereal * rcond,
		   doublereal * ferr, doublereal * berr, doublereal * work,
		   integer * iwork, integer * info, ftnlen fact_len,
		   ftnlen trans_len, ftnlen equed_len);
extern int dgbtf2_(integer * m, integer * n, integer * kl, integer * ku,
		   doublereal * ab, integer * ldab, integer * ipiv,
		   integer * info);
extern int dgbtrf_(integer * m, integer * n, integer * kl, integer * ku,
		   doublereal * ab, integer * ldab, integer * ipiv,
		   integer * info);
extern int dgbtrs_(char *trans, integer * n, integer * kl, integer * ku,
		   integer * nrhs, doublereal * ab, integer * ldab,
		   integer * ipiv, doublereal * b, integer * ldb,
		   integer * info, ftnlen trans_len);
extern int dgebak_(char *job, char *side, integer * n, integer * ilo,
		   integer * ihi, doublereal * scale, integer * m,
		   doublereal * v, integer * ldv, integer * info,
		   ftnlen job_len, ftnlen side_len);
extern int dgebal_(char *job, integer * n, doublereal * a, integer * lda,
		   integer * ilo, integer * ihi, doublereal * scale,
		   integer * info, ftnlen job_len);
extern int dgebd2_(integer * m, integer * n, doublereal * a, integer * lda,
		   doublereal * d__, doublereal * e, doublereal * tauq,
		   doublereal * taup, doublereal * work, integer * info);
extern int dgebrd_(integer * m, integer * n, doublereal * a, integer * lda,
		   doublereal * d__, doublereal * e, doublereal * tauq,
		   doublereal * taup, doublereal * work, integer * lwork,
		   integer * info);
extern int dgecon_(char *norm, integer * n, doublereal * a, integer * lda,
		   doublereal * anorm, doublereal * rcond, doublereal * work,
		   integer * iwork, integer * info, ftnlen norm_len);
extern int dgeequ_(integer * m, integer * n, doublereal * a, integer * lda,
		   doublereal * r__, doublereal * c__, doublereal * rowcnd,
		   doublereal * colcnd, doublereal * amax, integer * info);
extern int dgees_(char *jobvs, char *sort, L_fp select, integer * n,
		  doublereal * a, integer * lda, integer * sdim,
		  doublereal * wr, doublereal * wi, doublereal * vs,
		  integer * ldvs, doublereal * work, integer * lwork,
		  logical * bwork, integer * info, ftnlen jobvs_len,
		  ftnlen sort_len);
extern int dgeesx_(char *jobvs, char *sort, L_fp select, char *sense,
		   integer * n, doublereal * a, integer * lda, integer * sdim,
		   doublereal * wr, doublereal * wi, doublereal * vs,
		   integer * ldvs, doublereal * rconde, doublereal * rcondv,
		   doublereal * work, integer * lwork, integer * iwork,
		   integer * liwork, logical * bwork, integer * info,
		   ftnlen jobvs_len, ftnlen sort_len, ftnlen sense_len);
extern int dgeev_(char *jobvl, char *jobvr, integer * n, doublereal * a,
		  integer * lda, doublereal * wr, doublereal * wi,
		  doublereal * vl, integer * ldvl, doublereal * vr,
		  integer * ldvr, doublereal * work, integer * lwork,
		  integer * info, ftnlen jobvl_len, ftnlen jobvr_len);
extern int dgeevx_(char *balanc, char *jobvl, char *jobvr, char *sense,
		   integer * n, doublereal * a, integer * lda,
		   doublereal * wr, doublereal * wi, doublereal * vl,
		   integer * ldvl, doublereal * vr, integer * ldvr,
		   integer * ilo, integer * ihi, doublereal * scale,
		   doublereal * abnrm, doublereal * rconde,
		   doublereal * rcondv, doublereal * work, integer * lwork,
		   integer * iwork, integer * info, ftnlen balanc_len,
		   ftnlen jobvl_len, ftnlen jobvr_len, ftnlen sense_len);
extern int dgegs_(char *jobvsl, char *jobvsr, integer * n, doublereal * a,
		  integer * lda, doublereal * b, integer * ldb,
		  doublereal * alphar, doublereal * alphai, doublereal * beta,
		  doublereal * vsl, integer * ldvsl, doublereal * vsr,
		  integer * ldvsr, doublereal * work, integer * lwork,
		  integer * info, ftnlen jobvsl_len, ftnlen jobvsr_len);
extern int dgegv_(char *jobvl, char *jobvr, integer * n, doublereal * a,
		  integer * lda, doublereal * b, integer * ldb,
		  doublereal * alphar, doublereal * alphai, doublereal * beta,
		  doublereal * vl, integer * ldvl, doublereal * vr,
		  integer * ldvr, doublereal * work, integer * lwork,
		  integer * info, ftnlen jobvl_len, ftnlen jobvr_len);
extern int dgehd2_(integer * n, integer * ilo, integer * ihi, doublereal * a,
		   integer * lda, doublereal * tau, doublereal * work,
		   integer * info);
extern int dgehrd_(integer * n, integer * ilo, integer * ihi, doublereal * a,
		   integer * lda, doublereal * tau, doublereal * work,
		   integer * lwork, integer * info);
extern int dgelq2_(integer * m, integer * n, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * work, integer * info);
extern int dgelqf_(integer * m, integer * n, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * work, integer * lwork,
		   integer * info);
extern int dgels_(char *trans, integer * m, integer * n, integer * nrhs,
		  doublereal * a, integer * lda, doublereal * b,
		  integer * ldb, doublereal * work, integer * lwork,
		  integer * info, ftnlen trans_len);
extern int dgelsd_(integer * m, integer * n, integer * nrhs, doublereal * a,
		   integer * lda, doublereal * b, integer * ldb,
		   doublereal * s, doublereal * rcond, integer * rank,
		   doublereal * work, integer * lwork, integer * iwork,
		   integer * info);
extern int dgelss_(integer * m, integer * n, integer * nrhs, doublereal * a,
		   integer * lda, doublereal * b, integer * ldb,
		   doublereal * s, doublereal * rcond, integer * rank,
		   doublereal * work, integer * lwork, integer * info);
extern int dgelsx_(integer * m, integer * n, integer * nrhs, doublereal * a,
		   integer * lda, doublereal * b, integer * ldb,
		   integer * jpvt, doublereal * rcond, integer * rank,
		   doublereal * work, integer * info);
extern int dgelsy_(integer * m, integer * n, integer * nrhs, doublereal * a,
		   integer * lda, doublereal * b, integer * ldb,
		   integer * jpvt, doublereal * rcond, integer * rank,
		   doublereal * work, integer * lwork, integer * info);
extern int dgeql2_(integer * m, integer * n, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * work, integer * info);
extern int dgeqlf_(integer * m, integer * n, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * work, integer * lwork,
		   integer * info);
extern int dgeqp3_(integer * m, integer * n, doublereal * a, integer * lda,
		   integer * jpvt, doublereal * tau, doublereal * work,
		   integer * lwork, integer * info);
extern int dgeqpf_(integer * m, integer * n, doublereal * a, integer * lda,
		   integer * jpvt, doublereal * tau, doublereal * work,
		   integer * info);
extern int dgeqr2_(integer * m, integer * n, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * work, integer * info);
extern int dgeqrf_(integer * m, integer * n, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * work, integer * lwork,
		   integer * info);
extern int dgerfs_(char *trans, integer * n, integer * nrhs, doublereal * a,
		   integer * lda, doublereal * af, integer * ldaf,
		   integer * ipiv, doublereal * b, integer * ldb,
		   doublereal * x, integer * ldx, doublereal * ferr,
		   doublereal * berr, doublereal * work, integer * iwork,
		   integer * info, ftnlen trans_len);
extern int dgerq2_(integer * m, integer * n, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * work, integer * info);
extern int dgerqf_(integer * m, integer * n, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * work, integer * lwork,
		   integer * info);
extern int dgesc2_(integer * n, doublereal * a, integer * lda,
		   doublereal * rhs, integer * ipiv, integer * jpiv,
		   doublereal * scale);
extern int dgesdd_(char *jobz, integer * m, integer * n, doublereal * a,
		   integer * lda, doublereal * s, doublereal * u,
		   integer * ldu, doublereal * vt, integer * ldvt,
		   doublereal * work, integer * lwork, integer * iwork,
		   integer * info, ftnlen jobz_len);
extern int dgesv_(integer * n, integer * nrhs, doublereal * a, integer * lda,
		  integer * ipiv, doublereal * b, integer * ldb,
		  integer * info);
extern int dgesvd_(char *jobu, char *jobvt, integer * m, integer * n,
		   doublereal * a, integer * lda, doublereal * s,
		   doublereal * u, integer * ldu, doublereal * vt,
		   integer * ldvt, doublereal * work, integer * lwork,
		   integer * info, ftnlen jobu_len, ftnlen jobvt_len);
extern int dgesvx_(char *fact, char *trans, integer * n, integer * nrhs,
		   doublereal * a, integer * lda, doublereal * af,
		   integer * ldaf, integer * ipiv, char *equed,
		   doublereal * r__, doublereal * c__, doublereal * b,
		   integer * ldb, doublereal * x, integer * ldx,
		   doublereal * rcond, doublereal * ferr, doublereal * berr,
		   doublereal * work, integer * iwork, integer * info,
		   ftnlen fact_len, ftnlen trans_len, ftnlen equed_len);
extern int dgetc2_(integer * n, doublereal * a, integer * lda, integer * ipiv,
		   integer * jpiv, integer * info);
extern int dgetf2_(integer * m, integer * n, doublereal * a, integer * lda,
		   integer * ipiv, integer * info);
extern int dgetrf_(integer * m, integer * n, doublereal * a, integer * lda,
		   integer * ipiv, integer * info);
extern int dgetri_(integer * n, doublereal * a, integer * lda, integer * ipiv,
		   doublereal * work, integer * lwork, integer * info);
extern int dgetrs_(char *trans, integer * n, integer * nrhs, doublereal * a,
		   integer * lda, integer * ipiv, doublereal * b,
		   integer * ldb, integer * info, ftnlen trans_len);
extern int dggbak_(char *job, char *side, integer * n, integer * ilo,
		   integer * ihi, doublereal * lscale, doublereal * rscale,
		   integer * m, doublereal * v, integer * ldv, integer * info,
		   ftnlen job_len, ftnlen side_len);
extern int dggbal_(char *job, integer * n, doublereal * a, integer * lda,
		   doublereal * b, integer * ldb, integer * ilo,
		   integer * ihi, doublereal * lscale, doublereal * rscale,
		   doublereal * work, integer * info, ftnlen job_len);
extern int dgges_(char *jobvsl, char *jobvsr, char *sort, L_fp delctg,
		  integer * n, doublereal * a, integer * lda, doublereal * b,
		  integer * ldb, integer * sdim, doublereal * alphar,
		  doublereal * alphai, doublereal * beta, doublereal * vsl,
		  integer * ldvsl, doublereal * vsr, integer * ldvsr,
		  doublereal * work, integer * lwork, logical * bwork,
		  integer * info, ftnlen jobvsl_len, ftnlen jobvsr_len,
		  ftnlen sort_len);
extern int dggesx_(char *jobvsl, char *jobvsr, char *sort, L_fp delctg,
		   char *sense, integer * n, doublereal * a, integer * lda,
		   doublereal * b, integer * ldb, integer * sdim,
		   doublereal * alphar, doublereal * alphai,
		   doublereal * beta, doublereal * vsl, integer * ldvsl,
		   doublereal * vsr, integer * ldvsr, doublereal * rconde,
		   doublereal * rcondv, doublereal * work, integer * lwork,
		   integer * iwork, integer * liwork, logical * bwork,
		   integer * info, ftnlen jobvsl_len, ftnlen jobvsr_len,
		   ftnlen sort_len, ftnlen sense_len);
extern int dggev_(char *jobvl, char *jobvr, integer * n, doublereal * a,
		  integer * lda, doublereal * b, integer * ldb,
		  doublereal * alphar, doublereal * alphai, doublereal * beta,
		  doublereal * vl, integer * ldvl, doublereal * vr,
		  integer * ldvr, doublereal * work, integer * lwork,
		  integer * info, ftnlen jobvl_len, ftnlen jobvr_len);
extern int dggevx_(char *balanc, char *jobvl, char *jobvr, char *sense,
		   integer * n, doublereal * a, integer * lda, doublereal * b,
		   integer * ldb, doublereal * alphar, doublereal * alphai,
		   doublereal * beta, doublereal * vl, integer * ldvl,
		   doublereal * vr, integer * ldvr, integer * ilo,
		   integer * ihi, doublereal * lscale, doublereal * rscale,
		   doublereal * abnrm, doublereal * bbnrm,
		   doublereal * rconde, doublereal * rcondv,
		   doublereal * work, integer * lwork, integer * iwork,
		   logical * bwork, integer * info, ftnlen balanc_len,
		   ftnlen jobvl_len, ftnlen jobvr_len, ftnlen sense_len);
extern int dggglm_(integer * n, integer * m, integer * p, doublereal * a,
		   integer * lda, doublereal * b, integer * ldb,
		   doublereal * d__, doublereal * x, doublereal * y,
		   doublereal * work, integer * lwork, integer * info);
extern int dgghrd_(char *compq, char *compz, integer * n, integer * ilo,
		   integer * ihi, doublereal * a, integer * lda,
		   doublereal * b, integer * ldb, doublereal * q,
		   integer * ldq, doublereal * z__, integer * ldz,
		   integer * info, ftnlen compq_len, ftnlen compz_len);
extern int dgglse_(integer * m, integer * n, integer * p, doublereal * a,
		   integer * lda, doublereal * b, integer * ldb,
		   doublereal * c__, doublereal * d__, doublereal * x,
		   doublereal * work, integer * lwork, integer * info);
extern int dggqrf_(integer * n, integer * m, integer * p, doublereal * a,
		   integer * lda, doublereal * taua, doublereal * b,
		   integer * ldb, doublereal * taub, doublereal * work,
		   integer * lwork, integer * info);
extern int dggrqf_(integer * m, integer * p, integer * n, doublereal * a,
		   integer * lda, doublereal * taua, doublereal * b,
		   integer * ldb, doublereal * taub, doublereal * work,
		   integer * lwork, integer * info);
extern int dggsvd_(char *jobu, char *jobv, char *jobq, integer * m,
		   integer * n, integer * p, integer * k, integer * l,
		   doublereal * a, integer * lda, doublereal * b,
		   integer * ldb, doublereal * alpha, doublereal * beta,
		   doublereal * u, integer * ldu, doublereal * v,
		   integer * ldv, doublereal * q, integer * ldq,
		   doublereal * work, integer * iwork, integer * info,
		   ftnlen jobu_len, ftnlen jobv_len, ftnlen jobq_len);
extern int dggsvp_(char *jobu, char *jobv, char *jobq, integer * m,
		   integer * p, integer * n, doublereal * a, integer * lda,
		   doublereal * b, integer * ldb, doublereal * tola,
		   doublereal * tolb, integer * k, integer * l,
		   doublereal * u, integer * ldu, doublereal * v,
		   integer * ldv, doublereal * q, integer * ldq,
		   integer * iwork, doublereal * tau, doublereal * work,
		   integer * info, ftnlen jobu_len, ftnlen jobv_len,
		   ftnlen jobq_len);
extern int dgtcon_(char *norm, integer * n, doublereal * dl, doublereal * d__,
		   doublereal * du, doublereal * du2, integer * ipiv,
		   doublereal * anorm, doublereal * rcond, doublereal * work,
		   integer * iwork, integer * info, ftnlen norm_len);
extern int dgtrfs_(char *trans, integer * n, integer * nrhs, doublereal * dl,
		   doublereal * d__, doublereal * du, doublereal * dlf,
		   doublereal * df, doublereal * duf, doublereal * du2,
		   integer * ipiv, doublereal * b, integer * ldb,
		   doublereal * x, integer * ldx, doublereal * ferr,
		   doublereal * berr, doublereal * work, integer * iwork,
		   integer * info, ftnlen trans_len);
extern int dgtsv_(integer * n, integer * nrhs, doublereal * dl,
		  doublereal * d__, doublereal * du, doublereal * b,
		  integer * ldb, integer * info);
extern int dgtsvx_(char *fact, char *trans, integer * n, integer * nrhs,
		   doublereal * dl, doublereal * d__, doublereal * du,
		   doublereal * dlf, doublereal * df, doublereal * duf,
		   doublereal * du2, integer * ipiv, doublereal * b,
		   integer * ldb, doublereal * x, integer * ldx,
		   doublereal * rcond, doublereal * ferr, doublereal * berr,
		   doublereal * work, integer * iwork, integer * info,
		   ftnlen fact_len, ftnlen trans_len);
extern int dgttrf_(integer * n, doublereal * dl, doublereal * d__,
		   doublereal * du, doublereal * du2, integer * ipiv,
		   integer * info);
extern int dgttrs_(char *trans, integer * n, integer * nrhs, doublereal * dl,
		   doublereal * d__, doublereal * du, doublereal * du2,
		   integer * ipiv, doublereal * b, integer * ldb,
		   integer * info, ftnlen trans_len);
extern int dgtts2_(integer * itrans, integer * n, integer * nrhs,
		   doublereal * dl, doublereal * d__, doublereal * du,
		   doublereal * du2, integer * ipiv, doublereal * b,
		   integer * ldb);
extern int dhgeqz_(char *job, char *compq, char *compz, integer * n,
		   integer * ilo, integer * ihi, doublereal * a,
		   integer * lda, doublereal * b, integer * ldb,
		   doublereal * alphar, doublereal * alphai,
		   doublereal * beta, doublereal * q, integer * ldq,
		   doublereal * z__, integer * ldz, doublereal * work,
		   integer * lwork, integer * info, ftnlen job_len,
		   ftnlen compq_len, ftnlen compz_len);
extern int dhsein_(char *side, char *eigsrc, char *initv, logical * select,
		   integer * n, doublereal * h__, integer * ldh,
		   doublereal * wr, doublereal * wi, doublereal * vl,
		   integer * ldvl, doublereal * vr, integer * ldvr,
		   integer * mm, integer * m, doublereal * work,
		   integer * ifaill, integer * ifailr, integer * info,
		   ftnlen side_len, ftnlen eigsrc_len, ftnlen initv_len);
extern int dhseqr_(char *job, char *compz, integer * n, integer * ilo,
		   integer * ihi, doublereal * h__, integer * ldh,
		   doublereal * wr, doublereal * wi, doublereal * z__,
		   integer * ldz, doublereal * work, integer * lwork,
		   integer * info, ftnlen job_len, ftnlen compz_len);
extern int dlabad_(doublereal * small, doublereal * large);
extern int dlabrd_(integer * m, integer * n, integer * nb, doublereal * a,
		   integer * lda, doublereal * d__, doublereal * e,
		   doublereal * tauq, doublereal * taup, doublereal * x,
		   integer * ldx, doublereal * y, integer * ldy);
extern int dlacon_(integer * n, doublereal * v, doublereal * x,
		   integer * isgn, doublereal * est, integer * kase);
extern int dlacpy_(char *uplo, integer * m, integer * n, doublereal * a,
		   integer * lda, doublereal * b, integer * ldb,
		   ftnlen uplo_len);
extern int dladiv_(doublereal * a, doublereal * b, doublereal * c__,
		   doublereal * d__, doublereal * p, doublereal * q);
extern int dlae2_(doublereal * a, doublereal * b, doublereal * c__,
		  doublereal * rt1, doublereal * rt2);
extern int dlaebz_(integer * ijob, integer * nitmax, integer * n,
		   integer * mmax, integer * minp, integer * nbmin,
		   doublereal * abstol, doublereal * reltol,
		   doublereal * pivmin, doublereal * d__, doublereal * e,
		   doublereal * e2, integer * nval, doublereal * ab,
		   doublereal * c__, integer * mout, integer * nab,
		   doublereal * work, integer * iwork, integer * info);
extern int dlaed0_(integer * icompq, integer * qsiz, integer * n,
		   doublereal * d__, doublereal * e, doublereal * q,
		   integer * ldq, doublereal * qstore, integer * ldqs,
		   doublereal * work, integer * iwork, integer * info);
extern int dlaed1_(integer * n, doublereal * d__, doublereal * q,
		   integer * ldq, integer * indxq, doublereal * rho,
		   integer * cutpnt, doublereal * work, integer * iwork,
		   integer * info);
extern int dlaed2_(integer * k, integer * n, integer * n1, doublereal * d__,
		   doublereal * q, integer * ldq, integer * indxq,
		   doublereal * rho, doublereal * z__, doublereal * dlamda,
		   doublereal * w, doublereal * q2, integer * indx,
		   integer * indxc, integer * indxp, integer * coltyp,
		   integer * info);
extern int dlaed3_(integer * k, integer * n, integer * n1, doublereal * d__,
		   doublereal * q, integer * ldq, doublereal * rho,
		   doublereal * dlamda, doublereal * q2, integer * indx,
		   integer * ctot, doublereal * w, doublereal * s,
		   integer * info);
extern int dlaed4_(integer * n, integer * i__, doublereal * d__,
		   doublereal * z__, doublereal * delta, doublereal * rho,
		   doublereal * dlam, integer * info);
extern int dlaed5_(integer * i__, doublereal * d__, doublereal * z__,
		   doublereal * delta, doublereal * rho, doublereal * dlam);
extern int dlaed6_(integer * kniter, logical * orgati, doublereal * rho,
		   doublereal * d__, doublereal * z__, doublereal * finit,
		   doublereal * tau, integer * info);
extern int dlaed7_(integer * icompq, integer * n, integer * qsiz,
		   integer * tlvls, integer * curlvl, integer * curpbm,
		   doublereal * d__, doublereal * q, integer * ldq,
		   integer * indxq, doublereal * rho, integer * cutpnt,
		   doublereal * qstore, integer * qptr, integer * prmptr,
		   integer * perm, integer * givptr, integer * givcol,
		   doublereal * givnum, doublereal * work, integer * iwork,
		   integer * info);
extern int dlaed8_(integer * icompq, integer * k, integer * n, integer * qsiz,
		   doublereal * d__, doublereal * q, integer * ldq,
		   integer * indxq, doublereal * rho, integer * cutpnt,
		   doublereal * z__, doublereal * dlamda, doublereal * q2,
		   integer * ldq2, doublereal * w, integer * perm,
		   integer * givptr, integer * givcol, doublereal * givnum,
		   integer * indxp, integer * indx, integer * info);
extern int dlaed9_(integer * k, integer * kstart, integer * kstop,
		   integer * n, doublereal * d__, doublereal * q,
		   integer * ldq, doublereal * rho, doublereal * dlamda,
		   doublereal * w, doublereal * s, integer * lds,
		   integer * info);
extern int dlaeda_(integer * n, integer * tlvls, integer * curlvl,
		   integer * curpbm, integer * prmptr, integer * perm,
		   integer * givptr, integer * givcol, doublereal * givnum,
		   doublereal * q, integer * qptr, doublereal * z__,
		   doublereal * ztemp, integer * info);
extern int dlaein_(logical * rightv, logical * noinit, integer * n,
		   doublereal * h__, integer * ldh, doublereal * wr,
		   doublereal * wi, doublereal * vr, doublereal * vi,
		   doublereal * b, integer * ldb, doublereal * work,
		   doublereal * eps3, doublereal * smlnum,
		   doublereal * bignum, integer * info);
extern int dlaev2_(doublereal * a, doublereal * b, doublereal * c__,
		   doublereal * rt1, doublereal * rt2, doublereal * cs1,
		   doublereal * sn1);
extern int dlaexc_(logical * wantq, integer * n, doublereal * t,
		   integer * ldt, doublereal * q, integer * ldq, integer * j1,
		   integer * n1, integer * n2, doublereal * work,
		   integer * info);
extern int dlag2_(doublereal * a, integer * lda, doublereal * b,
		  integer * ldb, doublereal * safmin, doublereal * scale1,
		  doublereal * scale2, doublereal * wr1, doublereal * wr2,
		  doublereal * wi);
extern int dlags2_(logical * upper, doublereal * a1, doublereal * a2,
		   doublereal * a3, doublereal * b1, doublereal * b2,
		   doublereal * b3, doublereal * csu, doublereal * snu,
		   doublereal * csv, doublereal * snv, doublereal * csq,
		   doublereal * snq);
extern int dlagtf_(integer * n, doublereal * a, doublereal * lambda,
		   doublereal * b, doublereal * c__, doublereal * tol,
		   doublereal * d__, integer * in, integer * info);
extern int dlagtm_(char *trans, integer * n, integer * nrhs,
		   doublereal * alpha, doublereal * dl, doublereal * d__,
		   doublereal * du, doublereal * x, integer * ldx,
		   doublereal * beta, doublereal * b, integer * ldb,
		   ftnlen trans_len);
extern int dlagts_(integer * job, integer * n, doublereal * a, doublereal * b,
		   doublereal * c__, doublereal * d__, integer * in,
		   doublereal * y, doublereal * tol, integer * info);
extern int dlagv2_(doublereal * a, integer * lda, doublereal * b,
		   integer * ldb, doublereal * alphar, doublereal * alphai,
		   doublereal * beta, doublereal * csl, doublereal * snl,
		   doublereal * csr, doublereal * snr);
extern int dlahqr_(logical * wantt, logical * wantz, integer * n,
		   integer * ilo, integer * ihi, doublereal * h__,
		   integer * ldh, doublereal * wr, doublereal * wi,
		   integer * iloz, integer * ihiz, doublereal * z__,
		   integer * ldz, integer * info);
extern int dlahrd_(integer * n, integer * k, integer * nb, doublereal * a,
		   integer * lda, doublereal * tau, doublereal * t,
		   integer * ldt, doublereal * y, integer * ldy);
extern int dlaic1_(integer * job, integer * j, doublereal * x,
		   doublereal * sest, doublereal * w, doublereal * gamma,
		   doublereal * sestpr, doublereal * s, doublereal * c__);
extern int dlaln2_(logical * ltrans, integer * na, integer * nw,
		   doublereal * smin, doublereal * ca, doublereal * a,
		   integer * lda, doublereal * d1, doublereal * d2,
		   doublereal * b, integer * ldb, doublereal * wr,
		   doublereal * wi, doublereal * x, integer * ldx,
		   doublereal * scale, doublereal * xnorm, integer * info);
extern int dlals0_(integer * icompq, integer * nl, integer * nr,
		   integer * sqre, integer * nrhs, doublereal * b,
		   integer * ldb, doublereal * bx, integer * ldbx,
		   integer * perm, integer * givptr, integer * givcol,
		   integer * ldgcol, doublereal * givnum, integer * ldgnum,
		   doublereal * poles, doublereal * difl, doublereal * difr,
		   doublereal * z__, integer * k, doublereal * c__,
		   doublereal * s, doublereal * work, integer * info);
extern int dlalsa_(integer * icompq, integer * smlsiz, integer * n,
		   integer * nrhs, doublereal * b, integer * ldb,
		   doublereal * bx, integer * ldbx, doublereal * u,
		   integer * ldu, doublereal * vt, integer * k,
		   doublereal * difl, doublereal * difr, doublereal * z__,
		   doublereal * poles, integer * givptr, integer * givcol,
		   integer * ldgcol, integer * perm, doublereal * givnum,
		   doublereal * c__, doublereal * s, doublereal * work,
		   integer * iwork, integer * info);
extern int dlalsd_(char *uplo, integer * smlsiz, integer * n, integer * nrhs,
		   doublereal * d__, doublereal * e, doublereal * b,
		   integer * ldb, doublereal * rcond, integer * rank,
		   doublereal * work, integer * iwork, integer * info,
		   ftnlen uplo_len);
extern doublereal dlamch_(char *cmach, ftnlen cmach_len);
extern int dlamc1_(integer * beta, integer * t, logical * rnd,
		   logical * ieee1);
extern int dlamc2_(integer * beta, integer * t, logical * rnd,
		   doublereal * eps, integer * emin, doublereal * rmin,
		   integer * emax, doublereal * rmax);
extern doublereal dlamc3_(doublereal * a, doublereal * b);
extern int dlamc4_(integer * emin, doublereal * start, integer * base);
extern int dlamc5_(integer * beta, integer * p, integer * emin,
		   logical * ieee, integer * emax, doublereal * rmax);
extern int dlamrg_(integer * n1, integer * n2, doublereal * a,
		   integer * dtrd1, integer * dtrd2, integer * index);
extern doublereal dlangb_(char *norm, integer * n, integer * kl, integer * ku,
			  doublereal * ab, integer * ldab, doublereal * work,
			  ftnlen norm_len);
extern doublereal dlange_(char *norm, integer * m, integer * n,
			  doublereal * a, integer * lda, doublereal * work,
			  ftnlen norm_len);
extern doublereal dlangt_(char *norm, integer * n, doublereal * dl,
			  doublereal * d__, doublereal * du, ftnlen norm_len);
extern doublereal dlanhs_(char *norm, integer * n, doublereal * a,
			  integer * lda, doublereal * work, ftnlen norm_len);
extern doublereal dlansb_(char *norm, char *uplo, integer * n, integer * k,
			  doublereal * ab, integer * ldab, doublereal * work,
			  ftnlen norm_len, ftnlen uplo_len);
extern doublereal dlansp_(char *norm, char *uplo, integer * n,
			  doublereal * ap, doublereal * work, ftnlen norm_len,
			  ftnlen uplo_len);
extern doublereal dlanst_(char *norm, integer * n, doublereal * d__,
			  doublereal * e, ftnlen norm_len);
extern doublereal dlansy_(char *norm, char *uplo, integer * n, doublereal * a,
			  integer * lda, doublereal * work, ftnlen norm_len,
			  ftnlen uplo_len);
extern doublereal dlantb_(char *norm, char *uplo, char *diag, integer * n,
			  integer * k, doublereal * ab, integer * ldab,
			  doublereal * work, ftnlen norm_len, ftnlen uplo_len,
			  ftnlen diag_len);
extern doublereal dlantp_(char *norm, char *uplo, char *diag, integer * n,
			  doublereal * ap, doublereal * work, ftnlen norm_len,
			  ftnlen uplo_len, ftnlen diag_len);
extern doublereal dlantr_(char *norm, char *uplo, char *diag, integer * m,
			  integer * n, doublereal * a, integer * lda,
			  doublereal * work, ftnlen norm_len, ftnlen uplo_len,
			  ftnlen diag_len);
extern int dlanv2_(doublereal * a, doublereal * b, doublereal * c__,
		   doublereal * d__, doublereal * rt1r, doublereal * rt1i,
		   doublereal * rt2r, doublereal * rt2i, doublereal * cs,
		   doublereal * sn);
extern int dlapll_(integer * n, doublereal * x, integer * incx,
		   doublereal * y, integer * incy, doublereal * ssmin);
extern int dlapmt_(logical * forwrd, integer * m, integer * n, doublereal * x,
		   integer * ldx, integer * k);
extern doublereal dlapy2_(doublereal * x, doublereal * y);
extern doublereal dlapy3_(doublereal * x, doublereal * y, doublereal * z__);
extern int dlaqgb_(integer * m, integer * n, integer * kl, integer * ku,
		   doublereal * ab, integer * ldab, doublereal * r__,
		   doublereal * c__, doublereal * rowcnd, doublereal * colcnd,
		   doublereal * amax, char *equed, ftnlen equed_len);
extern int dlaqge_(integer * m, integer * n, doublereal * a, integer * lda,
		   doublereal * r__, doublereal * c__, doublereal * rowcnd,
		   doublereal * colcnd, doublereal * amax, char *equed,
		   ftnlen equed_len);
extern int dlaqp2_(integer * m, integer * n, integer * offset, doublereal * a,
		   integer * lda, integer * jpvt, doublereal * tau,
		   doublereal * vn1, doublereal * vn2, doublereal * work);
extern int dlaqps_(integer * m, integer * n, integer * offset, integer * nb,
		   integer * kb, doublereal * a, integer * lda,
		   integer * jpvt, doublereal * tau, doublereal * vn1,
		   doublereal * vn2, doublereal * auxv, doublereal * f,
		   integer * ldf);
extern int dlaqsb_(char *uplo, integer * n, integer * kd, doublereal * ab,
		   integer * ldab, doublereal * s, doublereal * scond,
		   doublereal * amax, char *equed, ftnlen uplo_len,
		   ftnlen equed_len);
extern int dlaqsp_(char *uplo, integer * n, doublereal * ap, doublereal * s,
		   doublereal * scond, doublereal * amax, char *equed,
		   ftnlen uplo_len, ftnlen equed_len);
extern int dlaqsy_(char *uplo, integer * n, doublereal * a, integer * lda,
		   doublereal * s, doublereal * scond, doublereal * amax,
		   char *equed, ftnlen uplo_len, ftnlen equed_len);
extern int dlaqtr_(logical * ltran, logical * lreal, integer * n,
		   doublereal * t, integer * ldt, doublereal * b,
		   doublereal * w, doublereal * scale, doublereal * x,
		   doublereal * work, integer * info);
extern int dlar1v_(integer * n, integer * b1, integer * bn,
		   doublereal * sigma, doublereal * d__, doublereal * l,
		   doublereal * ld, doublereal * lld, doublereal * gersch,
		   doublereal * z__, doublereal * ztz, doublereal * mingma,
		   integer * r__, integer * isuppz, doublereal * work);
extern int dlar2v_(integer * n, doublereal * x, doublereal * y,
		   doublereal * z__, integer * incx, doublereal * c__,
		   doublereal * s, integer * incc);
extern int dlarf_(char *side, integer * m, integer * n, doublereal * v,
		  integer * incv, doublereal * tau, doublereal * c__,
		  integer * ldc, doublereal * work, ftnlen side_len);
extern int dlarfb_(char *side, char *trans, char *direct, char *storev,
		   integer * m, integer * n, integer * k, doublereal * v,
		   integer * ldv, doublereal * t, integer * ldt,
		   doublereal * c__, integer * ldc, doublereal * work,
		   integer * ldwork, ftnlen side_len, ftnlen trans_len,
		   ftnlen direct_len, ftnlen storev_len);
extern int dlarfg_(integer * n, doublereal * alpha, doublereal * x,
		   integer * incx, doublereal * tau);
extern int dlarft_(char *direct, char *storev, integer * n, integer * k,
		   doublereal * v, integer * ldv, doublereal * tau,
		   doublereal * t, integer * ldt, ftnlen direct_len,
		   ftnlen storev_len);
extern int dlarfx_(char *side, integer * m, integer * n, doublereal * v,
		   doublereal * tau, doublereal * c__, integer * ldc,
		   doublereal * work, ftnlen side_len);
extern int dlargv_(integer * n, doublereal * x, integer * incx,
		   doublereal * y, integer * incy, doublereal * c__,
		   integer * incc);
extern int dlarnv_(integer * idist, integer * iseed, integer * n,
		   doublereal * x);
extern int dlarrb_(integer * n, doublereal * d__, doublereal * l,
		   doublereal * ld, doublereal * lld, integer * ifirst,
		   integer * ilast, doublereal * sigma, doublereal * reltol,
		   doublereal * w, doublereal * wgap, doublereal * werr,
		   doublereal * work, integer * iwork, integer * info);
extern int dlarre_(integer * n, doublereal * d__, doublereal * e,
		   doublereal * tol, integer * nsplit, integer * isplit,
		   integer * m, doublereal * w, doublereal * woff,
		   doublereal * gersch, doublereal * work, integer * info);
extern int dlarrf_(integer * n, doublereal * d__, doublereal * l,
		   doublereal * ld, doublereal * lld, integer * ifirst,
		   integer * ilast, doublereal * w, doublereal * dplus,
		   doublereal * lplus, doublereal * work, integer * iwork,
		   integer * info);
extern int dlarrv_(integer * n, doublereal * d__, doublereal * l,
		   integer * isplit, integer * m, doublereal * w,
		   integer * iblock, doublereal * gersch, doublereal * tol,
		   doublereal * z__, integer * ldz, integer * isuppz,
		   doublereal * work, integer * iwork, integer * info);
extern int dlartg_(doublereal * f, doublereal * g, doublereal * cs,
		   doublereal * sn, doublereal * r__);
extern int dlartv_(integer * n, doublereal * x, integer * incx,
		   doublereal * y, integer * incy, doublereal * c__,
		   doublereal * s, integer * incc);
extern int dlaruv_(integer * iseed, integer * n, doublereal * x);
extern int dlarz_(char *side, integer * m, integer * n, integer * l,
		  doublereal * v, integer * incv, doublereal * tau,
		  doublereal * c__, integer * ldc, doublereal * work,
		  ftnlen side_len);
extern int dlarzb_(char *side, char *trans, char *direct, char *storev,
		   integer * m, integer * n, integer * k, integer * l,
		   doublereal * v, integer * ldv, doublereal * t,
		   integer * ldt, doublereal * c__, integer * ldc,
		   doublereal * work, integer * ldwork, ftnlen side_len,
		   ftnlen trans_len, ftnlen direct_len, ftnlen storev_len);
extern int dlarzt_(char *direct, char *storev, integer * n, integer * k,
		   doublereal * v, integer * ldv, doublereal * tau,
		   doublereal * t, integer * ldt, ftnlen direct_len,
		   ftnlen storev_len);
extern int dlas2_(doublereal * f, doublereal * g, doublereal * h__,
		  doublereal * ssmin, doublereal * ssmax);
extern int dlascl_(char *type__, integer * kl, integer * ku,
		   doublereal * cfrom, doublereal * cto, integer * m,
		   integer * n, doublereal * a, integer * lda, integer * info,
		   ftnlen type_len);
extern int dlasd0_(integer * n, integer * sqre, doublereal * d__,
		   doublereal * e, doublereal * u, integer * ldu,
		   doublereal * vt, integer * ldvt, integer * smlsiz,
		   integer * iwork, doublereal * work, integer * info);
extern int dlasd1_(integer * nl, integer * nr, integer * sqre,
		   doublereal * d__, doublereal * alpha, doublereal * beta,
		   doublereal * u, integer * ldu, doublereal * vt,
		   integer * ldvt, integer * idxq, integer * iwork,
		   doublereal * work, integer * info);
extern int dlasd2_(integer * nl, integer * nr, integer * sqre, integer * k,
		   doublereal * d__, doublereal * z__, doublereal * alpha,
		   doublereal * beta, doublereal * u, integer * ldu,
		   doublereal * vt, integer * ldvt, doublereal * dsigma,
		   doublereal * u2, integer * ldu2, doublereal * vt2,
		   integer * ldvt2, integer * idxp, integer * idx,
		   integer * idxc, integer * idxq, integer * coltyp,
		   integer * info);
extern int dlasd3_(integer * nl, integer * nr, integer * sqre, integer * k,
		   doublereal * d__, doublereal * q, integer * ldq,
		   doublereal * dsigma, doublereal * u, integer * ldu,
		   doublereal * u2, integer * ldu2, doublereal * vt,
		   integer * ldvt, doublereal * vt2, integer * ldvt2,
		   integer * idxc, integer * ctot, doublereal * z__,
		   integer * info);
extern int dlasd4_(integer * n, integer * i__, doublereal * d__,
		   doublereal * z__, doublereal * delta, doublereal * rho,
		   doublereal * sigma, doublereal * work, integer * info);
extern int dlasd5_(integer * i__, doublereal * d__, doublereal * z__,
		   doublereal * delta, doublereal * rho, doublereal * dsigma,
		   doublereal * work);
extern int dlasd6_(integer * icompq, integer * nl, integer * nr,
		   integer * sqre, doublereal * d__, doublereal * vf,
		   doublereal * vl, doublereal * alpha, doublereal * beta,
		   integer * idxq, integer * perm, integer * givptr,
		   integer * givcol, integer * ldgcol, doublereal * givnum,
		   integer * ldgnum, doublereal * poles, doublereal * difl,
		   doublereal * difr, doublereal * z__, integer * k,
		   doublereal * c__, doublereal * s, doublereal * work,
		   integer * iwork, integer * info);
extern int dlasd7_(integer * icompq, integer * nl, integer * nr,
		   integer * sqre, integer * k, doublereal * d__,
		   doublereal * z__, doublereal * zw, doublereal * vf,
		   doublereal * vfw, doublereal * vl, doublereal * vlw,
		   doublereal * alpha, doublereal * beta, doublereal * dsigma,
		   integer * idx, integer * idxp, integer * idxq,
		   integer * perm, integer * givptr, integer * givcol,
		   integer * ldgcol, doublereal * givnum, integer * ldgnum,
		   doublereal * c__, doublereal * s, integer * info);
extern int dlasd8_(integer * icompq, integer * k, doublereal * d__,
		   doublereal * z__, doublereal * vf, doublereal * vl,
		   doublereal * difl, doublereal * difr, integer * lddifr,
		   doublereal * dsigma, doublereal * work, integer * info);
extern int dlasd9_(integer * icompq, integer * ldu, integer * k,
		   doublereal * d__, doublereal * z__, doublereal * vf,
		   doublereal * vl, doublereal * difl, doublereal * difr,
		   doublereal * dsigma, doublereal * work, integer * info);
extern int dlasda_(integer * icompq, integer * smlsiz, integer * n,
		   integer * sqre, doublereal * d__, doublereal * e,
		   doublereal * u, integer * ldu, doublereal * vt,
		   integer * k, doublereal * difl, doublereal * difr,
		   doublereal * z__, doublereal * poles, integer * givptr,
		   integer * givcol, integer * ldgcol, integer * perm,
		   doublereal * givnum, doublereal * c__, doublereal * s,
		   doublereal * work, integer * iwork, integer * info);
extern int dlasdq_(char *uplo, integer * sqre, integer * n, integer * ncvt,
		   integer * nru, integer * ncc, doublereal * d__,
		   doublereal * e, doublereal * vt, integer * ldvt,
		   doublereal * u, integer * ldu, doublereal * c__,
		   integer * ldc, doublereal * work, integer * info,
		   ftnlen uplo_len);
extern int dlasdt_(integer * n, integer * lvl, integer * nd, integer * inode,
		   integer * ndiml, integer * ndimr, integer * msub);
extern int dlaset_(char *uplo, integer * m, integer * n, doublereal * alpha,
		   doublereal * beta, doublereal * a, integer * lda,
		   ftnlen uplo_len);
extern int dlasq1_(integer * n, doublereal * d__, doublereal * e,
		   doublereal * work, integer * info);
extern int dlasq2_(integer * n, doublereal * z__, integer * info);
extern int dlasq3_(integer * i0, integer * n0, doublereal * z__, integer * pp,
		   doublereal * dmin__, doublereal * sigma,
		   doublereal * desig, doublereal * qmax, integer * nfail,
		   integer * iter, integer * ndiv);
extern int dlasq4_(integer * i0, integer * n0, doublereal * z__, integer * pp,
		   integer * n0in, doublereal * dmin__, doublereal * dmin1,
		   doublereal * dmin2, doublereal * dn, doublereal * dn1,
		   doublereal * dn2, doublereal * tau, integer * ttype);
extern int dlasq5_(integer * i0, integer * n0, doublereal * z__, integer * pp,
		   doublereal * tau, doublereal * dmin__, doublereal * dmin1,
		   doublereal * dmin2, doublereal * dn, doublereal * dnm1,
		   doublereal * dnm2);
extern int dlasq6_(integer * i0, integer * n0, doublereal * z__, integer * pp,
		   doublereal * dmin__, doublereal * dmin1,
		   doublereal * dmin2, doublereal * dn, doublereal * dnm1,
		   doublereal * dnm2);
extern int dlasr_(char *side, char *pivot, char *direct, integer * m,
		  integer * n, doublereal * c__, doublereal * s,
		  doublereal * a, integer * lda, ftnlen side_len,
		  ftnlen pivot_len, ftnlen direct_len);
extern int dlasrt_(char *id, integer * n, doublereal * d__, integer * info,
		   ftnlen id_len);
extern int dlassq_(integer * n, doublereal * x, integer * incx,
		   doublereal * scale, doublereal * sumsq);
extern int dlasv2_(doublereal * f, doublereal * g, doublereal * h__,
		   doublereal * ssmin, doublereal * ssmax, doublereal * snr,
		   doublereal * csr, doublereal * snl, doublereal * csl);
extern int dlaswp_(integer * n, doublereal * a, integer * lda, integer * k1,
		   integer * k2, integer * ipiv, integer * incx);
extern int dlasy2_(logical * ltranl, logical * ltranr, integer * isgn,
		   integer * n1, integer * n2, doublereal * tl,
		   integer * ldtl, doublereal * tr, integer * ldtr,
		   doublereal * b, integer * ldb, doublereal * scale,
		   doublereal * x, integer * ldx, doublereal * xnorm,
		   integer * info);
extern int dlasyf_(char *uplo, integer * n, integer * nb, integer * kb,
		   doublereal * a, integer * lda, integer * ipiv,
		   doublereal * w, integer * ldw, integer * info,
		   ftnlen uplo_len);
extern int dlatbs_(char *uplo, char *trans, char *diag, char *normin,
		   integer * n, integer * kd, doublereal * ab, integer * ldab,
		   doublereal * x, doublereal * scale, doublereal * cnorm,
		   integer * info, ftnlen uplo_len, ftnlen trans_len,
		   ftnlen diag_len, ftnlen normin_len);
extern int dlatdf_(integer * ijob, integer * n, doublereal * z__,
		   integer * ldz, doublereal * rhs, doublereal * rdsum,
		   doublereal * rdscal, integer * ipiv, integer * jpiv);
extern int dlatps_(char *uplo, char *trans, char *diag, char *normin,
		   integer * n, doublereal * ap, doublereal * x,
		   doublereal * scale, doublereal * cnorm, integer * info,
		   ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len,
		   ftnlen normin_len);
extern int dlatrd_(char *uplo, integer * n, integer * nb, doublereal * a,
		   integer * lda, doublereal * e, doublereal * tau,
		   doublereal * w, integer * ldw, ftnlen uplo_len);
extern int dlatrs_(char *uplo, char *trans, char *diag, char *normin,
		   integer * n, doublereal * a, integer * lda, doublereal * x,
		   doublereal * scale, doublereal * cnorm, integer * info,
		   ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len,
		   ftnlen normin_len);
extern int dlatrz_(integer * m, integer * n, integer * l, doublereal * a,
		   integer * lda, doublereal * tau, doublereal * work);
extern int dlatzm_(char *side, integer * m, integer * n, doublereal * v,
		   integer * incv, doublereal * tau, doublereal * c1,
		   doublereal * c2, integer * ldc, doublereal * work,
		   ftnlen side_len);
extern int dlauu2_(char *uplo, integer * n, doublereal * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int dlauum_(char *uplo, integer * n, doublereal * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int dopgtr_(char *uplo, integer * n, doublereal * ap, doublereal * tau,
		   doublereal * q, integer * ldq, doublereal * work,
		   integer * info, ftnlen uplo_len);
extern int dopmtr_(char *side, char *uplo, char *trans, integer * m,
		   integer * n, doublereal * ap, doublereal * tau,
		   doublereal * c__, integer * ldc, doublereal * work,
		   integer * info, ftnlen side_len, ftnlen uplo_len,
		   ftnlen trans_len);
extern int dorg2l_(integer * m, integer * n, integer * k, doublereal * a,
		   integer * lda, doublereal * tau, doublereal * work,
		   integer * info);
extern int dorg2r_(integer * m, integer * n, integer * k, doublereal * a,
		   integer * lda, doublereal * tau, doublereal * work,
		   integer * info);
extern int dorgbr_(char *vect, integer * m, integer * n, integer * k,
		   doublereal * a, integer * lda, doublereal * tau,
		   doublereal * work, integer * lwork, integer * info,
		   ftnlen vect_len);
extern int dorghr_(integer * n, integer * ilo, integer * ihi, doublereal * a,
		   integer * lda, doublereal * tau, doublereal * work,
		   integer * lwork, integer * info);
extern int dorgl2_(integer * m, integer * n, integer * k, doublereal * a,
		   integer * lda, doublereal * tau, doublereal * work,
		   integer * info);
extern int dorglq_(integer * m, integer * n, integer * k, doublereal * a,
		   integer * lda, doublereal * tau, doublereal * work,
		   integer * lwork, integer * info);
extern int dorgql_(integer * m, integer * n, integer * k, doublereal * a,
		   integer * lda, doublereal * tau, doublereal * work,
		   integer * lwork, integer * info);
extern int dorgqr_(integer * m, integer * n, integer * k, doublereal * a,
		   integer * lda, doublereal * tau, doublereal * work,
		   integer * lwork, integer * info);
extern int dorgr2_(integer * m, integer * n, integer * k, doublereal * a,
		   integer * lda, doublereal * tau, doublereal * work,
		   integer * info);
extern int dorgrq_(integer * m, integer * n, integer * k, doublereal * a,
		   integer * lda, doublereal * tau, doublereal * work,
		   integer * lwork, integer * info);
extern int dorgtr_(char *uplo, integer * n, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * work, integer * lwork,
		   integer * info, ftnlen uplo_len);
extern int dorm2l_(char *side, char *trans, integer * m, integer * n,
		   integer * k, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * c__, integer * ldc,
		   doublereal * work, integer * info, ftnlen side_len,
		   ftnlen trans_len);
extern int dorm2r_(char *side, char *trans, integer * m, integer * n,
		   integer * k, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * c__, integer * ldc,
		   doublereal * work, integer * info, ftnlen side_len,
		   ftnlen trans_len);
extern int dormbr_(char *vect, char *side, char *trans, integer * m,
		   integer * n, integer * k, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * c__, integer * ldc,
		   doublereal * work, integer * lwork, integer * info,
		   ftnlen vect_len, ftnlen side_len, ftnlen trans_len);
extern int dormhr_(char *side, char *trans, integer * m, integer * n,
		   integer * ilo, integer * ihi, doublereal * a,
		   integer * lda, doublereal * tau, doublereal * c__,
		   integer * ldc, doublereal * work, integer * lwork,
		   integer * info, ftnlen side_len, ftnlen trans_len);
extern int dorml2_(char *side, char *trans, integer * m, integer * n,
		   integer * k, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * c__, integer * ldc,
		   doublereal * work, integer * info, ftnlen side_len,
		   ftnlen trans_len);
extern int dormlq_(char *side, char *trans, integer * m, integer * n,
		   integer * k, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * c__, integer * ldc,
		   doublereal * work, integer * lwork, integer * info,
		   ftnlen side_len, ftnlen trans_len);
extern int dormql_(char *side, char *trans, integer * m, integer * n,
		   integer * k, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * c__, integer * ldc,
		   doublereal * work, integer * lwork, integer * info,
		   ftnlen side_len, ftnlen trans_len);
extern int dormqr_(char *side, char *trans, integer * m, integer * n,
		   integer * k, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * c__, integer * ldc,
		   doublereal * work, integer * lwork, integer * info,
		   ftnlen side_len, ftnlen trans_len);
extern int dormr2_(char *side, char *trans, integer * m, integer * n,
		   integer * k, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * c__, integer * ldc,
		   doublereal * work, integer * info, ftnlen side_len,
		   ftnlen trans_len);
extern int dormr3_(char *side, char *trans, integer * m, integer * n,
		   integer * k, integer * l, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * c__, integer * ldc,
		   doublereal * work, integer * info, ftnlen side_len,
		   ftnlen trans_len);
extern int dormrq_(char *side, char *trans, integer * m, integer * n,
		   integer * k, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * c__, integer * ldc,
		   doublereal * work, integer * lwork, integer * info,
		   ftnlen side_len, ftnlen trans_len);
extern int dormrz_(char *side, char *trans, integer * m, integer * n,
		   integer * k, integer * l, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * c__, integer * ldc,
		   doublereal * work, integer * lwork, integer * info,
		   ftnlen side_len, ftnlen trans_len);
extern int dormtr_(char *side, char *uplo, char *trans, integer * m,
		   integer * n, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * c__, integer * ldc,
		   doublereal * work, integer * lwork, integer * info,
		   ftnlen side_len, ftnlen uplo_len, ftnlen trans_len);
extern int dpbcon_(char *uplo, integer * n, integer * kd, doublereal * ab,
		   integer * ldab, doublereal * anorm, doublereal * rcond,
		   doublereal * work, integer * iwork, integer * info,
		   ftnlen uplo_len);
extern int dpbequ_(char *uplo, integer * n, integer * kd, doublereal * ab,
		   integer * ldab, doublereal * s, doublereal * scond,
		   doublereal * amax, integer * info, ftnlen uplo_len);
extern int dpbrfs_(char *uplo, integer * n, integer * kd, integer * nrhs,
		   doublereal * ab, integer * ldab, doublereal * afb,
		   integer * ldafb, doublereal * b, integer * ldb,
		   doublereal * x, integer * ldx, doublereal * ferr,
		   doublereal * berr, doublereal * work, integer * iwork,
		   integer * info, ftnlen uplo_len);
extern int dpbstf_(char *uplo, integer * n, integer * kd, doublereal * ab,
		   integer * ldab, integer * info, ftnlen uplo_len);
extern int dpbsv_(char *uplo, integer * n, integer * kd, integer * nrhs,
		  doublereal * ab, integer * ldab, doublereal * b,
		  integer * ldb, integer * info, ftnlen uplo_len);
extern int dpbsvx_(char *fact, char *uplo, integer * n, integer * kd,
		   integer * nrhs, doublereal * ab, integer * ldab,
		   doublereal * afb, integer * ldafb, char *equed,
		   doublereal * s, doublereal * b, integer * ldb,
		   doublereal * x, integer * ldx, doublereal * rcond,
		   doublereal * ferr, doublereal * berr, doublereal * work,
		   integer * iwork, integer * info, ftnlen fact_len,
		   ftnlen uplo_len, ftnlen equed_len);
extern int dpbtf2_(char *uplo, integer * n, integer * kd, doublereal * ab,
		   integer * ldab, integer * info, ftnlen uplo_len);
extern int dpbtrf_(char *uplo, integer * n, integer * kd, doublereal * ab,
		   integer * ldab, integer * info, ftnlen uplo_len);
extern int dpbtrs_(char *uplo, integer * n, integer * kd, integer * nrhs,
		   doublereal * ab, integer * ldab, doublereal * b,
		   integer * ldb, integer * info, ftnlen uplo_len);
extern int dpocon_(char *uplo, integer * n, doublereal * a, integer * lda,
		   doublereal * anorm, doublereal * rcond, doublereal * work,
		   integer * iwork, integer * info, ftnlen uplo_len);
extern int dpoequ_(integer * n, doublereal * a, integer * lda, doublereal * s,
		   doublereal * scond, doublereal * amax, integer * info);
extern int dporfs_(char *uplo, integer * n, integer * nrhs, doublereal * a,
		   integer * lda, doublereal * af, integer * ldaf,
		   doublereal * b, integer * ldb, doublereal * x,
		   integer * ldx, doublereal * ferr, doublereal * berr,
		   doublereal * work, integer * iwork, integer * info,
		   ftnlen uplo_len);
extern int dposv_(char *uplo, integer * n, integer * nrhs, doublereal * a,
		  integer * lda, doublereal * b, integer * ldb,
		  integer * info, ftnlen uplo_len);
extern int dposvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   doublereal * a, integer * lda, doublereal * af,
		   integer * ldaf, char *equed, doublereal * s,
		   doublereal * b, integer * ldb, doublereal * x,
		   integer * ldx, doublereal * rcond, doublereal * ferr,
		   doublereal * berr, doublereal * work, integer * iwork,
		   integer * info, ftnlen fact_len, ftnlen uplo_len,
		   ftnlen equed_len);
extern int dpotf2_(char *uplo, integer * n, doublereal * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int dpotrf_(char *uplo, integer * n, doublereal * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int dpotri_(char *uplo, integer * n, doublereal * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int dpotrs_(char *uplo, integer * n, integer * nrhs, doublereal * a,
		   integer * lda, doublereal * b, integer * ldb,
		   integer * info, ftnlen uplo_len);
extern int dppcon_(char *uplo, integer * n, doublereal * ap,
		   doublereal * anorm, doublereal * rcond, doublereal * work,
		   integer * iwork, integer * info, ftnlen uplo_len);
extern int dppequ_(char *uplo, integer * n, doublereal * ap, doublereal * s,
		   doublereal * scond, doublereal * amax, integer * info,
		   ftnlen uplo_len);
extern int dpprfs_(char *uplo, integer * n, integer * nrhs, doublereal * ap,
		   doublereal * afp, doublereal * b, integer * ldb,
		   doublereal * x, integer * ldx, doublereal * ferr,
		   doublereal * berr, doublereal * work, integer * iwork,
		   integer * info, ftnlen uplo_len);
extern int dppsv_(char *uplo, integer * n, integer * nrhs, doublereal * ap,
		  doublereal * b, integer * ldb, integer * info,
		  ftnlen uplo_len);
extern int dppsvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   doublereal * ap, doublereal * afp, char *equed,
		   doublereal * s, doublereal * b, integer * ldb,
		   doublereal * x, integer * ldx, doublereal * rcond,
		   doublereal * ferr, doublereal * berr, doublereal * work,
		   integer * iwork, integer * info, ftnlen fact_len,
		   ftnlen uplo_len, ftnlen equed_len);
extern int dpptrf_(char *uplo, integer * n, doublereal * ap, integer * info,
		   ftnlen uplo_len);
extern int dpptri_(char *uplo, integer * n, doublereal * ap, integer * info,
		   ftnlen uplo_len);
extern int dpptrs_(char *uplo, integer * n, integer * nrhs, doublereal * ap,
		   doublereal * b, integer * ldb, integer * info,
		   ftnlen uplo_len);
extern int dptcon_(integer * n, doublereal * d__, doublereal * e,
		   doublereal * anorm, doublereal * rcond, doublereal * work,
		   integer * info);
extern int dpteqr_(char *compz, integer * n, doublereal * d__, doublereal * e,
		   doublereal * z__, integer * ldz, doublereal * work,
		   integer * info, ftnlen compz_len);
extern int dptrfs_(integer * n, integer * nrhs, doublereal * d__,
		   doublereal * e, doublereal * df, doublereal * ef,
		   doublereal * b, integer * ldb, doublereal * x,
		   integer * ldx, doublereal * ferr, doublereal * berr,
		   doublereal * work, integer * info);
extern int dptsv_(integer * n, integer * nrhs, doublereal * d__,
		  doublereal * e, doublereal * b, integer * ldb,
		  integer * info);
extern int dptsvx_(char *fact, integer * n, integer * nrhs, doublereal * d__,
		   doublereal * e, doublereal * df, doublereal * ef,
		   doublereal * b, integer * ldb, doublereal * x,
		   integer * ldx, doublereal * rcond, doublereal * ferr,
		   doublereal * berr, doublereal * work, integer * info,
		   ftnlen fact_len);
extern int dpttrf_(integer * n, doublereal * d__, doublereal * e,
		   integer * info);
extern int dpttrs_(integer * n, integer * nrhs, doublereal * d__,
		   doublereal * e, doublereal * b, integer * ldb,
		   integer * info);
extern int dptts2_(integer * n, integer * nrhs, doublereal * d__,
		   doublereal * e, doublereal * b, integer * ldb);
extern int drscl_(integer * n, doublereal * sa, doublereal * sx,
		  integer * incx);
extern int dsbev_(char *jobz, char *uplo, integer * n, integer * kd,
		  doublereal * ab, integer * ldab, doublereal * w,
		  doublereal * z__, integer * ldz, doublereal * work,
		  integer * info, ftnlen jobz_len, ftnlen uplo_len);
extern int dsbevd_(char *jobz, char *uplo, integer * n, integer * kd,
		   doublereal * ab, integer * ldab, doublereal * w,
		   doublereal * z__, integer * ldz, doublereal * work,
		   integer * lwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen jobz_len, ftnlen uplo_len);
extern int dsbevx_(char *jobz, char *range, char *uplo, integer * n,
		   integer * kd, doublereal * ab, integer * ldab,
		   doublereal * q, integer * ldq, doublereal * vl,
		   doublereal * vu, integer * il, integer * iu,
		   doublereal * abstol, integer * m, doublereal * w,
		   doublereal * z__, integer * ldz, doublereal * work,
		   integer * iwork, integer * ifail, integer * info,
		   ftnlen jobz_len, ftnlen range_len, ftnlen uplo_len);
extern int dsbgst_(char *vect, char *uplo, integer * n, integer * ka,
		   integer * kb, doublereal * ab, integer * ldab,
		   doublereal * bb, integer * ldbb, doublereal * x,
		   integer * ldx, doublereal * work, integer * info,
		   ftnlen vect_len, ftnlen uplo_len);
extern int dsbgv_(char *jobz, char *uplo, integer * n, integer * ka,
		  integer * kb, doublereal * ab, integer * ldab,
		  doublereal * bb, integer * ldbb, doublereal * w,
		  doublereal * z__, integer * ldz, doublereal * work,
		  integer * info, ftnlen jobz_len, ftnlen uplo_len);
extern int dsbgvd_(char *jobz, char *uplo, integer * n, integer * ka,
		   integer * kb, doublereal * ab, integer * ldab,
		   doublereal * bb, integer * ldbb, doublereal * w,
		   doublereal * z__, integer * ldz, doublereal * work,
		   integer * lwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen jobz_len, ftnlen uplo_len);
extern int dsbgvx_(char *jobz, char *range, char *uplo, integer * n,
		   integer * ka, integer * kb, doublereal * ab,
		   integer * ldab, doublereal * bb, integer * ldbb,
		   doublereal * q, integer * ldq, doublereal * vl,
		   doublereal * vu, integer * il, integer * iu,
		   doublereal * abstol, integer * m, doublereal * w,
		   doublereal * z__, integer * ldz, doublereal * work,
		   integer * iwork, integer * ifail, integer * info,
		   ftnlen jobz_len, ftnlen range_len, ftnlen uplo_len);
extern int dsbtrd_(char *vect, char *uplo, integer * n, integer * kd,
		   doublereal * ab, integer * ldab, doublereal * d__,
		   doublereal * e, doublereal * q, integer * ldq,
		   doublereal * work, integer * info, ftnlen vect_len,
		   ftnlen uplo_len);
extern doublereal dsecnd_(void);
extern int dspcon_(char *uplo, integer * n, doublereal * ap, integer * ipiv,
		   doublereal * anorm, doublereal * rcond, doublereal * work,
		   integer * iwork, integer * info, ftnlen uplo_len);
extern int dspev_(char *jobz, char *uplo, integer * n, doublereal * ap,
		  doublereal * w, doublereal * z__, integer * ldz,
		  doublereal * work, integer * info, ftnlen jobz_len,
		  ftnlen uplo_len);
extern int dspevd_(char *jobz, char *uplo, integer * n, doublereal * ap,
		   doublereal * w, doublereal * z__, integer * ldz,
		   doublereal * work, integer * lwork, integer * iwork,
		   integer * liwork, integer * info, ftnlen jobz_len,
		   ftnlen uplo_len);
extern int dspevx_(char *jobz, char *range, char *uplo, integer * n,
		   doublereal * ap, doublereal * vl, doublereal * vu,
		   integer * il, integer * iu, doublereal * abstol,
		   integer * m, doublereal * w, doublereal * z__,
		   integer * ldz, doublereal * work, integer * iwork,
		   integer * ifail, integer * info, ftnlen jobz_len,
		   ftnlen range_len, ftnlen uplo_len);
extern int dspgst_(integer * itype, char *uplo, integer * n, doublereal * ap,
		   doublereal * bp, integer * info, ftnlen uplo_len);
extern int dspgv_(integer * itype, char *jobz, char *uplo, integer * n,
		  doublereal * ap, doublereal * bp, doublereal * w,
		  doublereal * z__, integer * ldz, doublereal * work,
		  integer * info, ftnlen jobz_len, ftnlen uplo_len);
extern int dspgvd_(integer * itype, char *jobz, char *uplo, integer * n,
		   doublereal * ap, doublereal * bp, doublereal * w,
		   doublereal * z__, integer * ldz, doublereal * work,
		   integer * lwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen jobz_len, ftnlen uplo_len);
extern int dspgvx_(integer * itype, char *jobz, char *range, char *uplo,
		   integer * n, doublereal * ap, doublereal * bp,
		   doublereal * vl, doublereal * vu, integer * il,
		   integer * iu, doublereal * abstol, integer * m,
		   doublereal * w, doublereal * z__, integer * ldz,
		   doublereal * work, integer * iwork, integer * ifail,
		   integer * info, ftnlen jobz_len, ftnlen range_len,
		   ftnlen uplo_len);
extern int dsprfs_(char *uplo, integer * n, integer * nrhs, doublereal * ap,
		   doublereal * afp, integer * ipiv, doublereal * b,
		   integer * ldb, doublereal * x, integer * ldx,
		   doublereal * ferr, doublereal * berr, doublereal * work,
		   integer * iwork, integer * info, ftnlen uplo_len);
extern int dspsv_(char *uplo, integer * n, integer * nrhs, doublereal * ap,
		  integer * ipiv, doublereal * b, integer * ldb,
		  integer * info, ftnlen uplo_len);
extern int dspsvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   doublereal * ap, doublereal * afp, integer * ipiv,
		   doublereal * b, integer * ldb, doublereal * x,
		   integer * ldx, doublereal * rcond, doublereal * ferr,
		   doublereal * berr, doublereal * work, integer * iwork,
		   integer * info, ftnlen fact_len, ftnlen uplo_len);
extern int dsptrd_(char *uplo, integer * n, doublereal * ap, doublereal * d__,
		   doublereal * e, doublereal * tau, integer * info,
		   ftnlen uplo_len);
extern int dsptrf_(char *uplo, integer * n, doublereal * ap, integer * ipiv,
		   integer * info, ftnlen uplo_len);
extern int dsptri_(char *uplo, integer * n, doublereal * ap, integer * ipiv,
		   doublereal * work, integer * info, ftnlen uplo_len);
extern int dsptrs_(char *uplo, integer * n, integer * nrhs, doublereal * ap,
		   integer * ipiv, doublereal * b, integer * ldb,
		   integer * info, ftnlen uplo_len);
extern int dstebz_(char *range, char *order, integer * n, doublereal * vl,
		   doublereal * vu, integer * il, integer * iu,
		   doublereal * abstol, doublereal * d__, doublereal * e,
		   integer * m, integer * nsplit, doublereal * w,
		   integer * iblock, integer * isplit, doublereal * work,
		   integer * iwork, integer * info, ftnlen range_len,
		   ftnlen order_len);
extern int dstedc_(char *compz, integer * n, doublereal * d__, doublereal * e,
		   doublereal * z__, integer * ldz, doublereal * work,
		   integer * lwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen compz_len);
extern int dstegr_(char *jobz, char *range, integer * n, doublereal * d__,
		   doublereal * e, doublereal * vl, doublereal * vu,
		   integer * il, integer * iu, doublereal * abstol,
		   integer * m, doublereal * w, doublereal * z__,
		   integer * ldz, integer * isuppz, doublereal * work,
		   integer * lwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen jobz_len, ftnlen range_len);
extern int dstein_(integer * n, doublereal * d__, doublereal * e, integer * m,
		   doublereal * w, integer * iblock, integer * isplit,
		   doublereal * z__, integer * ldz, doublereal * work,
		   integer * iwork, integer * ifail, integer * info);
extern int dsteqr_(char *compz, integer * n, doublereal * d__, doublereal * e,
		   doublereal * z__, integer * ldz, doublereal * work,
		   integer * info, ftnlen compz_len);
extern int dsterf_(integer * n, doublereal * d__, doublereal * e,
		   integer * info);
extern int dstev_(char *jobz, integer * n, doublereal * d__, doublereal * e,
		  doublereal * z__, integer * ldz, doublereal * work,
		  integer * info, ftnlen jobz_len);
extern int dstevd_(char *jobz, integer * n, doublereal * d__, doublereal * e,
		   doublereal * z__, integer * ldz, doublereal * work,
		   integer * lwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen jobz_len);
extern int dstevr_(char *jobz, char *range, integer * n, doublereal * d__,
		   doublereal * e, doublereal * vl, doublereal * vu,
		   integer * il, integer * iu, doublereal * abstol,
		   integer * m, doublereal * w, doublereal * z__,
		   integer * ldz, integer * isuppz, doublereal * work,
		   integer * lwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen jobz_len, ftnlen range_len);
extern int dstevx_(char *jobz, char *range, integer * n, doublereal * d__,
		   doublereal * e, doublereal * vl, doublereal * vu,
		   integer * il, integer * iu, doublereal * abstol,
		   integer * m, doublereal * w, doublereal * z__,
		   integer * ldz, doublereal * work, integer * iwork,
		   integer * ifail, integer * info, ftnlen jobz_len,
		   ftnlen range_len);
extern int dsycon_(char *uplo, integer * n, doublereal * a, integer * lda,
		   integer * ipiv, doublereal * anorm, doublereal * rcond,
		   doublereal * work, integer * iwork, integer * info,
		   ftnlen uplo_len);
extern int dsyev_(char *jobz, char *uplo, integer * n, doublereal * a,
		  integer * lda, doublereal * w, doublereal * work,
		  integer * lwork, integer * info, ftnlen jobz_len,
		  ftnlen uplo_len);
extern int dsyevd_(char *jobz, char *uplo, integer * n, doublereal * a,
		   integer * lda, doublereal * w, doublereal * work,
		   integer * lwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen jobz_len, ftnlen uplo_len);
extern int dsyevr_(char *jobz, char *range, char *uplo, integer * n,
		   doublereal * a, integer * lda, doublereal * vl,
		   doublereal * vu, integer * il, integer * iu,
		   doublereal * abstol, integer * m, doublereal * w,
		   doublereal * z__, integer * ldz, integer * isuppz,
		   doublereal * work, integer * lwork, integer * iwork,
		   integer * liwork, integer * info, ftnlen jobz_len,
		   ftnlen range_len, ftnlen uplo_len);
extern int dsyevx_(char *jobz, char *range, char *uplo, integer * n,
		   doublereal * a, integer * lda, doublereal * vl,
		   doublereal * vu, integer * il, integer * iu,
		   doublereal * abstol, integer * m, doublereal * w,
		   doublereal * z__, integer * ldz, doublereal * work,
		   integer * lwork, integer * iwork, integer * ifail,
		   integer * info, ftnlen jobz_len, ftnlen range_len,
		   ftnlen uplo_len);
extern int dsygs2_(integer * itype, char *uplo, integer * n, doublereal * a,
		   integer * lda, doublereal * b, integer * ldb,
		   integer * info, ftnlen uplo_len);
extern int dsygst_(integer * itype, char *uplo, integer * n, doublereal * a,
		   integer * lda, doublereal * b, integer * ldb,
		   integer * info, ftnlen uplo_len);
extern int dsygv_(integer * itype, char *jobz, char *uplo, integer * n,
		  doublereal * a, integer * lda, doublereal * b,
		  integer * ldb, doublereal * w, doublereal * work,
		  integer * lwork, integer * info, ftnlen jobz_len,
		  ftnlen uplo_len);
extern int dsygvd_(integer * itype, char *jobz, char *uplo, integer * n,
		   doublereal * a, integer * lda, doublereal * b,
		   integer * ldb, doublereal * w, doublereal * work,
		   integer * lwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen jobz_len, ftnlen uplo_len);
extern int dsygvx_(integer * itype, char *jobz, char *range, char *uplo,
		   integer * n, doublereal * a, integer * lda, doublereal * b,
		   integer * ldb, doublereal * vl, doublereal * vu,
		   integer * il, integer * iu, doublereal * abstol,
		   integer * m, doublereal * w, doublereal * z__,
		   integer * ldz, doublereal * work, integer * lwork,
		   integer * iwork, integer * ifail, integer * info,
		   ftnlen jobz_len, ftnlen range_len, ftnlen uplo_len);
extern int dsyrfs_(char *uplo, integer * n, integer * nrhs, doublereal * a,
		   integer * lda, doublereal * af, integer * ldaf,
		   integer * ipiv, doublereal * b, integer * ldb,
		   doublereal * x, integer * ldx, doublereal * ferr,
		   doublereal * berr, doublereal * work, integer * iwork,
		   integer * info, ftnlen uplo_len);
extern int dsysv_(char *uplo, integer * n, integer * nrhs, doublereal * a,
		  integer * lda, integer * ipiv, doublereal * b,
		  integer * ldb, doublereal * work, integer * lwork,
		  integer * info, ftnlen uplo_len);
extern int dsysvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   doublereal * a, integer * lda, doublereal * af,
		   integer * ldaf, integer * ipiv, doublereal * b,
		   integer * ldb, doublereal * x, integer * ldx,
		   doublereal * rcond, doublereal * ferr, doublereal * berr,
		   doublereal * work, integer * lwork, integer * iwork,
		   integer * info, ftnlen fact_len, ftnlen uplo_len);
extern int dsytd2_(char *uplo, integer * n, doublereal * a, integer * lda,
		   doublereal * d__, doublereal * e, doublereal * tau,
		   integer * info, ftnlen uplo_len);
extern int dsytf2_(char *uplo, integer * n, doublereal * a, integer * lda,
		   integer * ipiv, integer * info, ftnlen uplo_len);
extern int dsytrd_(char *uplo, integer * n, doublereal * a, integer * lda,
		   doublereal * d__, doublereal * e, doublereal * tau,
		   doublereal * work, integer * lwork, integer * info,
		   ftnlen uplo_len);
extern int dsytrf_(char *uplo, integer * n, doublereal * a, integer * lda,
		   integer * ipiv, doublereal * work, integer * lwork,
		   integer * info, ftnlen uplo_len);
extern int dsytri_(char *uplo, integer * n, doublereal * a, integer * lda,
		   integer * ipiv, doublereal * work, integer * info,
		   ftnlen uplo_len);
extern int dsytrs_(char *uplo, integer * n, integer * nrhs, doublereal * a,
		   integer * lda, integer * ipiv, doublereal * b,
		   integer * ldb, integer * info, ftnlen uplo_len);
extern int dtbcon_(char *norm, char *uplo, char *diag, integer * n,
		   integer * kd, doublereal * ab, integer * ldab,
		   doublereal * rcond, doublereal * work, integer * iwork,
		   integer * info, ftnlen norm_len, ftnlen uplo_len,
		   ftnlen diag_len);
extern int dtbrfs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * kd, integer * nrhs, doublereal * ab,
		   integer * ldab, doublereal * b, integer * ldb,
		   doublereal * x, integer * ldx, doublereal * ferr,
		   doublereal * berr, doublereal * work, integer * iwork,
		   integer * info, ftnlen uplo_len, ftnlen trans_len,
		   ftnlen diag_len);
extern int dtbtrs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * kd, integer * nrhs, doublereal * ab,
		   integer * ldab, doublereal * b, integer * ldb,
		   integer * info, ftnlen uplo_len, ftnlen trans_len,
		   ftnlen diag_len);
extern int dtgevc_(char *side, char *howmny, logical * select, integer * n,
		   doublereal * a, integer * lda, doublereal * b,
		   integer * ldb, doublereal * vl, integer * ldvl,
		   doublereal * vr, integer * ldvr, integer * mm, integer * m,
		   doublereal * work, integer * info, ftnlen side_len,
		   ftnlen howmny_len);
extern int dtgex2_(logical * wantq, logical * wantz, integer * n,
		   doublereal * a, integer * lda, doublereal * b,
		   integer * ldb, doublereal * q, integer * ldq,
		   doublereal * z__, integer * ldz, integer * j1,
		   integer * n1, integer * n2, doublereal * work,
		   integer * lwork, integer * info);
extern int dtgexc_(logical * wantq, logical * wantz, integer * n,
		   doublereal * a, integer * lda, doublereal * b,
		   integer * ldb, doublereal * q, integer * ldq,
		   doublereal * z__, integer * ldz, integer * ifst,
		   integer * ilst, doublereal * work, integer * lwork,
		   integer * info);
extern int dtgsen_(integer * ijob, logical * wantq, logical * wantz,
		   logical * select, integer * n, doublereal * a,
		   integer * lda, doublereal * b, integer * ldb,
		   doublereal * alphar, doublereal * alphai,
		   doublereal * beta, doublereal * q, integer * ldq,
		   doublereal * z__, integer * ldz, integer * m,
		   doublereal * pl, doublereal * pr, doublereal * dif,
		   doublereal * work, integer * lwork, integer * iwork,
		   integer * liwork, integer * info);
extern int dtgsja_(char *jobu, char *jobv, char *jobq, integer * m,
		   integer * p, integer * n, integer * k, integer * l,
		   doublereal * a, integer * lda, doublereal * b,
		   integer * ldb, doublereal * tola, doublereal * tolb,
		   doublereal * alpha, doublereal * beta, doublereal * u,
		   integer * ldu, doublereal * v, integer * ldv,
		   doublereal * q, integer * ldq, doublereal * work,
		   integer * ncycle, integer * info, ftnlen jobu_len,
		   ftnlen jobv_len, ftnlen jobq_len);
extern int dtgsna_(char *job, char *howmny, logical * select, integer * n,
		   doublereal * a, integer * lda, doublereal * b,
		   integer * ldb, doublereal * vl, integer * ldvl,
		   doublereal * vr, integer * ldvr, doublereal * s,
		   doublereal * dif, integer * mm, integer * m,
		   doublereal * work, integer * lwork, integer * iwork,
		   integer * info, ftnlen job_len, ftnlen howmny_len);
extern int dtgsy2_(char *trans, integer * ijob, integer * m, integer * n,
		   doublereal * a, integer * lda, doublereal * b,
		   integer * ldb, doublereal * c__, integer * ldc,
		   doublereal * d__, integer * ldd, doublereal * e,
		   integer * lde, doublereal * f, integer * ldf,
		   doublereal * scale, doublereal * rdsum,
		   doublereal * rdscal, integer * iwork, integer * pq,
		   integer * info, ftnlen trans_len);
extern int dtgsyl_(char *trans, integer * ijob, integer * m, integer * n,
		   doublereal * a, integer * lda, doublereal * b,
		   integer * ldb, doublereal * c__, integer * ldc,
		   doublereal * d__, integer * ldd, doublereal * e,
		   integer * lde, doublereal * f, integer * ldf,
		   doublereal * scale, doublereal * dif, doublereal * work,
		   integer * lwork, integer * iwork, integer * info,
		   ftnlen trans_len);
extern int dtpcon_(char *norm, char *uplo, char *diag, integer * n,
		   doublereal * ap, doublereal * rcond, doublereal * work,
		   integer * iwork, integer * info, ftnlen norm_len,
		   ftnlen uplo_len, ftnlen diag_len);
extern int dtprfs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * nrhs, doublereal * ap, doublereal * b,
		   integer * ldb, doublereal * x, integer * ldx,
		   doublereal * ferr, doublereal * berr, doublereal * work,
		   integer * iwork, integer * info, ftnlen uplo_len,
		   ftnlen trans_len, ftnlen diag_len);
extern int dtptri_(char *uplo, char *diag, integer * n, doublereal * ap,
		   integer * info, ftnlen uplo_len, ftnlen diag_len);
extern int dtptrs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * nrhs, doublereal * ap, doublereal * b,
		   integer * ldb, integer * info, ftnlen uplo_len,
		   ftnlen trans_len, ftnlen diag_len);
extern int dtrcon_(char *norm, char *uplo, char *diag, integer * n,
		   doublereal * a, integer * lda, doublereal * rcond,
		   doublereal * work, integer * iwork, integer * info,
		   ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern int dtrevc_(char *side, char *howmny, logical * select, integer * n,
		   doublereal * t, integer * ldt, doublereal * vl,
		   integer * ldvl, doublereal * vr, integer * ldvr,
		   integer * mm, integer * m, doublereal * work,
		   integer * info, ftnlen side_len, ftnlen howmny_len);
extern int dtrexc_(char *compq, integer * n, doublereal * t, integer * ldt,
		   doublereal * q, integer * ldq, integer * ifst,
		   integer * ilst, doublereal * work, integer * info,
		   ftnlen compq_len);
extern int dtrrfs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * nrhs, doublereal * a, integer * lda,
		   doublereal * b, integer * ldb, doublereal * x,
		   integer * ldx, doublereal * ferr, doublereal * berr,
		   doublereal * work, integer * iwork, integer * info,
		   ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
extern int dtrsen_(char *job, char *compq, logical * select, integer * n,
		   doublereal * t, integer * ldt, doublereal * q,
		   integer * ldq, doublereal * wr, doublereal * wi,
		   integer * m, doublereal * s, doublereal * sep,
		   doublereal * work, integer * lwork, integer * iwork,
		   integer * liwork, integer * info, ftnlen job_len,
		   ftnlen compq_len);
extern int dtrsna_(char *job, char *howmny, logical * select, integer * n,
		   doublereal * t, integer * ldt, doublereal * vl,
		   integer * ldvl, doublereal * vr, integer * ldvr,
		   doublereal * s, doublereal * sep, integer * mm,
		   integer * m, doublereal * work, integer * ldwork,
		   integer * iwork, integer * info, ftnlen job_len,
		   ftnlen howmny_len);
extern int dtrsyl_(char *trana, char *tranb, integer * isgn, integer * m,
		   integer * n, doublereal * a, integer * lda, doublereal * b,
		   integer * ldb, doublereal * c__, integer * ldc,
		   doublereal * scale, integer * info, ftnlen trana_len,
		   ftnlen tranb_len);
extern int dtrti2_(char *uplo, char *diag, integer * n, doublereal * a,
		   integer * lda, integer * info, ftnlen uplo_len,
		   ftnlen diag_len);
extern int dtrtri_(char *uplo, char *diag, integer * n, doublereal * a,
		   integer * lda, integer * info, ftnlen uplo_len,
		   ftnlen diag_len);
extern int dtrtrs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * nrhs, doublereal * a, integer * lda,
		   doublereal * b, integer * ldb, integer * info,
		   ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
extern int dtzrqf_(integer * m, integer * n, doublereal * a, integer * lda,
		   doublereal * tau, integer * info);
extern int dtzrzf_(integer * m, integer * n, doublereal * a, integer * lda,
		   doublereal * tau, doublereal * work, integer * lwork,
		   integer * info);
extern doublereal dzsum1_(integer * n, doublecomplex * cx, integer * incx);
extern integer icmax1_(integer * n, complex * cx, integer * incx);
extern integer ieeeck_(integer * ispec, real * zero, real * one);
extern integer ilaenv_(integer * ispec, char *name__, char *opts,
		       integer * n1, integer * n2, integer * n3, integer * n4,
		       ftnlen name_len, ftnlen opts_len);
extern integer izmax1_(integer * n, doublecomplex * cx, integer * incx);
extern logical lsame_(char *ca, char *cb, ftnlen ca_len, ftnlen cb_len);
extern logical lsamen_(integer * n, char *ca, char *cb, ftnlen ca_len,
		       ftnlen cb_len);
extern int sbdsdc_(char *uplo, char *compq, integer * n, real * d__, real * e,
		   real * u, integer * ldu, real * vt, integer * ldvt,
		   real * q, integer * iq, real * work, integer * iwork,
		   integer * info, ftnlen uplo_len, ftnlen compq_len);
extern int sbdsqr_(char *uplo, integer * n, integer * ncvt, integer * nru,
		   integer * ncc, real * d__, real * e, real * vt,
		   integer * ldvt, real * u, integer * ldu, real * c__,
		   integer * ldc, real * work, integer * info,
		   ftnlen uplo_len);
extern E_f scsum1_(integer * n, complex * cx, integer * incx);
extern int sdisna_(char *job, integer * m, integer * n, real * d__,
		   real * sep, integer * info, ftnlen job_len);
extern E_f second_(void);
extern int sgbbrd_(char *vect, integer * m, integer * n, integer * ncc,
		   integer * kl, integer * ku, real * ab, integer * ldab,
		   real * d__, real * e, real * q, integer * ldq, real * pt,
		   integer * ldpt, real * c__, integer * ldc, real * work,
		   integer * info, ftnlen vect_len);
extern int sgbcon_(char *norm, integer * n, integer * kl, integer * ku,
		   real * ab, integer * ldab, integer * ipiv, real * anorm,
		   real * rcond, real * work, integer * iwork, integer * info,
		   ftnlen norm_len);
extern int sgbequ_(integer * m, integer * n, integer * kl, integer * ku,
		   real * ab, integer * ldab, real * r__, real * c__,
		   real * rowcnd, real * colcnd, real * amax, integer * info);
extern int sgbrfs_(char *trans, integer * n, integer * kl, integer * ku,
		   integer * nrhs, real * ab, integer * ldab, real * afb,
		   integer * ldafb, integer * ipiv, real * b, integer * ldb,
		   real * x, integer * ldx, real * ferr, real * berr,
		   real * work, integer * iwork, integer * info,
		   ftnlen trans_len);
extern int sgbsv_(integer * n, integer * kl, integer * ku, integer * nrhs,
		  real * ab, integer * ldab, integer * ipiv, real * b,
		  integer * ldb, integer * info);
extern int sgbsvx_(char *fact, char *trans, integer * n, integer * kl,
		   integer * ku, integer * nrhs, real * ab, integer * ldab,
		   real * afb, integer * ldafb, integer * ipiv, char *equed,
		   real * r__, real * c__, real * b, integer * ldb, real * x,
		   integer * ldx, real * rcond, real * ferr, real * berr,
		   real * work, integer * iwork, integer * info,
		   ftnlen fact_len, ftnlen trans_len, ftnlen equed_len);
extern int sgbtf2_(integer * m, integer * n, integer * kl, integer * ku,
		   real * ab, integer * ldab, integer * ipiv, integer * info);
extern int sgbtrf_(integer * m, integer * n, integer * kl, integer * ku,
		   real * ab, integer * ldab, integer * ipiv, integer * info);
extern int sgbtrs_(char *trans, integer * n, integer * kl, integer * ku,
		   integer * nrhs, real * ab, integer * ldab, integer * ipiv,
		   real * b, integer * ldb, integer * info, ftnlen trans_len);
extern int sgebak_(char *job, char *side, integer * n, integer * ilo,
		   integer * ihi, real * scale, integer * m, real * v,
		   integer * ldv, integer * info, ftnlen job_len,
		   ftnlen side_len);
extern int sgebal_(char *job, integer * n, real * a, integer * lda,
		   integer * ilo, integer * ihi, real * scale, integer * info,
		   ftnlen job_len);
extern int sgebd2_(integer * m, integer * n, real * a, integer * lda,
		   real * d__, real * e, real * tauq, real * taup,
		   real * work, integer * info);
extern int sgebrd_(integer * m, integer * n, real * a, integer * lda,
		   real * d__, real * e, real * tauq, real * taup,
		   real * work, integer * lwork, integer * info);
extern int sgecon_(char *norm, integer * n, real * a, integer * lda,
		   real * anorm, real * rcond, real * work, integer * iwork,
		   integer * info, ftnlen norm_len);
extern int sgeequ_(integer * m, integer * n, real * a, integer * lda,
		   real * r__, real * c__, real * rowcnd, real * colcnd,
		   real * amax, integer * info);
extern int sgees_(char *jobvs, char *sort, L_fp select, integer * n, real * a,
		  integer * lda, integer * sdim, real * wr, real * wi,
		  real * vs, integer * ldvs, real * work, integer * lwork,
		  logical * bwork, integer * info, ftnlen jobvs_len,
		  ftnlen sort_len);
extern int sgeesx_(char *jobvs, char *sort, L_fp select, char *sense,
		   integer * n, real * a, integer * lda, integer * sdim,
		   real * wr, real * wi, real * vs, integer * ldvs,
		   real * rconde, real * rcondv, real * work, integer * lwork,
		   integer * iwork, integer * liwork, logical * bwork,
		   integer * info, ftnlen jobvs_len, ftnlen sort_len,
		   ftnlen sense_len);
extern int sgeev_(char *jobvl, char *jobvr, integer * n, real * a,
		  integer * lda, real * wr, real * wi, real * vl,
		  integer * ldvl, real * vr, integer * ldvr, real * work,
		  integer * lwork, integer * info, ftnlen jobvl_len,
		  ftnlen jobvr_len);
extern int sgeevx_(char *balanc, char *jobvl, char *jobvr, char *sense,
		   integer * n, real * a, integer * lda, real * wr, real * wi,
		   real * vl, integer * ldvl, real * vr, integer * ldvr,
		   integer * ilo, integer * ihi, real * scale, real * abnrm,
		   real * rconde, real * rcondv, real * work, integer * lwork,
		   integer * iwork, integer * info, ftnlen balanc_len,
		   ftnlen jobvl_len, ftnlen jobvr_len, ftnlen sense_len);
extern int sgegs_(char *jobvsl, char *jobvsr, integer * n, real * a,
		  integer * lda, real * b, integer * ldb, real * alphar,
		  real * alphai, real * beta, real * vsl, integer * ldvsl,
		  real * vsr, integer * ldvsr, real * work, integer * lwork,
		  integer * info, ftnlen jobvsl_len, ftnlen jobvsr_len);
extern int sgegv_(char *jobvl, char *jobvr, integer * n, real * a,
		  integer * lda, real * b, integer * ldb, real * alphar,
		  real * alphai, real * beta, real * vl, integer * ldvl,
		  real * vr, integer * ldvr, real * work, integer * lwork,
		  integer * info, ftnlen jobvl_len, ftnlen jobvr_len);
extern int sgehd2_(integer * n, integer * ilo, integer * ihi, real * a,
		   integer * lda, real * tau, real * work, integer * info);
extern int sgehrd_(integer * n, integer * ilo, integer * ihi, real * a,
		   integer * lda, real * tau, real * work, integer * lwork,
		   integer * info);
extern int sgelq2_(integer * m, integer * n, real * a, integer * lda,
		   real * tau, real * work, integer * info);
extern int sgelqf_(integer * m, integer * n, real * a, integer * lda,
		   real * tau, real * work, integer * lwork, integer * info);
extern int sgels_(char *trans, integer * m, integer * n, integer * nrhs,
		  real * a, integer * lda, real * b, integer * ldb,
		  real * work, integer * lwork, integer * info,
		  ftnlen trans_len);
extern int sgelsd_(integer * m, integer * n, integer * nrhs, real * a,
		   integer * lda, real * b, integer * ldb, real * s,
		   real * rcond, integer * rank, real * work, integer * lwork,
		   integer * iwork, integer * info);
extern int sgelss_(integer * m, integer * n, integer * nrhs, real * a,
		   integer * lda, real * b, integer * ldb, real * s,
		   real * rcond, integer * rank, real * work, integer * lwork,
		   integer * info);
extern int sgelsx_(integer * m, integer * n, integer * nrhs, real * a,
		   integer * lda, real * b, integer * ldb, integer * jpvt,
		   real * rcond, integer * rank, real * work, integer * info);
extern int sgelsy_(integer * m, integer * n, integer * nrhs, real * a,
		   integer * lda, real * b, integer * ldb, integer * jpvt,
		   real * rcond, integer * rank, real * work, integer * lwork,
		   integer * info);
extern int sgeql2_(integer * m, integer * n, real * a, integer * lda,
		   real * tau, real * work, integer * info);
extern int sgeqlf_(integer * m, integer * n, real * a, integer * lda,
		   real * tau, real * work, integer * lwork, integer * info);
extern int sgeqp3_(integer * m, integer * n, real * a, integer * lda,
		   integer * jpvt, real * tau, real * work, integer * lwork,
		   integer * info);
extern int sgeqpf_(integer * m, integer * n, real * a, integer * lda,
		   integer * jpvt, real * tau, real * work, integer * info);
extern int sgeqr2_(integer * m, integer * n, real * a, integer * lda,
		   real * tau, real * work, integer * info);
extern int sgeqrf_(integer * m, integer * n, real * a, integer * lda,
		   real * tau, real * work, integer * lwork, integer * info);
extern int sgerfs_(char *trans, integer * n, integer * nrhs, real * a,
		   integer * lda, real * af, integer * ldaf, integer * ipiv,
		   real * b, integer * ldb, real * x, integer * ldx,
		   real * ferr, real * berr, real * work, integer * iwork,
		   integer * info, ftnlen trans_len);
extern int sgerq2_(integer * m, integer * n, real * a, integer * lda,
		   real * tau, real * work, integer * info);
extern int sgerqf_(integer * m, integer * n, real * a, integer * lda,
		   real * tau, real * work, integer * lwork, integer * info);
extern int sgesc2_(integer * n, real * a, integer * lda, real * rhs,
		   integer * ipiv, integer * jpiv, real * scale);
extern int sgesdd_(char *jobz, integer * m, integer * n, real * a,
		   integer * lda, real * s, real * u, integer * ldu,
		   real * vt, integer * ldvt, real * work, integer * lwork,
		   integer * iwork, integer * info, ftnlen jobz_len);
extern int sgesv_(integer * n, integer * nrhs, real * a, integer * lda,
		  integer * ipiv, real * b, integer * ldb, integer * info);
extern int sgesvd_(char *jobu, char *jobvt, integer * m, integer * n,
		   real * a, integer * lda, real * s, real * u, integer * ldu,
		   real * vt, integer * ldvt, real * work, integer * lwork,
		   integer * info, ftnlen jobu_len, ftnlen jobvt_len);
extern int sgesvx_(char *fact, char *trans, integer * n, integer * nrhs,
		   real * a, integer * lda, real * af, integer * ldaf,
		   integer * ipiv, char *equed, real * r__, real * c__,
		   real * b, integer * ldb, real * x, integer * ldx,
		   real * rcond, real * ferr, real * berr, real * work,
		   integer * iwork, integer * info, ftnlen fact_len,
		   ftnlen trans_len, ftnlen equed_len);
extern int sgetc2_(integer * n, real * a, integer * lda, integer * ipiv,
		   integer * jpiv, integer * info);
extern int sgetf2_(integer * m, integer * n, real * a, integer * lda,
		   integer * ipiv, integer * info);
extern int sgetrf_(integer * m, integer * n, real * a, integer * lda,
		   integer * ipiv, integer * info);
extern int sgetri_(integer * n, real * a, integer * lda, integer * ipiv,
		   real * work, integer * lwork, integer * info);
extern int sgetrs_(char *trans, integer * n, integer * nrhs, real * a,
		   integer * lda, integer * ipiv, real * b, integer * ldb,
		   integer * info, ftnlen trans_len);
extern int sggbak_(char *job, char *side, integer * n, integer * ilo,
		   integer * ihi, real * lscale, real * rscale, integer * m,
		   real * v, integer * ldv, integer * info, ftnlen job_len,
		   ftnlen side_len);
extern int sggbal_(char *job, integer * n, real * a, integer * lda, real * b,
		   integer * ldb, integer * ilo, integer * ihi, real * lscale,
		   real * rscale, real * work, integer * info,
		   ftnlen job_len);
extern int sgges_(char *jobvsl, char *jobvsr, char *sort, L_fp selctg,
		  integer * n, real * a, integer * lda, real * b,
		  integer * ldb, integer * sdim, real * alphar, real * alphai,
		  real * beta, real * vsl, integer * ldvsl, real * vsr,
		  integer * ldvsr, real * work, integer * lwork,
		  logical * bwork, integer * info, ftnlen jobvsl_len,
		  ftnlen jobvsr_len, ftnlen sort_len);
extern int sggesx_(char *jobvsl, char *jobvsr, char *sort, L_fp selctg,
		   char *sense, integer * n, real * a, integer * lda,
		   real * b, integer * ldb, integer * sdim, real * alphar,
		   real * alphai, real * beta, real * vsl, integer * ldvsl,
		   real * vsr, integer * ldvsr, real * rconde, real * rcondv,
		   real * work, integer * lwork, integer * iwork,
		   integer * liwork, logical * bwork, integer * info,
		   ftnlen jobvsl_len, ftnlen jobvsr_len, ftnlen sort_len,
		   ftnlen sense_len);
extern int sggev_(char *jobvl, char *jobvr, integer * n, real * a,
		  integer * lda, real * b, integer * ldb, real * alphar,
		  real * alphai, real * beta, real * vl, integer * ldvl,
		  real * vr, integer * ldvr, real * work, integer * lwork,
		  integer * info, ftnlen jobvl_len, ftnlen jobvr_len);
extern int sggevx_(char *balanc, char *jobvl, char *jobvr, char *sense,
		   integer * n, real * a, integer * lda, real * b,
		   integer * ldb, real * alphar, real * alphai, real * beta,
		   real * vl, integer * ldvl, real * vr, integer * ldvr,
		   integer * ilo, integer * ihi, real * lscale, real * rscale,
		   real * abnrm, real * bbnrm, real * rconde, real * rcondv,
		   real * work, integer * lwork, integer * iwork,
		   logical * bwork, integer * info, ftnlen balanc_len,
		   ftnlen jobvl_len, ftnlen jobvr_len, ftnlen sense_len);
extern int sggglm_(integer * n, integer * m, integer * p, real * a,
		   integer * lda, real * b, integer * ldb, real * d__,
		   real * x, real * y, real * work, integer * lwork,
		   integer * info);
extern int sgghrd_(char *compq, char *compz, integer * n, integer * ilo,
		   integer * ihi, real * a, integer * lda, real * b,
		   integer * ldb, real * q, integer * ldq, real * z__,
		   integer * ldz, integer * info, ftnlen compq_len,
		   ftnlen compz_len);
extern int sgglse_(integer * m, integer * n, integer * p, real * a,
		   integer * lda, real * b, integer * ldb, real * c__,
		   real * d__, real * x, real * work, integer * lwork,
		   integer * info);
extern int sggqrf_(integer * n, integer * m, integer * p, real * a,
		   integer * lda, real * taua, real * b, integer * ldb,
		   real * taub, real * work, integer * lwork, integer * info);
extern int sggrqf_(integer * m, integer * p, integer * n, real * a,
		   integer * lda, real * taua, real * b, integer * ldb,
		   real * taub, real * work, integer * lwork, integer * info);
extern int sggsvd_(char *jobu, char *jobv, char *jobq, integer * m,
		   integer * n, integer * p, integer * k, integer * l,
		   real * a, integer * lda, real * b, integer * ldb,
		   real * alpha, real * beta, real * u, integer * ldu,
		   real * v, integer * ldv, real * q, integer * ldq,
		   real * work, integer * iwork, integer * info,
		   ftnlen jobu_len, ftnlen jobv_len, ftnlen jobq_len);
extern int sggsvp_(char *jobu, char *jobv, char *jobq, integer * m,
		   integer * p, integer * n, real * a, integer * lda,
		   real * b, integer * ldb, real * tola, real * tolb,
		   integer * k, integer * l, real * u, integer * ldu,
		   real * v, integer * ldv, real * q, integer * ldq,
		   integer * iwork, real * tau, real * work, integer * info,
		   ftnlen jobu_len, ftnlen jobv_len, ftnlen jobq_len);
extern int sgtcon_(char *norm, integer * n, real * dl, real * d__, real * du,
		   real * du2, integer * ipiv, real * anorm, real * rcond,
		   real * work, integer * iwork, integer * info,
		   ftnlen norm_len);
extern int sgtrfs_(char *trans, integer * n, integer * nrhs, real * dl,
		   real * d__, real * du, real * dlf, real * df, real * duf,
		   real * du2, integer * ipiv, real * b, integer * ldb,
		   real * x, integer * ldx, real * ferr, real * berr,
		   real * work, integer * iwork, integer * info,
		   ftnlen trans_len);
extern int sgtsv_(integer * n, integer * nrhs, real * dl, real * d__,
		  real * du, real * b, integer * ldb, integer * info);
extern int sgtsvx_(char *fact, char *trans, integer * n, integer * nrhs,
		   real * dl, real * d__, real * du, real * dlf, real * df,
		   real * duf, real * du2, integer * ipiv, real * b,
		   integer * ldb, real * x, integer * ldx, real * rcond,
		   real * ferr, real * berr, real * work, integer * iwork,
		   integer * info, ftnlen fact_len, ftnlen trans_len);
extern int sgttrf_(integer * n, real * dl, real * d__, real * du, real * du2,
		   integer * ipiv, integer * info);
extern int sgttrs_(char *trans, integer * n, integer * nrhs, real * dl,
		   real * d__, real * du, real * du2, integer * ipiv,
		   real * b, integer * ldb, integer * info, ftnlen trans_len);
extern int sgtts2_(integer * itrans, integer * n, integer * nrhs, real * dl,
		   real * d__, real * du, real * du2, integer * ipiv,
		   real * b, integer * ldb);
extern int shgeqz_(char *job, char *compq, char *compz, integer * n,
		   integer * ilo, integer * ihi, real * a, integer * lda,
		   real * b, integer * ldb, real * alphar, real * alphai,
		   real * beta, real * q, integer * ldq, real * z__,
		   integer * ldz, real * work, integer * lwork,
		   integer * info, ftnlen job_len, ftnlen compq_len,
		   ftnlen compz_len);
extern int shsein_(char *side, char *eigsrc, char *initv, logical * select,
		   integer * n, real * h__, integer * ldh, real * wr,
		   real * wi, real * vl, integer * ldvl, real * vr,
		   integer * ldvr, integer * mm, integer * m, real * work,
		   integer * ifaill, integer * ifailr, integer * info,
		   ftnlen side_len, ftnlen eigsrc_len, ftnlen initv_len);
extern int shseqr_(char *job, char *compz, integer * n, integer * ilo,
		   integer * ihi, real * h__, integer * ldh, real * wr,
		   real * wi, real * z__, integer * ldz, real * work,
		   integer * lwork, integer * info, ftnlen job_len,
		   ftnlen compz_len);
extern int slabad_(real * small, real * large);
extern int slabrd_(integer * m, integer * n, integer * nb, real * a,
		   integer * lda, real * d__, real * e, real * tauq,
		   real * taup, real * x, integer * ldx, real * y,
		   integer * ldy);
extern int slacon_(integer * n, real * v, real * x, integer * isgn,
		   real * est, integer * kase);
extern int slacpy_(char *uplo, integer * m, integer * n, real * a,
		   integer * lda, real * b, integer * ldb, ftnlen uplo_len);
extern int sladiv_(real * a, real * b, real * c__, real * d__, real * p,
		   real * q);
extern int slae2_(real * a, real * b, real * c__, real * rt1, real * rt2);
extern int slaebz_(integer * ijob, integer * nitmax, integer * n,
		   integer * mmax, integer * minp, integer * nbmin,
		   real * abstol, real * reltol, real * pivmin, real * d__,
		   real * e, real * e2, integer * nval, real * ab, real * c__,
		   integer * mout, integer * nab, real * work,
		   integer * iwork, integer * info);
extern int slaed0_(integer * icompq, integer * qsiz, integer * n, real * d__,
		   real * e, real * q, integer * ldq, real * qstore,
		   integer * ldqs, real * work, integer * iwork,
		   integer * info);
extern int slaed1_(integer * n, real * d__, real * q, integer * ldq,
		   integer * indxq, real * rho, integer * cutpnt, real * work,
		   integer * iwork, integer * info);
extern int slaed2_(integer * k, integer * n, integer * n1, real * d__,
		   real * q, integer * ldq, integer * indxq, real * rho,
		   real * z__, real * dlamda, real * w, real * q2,
		   integer * indx, integer * indxc, integer * indxp,
		   integer * coltyp, integer * info);
extern int slaed3_(integer * k, integer * n, integer * n1, real * d__,
		   real * q, integer * ldq, real * rho, real * dlamda,
		   real * q2, integer * indx, integer * ctot, real * w,
		   real * s, integer * info);
extern int slaed4_(integer * n, integer * i__, real * d__, real * z__,
		   real * delta, real * rho, real * dlam, integer * info);
extern int slaed5_(integer * i__, real * d__, real * z__, real * delta,
		   real * rho, real * dlam);
extern int slaed6_(integer * kniter, logical * orgati, real * rho, real * d__,
		   real * z__, real * finit, real * tau, integer * info);
extern int slaed7_(integer * icompq, integer * n, integer * qsiz,
		   integer * tlvls, integer * curlvl, integer * curpbm,
		   real * d__, real * q, integer * ldq, integer * indxq,
		   real * rho, integer * cutpnt, real * qstore,
		   integer * qptr, integer * prmptr, integer * perm,
		   integer * givptr, integer * givcol, real * givnum,
		   real * work, integer * iwork, integer * info);
extern int slaed8_(integer * icompq, integer * k, integer * n, integer * qsiz,
		   real * d__, real * q, integer * ldq, integer * indxq,
		   real * rho, integer * cutpnt, real * z__, real * dlamda,
		   real * q2, integer * ldq2, real * w, integer * perm,
		   integer * givptr, integer * givcol, real * givnum,
		   integer * indxp, integer * indx, integer * info);
extern int slaed9_(integer * k, integer * kstart, integer * kstop,
		   integer * n, real * d__, real * q, integer * ldq,
		   real * rho, real * dlamda, real * w, real * s,
		   integer * lds, integer * info);
extern int slaeda_(integer * n, integer * tlvls, integer * curlvl,
		   integer * curpbm, integer * prmptr, integer * perm,
		   integer * givptr, integer * givcol, real * givnum,
		   real * q, integer * qptr, real * z__, real * ztemp,
		   integer * info);
extern int slaein_(logical * rightv, logical * noinit, integer * n,
		   real * h__, integer * ldh, real * wr, real * wi, real * vr,
		   real * vi, real * b, integer * ldb, real * work,
		   real * eps3, real * smlnum, real * bignum, integer * info);
extern int slaev2_(real * a, real * b, real * c__, real * rt1, real * rt2,
		   real * cs1, real * sn1);
extern int slaexc_(logical * wantq, integer * n, real * t, integer * ldt,
		   real * q, integer * ldq, integer * j1, integer * n1,
		   integer * n2, real * work, integer * info);
extern int slag2_(real * a, integer * lda, real * b, integer * ldb,
		  real * safmin, real * scale1, real * scale2, real * wr1,
		  real * wr2, real * wi);
extern int slags2_(logical * upper, real * a1, real * a2, real * a3,
		   real * b1, real * b2, real * b3, real * csu, real * snu,
		   real * csv, real * snv, real * csq, real * snq);
extern int slagtf_(integer * n, real * a, real * lambda, real * b, real * c__,
		   real * tol, real * d__, integer * in, integer * info);
extern int slagtm_(char *trans, integer * n, integer * nrhs, real * alpha,
		   real * dl, real * d__, real * du, real * x, integer * ldx,
		   real * beta, real * b, integer * ldb, ftnlen trans_len);
extern int slagts_(integer * job, integer * n, real * a, real * b, real * c__,
		   real * d__, integer * in, real * y, real * tol,
		   integer * info);
extern int slagv2_(real * a, integer * lda, real * b, integer * ldb,
		   real * alphar, real * alphai, real * beta, real * csl,
		   real * snl, real * csr, real * snr);
extern int slahqr_(logical * wantt, logical * wantz, integer * n,
		   integer * ilo, integer * ihi, real * h__, integer * ldh,
		   real * wr, real * wi, integer * iloz, integer * ihiz,
		   real * z__, integer * ldz, integer * info);
extern int slahrd_(integer * n, integer * k, integer * nb, real * a,
		   integer * lda, real * tau, real * t, integer * ldt,
		   real * y, integer * ldy);
extern int slaic1_(integer * job, integer * j, real * x, real * sest,
		   real * w, real * gamma, real * sestpr, real * s,
		   real * c__);
extern int slaln2_(logical * ltrans, integer * na, integer * nw, real * smin,
		   real * ca, real * a, integer * lda, real * d1, real * d2,
		   real * b, integer * ldb, real * wr, real * wi, real * x,
		   integer * ldx, real * scale, real * xnorm, integer * info);
extern int slals0_(integer * icompq, integer * nl, integer * nr,
		   integer * sqre, integer * nrhs, real * b, integer * ldb,
		   real * bx, integer * ldbx, integer * perm,
		   integer * givptr, integer * givcol, integer * ldgcol,
		   real * givnum, integer * ldgnum, real * poles, real * difl,
		   real * difr, real * z__, integer * k, real * c__, real * s,
		   real * work, integer * info);
extern int slalsa_(integer * icompq, integer * smlsiz, integer * n,
		   integer * nrhs, real * b, integer * ldb, real * bx,
		   integer * ldbx, real * u, integer * ldu, real * vt,
		   integer * k, real * difl, real * difr, real * z__,
		   real * poles, integer * givptr, integer * givcol,
		   integer * ldgcol, integer * perm, real * givnum,
		   real * c__, real * s, real * work, integer * iwork,
		   integer * info);
extern int slalsd_(char *uplo, integer * smlsiz, integer * n, integer * nrhs,
		   real * d__, real * e, real * b, integer * ldb,
		   real * rcond, integer * rank, real * work, integer * iwork,
		   integer * info, ftnlen uplo_len);
extern E_f slamch_(char *cmach, ftnlen cmach_len);
extern int slamc1_(integer * beta, integer * t, logical * rnd,
		   logical * ieee1);
extern int slamc2_(integer * beta, integer * t, logical * rnd, real * eps,
		   integer * emin, real * rmin, integer * emax, real * rmax);
extern E_f slamc3_(real * a, real * b);
extern int slamc4_(integer * emin, real * start, integer * base);
extern int slamc5_(integer * beta, integer * p, integer * emin,
		   logical * ieee, integer * emax, real * rmax);
extern int slamrg_(integer * n1, integer * n2, real * a, integer * strd1,
		   integer * strd2, integer * index);
extern E_f slangb_(char *norm, integer * n, integer * kl, integer * ku,
		   real * ab, integer * ldab, real * work, ftnlen norm_len);
extern E_f slange_(char *norm, integer * m, integer * n, real * a,
		   integer * lda, real * work, ftnlen norm_len);
extern E_f slangt_(char *norm, integer * n, real * dl, real * d__, real * du,
		   ftnlen norm_len);
extern E_f slanhs_(char *norm, integer * n, real * a, integer * lda,
		   real * work, ftnlen norm_len);
extern E_f slansb_(char *norm, char *uplo, integer * n, integer * k,
		   real * ab, integer * ldab, real * work, ftnlen norm_len,
		   ftnlen uplo_len);
extern E_f slansp_(char *norm, char *uplo, integer * n, real * ap,
		   real * work, ftnlen norm_len, ftnlen uplo_len);
extern E_f slanst_(char *norm, integer * n, real * d__, real * e,
		   ftnlen norm_len);
extern E_f slansy_(char *norm, char *uplo, integer * n, real * a,
		   integer * lda, real * work, ftnlen norm_len,
		   ftnlen uplo_len);
extern E_f slantb_(char *norm, char *uplo, char *diag, integer * n,
		   integer * k, real * ab, integer * ldab, real * work,
		   ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern E_f slantp_(char *norm, char *uplo, char *diag, integer * n, real * ap,
		   real * work, ftnlen norm_len, ftnlen uplo_len,
		   ftnlen diag_len);
extern E_f slantr_(char *norm, char *uplo, char *diag, integer * m,
		   integer * n, real * a, integer * lda, real * work,
		   ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern int slanv2_(real * a, real * b, real * c__, real * d__, real * rt1r,
		   real * rt1i, real * rt2r, real * rt2i, real * cs,
		   real * sn);
extern int slapll_(integer * n, real * x, integer * incx, real * y,
		   integer * incy, real * ssmin);
extern int slapmt_(logical * forwrd, integer * m, integer * n, real * x,
		   integer * ldx, integer * k);
extern E_f slapy2_(real * x, real * y);
extern E_f slapy3_(real * x, real * y, real * z__);
extern int slaqgb_(integer * m, integer * n, integer * kl, integer * ku,
		   real * ab, integer * ldab, real * r__, real * c__,
		   real * rowcnd, real * colcnd, real * amax, char *equed,
		   ftnlen equed_len);
extern int slaqge_(integer * m, integer * n, real * a, integer * lda,
		   real * r__, real * c__, real * rowcnd, real * colcnd,
		   real * amax, char *equed, ftnlen equed_len);
extern int slaqp2_(integer * m, integer * n, integer * offset, real * a,
		   integer * lda, integer * jpvt, real * tau, real * vn1,
		   real * vn2, real * work);
extern int slaqps_(integer * m, integer * n, integer * offset, integer * nb,
		   integer * kb, real * a, integer * lda, integer * jpvt,
		   real * tau, real * vn1, real * vn2, real * auxv, real * f,
		   integer * ldf);
extern int slaqsb_(char *uplo, integer * n, integer * kd, real * ab,
		   integer * ldab, real * s, real * scond, real * amax,
		   char *equed, ftnlen uplo_len, ftnlen equed_len);
extern int slaqsp_(char *uplo, integer * n, real * ap, real * s, real * scond,
		   real * amax, char *equed, ftnlen uplo_len,
		   ftnlen equed_len);
extern int slaqsy_(char *uplo, integer * n, real * a, integer * lda, real * s,
		   real * scond, real * amax, char *equed, ftnlen uplo_len,
		   ftnlen equed_len);
extern int slaqtr_(logical * ltran, logical * lreal, integer * n, real * t,
		   integer * ldt, real * b, real * w, real * scale, real * x,
		   real * work, integer * info);
extern int slar1v_(integer * n, integer * b1, integer * bn, real * sigma,
		   real * d__, real * l, real * ld, real * lld, real * gersch,
		   real * z__, real * ztz, real * mingma, integer * r__,
		   integer * isuppz, real * work);
extern int slar2v_(integer * n, real * x, real * y, real * z__,
		   integer * incx, real * c__, real * s, integer * incc);
extern int slarf_(char *side, integer * m, integer * n, real * v,
		  integer * incv, real * tau, real * c__, integer * ldc,
		  real * work, ftnlen side_len);
extern int slarfb_(char *side, char *trans, char *direct, char *storev,
		   integer * m, integer * n, integer * k, real * v,
		   integer * ldv, real * t, integer * ldt, real * c__,
		   integer * ldc, real * work, integer * ldwork,
		   ftnlen side_len, ftnlen trans_len, ftnlen direct_len,
		   ftnlen storev_len);
extern int slarfg_(integer * n, real * alpha, real * x, integer * incx,
		   real * tau);
extern int slarft_(char *direct, char *storev, integer * n, integer * k,
		   real * v, integer * ldv, real * tau, real * t,
		   integer * ldt, ftnlen direct_len, ftnlen storev_len);
extern int slarfx_(char *side, integer * m, integer * n, real * v, real * tau,
		   real * c__, integer * ldc, real * work, ftnlen side_len);
extern int slargv_(integer * n, real * x, integer * incx, real * y,
		   integer * incy, real * c__, integer * incc);
extern int slarnv_(integer * idist, integer * iseed, integer * n, real * x);
extern int slarrb_(integer * n, real * d__, real * l, real * ld, real * lld,
		   integer * ifirst, integer * ilast, real * sigma,
		   real * reltol, real * w, real * wgap, real * werr,
		   real * work, integer * iwork, integer * info);
extern int slarre_(integer * n, real * d__, real * e, real * tol,
		   integer * nsplit, integer * isplit, integer * m, real * w,
		   real * woff, real * gersch, real * work, integer * info);
extern int slarrf_(integer * n, real * d__, real * l, real * ld, real * lld,
		   integer * ifirst, integer * ilast, real * w, real * dplus,
		   real * lplus, real * work, integer * iwork,
		   integer * info);
extern int slarrv_(integer * n, real * d__, real * l, integer * isplit,
		   integer * m, real * w, integer * iblock, real * gersch,
		   real * tol, real * z__, integer * ldz, integer * isuppz,
		   real * work, integer * iwork, integer * info);
extern int slartg_(real * f, real * g, real * cs, real * sn, real * r__);
extern int slartv_(integer * n, real * x, integer * incx, real * y,
		   integer * incy, real * c__, real * s, integer * incc);
extern int slaruv_(integer * iseed, integer * n, real * x);
extern int slarz_(char *side, integer * m, integer * n, integer * l, real * v,
		  integer * incv, real * tau, real * c__, integer * ldc,
		  real * work, ftnlen side_len);
extern int slarzb_(char *side, char *trans, char *direct, char *storev,
		   integer * m, integer * n, integer * k, integer * l,
		   real * v, integer * ldv, real * t, integer * ldt,
		   real * c__, integer * ldc, real * work, integer * ldwork,
		   ftnlen side_len, ftnlen trans_len, ftnlen direct_len,
		   ftnlen storev_len);
extern int slarzt_(char *direct, char *storev, integer * n, integer * k,
		   real * v, integer * ldv, real * tau, real * t,
		   integer * ldt, ftnlen direct_len, ftnlen storev_len);
extern int slas2_(real * f, real * g, real * h__, real * ssmin, real * ssmax);
extern int slascl_(char *type__, integer * kl, integer * ku, real * cfrom,
		   real * cto, integer * m, integer * n, real * a,
		   integer * lda, integer * info, ftnlen type_len);
extern int slasd0_(integer * n, integer * sqre, real * d__, real * e,
		   real * u, integer * ldu, real * vt, integer * ldvt,
		   integer * smlsiz, integer * iwork, real * work,
		   integer * info);
extern int slasd1_(integer * nl, integer * nr, integer * sqre, real * d__,
		   real * alpha, real * beta, real * u, integer * ldu,
		   real * vt, integer * ldvt, integer * idxq, integer * iwork,
		   real * work, integer * info);
extern int slasd2_(integer * nl, integer * nr, integer * sqre, integer * k,
		   real * d__, real * z__, real * alpha, real * beta,
		   real * u, integer * ldu, real * vt, integer * ldvt,
		   real * dsigma, real * u2, integer * ldu2, real * vt2,
		   integer * ldvt2, integer * idxp, integer * idx,
		   integer * idxc, integer * idxq, integer * coltyp,
		   integer * info);
extern int slasd3_(integer * nl, integer * nr, integer * sqre, integer * k,
		   real * d__, real * q, integer * ldq, real * dsigma,
		   real * u, integer * ldu, real * u2, integer * ldu2,
		   real * vt, integer * ldvt, real * vt2, integer * ldvt2,
		   integer * idxc, integer * ctot, real * z__,
		   integer * info);
extern int slasd4_(integer * n, integer * i__, real * d__, real * z__,
		   real * delta, real * rho, real * sigma, real * work,
		   integer * info);
extern int slasd5_(integer * i__, real * d__, real * z__, real * delta,
		   real * rho, real * dsigma, real * work);
extern int slasd6_(integer * icompq, integer * nl, integer * nr,
		   integer * sqre, real * d__, real * vf, real * vl,
		   real * alpha, real * beta, integer * idxq, integer * perm,
		   integer * givptr, integer * givcol, integer * ldgcol,
		   real * givnum, integer * ldgnum, real * poles, real * difl,
		   real * difr, real * z__, integer * k, real * c__, real * s,
		   real * work, integer * iwork, integer * info);
extern int slasd7_(integer * icompq, integer * nl, integer * nr,
		   integer * sqre, integer * k, real * d__, real * z__,
		   real * zw, real * vf, real * vfw, real * vl, real * vlw,
		   real * alpha, real * beta, real * dsigma, integer * idx,
		   integer * idxp, integer * idxq, integer * perm,
		   integer * givptr, integer * givcol, integer * ldgcol,
		   real * givnum, integer * ldgnum, real * c__, real * s,
		   integer * info);
extern int slasd8_(integer * icompq, integer * k, real * d__, real * z__,
		   real * vf, real * vl, real * difl, real * difr,
		   integer * lddifr, real * dsigma, real * work,
		   integer * info);
extern int slasd9_(integer * icompq, integer * ldu, integer * k, real * d__,
		   real * z__, real * vf, real * vl, real * difl, real * difr,
		   real * dsigma, real * work, integer * info);
extern int slasda_(integer * icompq, integer * smlsiz, integer * n,
		   integer * sqre, real * d__, real * e, real * u,
		   integer * ldu, real * vt, integer * k, real * difl,
		   real * difr, real * z__, real * poles, integer * givptr,
		   integer * givcol, integer * ldgcol, integer * perm,
		   real * givnum, real * c__, real * s, real * work,
		   integer * iwork, integer * info);
extern int slasdq_(char *uplo, integer * sqre, integer * n, integer * ncvt,
		   integer * nru, integer * ncc, real * d__, real * e,
		   real * vt, integer * ldvt, real * u, integer * ldu,
		   real * c__, integer * ldc, real * work, integer * info,
		   ftnlen uplo_len);
extern int slasdt_(integer * n, integer * lvl, integer * nd, integer * inode,
		   integer * ndiml, integer * ndimr, integer * msub);
extern int slaset_(char *uplo, integer * m, integer * n, real * alpha,
		   real * beta, real * a, integer * lda, ftnlen uplo_len);
extern int slasq1_(integer * n, real * d__, real * e, real * work,
		   integer * info);
extern int slasq2_(integer * n, real * z__, integer * info);
extern int slasq3_(integer * i0, integer * n0, real * z__, integer * pp,
		   real * dmin__, real * sigma, real * desig, real * qmax,
		   integer * nfail, integer * iter, integer * ndiv);
extern int slasq4_(integer * i0, integer * n0, real * z__, integer * pp,
		   integer * n0in, real * dmin__, real * dmin1, real * dmin2,
		   real * dn, real * dn1, real * dn2, real * tau,
		   integer * ttype);
extern int slasq5_(integer * i0, integer * n0, real * z__, integer * pp,
		   real * tau, real * dmin__, real * dmin1, real * dmin2,
		   real * dn, real * dnm1, real * dnm2);
extern int slasq6_(integer * i0, integer * n0, real * z__, integer * pp,
		   real * dmin__, real * dmin1, real * dmin2, real * dn,
		   real * dnm1, real * dnm2);
extern int slasr_(char *side, char *pivot, char *direct, integer * m,
		  integer * n, real * c__, real * s, real * a, integer * lda,
		  ftnlen side_len, ftnlen pivot_len, ftnlen direct_len);
extern int slasrt_(char *id, integer * n, real * d__, integer * info,
		   ftnlen id_len);
extern int slassq_(integer * n, real * x, integer * incx, real * scale,
		   real * sumsq);
extern int slasv2_(real * f, real * g, real * h__, real * ssmin, real * ssmax,
		   real * snr, real * csr, real * snl, real * csl);
extern int slaswp_(integer * n, real * a, integer * lda, integer * k1,
		   integer * k2, integer * ipiv, integer * incx);
extern int slasy2_(logical * ltranl, logical * ltranr, integer * isgn,
		   integer * n1, integer * n2, real * tl, integer * ldtl,
		   real * tr, integer * ldtr, real * b, integer * ldb,
		   real * scale, real * x, integer * ldx, real * xnorm,
		   integer * info);
extern int slasyf_(char *uplo, integer * n, integer * nb, integer * kb,
		   real * a, integer * lda, integer * ipiv, real * w,
		   integer * ldw, integer * info, ftnlen uplo_len);
extern int slatbs_(char *uplo, char *trans, char *diag, char *normin,
		   integer * n, integer * kd, real * ab, integer * ldab,
		   real * x, real * scale, real * cnorm, integer * info,
		   ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len,
		   ftnlen normin_len);
extern int slatdf_(integer * ijob, integer * n, real * z__, integer * ldz,
		   real * rhs, real * rdsum, real * rdscal, integer * ipiv,
		   integer * jpiv);
extern int slatps_(char *uplo, char *trans, char *diag, char *normin,
		   integer * n, real * ap, real * x, real * scale,
		   real * cnorm, integer * info, ftnlen uplo_len,
		   ftnlen trans_len, ftnlen diag_len, ftnlen normin_len);
extern int slatrd_(char *uplo, integer * n, integer * nb, real * a,
		   integer * lda, real * e, real * tau, real * w,
		   integer * ldw, ftnlen uplo_len);
extern int slatrs_(char *uplo, char *trans, char *diag, char *normin,
		   integer * n, real * a, integer * lda, real * x,
		   real * scale, real * cnorm, integer * info,
		   ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len,
		   ftnlen normin_len);
extern int slatrz_(integer * m, integer * n, integer * l, real * a,
		   integer * lda, real * tau, real * work);
extern int slatzm_(char *side, integer * m, integer * n, real * v,
		   integer * incv, real * tau, real * c1, real * c2,
		   integer * ldc, real * work, ftnlen side_len);
extern int slauu2_(char *uplo, integer * n, real * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int slauum_(char *uplo, integer * n, real * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int sopgtr_(char *uplo, integer * n, real * ap, real * tau, real * q,
		   integer * ldq, real * work, integer * info,
		   ftnlen uplo_len);
extern int sopmtr_(char *side, char *uplo, char *trans, integer * m,
		   integer * n, real * ap, real * tau, real * c__,
		   integer * ldc, real * work, integer * info,
		   ftnlen side_len, ftnlen uplo_len, ftnlen trans_len);
extern int sorg2l_(integer * m, integer * n, integer * k, real * a,
		   integer * lda, real * tau, real * work, integer * info);
extern int sorg2r_(integer * m, integer * n, integer * k, real * a,
		   integer * lda, real * tau, real * work, integer * info);
extern int sorgbr_(char *vect, integer * m, integer * n, integer * k,
		   real * a, integer * lda, real * tau, real * work,
		   integer * lwork, integer * info, ftnlen vect_len);
extern int sorghr_(integer * n, integer * ilo, integer * ihi, real * a,
		   integer * lda, real * tau, real * work, integer * lwork,
		   integer * info);
extern int sorgl2_(integer * m, integer * n, integer * k, real * a,
		   integer * lda, real * tau, real * work, integer * info);
extern int sorglq_(integer * m, integer * n, integer * k, real * a,
		   integer * lda, real * tau, real * work, integer * lwork,
		   integer * info);
extern int sorgql_(integer * m, integer * n, integer * k, real * a,
		   integer * lda, real * tau, real * work, integer * lwork,
		   integer * info);
extern int sorgqr_(integer * m, integer * n, integer * k, real * a,
		   integer * lda, real * tau, real * work, integer * lwork,
		   integer * info);
extern int sorgr2_(integer * m, integer * n, integer * k, real * a,
		   integer * lda, real * tau, real * work, integer * info);
extern int sorgrq_(integer * m, integer * n, integer * k, real * a,
		   integer * lda, real * tau, real * work, integer * lwork,
		   integer * info);
extern int sorgtr_(char *uplo, integer * n, real * a, integer * lda,
		   real * tau, real * work, integer * lwork, integer * info,
		   ftnlen uplo_len);
extern int sorm2l_(char *side, char *trans, integer * m, integer * n,
		   integer * k, real * a, integer * lda, real * tau,
		   real * c__, integer * ldc, real * work, integer * info,
		   ftnlen side_len, ftnlen trans_len);
extern int sorm2r_(char *side, char *trans, integer * m, integer * n,
		   integer * k, real * a, integer * lda, real * tau,
		   real * c__, integer * ldc, real * work, integer * info,
		   ftnlen side_len, ftnlen trans_len);
extern int sormbr_(char *vect, char *side, char *trans, integer * m,
		   integer * n, integer * k, real * a, integer * lda,
		   real * tau, real * c__, integer * ldc, real * work,
		   integer * lwork, integer * info, ftnlen vect_len,
		   ftnlen side_len, ftnlen trans_len);
extern int sormhr_(char *side, char *trans, integer * m, integer * n,
		   integer * ilo, integer * ihi, real * a, integer * lda,
		   real * tau, real * c__, integer * ldc, real * work,
		   integer * lwork, integer * info, ftnlen side_len,
		   ftnlen trans_len);
extern int sorml2_(char *side, char *trans, integer * m, integer * n,
		   integer * k, real * a, integer * lda, real * tau,
		   real * c__, integer * ldc, real * work, integer * info,
		   ftnlen side_len, ftnlen trans_len);
extern int sormlq_(char *side, char *trans, integer * m, integer * n,
		   integer * k, real * a, integer * lda, real * tau,
		   real * c__, integer * ldc, real * work, integer * lwork,
		   integer * info, ftnlen side_len, ftnlen trans_len);
extern int sormql_(char *side, char *trans, integer * m, integer * n,
		   integer * k, real * a, integer * lda, real * tau,
		   real * c__, integer * ldc, real * work, integer * lwork,
		   integer * info, ftnlen side_len, ftnlen trans_len);
extern int sormqr_(char *side, char *trans, integer * m, integer * n,
		   integer * k, real * a, integer * lda, real * tau,
		   real * c__, integer * ldc, real * work, integer * lwork,
		   integer * info, ftnlen side_len, ftnlen trans_len);
extern int sormr2_(char *side, char *trans, integer * m, integer * n,
		   integer * k, real * a, integer * lda, real * tau,
		   real * c__, integer * ldc, real * work, integer * info,
		   ftnlen side_len, ftnlen trans_len);
extern int sormr3_(char *side, char *trans, integer * m, integer * n,
		   integer * k, integer * l, real * a, integer * lda,
		   real * tau, real * c__, integer * ldc, real * work,
		   integer * info, ftnlen side_len, ftnlen trans_len);
extern int sormrq_(char *side, char *trans, integer * m, integer * n,
		   integer * k, real * a, integer * lda, real * tau,
		   real * c__, integer * ldc, real * work, integer * lwork,
		   integer * info, ftnlen side_len, ftnlen trans_len);
extern int sormrz_(char *side, char *trans, integer * m, integer * n,
		   integer * k, integer * l, real * a, integer * lda,
		   real * tau, real * c__, integer * ldc, real * work,
		   integer * lwork, integer * info, ftnlen side_len,
		   ftnlen trans_len);
extern int sormtr_(char *side, char *uplo, char *trans, integer * m,
		   integer * n, real * a, integer * lda, real * tau,
		   real * c__, integer * ldc, real * work, integer * lwork,
		   integer * info, ftnlen side_len, ftnlen uplo_len,
		   ftnlen trans_len);
extern int spbcon_(char *uplo, integer * n, integer * kd, real * ab,
		   integer * ldab, real * anorm, real * rcond, real * work,
		   integer * iwork, integer * info, ftnlen uplo_len);
extern int spbequ_(char *uplo, integer * n, integer * kd, real * ab,
		   integer * ldab, real * s, real * scond, real * amax,
		   integer * info, ftnlen uplo_len);
extern int spbrfs_(char *uplo, integer * n, integer * kd, integer * nrhs,
		   real * ab, integer * ldab, real * afb, integer * ldafb,
		   real * b, integer * ldb, real * x, integer * ldx,
		   real * ferr, real * berr, real * work, integer * iwork,
		   integer * info, ftnlen uplo_len);
extern int spbstf_(char *uplo, integer * n, integer * kd, real * ab,
		   integer * ldab, integer * info, ftnlen uplo_len);
extern int spbsv_(char *uplo, integer * n, integer * kd, integer * nrhs,
		  real * ab, integer * ldab, real * b, integer * ldb,
		  integer * info, ftnlen uplo_len);
extern int spbsvx_(char *fact, char *uplo, integer * n, integer * kd,
		   integer * nrhs, real * ab, integer * ldab, real * afb,
		   integer * ldafb, char *equed, real * s, real * b,
		   integer * ldb, real * x, integer * ldx, real * rcond,
		   real * ferr, real * berr, real * work, integer * iwork,
		   integer * info, ftnlen fact_len, ftnlen uplo_len,
		   ftnlen equed_len);
extern int spbtf2_(char *uplo, integer * n, integer * kd, real * ab,
		   integer * ldab, integer * info, ftnlen uplo_len);
extern int spbtrf_(char *uplo, integer * n, integer * kd, real * ab,
		   integer * ldab, integer * info, ftnlen uplo_len);
extern int spbtrs_(char *uplo, integer * n, integer * kd, integer * nrhs,
		   real * ab, integer * ldab, real * b, integer * ldb,
		   integer * info, ftnlen uplo_len);
extern int spocon_(char *uplo, integer * n, real * a, integer * lda,
		   real * anorm, real * rcond, real * work, integer * iwork,
		   integer * info, ftnlen uplo_len);
extern int spoequ_(integer * n, real * a, integer * lda, real * s,
		   real * scond, real * amax, integer * info);
extern int sporfs_(char *uplo, integer * n, integer * nrhs, real * a,
		   integer * lda, real * af, integer * ldaf, real * b,
		   integer * ldb, real * x, integer * ldx, real * ferr,
		   real * berr, real * work, integer * iwork, integer * info,
		   ftnlen uplo_len);
extern int sposv_(char *uplo, integer * n, integer * nrhs, real * a,
		  integer * lda, real * b, integer * ldb, integer * info,
		  ftnlen uplo_len);
extern int sposvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   real * a, integer * lda, real * af, integer * ldaf,
		   char *equed, real * s, real * b, integer * ldb, real * x,
		   integer * ldx, real * rcond, real * ferr, real * berr,
		   real * work, integer * iwork, integer * info,
		   ftnlen fact_len, ftnlen uplo_len, ftnlen equed_len);
extern int spotf2_(char *uplo, integer * n, real * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int spotrf_(char *uplo, integer * n, real * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int spotri_(char *uplo, integer * n, real * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int spotrs_(char *uplo, integer * n, integer * nrhs, real * a,
		   integer * lda, real * b, integer * ldb, integer * info,
		   ftnlen uplo_len);
extern int sppcon_(char *uplo, integer * n, real * ap, real * anorm,
		   real * rcond, real * work, integer * iwork, integer * info,
		   ftnlen uplo_len);
extern int sppequ_(char *uplo, integer * n, real * ap, real * s, real * scond,
		   real * amax, integer * info, ftnlen uplo_len);
extern int spprfs_(char *uplo, integer * n, integer * nrhs, real * ap,
		   real * afp, real * b, integer * ldb, real * x,
		   integer * ldx, real * ferr, real * berr, real * work,
		   integer * iwork, integer * info, ftnlen uplo_len);
extern int sppsv_(char *uplo, integer * n, integer * nrhs, real * ap,
		  real * b, integer * ldb, integer * info, ftnlen uplo_len);
extern int sppsvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   real * ap, real * afp, char *equed, real * s, real * b,
		   integer * ldb, real * x, integer * ldx, real * rcond,
		   real * ferr, real * berr, real * work, integer * iwork,
		   integer * info, ftnlen fact_len, ftnlen uplo_len,
		   ftnlen equed_len);
extern int spptrf_(char *uplo, integer * n, real * ap, integer * info,
		   ftnlen uplo_len);
extern int spptri_(char *uplo, integer * n, real * ap, integer * info,
		   ftnlen uplo_len);
extern int spptrs_(char *uplo, integer * n, integer * nrhs, real * ap,
		   real * b, integer * ldb, integer * info, ftnlen uplo_len);
extern int sptcon_(integer * n, real * d__, real * e, real * anorm,
		   real * rcond, real * work, integer * info);
extern int spteqr_(char *compz, integer * n, real * d__, real * e, real * z__,
		   integer * ldz, real * work, integer * info,
		   ftnlen compz_len);
extern int sptrfs_(integer * n, integer * nrhs, real * d__, real * e,
		   real * df, real * ef, real * b, integer * ldb, real * x,
		   integer * ldx, real * ferr, real * berr, real * work,
		   integer * info);
extern int sptsv_(integer * n, integer * nrhs, real * d__, real * e, real * b,
		  integer * ldb, integer * info);
extern int sptsvx_(char *fact, integer * n, integer * nrhs, real * d__,
		   real * e, real * df, real * ef, real * b, integer * ldb,
		   real * x, integer * ldx, real * rcond, real * ferr,
		   real * berr, real * work, integer * info, ftnlen fact_len);
extern int spttrf_(integer * n, real * d__, real * e, integer * info);
extern int spttrs_(integer * n, integer * nrhs, real * d__, real * e,
		   real * b, integer * ldb, integer * info);
extern int sptts2_(integer * n, integer * nrhs, real * d__, real * e,
		   real * b, integer * ldb);
extern int srscl_(integer * n, real * sa, real * sx, integer * incx);
extern int ssbev_(char *jobz, char *uplo, integer * n, integer * kd,
		  real * ab, integer * ldab, real * w, real * z__,
		  integer * ldz, real * work, integer * info, ftnlen jobz_len,
		  ftnlen uplo_len);
extern int ssbevd_(char *jobz, char *uplo, integer * n, integer * kd,
		   real * ab, integer * ldab, real * w, real * z__,
		   integer * ldz, real * work, integer * lwork,
		   integer * iwork, integer * liwork, integer * info,
		   ftnlen jobz_len, ftnlen uplo_len);
extern int ssbevx_(char *jobz, char *range, char *uplo, integer * n,
		   integer * kd, real * ab, integer * ldab, real * q,
		   integer * ldq, real * vl, real * vu, integer * il,
		   integer * iu, real * abstol, integer * m, real * w,
		   real * z__, integer * ldz, real * work, integer * iwork,
		   integer * ifail, integer * info, ftnlen jobz_len,
		   ftnlen range_len, ftnlen uplo_len);
extern int ssbgst_(char *vect, char *uplo, integer * n, integer * ka,
		   integer * kb, real * ab, integer * ldab, real * bb,
		   integer * ldbb, real * x, integer * ldx, real * work,
		   integer * info, ftnlen vect_len, ftnlen uplo_len);
extern int ssbgv_(char *jobz, char *uplo, integer * n, integer * ka,
		  integer * kb, real * ab, integer * ldab, real * bb,
		  integer * ldbb, real * w, real * z__, integer * ldz,
		  real * work, integer * info, ftnlen jobz_len,
		  ftnlen uplo_len);
extern int ssbgvd_(char *jobz, char *uplo, integer * n, integer * ka,
		   integer * kb, real * ab, integer * ldab, real * bb,
		   integer * ldbb, real * w, real * z__, integer * ldz,
		   real * work, integer * lwork, integer * iwork,
		   integer * liwork, integer * info, ftnlen jobz_len,
		   ftnlen uplo_len);
extern int ssbgvx_(char *jobz, char *range, char *uplo, integer * n,
		   integer * ka, integer * kb, real * ab, integer * ldab,
		   real * bb, integer * ldbb, real * q, integer * ldq,
		   real * vl, real * vu, integer * il, integer * iu,
		   real * abstol, integer * m, real * w, real * z__,
		   integer * ldz, real * work, integer * iwork,
		   integer * ifail, integer * info, ftnlen jobz_len,
		   ftnlen range_len, ftnlen uplo_len);
extern int ssbtrd_(char *vect, char *uplo, integer * n, integer * kd,
		   real * ab, integer * ldab, real * d__, real * e, real * q,
		   integer * ldq, real * work, integer * info,
		   ftnlen vect_len, ftnlen uplo_len);
extern int sspcon_(char *uplo, integer * n, real * ap, integer * ipiv,
		   real * anorm, real * rcond, real * work, integer * iwork,
		   integer * info, ftnlen uplo_len);
extern int sspev_(char *jobz, char *uplo, integer * n, real * ap, real * w,
		  real * z__, integer * ldz, real * work, integer * info,
		  ftnlen jobz_len, ftnlen uplo_len);
extern int sspevd_(char *jobz, char *uplo, integer * n, real * ap, real * w,
		   real * z__, integer * ldz, real * work, integer * lwork,
		   integer * iwork, integer * liwork, integer * info,
		   ftnlen jobz_len, ftnlen uplo_len);
extern int sspevx_(char *jobz, char *range, char *uplo, integer * n,
		   real * ap, real * vl, real * vu, integer * il,
		   integer * iu, real * abstol, integer * m, real * w,
		   real * z__, integer * ldz, real * work, integer * iwork,
		   integer * ifail, integer * info, ftnlen jobz_len,
		   ftnlen range_len, ftnlen uplo_len);
extern int sspgst_(integer * itype, char *uplo, integer * n, real * ap,
		   real * bp, integer * info, ftnlen uplo_len);
extern int sspgv_(integer * itype, char *jobz, char *uplo, integer * n,
		  real * ap, real * bp, real * w, real * z__, integer * ldz,
		  real * work, integer * info, ftnlen jobz_len,
		  ftnlen uplo_len);
extern int sspgvd_(integer * itype, char *jobz, char *uplo, integer * n,
		   real * ap, real * bp, real * w, real * z__, integer * ldz,
		   real * work, integer * lwork, integer * iwork,
		   integer * liwork, integer * info, ftnlen jobz_len,
		   ftnlen uplo_len);
extern int sspgvx_(integer * itype, char *jobz, char *range, char *uplo,
		   integer * n, real * ap, real * bp, real * vl, real * vu,
		   integer * il, integer * iu, real * abstol, integer * m,
		   real * w, real * z__, integer * ldz, real * work,
		   integer * iwork, integer * ifail, integer * info,
		   ftnlen jobz_len, ftnlen range_len, ftnlen uplo_len);
extern int ssprfs_(char *uplo, integer * n, integer * nrhs, real * ap,
		   real * afp, integer * ipiv, real * b, integer * ldb,
		   real * x, integer * ldx, real * ferr, real * berr,
		   real * work, integer * iwork, integer * info,
		   ftnlen uplo_len);
extern int sspsv_(char *uplo, integer * n, integer * nrhs, real * ap,
		  integer * ipiv, real * b, integer * ldb, integer * info,
		  ftnlen uplo_len);
extern int sspsvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   real * ap, real * afp, integer * ipiv, real * b,
		   integer * ldb, real * x, integer * ldx, real * rcond,
		   real * ferr, real * berr, real * work, integer * iwork,
		   integer * info, ftnlen fact_len, ftnlen uplo_len);
extern int ssptrd_(char *uplo, integer * n, real * ap, real * d__, real * e,
		   real * tau, integer * info, ftnlen uplo_len);
extern int ssptrf_(char *uplo, integer * n, real * ap, integer * ipiv,
		   integer * info, ftnlen uplo_len);
extern int ssptri_(char *uplo, integer * n, real * ap, integer * ipiv,
		   real * work, integer * info, ftnlen uplo_len);
extern int ssptrs_(char *uplo, integer * n, integer * nrhs, real * ap,
		   integer * ipiv, real * b, integer * ldb, integer * info,
		   ftnlen uplo_len);
extern int sstebz_(char *range, char *order, integer * n, real * vl,
		   real * vu, integer * il, integer * iu, real * abstol,
		   real * d__, real * e, integer * m, integer * nsplit,
		   real * w, integer * iblock, integer * isplit, real * work,
		   integer * iwork, integer * info, ftnlen range_len,
		   ftnlen order_len);
extern int sstedc_(char *compz, integer * n, real * d__, real * e, real * z__,
		   integer * ldz, real * work, integer * lwork,
		   integer * iwork, integer * liwork, integer * info,
		   ftnlen compz_len);
extern int sstegr_(char *jobz, char *range, integer * n, real * d__, real * e,
		   real * vl, real * vu, integer * il, integer * iu,
		   real * abstol, integer * m, real * w, real * z__,
		   integer * ldz, integer * isuppz, real * work,
		   integer * lwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen jobz_len, ftnlen range_len);
extern int sstein_(integer * n, real * d__, real * e, integer * m, real * w,
		   integer * iblock, integer * isplit, real * z__,
		   integer * ldz, real * work, integer * iwork,
		   integer * ifail, integer * info);
extern int ssteqr_(char *compz, integer * n, real * d__, real * e, real * z__,
		   integer * ldz, real * work, integer * info,
		   ftnlen compz_len);
extern int ssterf_(integer * n, real * d__, real * e, integer * info);
extern int sstev_(char *jobz, integer * n, real * d__, real * e, real * z__,
		  integer * ldz, real * work, integer * info,
		  ftnlen jobz_len);
extern int sstevd_(char *jobz, integer * n, real * d__, real * e, real * z__,
		   integer * ldz, real * work, integer * lwork,
		   integer * iwork, integer * liwork, integer * info,
		   ftnlen jobz_len);
extern int sstevr_(char *jobz, char *range, integer * n, real * d__, real * e,
		   real * vl, real * vu, integer * il, integer * iu,
		   real * abstol, integer * m, real * w, real * z__,
		   integer * ldz, integer * isuppz, real * work,
		   integer * lwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen jobz_len, ftnlen range_len);
extern int sstevx_(char *jobz, char *range, integer * n, real * d__, real * e,
		   real * vl, real * vu, integer * il, integer * iu,
		   real * abstol, integer * m, real * w, real * z__,
		   integer * ldz, real * work, integer * iwork,
		   integer * ifail, integer * info, ftnlen jobz_len,
		   ftnlen range_len);
extern int ssycon_(char *uplo, integer * n, real * a, integer * lda,
		   integer * ipiv, real * anorm, real * rcond, real * work,
		   integer * iwork, integer * info, ftnlen uplo_len);
extern int ssyev_(char *jobz, char *uplo, integer * n, real * a,
		  integer * lda, real * w, real * work, integer * lwork,
		  integer * info, ftnlen jobz_len, ftnlen uplo_len);
extern int ssyevd_(char *jobz, char *uplo, integer * n, real * a,
		   integer * lda, real * w, real * work, integer * lwork,
		   integer * iwork, integer * liwork, integer * info,
		   ftnlen jobz_len, ftnlen uplo_len);
extern int ssyevr_(char *jobz, char *range, char *uplo, integer * n, real * a,
		   integer * lda, real * vl, real * vu, integer * il,
		   integer * iu, real * abstol, integer * m, real * w,
		   real * z__, integer * ldz, integer * isuppz, real * work,
		   integer * lwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen jobz_len, ftnlen range_len,
		   ftnlen uplo_len);
extern int ssyevx_(char *jobz, char *range, char *uplo, integer * n, real * a,
		   integer * lda, real * vl, real * vu, integer * il,
		   integer * iu, real * abstol, integer * m, real * w,
		   real * z__, integer * ldz, real * work, integer * lwork,
		   integer * iwork, integer * ifail, integer * info,
		   ftnlen jobz_len, ftnlen range_len, ftnlen uplo_len);
extern int ssygs2_(integer * itype, char *uplo, integer * n, real * a,
		   integer * lda, real * b, integer * ldb, integer * info,
		   ftnlen uplo_len);
extern int ssygst_(integer * itype, char *uplo, integer * n, real * a,
		   integer * lda, real * b, integer * ldb, integer * info,
		   ftnlen uplo_len);
extern int ssygv_(integer * itype, char *jobz, char *uplo, integer * n,
		  real * a, integer * lda, real * b, integer * ldb, real * w,
		  real * work, integer * lwork, integer * info,
		  ftnlen jobz_len, ftnlen uplo_len);
extern int ssygvd_(integer * itype, char *jobz, char *uplo, integer * n,
		   real * a, integer * lda, real * b, integer * ldb, real * w,
		   real * work, integer * lwork, integer * iwork,
		   integer * liwork, integer * info, ftnlen jobz_len,
		   ftnlen uplo_len);
extern int ssygvx_(integer * itype, char *jobz, char *range, char *uplo,
		   integer * n, real * a, integer * lda, real * b,
		   integer * ldb, real * vl, real * vu, integer * il,
		   integer * iu, real * abstol, integer * m, real * w,
		   real * z__, integer * ldz, real * work, integer * lwork,
		   integer * iwork, integer * ifail, integer * info,
		   ftnlen jobz_len, ftnlen range_len, ftnlen uplo_len);
extern int ssyrfs_(char *uplo, integer * n, integer * nrhs, real * a,
		   integer * lda, real * af, integer * ldaf, integer * ipiv,
		   real * b, integer * ldb, real * x, integer * ldx,
		   real * ferr, real * berr, real * work, integer * iwork,
		   integer * info, ftnlen uplo_len);
extern int ssysv_(char *uplo, integer * n, integer * nrhs, real * a,
		  integer * lda, integer * ipiv, real * b, integer * ldb,
		  real * work, integer * lwork, integer * info,
		  ftnlen uplo_len);
extern int ssysvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   real * a, integer * lda, real * af, integer * ldaf,
		   integer * ipiv, real * b, integer * ldb, real * x,
		   integer * ldx, real * rcond, real * ferr, real * berr,
		   real * work, integer * lwork, integer * iwork,
		   integer * info, ftnlen fact_len, ftnlen uplo_len);
extern int ssytd2_(char *uplo, integer * n, real * a, integer * lda,
		   real * d__, real * e, real * tau, integer * info,
		   ftnlen uplo_len);
extern int ssytf2_(char *uplo, integer * n, real * a, integer * lda,
		   integer * ipiv, integer * info, ftnlen uplo_len);
extern int ssytrd_(char *uplo, integer * n, real * a, integer * lda,
		   real * d__, real * e, real * tau, real * work,
		   integer * lwork, integer * info, ftnlen uplo_len);
extern int ssytrf_(char *uplo, integer * n, real * a, integer * lda,
		   integer * ipiv, real * work, integer * lwork,
		   integer * info, ftnlen uplo_len);
extern int ssytri_(char *uplo, integer * n, real * a, integer * lda,
		   integer * ipiv, real * work, integer * info,
		   ftnlen uplo_len);
extern int ssytrs_(char *uplo, integer * n, integer * nrhs, real * a,
		   integer * lda, integer * ipiv, real * b, integer * ldb,
		   integer * info, ftnlen uplo_len);
extern int stbcon_(char *norm, char *uplo, char *diag, integer * n,
		   integer * kd, real * ab, integer * ldab, real * rcond,
		   real * work, integer * iwork, integer * info,
		   ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern int stbrfs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * kd, integer * nrhs, real * ab, integer * ldab,
		   real * b, integer * ldb, real * x, integer * ldx,
		   real * ferr, real * berr, real * work, integer * iwork,
		   integer * info, ftnlen uplo_len, ftnlen trans_len,
		   ftnlen diag_len);
extern int stbtrs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * kd, integer * nrhs, real * ab, integer * ldab,
		   real * b, integer * ldb, integer * info, ftnlen uplo_len,
		   ftnlen trans_len, ftnlen diag_len);
extern int stgevc_(char *side, char *howmny, logical * select, integer * n,
		   real * a, integer * lda, real * b, integer * ldb,
		   real * vl, integer * ldvl, real * vr, integer * ldvr,
		   integer * mm, integer * m, real * work, integer * info,
		   ftnlen side_len, ftnlen howmny_len);
extern int stgex2_(logical * wantq, logical * wantz, integer * n, real * a,
		   integer * lda, real * b, integer * ldb, real * q,
		   integer * ldq, real * z__, integer * ldz, integer * j1,
		   integer * n1, integer * n2, real * work, integer * lwork,
		   integer * info);
extern int stgexc_(logical * wantq, logical * wantz, integer * n, real * a,
		   integer * lda, real * b, integer * ldb, real * q,
		   integer * ldq, real * z__, integer * ldz, integer * ifst,
		   integer * ilst, real * work, integer * lwork,
		   integer * info);
extern int stgsen_(integer * ijob, logical * wantq, logical * wantz,
		   logical * select, integer * n, real * a, integer * lda,
		   real * b, integer * ldb, real * alphar, real * alphai,
		   real * beta, real * q, integer * ldq, real * z__,
		   integer * ldz, integer * m, real * pl, real * pr,
		   real * dif, real * work, integer * lwork, integer * iwork,
		   integer * liwork, integer * info);
extern int stgsja_(char *jobu, char *jobv, char *jobq, integer * m,
		   integer * p, integer * n, integer * k, integer * l,
		   real * a, integer * lda, real * b, integer * ldb,
		   real * tola, real * tolb, real * alpha, real * beta,
		   real * u, integer * ldu, real * v, integer * ldv, real * q,
		   integer * ldq, real * work, integer * ncycle,
		   integer * info, ftnlen jobu_len, ftnlen jobv_len,
		   ftnlen jobq_len);
extern int stgsna_(char *job, char *howmny, logical * select, integer * n,
		   real * a, integer * lda, real * b, integer * ldb,
		   real * vl, integer * ldvl, real * vr, integer * ldvr,
		   real * s, real * dif, integer * mm, integer * m,
		   real * work, integer * lwork, integer * iwork,
		   integer * info, ftnlen job_len, ftnlen howmny_len);
extern int stgsy2_(char *trans, integer * ijob, integer * m, integer * n,
		   real * a, integer * lda, real * b, integer * ldb,
		   real * c__, integer * ldc, real * d__, integer * ldd,
		   real * e, integer * lde, real * f, integer * ldf,
		   real * scale, real * rdsum, real * rdscal, integer * iwork,
		   integer * pq, integer * info, ftnlen trans_len);
extern int stgsyl_(char *trans, integer * ijob, integer * m, integer * n,
		   real * a, integer * lda, real * b, integer * ldb,
		   real * c__, integer * ldc, real * d__, integer * ldd,
		   real * e, integer * lde, real * f, integer * ldf,
		   real * scale, real * dif, real * work, integer * lwork,
		   integer * iwork, integer * info, ftnlen trans_len);
extern int stpcon_(char *norm, char *uplo, char *diag, integer * n, real * ap,
		   real * rcond, real * work, integer * iwork, integer * info,
		   ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern int stprfs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * nrhs, real * ap, real * b, integer * ldb,
		   real * x, integer * ldx, real * ferr, real * berr,
		   real * work, integer * iwork, integer * info,
		   ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
extern int stptri_(char *uplo, char *diag, integer * n, real * ap,
		   integer * info, ftnlen uplo_len, ftnlen diag_len);
extern int stptrs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * nrhs, real * ap, real * b, integer * ldb,
		   integer * info, ftnlen uplo_len, ftnlen trans_len,
		   ftnlen diag_len);
extern int strcon_(char *norm, char *uplo, char *diag, integer * n, real * a,
		   integer * lda, real * rcond, real * work, integer * iwork,
		   integer * info, ftnlen norm_len, ftnlen uplo_len,
		   ftnlen diag_len);
extern int strevc_(char *side, char *howmny, logical * select, integer * n,
		   real * t, integer * ldt, real * vl, integer * ldvl,
		   real * vr, integer * ldvr, integer * mm, integer * m,
		   real * work, integer * info, ftnlen side_len,
		   ftnlen howmny_len);
extern int strexc_(char *compq, integer * n, real * t, integer * ldt,
		   real * q, integer * ldq, integer * ifst, integer * ilst,
		   real * work, integer * info, ftnlen compq_len);
extern int strrfs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * nrhs, real * a, integer * lda, real * b,
		   integer * ldb, real * x, integer * ldx, real * ferr,
		   real * berr, real * work, integer * iwork, integer * info,
		   ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
extern int strsen_(char *job, char *compq, logical * select, integer * n,
		   real * t, integer * ldt, real * q, integer * ldq,
		   real * wr, real * wi, integer * m, real * s, real * sep,
		   real * work, integer * lwork, integer * iwork,
		   integer * liwork, integer * info, ftnlen job_len,
		   ftnlen compq_len);
extern int strsna_(char *job, char *howmny, logical * select, integer * n,
		   real * t, integer * ldt, real * vl, integer * ldvl,
		   real * vr, integer * ldvr, real * s, real * sep,
		   integer * mm, integer * m, real * work, integer * ldwork,
		   integer * iwork, integer * info, ftnlen job_len,
		   ftnlen howmny_len);
extern int strsyl_(char *trana, char *tranb, integer * isgn, integer * m,
		   integer * n, real * a, integer * lda, real * b,
		   integer * ldb, real * c__, integer * ldc, real * scale,
		   integer * info, ftnlen trana_len, ftnlen tranb_len);
extern int strti2_(char *uplo, char *diag, integer * n, real * a,
		   integer * lda, integer * info, ftnlen uplo_len,
		   ftnlen diag_len);
extern int strtri_(char *uplo, char *diag, integer * n, real * a,
		   integer * lda, integer * info, ftnlen uplo_len,
		   ftnlen diag_len);
extern int strtrs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * nrhs, real * a, integer * lda, real * b,
		   integer * ldb, integer * info, ftnlen uplo_len,
		   ftnlen trans_len, ftnlen diag_len);
extern int stzrqf_(integer * m, integer * n, real * a, integer * lda,
		   real * tau, integer * info);
extern int stzrzf_(integer * m, integer * n, real * a, integer * lda,
		   real * tau, real * work, integer * lwork, integer * info);
extern int xerbla_(char *srname, integer * info, ftnlen srname_len);
extern int zbdsqr_(char *uplo, integer * n, integer * ncvt, integer * nru,
		   integer * ncc, doublereal * d__, doublereal * e,
		   doublecomplex * vt, integer * ldvt, doublecomplex * u,
		   integer * ldu, doublecomplex * c__, integer * ldc,
		   doublereal * rwork, integer * info, ftnlen uplo_len);
extern int zdrot_(integer * n, doublecomplex * cx, integer * incx,
		  doublecomplex * cy, integer * incy, doublereal * c__,
		  doublereal * s);
extern int zdrscl_(integer * n, doublereal * sa, doublecomplex * sx,
		   integer * incx);
extern int zgbbrd_(char *vect, integer * m, integer * n, integer * ncc,
		   integer * kl, integer * ku, doublecomplex * ab,
		   integer * ldab, doublereal * d__, doublereal * e,
		   doublecomplex * q, integer * ldq, doublecomplex * pt,
		   integer * ldpt, doublecomplex * c__, integer * ldc,
		   doublecomplex * work, doublereal * rwork, integer * info,
		   ftnlen vect_len);
extern int zgbcon_(char *norm, integer * n, integer * kl, integer * ku,
		   doublecomplex * ab, integer * ldab, integer * ipiv,
		   doublereal * anorm, doublereal * rcond,
		   doublecomplex * work, doublereal * rwork, integer * info,
		   ftnlen norm_len);
extern int zgbequ_(integer * m, integer * n, integer * kl, integer * ku,
		   doublecomplex * ab, integer * ldab, doublereal * r__,
		   doublereal * c__, doublereal * rowcnd, doublereal * colcnd,
		   doublereal * amax, integer * info);
extern int zgbrfs_(char *trans, integer * n, integer * kl, integer * ku,
		   integer * nrhs, doublecomplex * ab, integer * ldab,
		   doublecomplex * afb, integer * ldafb, integer * ipiv,
		   doublecomplex * b, integer * ldb, doublecomplex * x,
		   integer * ldx, doublereal * ferr, doublereal * berr,
		   doublecomplex * work, doublereal * rwork, integer * info,
		   ftnlen trans_len);
extern int zgbsv_(integer * n, integer * kl, integer * ku, integer * nrhs,
		  doublecomplex * ab, integer * ldab, integer * ipiv,
		  doublecomplex * b, integer * ldb, integer * info);
extern int zgbsvx_(char *fact, char *trans, integer * n, integer * kl,
		   integer * ku, integer * nrhs, doublecomplex * ab,
		   integer * ldab, doublecomplex * afb, integer * ldafb,
		   integer * ipiv, char *equed, doublereal * r__,
		   doublereal * c__, doublecomplex * b, integer * ldb,
		   doublecomplex * x, integer * ldx, doublereal * rcond,
		   doublereal * ferr, doublereal * berr, doublecomplex * work,
		   doublereal * rwork, integer * info, ftnlen fact_len,
		   ftnlen trans_len, ftnlen equed_len);
extern int zgbtf2_(integer * m, integer * n, integer * kl, integer * ku,
		   doublecomplex * ab, integer * ldab, integer * ipiv,
		   integer * info);
extern int zgbtrf_(integer * m, integer * n, integer * kl, integer * ku,
		   doublecomplex * ab, integer * ldab, integer * ipiv,
		   integer * info);
extern int zgbtrs_(char *trans, integer * n, integer * kl, integer * ku,
		   integer * nrhs, doublecomplex * ab, integer * ldab,
		   integer * ipiv, doublecomplex * b, integer * ldb,
		   integer * info, ftnlen trans_len);
extern int zgebak_(char *job, char *side, integer * n, integer * ilo,
		   integer * ihi, doublereal * scale, integer * m,
		   doublecomplex * v, integer * ldv, integer * info,
		   ftnlen job_len, ftnlen side_len);
extern int zgebal_(char *job, integer * n, doublecomplex * a, integer * lda,
		   integer * ilo, integer * ihi, doublereal * scale,
		   integer * info, ftnlen job_len);
extern int zgebd2_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   doublereal * d__, doublereal * e, doublecomplex * tauq,
		   doublecomplex * taup, doublecomplex * work,
		   integer * info);
extern int zgebrd_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   doublereal * d__, doublereal * e, doublecomplex * tauq,
		   doublecomplex * taup, doublecomplex * work,
		   integer * lwork, integer * info);
extern int zgecon_(char *norm, integer * n, doublecomplex * a, integer * lda,
		   doublereal * anorm, doublereal * rcond,
		   doublecomplex * work, doublereal * rwork, integer * info,
		   ftnlen norm_len);
extern int zgeequ_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   doublereal * r__, doublereal * c__, doublereal * rowcnd,
		   doublereal * colcnd, doublereal * amax, integer * info);
extern int zgees_(char *jobvs, char *sort, L_fp select, integer * n,
		  doublecomplex * a, integer * lda, integer * sdim,
		  doublecomplex * w, doublecomplex * vs, integer * ldvs,
		  doublecomplex * work, integer * lwork, doublereal * rwork,
		  logical * bwork, integer * info, ftnlen jobvs_len,
		  ftnlen sort_len);
extern int zgeesx_(char *jobvs, char *sort, L_fp select, char *sense,
		   integer * n, doublecomplex * a, integer * lda,
		   integer * sdim, doublecomplex * w, doublecomplex * vs,
		   integer * ldvs, doublereal * rconde, doublereal * rcondv,
		   doublecomplex * work, integer * lwork, doublereal * rwork,
		   logical * bwork, integer * info, ftnlen jobvs_len,
		   ftnlen sort_len, ftnlen sense_len);
extern int zgeev_(char *jobvl, char *jobvr, integer * n, doublecomplex * a,
		  integer * lda, doublecomplex * w, doublecomplex * vl,
		  integer * ldvl, doublecomplex * vr, integer * ldvr,
		  doublecomplex * work, integer * lwork, doublereal * rwork,
		  integer * info, ftnlen jobvl_len, ftnlen jobvr_len);
extern int zgeevx_(char *balanc, char *jobvl, char *jobvr, char *sense,
		   integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * w, doublecomplex * vl, integer * ldvl,
		   doublecomplex * vr, integer * ldvr, integer * ilo,
		   integer * ihi, doublereal * scale, doublereal * abnrm,
		   doublereal * rconde, doublereal * rcondv,
		   doublecomplex * work, integer * lwork, doublereal * rwork,
		   integer * info, ftnlen balanc_len, ftnlen jobvl_len,
		   ftnlen jobvr_len, ftnlen sense_len);
extern int zgegs_(char *jobvsl, char *jobvsr, integer * n, doublecomplex * a,
		  integer * lda, doublecomplex * b, integer * ldb,
		  doublecomplex * alpha, doublecomplex * beta,
		  doublecomplex * vsl, integer * ldvsl, doublecomplex * vsr,
		  integer * ldvsr, doublecomplex * work, integer * lwork,
		  doublereal * rwork, integer * info, ftnlen jobvsl_len,
		  ftnlen jobvsr_len);
extern int zgegv_(char *jobvl, char *jobvr, integer * n, doublecomplex * a,
		  integer * lda, doublecomplex * b, integer * ldb,
		  doublecomplex * alpha, doublecomplex * beta,
		  doublecomplex * vl, integer * ldvl, doublecomplex * vr,
		  integer * ldvr, doublecomplex * work, integer * lwork,
		  doublereal * rwork, integer * info, ftnlen jobvl_len,
		  ftnlen jobvr_len);
extern int zgehd2_(integer * n, integer * ilo, integer * ihi,
		   doublecomplex * a, integer * lda, doublecomplex * tau,
		   doublecomplex * work, integer * info);
extern int zgehrd_(integer * n, integer * ilo, integer * ihi,
		   doublecomplex * a, integer * lda, doublecomplex * tau,
		   doublecomplex * work, integer * lwork, integer * info);
extern int zgelq2_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * work, integer * info);
extern int zgelqf_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * work, integer * lwork,
		   integer * info);
extern int zgels_(char *trans, integer * m, integer * n, integer * nrhs,
		  doublecomplex * a, integer * lda, doublecomplex * b,
		  integer * ldb, doublecomplex * work, integer * lwork,
		  integer * info, ftnlen trans_len);
extern int zgelsd_(integer * m, integer * n, integer * nrhs,
		   doublecomplex * a, integer * lda, doublecomplex * b,
		   integer * ldb, doublereal * s, doublereal * rcond,
		   integer * rank, doublecomplex * work, integer * lwork,
		   doublereal * rwork, integer * iwork, integer * info);
extern int zgelss_(integer * m, integer * n, integer * nrhs,
		   doublecomplex * a, integer * lda, doublecomplex * b,
		   integer * ldb, doublereal * s, doublereal * rcond,
		   integer * rank, doublecomplex * work, integer * lwork,
		   doublereal * rwork, integer * info);
extern int zgelsx_(integer * m, integer * n, integer * nrhs,
		   doublecomplex * a, integer * lda, doublecomplex * b,
		   integer * ldb, integer * jpvt, doublereal * rcond,
		   integer * rank, doublecomplex * work, doublereal * rwork,
		   integer * info);
extern int zgelsy_(integer * m, integer * n, integer * nrhs,
		   doublecomplex * a, integer * lda, doublecomplex * b,
		   integer * ldb, integer * jpvt, doublereal * rcond,
		   integer * rank, doublecomplex * work, integer * lwork,
		   doublereal * rwork, integer * info);
extern int zgeql2_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * work, integer * info);
extern int zgeqlf_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * work, integer * lwork,
		   integer * info);
extern int zgeqp3_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   integer * jpvt, doublecomplex * tau, doublecomplex * work,
		   integer * lwork, doublereal * rwork, integer * info);
extern int zgeqpf_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   integer * jpvt, doublecomplex * tau, doublecomplex * work,
		   doublereal * rwork, integer * info);
extern int zgeqr2_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * work, integer * info);
extern int zgeqrf_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * work, integer * lwork,
		   integer * info);
extern int zgerfs_(char *trans, integer * n, integer * nrhs,
		   doublecomplex * a, integer * lda, doublecomplex * af,
		   integer * ldaf, integer * ipiv, doublecomplex * b,
		   integer * ldb, doublecomplex * x, integer * ldx,
		   doublereal * ferr, doublereal * berr, doublecomplex * work,
		   doublereal * rwork, integer * info, ftnlen trans_len);
extern int zgerq2_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * work, integer * info);
extern int zgerqf_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * work, integer * lwork,
		   integer * info);
extern int zgesc2_(integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * rhs, integer * ipiv, integer * jpiv,
		   doublereal * scale);
extern int zgesdd_(char *jobz, integer * m, integer * n, doublecomplex * a,
		   integer * lda, doublereal * s, doublecomplex * u,
		   integer * ldu, doublecomplex * vt, integer * ldvt,
		   doublecomplex * work, integer * lwork, doublereal * rwork,
		   integer * iwork, integer * info, ftnlen jobz_len);
extern int zgesv_(integer * n, integer * nrhs, doublecomplex * a,
		  integer * lda, integer * ipiv, doublecomplex * b,
		  integer * ldb, integer * info);
extern int zgesvd_(char *jobu, char *jobvt, integer * m, integer * n,
		   doublecomplex * a, integer * lda, doublereal * s,
		   doublecomplex * u, integer * ldu, doublecomplex * vt,
		   integer * ldvt, doublecomplex * work, integer * lwork,
		   doublereal * rwork, integer * info, ftnlen jobu_len,
		   ftnlen jobvt_len);
extern int zgesvx_(char *fact, char *trans, integer * n, integer * nrhs,
		   doublecomplex * a, integer * lda, doublecomplex * af,
		   integer * ldaf, integer * ipiv, char *equed,
		   doublereal * r__, doublereal * c__, doublecomplex * b,
		   integer * ldb, doublecomplex * x, integer * ldx,
		   doublereal * rcond, doublereal * ferr, doublereal * berr,
		   doublecomplex * work, doublereal * rwork, integer * info,
		   ftnlen fact_len, ftnlen trans_len, ftnlen equed_len);
extern int zgetc2_(integer * n, doublecomplex * a, integer * lda,
		   integer * ipiv, integer * jpiv, integer * info);
extern int zgetf2_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   integer * ipiv, integer * info);
extern int zgetrf_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   integer * ipiv, integer * info);
extern int zgetri_(integer * n, doublecomplex * a, integer * lda,
		   integer * ipiv, doublecomplex * work, integer * lwork,
		   integer * info);
extern int zgetrs_(char *trans, integer * n, integer * nrhs,
		   doublecomplex * a, integer * lda, integer * ipiv,
		   doublecomplex * b, integer * ldb, integer * info,
		   ftnlen trans_len);
extern int zggbak_(char *job, char *side, integer * n, integer * ilo,
		   integer * ihi, doublereal * lscale, doublereal * rscale,
		   integer * m, doublecomplex * v, integer * ldv,
		   integer * info, ftnlen job_len, ftnlen side_len);
extern int zggbal_(char *job, integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * b, integer * ldb, integer * ilo,
		   integer * ihi, doublereal * lscale, doublereal * rscale,
		   doublereal * work, integer * info, ftnlen job_len);
extern int zgges_(char *jobvsl, char *jobvsr, char *sort, L_fp delctg,
		  integer * n, doublecomplex * a, integer * lda,
		  doublecomplex * b, integer * ldb, integer * sdim,
		  doublecomplex * alpha, doublecomplex * beta,
		  doublecomplex * vsl, integer * ldvsl, doublecomplex * vsr,
		  integer * ldvsr, doublecomplex * work, integer * lwork,
		  doublereal * rwork, logical * bwork, integer * info,
		  ftnlen jobvsl_len, ftnlen jobvsr_len, ftnlen sort_len);
extern int zggesx_(char *jobvsl, char *jobvsr, char *sort, L_fp delctg,
		   char *sense, integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * b, integer * ldb, integer * sdim,
		   doublecomplex * alpha, doublecomplex * beta,
		   doublecomplex * vsl, integer * ldvsl, doublecomplex * vsr,
		   integer * ldvsr, doublereal * rconde, doublereal * rcondv,
		   doublecomplex * work, integer * lwork, doublereal * rwork,
		   integer * iwork, integer * liwork, logical * bwork,
		   integer * info, ftnlen jobvsl_len, ftnlen jobvsr_len,
		   ftnlen sort_len, ftnlen sense_len);
extern int zggev_(char *jobvl, char *jobvr, integer * n, doublecomplex * a,
		  integer * lda, doublecomplex * b, integer * ldb,
		  doublecomplex * alpha, doublecomplex * beta,
		  doublecomplex * vl, integer * ldvl, doublecomplex * vr,
		  integer * ldvr, doublecomplex * work, integer * lwork,
		  doublereal * rwork, integer * info, ftnlen jobvl_len,
		  ftnlen jobvr_len);
extern int zggevx_(char *balanc, char *jobvl, char *jobvr, char *sense,
		   integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * b, integer * ldb, doublecomplex * alpha,
		   doublecomplex * beta, doublecomplex * vl, integer * ldvl,
		   doublecomplex * vr, integer * ldvr, integer * ilo,
		   integer * ihi, doublereal * lscale, doublereal * rscale,
		   doublereal * abnrm, doublereal * bbnrm,
		   doublereal * rconde, doublereal * rcondv,
		   doublecomplex * work, integer * lwork, doublereal * rwork,
		   integer * iwork, logical * bwork, integer * info,
		   ftnlen balanc_len, ftnlen jobvl_len, ftnlen jobvr_len,
		   ftnlen sense_len);
extern int zggglm_(integer * n, integer * m, integer * p, doublecomplex * a,
		   integer * lda, doublecomplex * b, integer * ldb,
		   doublecomplex * d__, doublecomplex * x, doublecomplex * y,
		   doublecomplex * work, integer * lwork, integer * info);
extern int zgghrd_(char *compq, char *compz, integer * n, integer * ilo,
		   integer * ihi, doublecomplex * a, integer * lda,
		   doublecomplex * b, integer * ldb, doublecomplex * q,
		   integer * ldq, doublecomplex * z__, integer * ldz,
		   integer * info, ftnlen compq_len, ftnlen compz_len);
extern int zgglse_(integer * m, integer * n, integer * p, doublecomplex * a,
		   integer * lda, doublecomplex * b, integer * ldb,
		   doublecomplex * c__, doublecomplex * d__,
		   doublecomplex * x, doublecomplex * work, integer * lwork,
		   integer * info);
extern int zggqrf_(integer * n, integer * m, integer * p, doublecomplex * a,
		   integer * lda, doublecomplex * taua, doublecomplex * b,
		   integer * ldb, doublecomplex * taub, doublecomplex * work,
		   integer * lwork, integer * info);
extern int zggrqf_(integer * m, integer * p, integer * n, doublecomplex * a,
		   integer * lda, doublecomplex * taua, doublecomplex * b,
		   integer * ldb, doublecomplex * taub, doublecomplex * work,
		   integer * lwork, integer * info);
extern int zggsvd_(char *jobu, char *jobv, char *jobq, integer * m,
		   integer * n, integer * p, integer * k, integer * l,
		   doublecomplex * a, integer * lda, doublecomplex * b,
		   integer * ldb, doublereal * alpha, doublereal * beta,
		   doublecomplex * u, integer * ldu, doublecomplex * v,
		   integer * ldv, doublecomplex * q, integer * ldq,
		   doublecomplex * work, doublereal * rwork, integer * iwork,
		   integer * info, ftnlen jobu_len, ftnlen jobv_len,
		   ftnlen jobq_len);
extern int zggsvp_(char *jobu, char *jobv, char *jobq, integer * m,
		   integer * p, integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * b, integer * ldb, doublereal * tola,
		   doublereal * tolb, integer * k, integer * l,
		   doublecomplex * u, integer * ldu, doublecomplex * v,
		   integer * ldv, doublecomplex * q, integer * ldq,
		   integer * iwork, doublereal * rwork, doublecomplex * tau,
		   doublecomplex * work, integer * info, ftnlen jobu_len,
		   ftnlen jobv_len, ftnlen jobq_len);
extern int zgtcon_(char *norm, integer * n, doublecomplex * dl,
		   doublecomplex * d__, doublecomplex * du,
		   doublecomplex * du2, integer * ipiv, doublereal * anorm,
		   doublereal * rcond, doublecomplex * work, integer * info,
		   ftnlen norm_len);
extern int zgtrfs_(char *trans, integer * n, integer * nrhs,
		   doublecomplex * dl, doublecomplex * d__,
		   doublecomplex * du, doublecomplex * dlf,
		   doublecomplex * df, doublecomplex * duf,
		   doublecomplex * du2, integer * ipiv, doublecomplex * b,
		   integer * ldb, doublecomplex * x, integer * ldx,
		   doublereal * ferr, doublereal * berr, doublecomplex * work,
		   doublereal * rwork, integer * info, ftnlen trans_len);
extern int zgtsv_(integer * n, integer * nrhs, doublecomplex * dl,
		  doublecomplex * d__, doublecomplex * du, doublecomplex * b,
		  integer * ldb, integer * info);
extern int zgtsvx_(char *fact, char *trans, integer * n, integer * nrhs,
		   doublecomplex * dl, doublecomplex * d__,
		   doublecomplex * du, doublecomplex * dlf,
		   doublecomplex * df, doublecomplex * duf,
		   doublecomplex * du2, integer * ipiv, doublecomplex * b,
		   integer * ldb, doublecomplex * x, integer * ldx,
		   doublereal * rcond, doublereal * ferr, doublereal * berr,
		   doublecomplex * work, doublereal * rwork, integer * info,
		   ftnlen fact_len, ftnlen trans_len);
extern int zgttrf_(integer * n, doublecomplex * dl, doublecomplex * d__,
		   doublecomplex * du, doublecomplex * du2, integer * ipiv,
		   integer * info);
extern int zgttrs_(char *trans, integer * n, integer * nrhs,
		   doublecomplex * dl, doublecomplex * d__,
		   doublecomplex * du, doublecomplex * du2, integer * ipiv,
		   doublecomplex * b, integer * ldb, integer * info,
		   ftnlen trans_len);
extern int zgtts2_(integer * itrans, integer * n, integer * nrhs,
		   doublecomplex * dl, doublecomplex * d__,
		   doublecomplex * du, doublecomplex * du2, integer * ipiv,
		   doublecomplex * b, integer * ldb);
extern int zhbev_(char *jobz, char *uplo, integer * n, integer * kd,
		  doublecomplex * ab, integer * ldab, doublereal * w,
		  doublecomplex * z__, integer * ldz, doublecomplex * work,
		  doublereal * rwork, integer * info, ftnlen jobz_len,
		  ftnlen uplo_len);
extern int zhbevd_(char *jobz, char *uplo, integer * n, integer * kd,
		   doublecomplex * ab, integer * ldab, doublereal * w,
		   doublecomplex * z__, integer * ldz, doublecomplex * work,
		   integer * lwork, doublereal * rwork, integer * lrwork,
		   integer * iwork, integer * liwork, integer * info,
		   ftnlen jobz_len, ftnlen uplo_len);
extern int zhbevx_(char *jobz, char *range, char *uplo, integer * n,
		   integer * kd, doublecomplex * ab, integer * ldab,
		   doublecomplex * q, integer * ldq, doublereal * vl,
		   doublereal * vu, integer * il, integer * iu,
		   doublereal * abstol, integer * m, doublereal * w,
		   doublecomplex * z__, integer * ldz, doublecomplex * work,
		   doublereal * rwork, integer * iwork, integer * ifail,
		   integer * info, ftnlen jobz_len, ftnlen range_len,
		   ftnlen uplo_len);
extern int zhbgst_(char *vect, char *uplo, integer * n, integer * ka,
		   integer * kb, doublecomplex * ab, integer * ldab,
		   doublecomplex * bb, integer * ldbb, doublecomplex * x,
		   integer * ldx, doublecomplex * work, doublereal * rwork,
		   integer * info, ftnlen vect_len, ftnlen uplo_len);
extern int zhbgv_(char *jobz, char *uplo, integer * n, integer * ka,
		  integer * kb, doublecomplex * ab, integer * ldab,
		  doublecomplex * bb, integer * ldbb, doublereal * w,
		  doublecomplex * z__, integer * ldz, doublecomplex * work,
		  doublereal * rwork, integer * info, ftnlen jobz_len,
		  ftnlen uplo_len);
extern int zhbgvd_(char *jobz, char *uplo, integer * n, integer * ka,
		   integer * kb, doublecomplex * ab, integer * ldab,
		   doublecomplex * bb, integer * ldbb, doublereal * w,
		   doublecomplex * z__, integer * ldz, doublecomplex * work,
		   integer * lwork, doublereal * rwork, integer * lrwork,
		   integer * iwork, integer * liwork, integer * info,
		   ftnlen jobz_len, ftnlen uplo_len);
extern int zhbgvx_(char *jobz, char *range, char *uplo, integer * n,
		   integer * ka, integer * kb, doublecomplex * ab,
		   integer * ldab, doublecomplex * bb, integer * ldbb,
		   doublecomplex * q, integer * ldq, doublereal * vl,
		   doublereal * vu, integer * il, integer * iu,
		   doublereal * abstol, integer * m, doublereal * w,
		   doublecomplex * z__, integer * ldz, doublecomplex * work,
		   doublereal * rwork, integer * iwork, integer * ifail,
		   integer * info, ftnlen jobz_len, ftnlen range_len,
		   ftnlen uplo_len);
extern int zhbtrd_(char *vect, char *uplo, integer * n, integer * kd,
		   doublecomplex * ab, integer * ldab, doublereal * d__,
		   doublereal * e, doublecomplex * q, integer * ldq,
		   doublecomplex * work, integer * info, ftnlen vect_len,
		   ftnlen uplo_len);
extern int zhecon_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   integer * ipiv, doublereal * anorm, doublereal * rcond,
		   doublecomplex * work, integer * info, ftnlen uplo_len);
extern int zheev_(char *jobz, char *uplo, integer * n, doublecomplex * a,
		  integer * lda, doublereal * w, doublecomplex * work,
		  integer * lwork, doublereal * rwork, integer * info,
		  ftnlen jobz_len, ftnlen uplo_len);
extern int zheevd_(char *jobz, char *uplo, integer * n, doublecomplex * a,
		   integer * lda, doublereal * w, doublecomplex * work,
		   integer * lwork, doublereal * rwork, integer * lrwork,
		   integer * iwork, integer * liwork, integer * info,
		   ftnlen jobz_len, ftnlen uplo_len);
extern int zheevr_(char *jobz, char *range, char *uplo, integer * n,
		   doublecomplex * a, integer * lda, doublereal * vl,
		   doublereal * vu, integer * il, integer * iu,
		   doublereal * abstol, integer * m, doublereal * w,
		   doublecomplex * z__, integer * ldz, integer * isuppz,
		   doublecomplex * work, integer * lwork, doublereal * rwork,
		   integer * lrwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen jobz_len, ftnlen range_len,
		   ftnlen uplo_len);
extern int zheevx_(char *jobz, char *range, char *uplo, integer * n,
		   doublecomplex * a, integer * lda, doublereal * vl,
		   doublereal * vu, integer * il, integer * iu,
		   doublereal * abstol, integer * m, doublereal * w,
		   doublecomplex * z__, integer * ldz, doublecomplex * work,
		   integer * lwork, doublereal * rwork, integer * iwork,
		   integer * ifail, integer * info, ftnlen jobz_len,
		   ftnlen range_len, ftnlen uplo_len);
extern int zhegs2_(integer * itype, char *uplo, integer * n,
		   doublecomplex * a, integer * lda, doublecomplex * b,
		   integer * ldb, integer * info, ftnlen uplo_len);
extern int zhegst_(integer * itype, char *uplo, integer * n,
		   doublecomplex * a, integer * lda, doublecomplex * b,
		   integer * ldb, integer * info, ftnlen uplo_len);
extern int zhegv_(integer * itype, char *jobz, char *uplo, integer * n,
		  doublecomplex * a, integer * lda, doublecomplex * b,
		  integer * ldb, doublereal * w, doublecomplex * work,
		  integer * lwork, doublereal * rwork, integer * info,
		  ftnlen jobz_len, ftnlen uplo_len);
extern int zhegvd_(integer * itype, char *jobz, char *uplo, integer * n,
		   doublecomplex * a, integer * lda, doublecomplex * b,
		   integer * ldb, doublereal * w, doublecomplex * work,
		   integer * lwork, doublereal * rwork, integer * lrwork,
		   integer * iwork, integer * liwork, integer * info,
		   ftnlen jobz_len, ftnlen uplo_len);
extern int zhegvx_(integer * itype, char *jobz, char *range, char *uplo,
		   integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * b, integer * ldb, doublereal * vl,
		   doublereal * vu, integer * il, integer * iu,
		   doublereal * abstol, integer * m, doublereal * w,
		   doublecomplex * z__, integer * ldz, doublecomplex * work,
		   integer * lwork, doublereal * rwork, integer * iwork,
		   integer * ifail, integer * info, ftnlen jobz_len,
		   ftnlen range_len, ftnlen uplo_len);
extern int zherfs_(char *uplo, integer * n, integer * nrhs, doublecomplex * a,
		   integer * lda, doublecomplex * af, integer * ldaf,
		   integer * ipiv, doublecomplex * b, integer * ldb,
		   doublecomplex * x, integer * ldx, doublereal * ferr,
		   doublereal * berr, doublecomplex * work,
		   doublereal * rwork, integer * info, ftnlen uplo_len);
extern int zhesv_(char *uplo, integer * n, integer * nrhs, doublecomplex * a,
		  integer * lda, integer * ipiv, doublecomplex * b,
		  integer * ldb, doublecomplex * work, integer * lwork,
		  integer * info, ftnlen uplo_len);
extern int zhesvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   doublecomplex * a, integer * lda, doublecomplex * af,
		   integer * ldaf, integer * ipiv, doublecomplex * b,
		   integer * ldb, doublecomplex * x, integer * ldx,
		   doublereal * rcond, doublereal * ferr, doublereal * berr,
		   doublecomplex * work, integer * lwork, doublereal * rwork,
		   integer * info, ftnlen fact_len, ftnlen uplo_len);
extern int zhetd2_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   doublereal * d__, doublereal * e, doublecomplex * tau,
		   integer * info, ftnlen uplo_len);
extern int zhetf2_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   integer * ipiv, integer * info, ftnlen uplo_len);
extern int zhetrd_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   doublereal * d__, doublereal * e, doublecomplex * tau,
		   doublecomplex * work, integer * lwork, integer * info,
		   ftnlen uplo_len);
extern int zhetrf_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   integer * ipiv, doublecomplex * work, integer * lwork,
		   integer * info, ftnlen uplo_len);
extern int zhetri_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   integer * ipiv, doublecomplex * work, integer * info,
		   ftnlen uplo_len);
extern int zhetrs_(char *uplo, integer * n, integer * nrhs, doublecomplex * a,
		   integer * lda, integer * ipiv, doublecomplex * b,
		   integer * ldb, integer * info, ftnlen uplo_len);
extern int zhgeqz_(char *job, char *compq, char *compz, integer * n,
		   integer * ilo, integer * ihi, doublecomplex * a,
		   integer * lda, doublecomplex * b, integer * ldb,
		   doublecomplex * alpha, doublecomplex * beta,
		   doublecomplex * q, integer * ldq, doublecomplex * z__,
		   integer * ldz, doublecomplex * work, integer * lwork,
		   doublereal * rwork, integer * info, ftnlen job_len,
		   ftnlen compq_len, ftnlen compz_len);
extern int zhpcon_(char *uplo, integer * n, doublecomplex * ap,
		   integer * ipiv, doublereal * anorm, doublereal * rcond,
		   doublecomplex * work, integer * info, ftnlen uplo_len);
extern int zhpev_(char *jobz, char *uplo, integer * n, doublecomplex * ap,
		  doublereal * w, doublecomplex * z__, integer * ldz,
		  doublecomplex * work, doublereal * rwork, integer * info,
		  ftnlen jobz_len, ftnlen uplo_len);
extern int zhpevd_(char *jobz, char *uplo, integer * n, doublecomplex * ap,
		   doublereal * w, doublecomplex * z__, integer * ldz,
		   doublecomplex * work, integer * lwork, doublereal * rwork,
		   integer * lrwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen jobz_len, ftnlen uplo_len);
extern int zhpevx_(char *jobz, char *range, char *uplo, integer * n,
		   doublecomplex * ap, doublereal * vl, doublereal * vu,
		   integer * il, integer * iu, doublereal * abstol,
		   integer * m, doublereal * w, doublecomplex * z__,
		   integer * ldz, doublecomplex * work, doublereal * rwork,
		   integer * iwork, integer * ifail, integer * info,
		   ftnlen jobz_len, ftnlen range_len, ftnlen uplo_len);
extern int zhpgst_(integer * itype, char *uplo, integer * n,
		   doublecomplex * ap, doublecomplex * bp, integer * info,
		   ftnlen uplo_len);
extern int zhpgv_(integer * itype, char *jobz, char *uplo, integer * n,
		  doublecomplex * ap, doublecomplex * bp, doublereal * w,
		  doublecomplex * z__, integer * ldz, doublecomplex * work,
		  doublereal * rwork, integer * info, ftnlen jobz_len,
		  ftnlen uplo_len);
extern int zhpgvd_(integer * itype, char *jobz, char *uplo, integer * n,
		   doublecomplex * ap, doublecomplex * bp, doublereal * w,
		   doublecomplex * z__, integer * ldz, doublecomplex * work,
		   integer * lwork, doublereal * rwork, integer * lrwork,
		   integer * iwork, integer * liwork, integer * info,
		   ftnlen jobz_len, ftnlen uplo_len);
extern int zhpgvx_(integer * itype, char *jobz, char *range, char *uplo,
		   integer * n, doublecomplex * ap, doublecomplex * bp,
		   doublereal * vl, doublereal * vu, integer * il,
		   integer * iu, doublereal * abstol, integer * m,
		   doublereal * w, doublecomplex * z__, integer * ldz,
		   doublecomplex * work, doublereal * rwork, integer * iwork,
		   integer * ifail, integer * info, ftnlen jobz_len,
		   ftnlen range_len, ftnlen uplo_len);
extern int zhprfs_(char *uplo, integer * n, integer * nrhs,
		   doublecomplex * ap, doublecomplex * afp, integer * ipiv,
		   doublecomplex * b, integer * ldb, doublecomplex * x,
		   integer * ldx, doublereal * ferr, doublereal * berr,
		   doublecomplex * work, doublereal * rwork, integer * info,
		   ftnlen uplo_len);
extern int zhpsv_(char *uplo, integer * n, integer * nrhs, doublecomplex * ap,
		  integer * ipiv, doublecomplex * b, integer * ldb,
		  integer * info, ftnlen uplo_len);
extern int zhpsvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   doublecomplex * ap, doublecomplex * afp, integer * ipiv,
		   doublecomplex * b, integer * ldb, doublecomplex * x,
		   integer * ldx, doublereal * rcond, doublereal * ferr,
		   doublereal * berr, doublecomplex * work,
		   doublereal * rwork, integer * info, ftnlen fact_len,
		   ftnlen uplo_len);
extern int zhptrd_(char *uplo, integer * n, doublecomplex * ap,
		   doublereal * d__, doublereal * e, doublecomplex * tau,
		   integer * info, ftnlen uplo_len);
extern int zhptrf_(char *uplo, integer * n, doublecomplex * ap,
		   integer * ipiv, integer * info, ftnlen uplo_len);
extern int zhptri_(char *uplo, integer * n, doublecomplex * ap,
		   integer * ipiv, doublecomplex * work, integer * info,
		   ftnlen uplo_len);
extern int zhptrs_(char *uplo, integer * n, integer * nrhs,
		   doublecomplex * ap, integer * ipiv, doublecomplex * b,
		   integer * ldb, integer * info, ftnlen uplo_len);
extern int zhsein_(char *side, char *eigsrc, char *initv, logical * select,
		   integer * n, doublecomplex * h__, integer * ldh,
		   doublecomplex * w, doublecomplex * vl, integer * ldvl,
		   doublecomplex * vr, integer * ldvr, integer * mm,
		   integer * m, doublecomplex * work, doublereal * rwork,
		   integer * ifaill, integer * ifailr, integer * info,
		   ftnlen side_len, ftnlen eigsrc_len, ftnlen initv_len);
extern int zhseqr_(char *job, char *compz, integer * n, integer * ilo,
		   integer * ihi, doublecomplex * h__, integer * ldh,
		   doublecomplex * w, doublecomplex * z__, integer * ldz,
		   doublecomplex * work, integer * lwork, integer * info,
		   ftnlen job_len, ftnlen compz_len);
extern int zlabrd_(integer * m, integer * n, integer * nb, doublecomplex * a,
		   integer * lda, doublereal * d__, doublereal * e,
		   doublecomplex * tauq, doublecomplex * taup,
		   doublecomplex * x, integer * ldx, doublecomplex * y,
		   integer * ldy);
extern int zlacgv_(integer * n, doublecomplex * x, integer * incx);
extern int zlacon_(integer * n, doublecomplex * v, doublecomplex * x,
		   doublereal * est, integer * kase);
extern int zlacp2_(char *uplo, integer * m, integer * n, doublereal * a,
		   integer * lda, doublecomplex * b, integer * ldb,
		   ftnlen uplo_len);
extern int zlacpy_(char *uplo, integer * m, integer * n, doublecomplex * a,
		   integer * lda, doublecomplex * b, integer * ldb,
		   ftnlen uplo_len);
extern int zlacrm_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   doublereal * b, integer * ldb, doublecomplex * c__,
		   integer * ldc, doublereal * rwork);
extern int zlacrt_(integer * n, doublecomplex * cx, integer * incx,
		   doublecomplex * cy, integer * incy, doublecomplex * c__,
		   doublecomplex * s);
extern Z_f zladiv_(doublecomplex * ret_val, doublecomplex * x,
		   doublecomplex * y);
extern int zlaed0_(integer * qsiz, integer * n, doublereal * d__,
		   doublereal * e, doublecomplex * q, integer * ldq,
		   doublecomplex * qstore, integer * ldqs, doublereal * rwork,
		   integer * iwork, integer * info);
extern int zlaed7_(integer * n, integer * cutpnt, integer * qsiz,
		   integer * tlvls, integer * curlvl, integer * curpbm,
		   doublereal * d__, doublecomplex * q, integer * ldq,
		   doublereal * rho, integer * indxq, doublereal * qstore,
		   integer * qptr, integer * prmptr, integer * perm,
		   integer * givptr, integer * givcol, doublereal * givnum,
		   doublecomplex * work, doublereal * rwork, integer * iwork,
		   integer * info);
extern int zlaed8_(integer * k, integer * n, integer * qsiz,
		   doublecomplex * q, integer * ldq, doublereal * d__,
		   doublereal * rho, integer * cutpnt, doublereal * z__,
		   doublereal * dlamda, doublecomplex * q2, integer * ldq2,
		   doublereal * w, integer * indxp, integer * indx,
		   integer * indxq, integer * perm, integer * givptr,
		   integer * givcol, doublereal * givnum, integer * info);
extern int zlaein_(logical * rightv, logical * noinit, integer * n,
		   doublecomplex * h__, integer * ldh, doublecomplex * w,
		   doublecomplex * v, doublecomplex * b, integer * ldb,
		   doublereal * rwork, doublereal * eps3, doublereal * smlnum,
		   integer * info);
extern int zlaesy_(doublecomplex * a, doublecomplex * b, doublecomplex * c__,
		   doublecomplex * rt1, doublecomplex * rt2,
		   doublecomplex * evscal, doublecomplex * cs1,
		   doublecomplex * sn1);
extern int zlaev2_(doublecomplex * a, doublecomplex * b, doublecomplex * c__,
		   doublereal * rt1, doublereal * rt2, doublereal * cs1,
		   doublecomplex * sn1);
extern int zlags2_(logical * upper, doublereal * a1, doublecomplex * a2,
		   doublereal * a3, doublereal * b1, doublecomplex * b2,
		   doublereal * b3, doublereal * csu, doublecomplex * snu,
		   doublereal * csv, doublecomplex * snv, doublereal * csq,
		   doublecomplex * snq);
extern int zlagtm_(char *trans, integer * n, integer * nrhs,
		   doublereal * alpha, doublecomplex * dl,
		   doublecomplex * d__, doublecomplex * du, doublecomplex * x,
		   integer * ldx, doublereal * beta, doublecomplex * b,
		   integer * ldb, ftnlen trans_len);
extern int zlahef_(char *uplo, integer * n, integer * nb, integer * kb,
		   doublecomplex * a, integer * lda, integer * ipiv,
		   doublecomplex * w, integer * ldw, integer * info,
		   ftnlen uplo_len);
extern int zlahqr_(logical * wantt, logical * wantz, integer * n,
		   integer * ilo, integer * ihi, doublecomplex * h__,
		   integer * ldh, doublecomplex * w, integer * iloz,
		   integer * ihiz, doublecomplex * z__, integer * ldz,
		   integer * info);
extern int zlahrd_(integer * n, integer * k, integer * nb, doublecomplex * a,
		   integer * lda, doublecomplex * tau, doublecomplex * t,
		   integer * ldt, doublecomplex * y, integer * ldy);
extern int zlaic1_(integer * job, integer * j, doublecomplex * x,
		   doublereal * sest, doublecomplex * w,
		   doublecomplex * gamma, doublereal * sestpr,
		   doublecomplex * s, doublecomplex * c__);
extern int zlals0_(integer * icompq, integer * nl, integer * nr,
		   integer * sqre, integer * nrhs, doublecomplex * b,
		   integer * ldb, doublecomplex * bx, integer * ldbx,
		   integer * perm, integer * givptr, integer * givcol,
		   integer * ldgcol, doublereal * givnum, integer * ldgnum,
		   doublereal * poles, doublereal * difl, doublereal * difr,
		   doublereal * z__, integer * k, doublereal * c__,
		   doublereal * s, doublereal * rwork, integer * info);
extern int zlalsa_(integer * icompq, integer * smlsiz, integer * n,
		   integer * nrhs, doublecomplex * b, integer * ldb,
		   doublecomplex * bx, integer * ldbx, doublereal * u,
		   integer * ldu, doublereal * vt, integer * k,
		   doublereal * difl, doublereal * difr, doublereal * z__,
		   doublereal * poles, integer * givptr, integer * givcol,
		   integer * ldgcol, integer * perm, doublereal * givnum,
		   doublereal * c__, doublereal * s, doublereal * rwork,
		   integer * iwork, integer * info);
extern int zlalsd_(char *uplo, integer * smlsiz, integer * n, integer * nrhs,
		   doublereal * d__, doublereal * e, doublecomplex * b,
		   integer * ldb, doublereal * rcond, integer * rank,
		   doublecomplex * work, doublereal * rwork, integer * iwork,
		   integer * info, ftnlen uplo_len);
extern doublereal zlangb_(char *norm, integer * n, integer * kl, integer * ku,
			  doublecomplex * ab, integer * ldab,
			  doublereal * work, ftnlen norm_len);
extern doublereal zlange_(char *norm, integer * m, integer * n,
			  doublecomplex * a, integer * lda, doublereal * work,
			  ftnlen norm_len);
extern doublereal zlangt_(char *norm, integer * n, doublecomplex * dl,
			  doublecomplex * d__, doublecomplex * du,
			  ftnlen norm_len);
extern doublereal zlanhb_(char *norm, char *uplo, integer * n, integer * k,
			  doublecomplex * ab, integer * ldab,
			  doublereal * work, ftnlen norm_len,
			  ftnlen uplo_len);
extern doublereal zlanhe_(char *norm, char *uplo, integer * n,
			  doublecomplex * a, integer * lda, doublereal * work,
			  ftnlen norm_len, ftnlen uplo_len);
extern doublereal zlanhp_(char *norm, char *uplo, integer * n,
			  doublecomplex * ap, doublereal * work,
			  ftnlen norm_len, ftnlen uplo_len);
extern doublereal zlanhs_(char *norm, integer * n, doublecomplex * a,
			  integer * lda, doublereal * work, ftnlen norm_len);
extern doublereal zlanht_(char *norm, integer * n, doublereal * d__,
			  doublecomplex * e, ftnlen norm_len);
extern doublereal zlansb_(char *norm, char *uplo, integer * n, integer * k,
			  doublecomplex * ab, integer * ldab,
			  doublereal * work, ftnlen norm_len,
			  ftnlen uplo_len);
extern doublereal zlansp_(char *norm, char *uplo, integer * n,
			  doublecomplex * ap, doublereal * work,
			  ftnlen norm_len, ftnlen uplo_len);
extern doublereal zlansy_(char *norm, char *uplo, integer * n,
			  doublecomplex * a, integer * lda, doublereal * work,
			  ftnlen norm_len, ftnlen uplo_len);
extern doublereal zlantb_(char *norm, char *uplo, char *diag, integer * n,
			  integer * k, doublecomplex * ab, integer * ldab,
			  doublereal * work, ftnlen norm_len, ftnlen uplo_len,
			  ftnlen diag_len);
extern doublereal zlantp_(char *norm, char *uplo, char *diag, integer * n,
			  doublecomplex * ap, doublereal * work,
			  ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern doublereal zlantr_(char *norm, char *uplo, char *diag, integer * m,
			  integer * n, doublecomplex * a, integer * lda,
			  doublereal * work, ftnlen norm_len, ftnlen uplo_len,
			  ftnlen diag_len);
extern int zlapll_(integer * n, doublecomplex * x, integer * incx,
		   doublecomplex * y, integer * incy, doublereal * ssmin);
extern int zlapmt_(logical * forwrd, integer * m, integer * n,
		   doublecomplex * x, integer * ldx, integer * k);
extern int zlaqgb_(integer * m, integer * n, integer * kl, integer * ku,
		   doublecomplex * ab, integer * ldab, doublereal * r__,
		   doublereal * c__, doublereal * rowcnd, doublereal * colcnd,
		   doublereal * amax, char *equed, ftnlen equed_len);
extern int zlaqge_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   doublereal * r__, doublereal * c__, doublereal * rowcnd,
		   doublereal * colcnd, doublereal * amax, char *equed,
		   ftnlen equed_len);
extern int zlaqhb_(char *uplo, integer * n, integer * kd, doublecomplex * ab,
		   integer * ldab, doublereal * s, doublereal * scond,
		   doublereal * amax, char *equed, ftnlen uplo_len,
		   ftnlen equed_len);
extern int zlaqhe_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   doublereal * s, doublereal * scond, doublereal * amax,
		   char *equed, ftnlen uplo_len, ftnlen equed_len);
extern int zlaqhp_(char *uplo, integer * n, doublecomplex * ap,
		   doublereal * s, doublereal * scond, doublereal * amax,
		   char *equed, ftnlen uplo_len, ftnlen equed_len);
extern int zlaqp2_(integer * m, integer * n, integer * offset,
		   doublecomplex * a, integer * lda, integer * jpvt,
		   doublecomplex * tau, doublereal * vn1, doublereal * vn2,
		   doublecomplex * work);
extern int zlaqps_(integer * m, integer * n, integer * offset, integer * nb,
		   integer * kb, doublecomplex * a, integer * lda,
		   integer * jpvt, doublecomplex * tau, doublereal * vn1,
		   doublereal * vn2, doublecomplex * auxv, doublecomplex * f,
		   integer * ldf);
extern int zlaqsb_(char *uplo, integer * n, integer * kd, doublecomplex * ab,
		   integer * ldab, doublereal * s, doublereal * scond,
		   doublereal * amax, char *equed, ftnlen uplo_len,
		   ftnlen equed_len);
extern int zlaqsp_(char *uplo, integer * n, doublecomplex * ap,
		   doublereal * s, doublereal * scond, doublereal * amax,
		   char *equed, ftnlen uplo_len, ftnlen equed_len);
extern int zlaqsy_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   doublereal * s, doublereal * scond, doublereal * amax,
		   char *equed, ftnlen uplo_len, ftnlen equed_len);
extern int zlar1v_(integer * n, integer * b1, integer * bn,
		   doublereal * sigma, doublereal * d__, doublereal * l,
		   doublereal * ld, doublereal * lld, doublereal * gersch,
		   doublecomplex * z__, doublereal * ztz, doublereal * mingma,
		   integer * r__, integer * isuppz, doublereal * work);
extern int zlar2v_(integer * n, doublecomplex * x, doublecomplex * y,
		   doublecomplex * z__, integer * incx, doublereal * c__,
		   doublecomplex * s, integer * incc);
extern int zlarcm_(integer * m, integer * n, doublereal * a, integer * lda,
		   doublecomplex * b, integer * ldb, doublecomplex * c__,
		   integer * ldc, doublereal * rwork);
extern int zlarf_(char *side, integer * m, integer * n, doublecomplex * v,
		  integer * incv, doublecomplex * tau, doublecomplex * c__,
		  integer * ldc, doublecomplex * work, ftnlen side_len);
extern int zlarfb_(char *side, char *trans, char *direct, char *storev,
		   integer * m, integer * n, integer * k, doublecomplex * v,
		   integer * ldv, doublecomplex * t, integer * ldt,
		   doublecomplex * c__, integer * ldc, doublecomplex * work,
		   integer * ldwork, ftnlen side_len, ftnlen trans_len,
		   ftnlen direct_len, ftnlen storev_len);
extern int zlarfg_(integer * n, doublecomplex * alpha, doublecomplex * x,
		   integer * incx, doublecomplex * tau);
extern int zlarft_(char *direct, char *storev, integer * n, integer * k,
		   doublecomplex * v, integer * ldv, doublecomplex * tau,
		   doublecomplex * t, integer * ldt, ftnlen direct_len,
		   ftnlen storev_len);
extern int zlarfx_(char *side, integer * m, integer * n, doublecomplex * v,
		   doublecomplex * tau, doublecomplex * c__, integer * ldc,
		   doublecomplex * work, ftnlen side_len);
extern int zlargv_(integer * n, doublecomplex * x, integer * incx,
		   doublecomplex * y, integer * incy, doublereal * c__,
		   integer * incc);
extern int zlarnv_(integer * idist, integer * iseed, integer * n,
		   doublecomplex * x);
extern int zlarrv_(integer * n, doublereal * d__, doublereal * l,
		   integer * isplit, integer * m, doublereal * w,
		   integer * iblock, doublereal * gersch, doublereal * tol,
		   doublecomplex * z__, integer * ldz, integer * isuppz,
		   doublereal * work, integer * iwork, integer * info);
extern int zlartg_(doublecomplex * f, doublecomplex * g, doublereal * cs,
		   doublecomplex * sn, doublecomplex * r__);
extern int zlartv_(integer * n, doublecomplex * x, integer * incx,
		   doublecomplex * y, integer * incy, doublereal * c__,
		   doublecomplex * s, integer * incc);
extern int zlarz_(char *side, integer * m, integer * n, integer * l,
		  doublecomplex * v, integer * incv, doublecomplex * tau,
		  doublecomplex * c__, integer * ldc, doublecomplex * work,
		  ftnlen side_len);
extern int zlarzb_(char *side, char *trans, char *direct, char *storev,
		   integer * m, integer * n, integer * k, integer * l,
		   doublecomplex * v, integer * ldv, doublecomplex * t,
		   integer * ldt, doublecomplex * c__, integer * ldc,
		   doublecomplex * work, integer * ldwork, ftnlen side_len,
		   ftnlen trans_len, ftnlen direct_len, ftnlen storev_len);
extern int zlarzt_(char *direct, char *storev, integer * n, integer * k,
		   doublecomplex * v, integer * ldv, doublecomplex * tau,
		   doublecomplex * t, integer * ldt, ftnlen direct_len,
		   ftnlen storev_len);
extern int zlascl_(char *type__, integer * kl, integer * ku,
		   doublereal * cfrom, doublereal * cto, integer * m,
		   integer * n, doublecomplex * a, integer * lda,
		   integer * info, ftnlen type_len);
extern int zlaset_(char *uplo, integer * m, integer * n,
		   doublecomplex * alpha, doublecomplex * beta,
		   doublecomplex * a, integer * lda, ftnlen uplo_len);
extern int zlasr_(char *side, char *pivot, char *direct, integer * m,
		  integer * n, doublereal * c__, doublereal * s,
		  doublecomplex * a, integer * lda, ftnlen side_len,
		  ftnlen pivot_len, ftnlen direct_len);
extern int zlassq_(integer * n, doublecomplex * x, integer * incx,
		   doublereal * scale, doublereal * sumsq);
extern int zlaswp_(integer * n, doublecomplex * a, integer * lda,
		   integer * k1, integer * k2, integer * ipiv,
		   integer * incx);
extern int zlasyf_(char *uplo, integer * n, integer * nb, integer * kb,
		   doublecomplex * a, integer * lda, integer * ipiv,
		   doublecomplex * w, integer * ldw, integer * info,
		   ftnlen uplo_len);
extern int zlatbs_(char *uplo, char *trans, char *diag, char *normin,
		   integer * n, integer * kd, doublecomplex * ab,
		   integer * ldab, doublecomplex * x, doublereal * scale,
		   doublereal * cnorm, integer * info, ftnlen uplo_len,
		   ftnlen trans_len, ftnlen diag_len, ftnlen normin_len);
extern int zlatdf_(integer * ijob, integer * n, doublecomplex * z__,
		   integer * ldz, doublecomplex * rhs, doublereal * rdsum,
		   doublereal * rdscal, integer * ipiv, integer * jpiv);
extern int zlatps_(char *uplo, char *trans, char *diag, char *normin,
		   integer * n, doublecomplex * ap, doublecomplex * x,
		   doublereal * scale, doublereal * cnorm, integer * info,
		   ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len,
		   ftnlen normin_len);
extern int zlatrd_(char *uplo, integer * n, integer * nb, doublecomplex * a,
		   integer * lda, doublereal * e, doublecomplex * tau,
		   doublecomplex * w, integer * ldw, ftnlen uplo_len);
extern int zlatrs_(char *uplo, char *trans, char *diag, char *normin,
		   integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * x, doublereal * scale, doublereal * cnorm,
		   integer * info, ftnlen uplo_len, ftnlen trans_len,
		   ftnlen diag_len, ftnlen normin_len);
extern int zlatrz_(integer * m, integer * n, integer * l, doublecomplex * a,
		   integer * lda, doublecomplex * tau, doublecomplex * work);
extern int zlatzm_(char *side, integer * m, integer * n, doublecomplex * v,
		   integer * incv, doublecomplex * tau, doublecomplex * c1,
		   doublecomplex * c2, integer * ldc, doublecomplex * work,
		   ftnlen side_len);
extern int zlauu2_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int zlauum_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int zpbcon_(char *uplo, integer * n, integer * kd, doublecomplex * ab,
		   integer * ldab, doublereal * anorm, doublereal * rcond,
		   doublecomplex * work, doublereal * rwork, integer * info,
		   ftnlen uplo_len);
extern int zpbequ_(char *uplo, integer * n, integer * kd, doublecomplex * ab,
		   integer * ldab, doublereal * s, doublereal * scond,
		   doublereal * amax, integer * info, ftnlen uplo_len);
extern int zpbrfs_(char *uplo, integer * n, integer * kd, integer * nrhs,
		   doublecomplex * ab, integer * ldab, doublecomplex * afb,
		   integer * ldafb, doublecomplex * b, integer * ldb,
		   doublecomplex * x, integer * ldx, doublereal * ferr,
		   doublereal * berr, doublecomplex * work,
		   doublereal * rwork, integer * info, ftnlen uplo_len);
extern int zpbstf_(char *uplo, integer * n, integer * kd, doublecomplex * ab,
		   integer * ldab, integer * info, ftnlen uplo_len);
extern int zpbsv_(char *uplo, integer * n, integer * kd, integer * nrhs,
		  doublecomplex * ab, integer * ldab, doublecomplex * b,
		  integer * ldb, integer * info, ftnlen uplo_len);
extern int zpbsvx_(char *fact, char *uplo, integer * n, integer * kd,
		   integer * nrhs, doublecomplex * ab, integer * ldab,
		   doublecomplex * afb, integer * ldafb, char *equed,
		   doublereal * s, doublecomplex * b, integer * ldb,
		   doublecomplex * x, integer * ldx, doublereal * rcond,
		   doublereal * ferr, doublereal * berr, doublecomplex * work,
		   doublereal * rwork, integer * info, ftnlen fact_len,
		   ftnlen uplo_len, ftnlen equed_len);
extern int zpbtf2_(char *uplo, integer * n, integer * kd, doublecomplex * ab,
		   integer * ldab, integer * info, ftnlen uplo_len);
extern int zpbtrf_(char *uplo, integer * n, integer * kd, doublecomplex * ab,
		   integer * ldab, integer * info, ftnlen uplo_len);
extern int zpbtrs_(char *uplo, integer * n, integer * kd, integer * nrhs,
		   doublecomplex * ab, integer * ldab, doublecomplex * b,
		   integer * ldb, integer * info, ftnlen uplo_len);
extern int zpocon_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   doublereal * anorm, doublereal * rcond,
		   doublecomplex * work, doublereal * rwork, integer * info,
		   ftnlen uplo_len);
extern int zpoequ_(integer * n, doublecomplex * a, integer * lda,
		   doublereal * s, doublereal * scond, doublereal * amax,
		   integer * info);
extern int zporfs_(char *uplo, integer * n, integer * nrhs, doublecomplex * a,
		   integer * lda, doublecomplex * af, integer * ldaf,
		   doublecomplex * b, integer * ldb, doublecomplex * x,
		   integer * ldx, doublereal * ferr, doublereal * berr,
		   doublecomplex * work, doublereal * rwork, integer * info,
		   ftnlen uplo_len);
extern int zposv_(char *uplo, integer * n, integer * nrhs, doublecomplex * a,
		  integer * lda, doublecomplex * b, integer * ldb,
		  integer * info, ftnlen uplo_len);
extern int zposvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   doublecomplex * a, integer * lda, doublecomplex * af,
		   integer * ldaf, char *equed, doublereal * s,
		   doublecomplex * b, integer * ldb, doublecomplex * x,
		   integer * ldx, doublereal * rcond, doublereal * ferr,
		   doublereal * berr, doublecomplex * work,
		   doublereal * rwork, integer * info, ftnlen fact_len,
		   ftnlen uplo_len, ftnlen equed_len);
extern int zpotf2_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int zpotrf_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int zpotri_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   integer * info, ftnlen uplo_len);
extern int zpotrs_(char *uplo, integer * n, integer * nrhs, doublecomplex * a,
		   integer * lda, doublecomplex * b, integer * ldb,
		   integer * info, ftnlen uplo_len);
extern int zppcon_(char *uplo, integer * n, doublecomplex * ap,
		   doublereal * anorm, doublereal * rcond,
		   doublecomplex * work, doublereal * rwork, integer * info,
		   ftnlen uplo_len);
extern int zppequ_(char *uplo, integer * n, doublecomplex * ap,
		   doublereal * s, doublereal * scond, doublereal * amax,
		   integer * info, ftnlen uplo_len);
extern int zpprfs_(char *uplo, integer * n, integer * nrhs,
		   doublecomplex * ap, doublecomplex * afp, doublecomplex * b,
		   integer * ldb, doublecomplex * x, integer * ldx,
		   doublereal * ferr, doublereal * berr, doublecomplex * work,
		   doublereal * rwork, integer * info, ftnlen uplo_len);
extern int zppsv_(char *uplo, integer * n, integer * nrhs, doublecomplex * ap,
		  doublecomplex * b, integer * ldb, integer * info,
		  ftnlen uplo_len);
extern int zppsvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   doublecomplex * ap, doublecomplex * afp, char *equed,
		   doublereal * s, doublecomplex * b, integer * ldb,
		   doublecomplex * x, integer * ldx, doublereal * rcond,
		   doublereal * ferr, doublereal * berr, doublecomplex * work,
		   doublereal * rwork, integer * info, ftnlen fact_len,
		   ftnlen uplo_len, ftnlen equed_len);
extern int zpptrf_(char *uplo, integer * n, doublecomplex * ap,
		   integer * info, ftnlen uplo_len);
extern int zpptri_(char *uplo, integer * n, doublecomplex * ap,
		   integer * info, ftnlen uplo_len);
extern int zpptrs_(char *uplo, integer * n, integer * nrhs,
		   doublecomplex * ap, doublecomplex * b, integer * ldb,
		   integer * info, ftnlen uplo_len);
extern int zptcon_(integer * n, doublereal * d__, doublecomplex * e,
		   doublereal * anorm, doublereal * rcond, doublereal * rwork,
		   integer * info);
extern int zpteqr_(char *compz, integer * n, doublereal * d__, doublereal * e,
		   doublecomplex * z__, integer * ldz, doublereal * work,
		   integer * info, ftnlen compz_len);
extern int zptrfs_(char *uplo, integer * n, integer * nrhs, doublereal * d__,
		   doublecomplex * e, doublereal * df, doublecomplex * ef,
		   doublecomplex * b, integer * ldb, doublecomplex * x,
		   integer * ldx, doublereal * ferr, doublereal * berr,
		   doublecomplex * work, doublereal * rwork, integer * info,
		   ftnlen uplo_len);
extern int zptsv_(integer * n, integer * nrhs, doublereal * d__,
		  doublecomplex * e, doublecomplex * b, integer * ldb,
		  integer * info);
extern int zptsvx_(char *fact, integer * n, integer * nrhs, doublereal * d__,
		   doublecomplex * e, doublereal * df, doublecomplex * ef,
		   doublecomplex * b, integer * ldb, doublecomplex * x,
		   integer * ldx, doublereal * rcond, doublereal * ferr,
		   doublereal * berr, doublecomplex * work,
		   doublereal * rwork, integer * info, ftnlen fact_len);
extern int zpttrf_(integer * n, doublereal * d__, doublecomplex * e,
		   integer * info);
extern int zpttrs_(char *uplo, integer * n, integer * nrhs, doublereal * d__,
		   doublecomplex * e, doublecomplex * b, integer * ldb,
		   integer * info, ftnlen uplo_len);
extern int zptts2_(integer * iuplo, integer * n, integer * nrhs,
		   doublereal * d__, doublecomplex * e, doublecomplex * b,
		   integer * ldb);
extern int zrot_(integer * n, doublecomplex * cx, integer * incx,
		 doublecomplex * cy, integer * incy, doublereal * c__,
		 doublecomplex * s);
extern int zspcon_(char *uplo, integer * n, doublecomplex * ap,
		   integer * ipiv, doublereal * anorm, doublereal * rcond,
		   doublecomplex * work, integer * info, ftnlen uplo_len);
extern int zspmv_(char *uplo, integer * n, doublecomplex * alpha,
		  doublecomplex * ap, doublecomplex * x, integer * incx,
		  doublecomplex * beta, doublecomplex * y, integer * incy,
		  ftnlen uplo_len);
extern int zspr_(char *uplo, integer * n, doublecomplex * alpha,
		 doublecomplex * x, integer * incx, doublecomplex * ap,
		 ftnlen uplo_len);
extern int zsprfs_(char *uplo, integer * n, integer * nrhs,
		   doublecomplex * ap, doublecomplex * afp, integer * ipiv,
		   doublecomplex * b, integer * ldb, doublecomplex * x,
		   integer * ldx, doublereal * ferr, doublereal * berr,
		   doublecomplex * work, doublereal * rwork, integer * info,
		   ftnlen uplo_len);
extern int zspsv_(char *uplo, integer * n, integer * nrhs, doublecomplex * ap,
		  integer * ipiv, doublecomplex * b, integer * ldb,
		  integer * info, ftnlen uplo_len);
extern int zspsvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   doublecomplex * ap, doublecomplex * afp, integer * ipiv,
		   doublecomplex * b, integer * ldb, doublecomplex * x,
		   integer * ldx, doublereal * rcond, doublereal * ferr,
		   doublereal * berr, doublecomplex * work,
		   doublereal * rwork, integer * info, ftnlen fact_len,
		   ftnlen uplo_len);
extern int zsptrf_(char *uplo, integer * n, doublecomplex * ap,
		   integer * ipiv, integer * info, ftnlen uplo_len);
extern int zsptri_(char *uplo, integer * n, doublecomplex * ap,
		   integer * ipiv, doublecomplex * work, integer * info,
		   ftnlen uplo_len);
extern int zsptrs_(char *uplo, integer * n, integer * nrhs,
		   doublecomplex * ap, integer * ipiv, doublecomplex * b,
		   integer * ldb, integer * info, ftnlen uplo_len);
extern int zstedc_(char *compz, integer * n, doublereal * d__, doublereal * e,
		   doublecomplex * z__, integer * ldz, doublecomplex * work,
		   integer * lwork, doublereal * rwork, integer * lrwork,
		   integer * iwork, integer * liwork, integer * info,
		   ftnlen compz_len);
extern int zstegr_(char *jobz, char *range, integer * n, doublereal * d__,
		   doublereal * e, doublereal * vl, doublereal * vu,
		   integer * il, integer * iu, doublereal * abstol,
		   integer * m, doublereal * w, doublecomplex * z__,
		   integer * ldz, integer * isuppz, doublereal * work,
		   integer * lwork, integer * iwork, integer * liwork,
		   integer * info, ftnlen jobz_len, ftnlen range_len);
extern int zstein_(integer * n, doublereal * d__, doublereal * e, integer * m,
		   doublereal * w, integer * iblock, integer * isplit,
		   doublecomplex * z__, integer * ldz, doublereal * work,
		   integer * iwork, integer * ifail, integer * info);
extern int zsteqr_(char *compz, integer * n, doublereal * d__, doublereal * e,
		   doublecomplex * z__, integer * ldz, doublereal * work,
		   integer * info, ftnlen compz_len);
extern int zsycon_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   integer * ipiv, doublereal * anorm, doublereal * rcond,
		   doublecomplex * work, integer * info, ftnlen uplo_len);
extern int zsymv_(char *uplo, integer * n, doublecomplex * alpha,
		  doublecomplex * a, integer * lda, doublecomplex * x,
		  integer * incx, doublecomplex * beta, doublecomplex * y,
		  integer * incy, ftnlen uplo_len);
extern int zsyr_(char *uplo, integer * n, doublecomplex * alpha,
		 doublecomplex * x, integer * incx, doublecomplex * a,
		 integer * lda, ftnlen uplo_len);
extern int zsyrfs_(char *uplo, integer * n, integer * nrhs, doublecomplex * a,
		   integer * lda, doublecomplex * af, integer * ldaf,
		   integer * ipiv, doublecomplex * b, integer * ldb,
		   doublecomplex * x, integer * ldx, doublereal * ferr,
		   doublereal * berr, doublecomplex * work,
		   doublereal * rwork, integer * info, ftnlen uplo_len);
extern int zsysv_(char *uplo, integer * n, integer * nrhs, doublecomplex * a,
		  integer * lda, integer * ipiv, doublecomplex * b,
		  integer * ldb, doublecomplex * work, integer * lwork,
		  integer * info, ftnlen uplo_len);
extern int zsysvx_(char *fact, char *uplo, integer * n, integer * nrhs,
		   doublecomplex * a, integer * lda, doublecomplex * af,
		   integer * ldaf, integer * ipiv, doublecomplex * b,
		   integer * ldb, doublecomplex * x, integer * ldx,
		   doublereal * rcond, doublereal * ferr, doublereal * berr,
		   doublecomplex * work, integer * lwork, doublereal * rwork,
		   integer * info, ftnlen fact_len, ftnlen uplo_len);
extern int zsytf2_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   integer * ipiv, integer * info, ftnlen uplo_len);
extern int zsytrf_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   integer * ipiv, doublecomplex * work, integer * lwork,
		   integer * info, ftnlen uplo_len);
extern int zsytri_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   integer * ipiv, doublecomplex * work, integer * info,
		   ftnlen uplo_len);
extern int zsytrs_(char *uplo, integer * n, integer * nrhs, doublecomplex * a,
		   integer * lda, integer * ipiv, doublecomplex * b,
		   integer * ldb, integer * info, ftnlen uplo_len);
extern int ztbcon_(char *norm, char *uplo, char *diag, integer * n,
		   integer * kd, doublecomplex * ab, integer * ldab,
		   doublereal * rcond, doublecomplex * work,
		   doublereal * rwork, integer * info, ftnlen norm_len,
		   ftnlen uplo_len, ftnlen diag_len);
extern int ztbrfs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * kd, integer * nrhs, doublecomplex * ab,
		   integer * ldab, doublecomplex * b, integer * ldb,
		   doublecomplex * x, integer * ldx, doublereal * ferr,
		   doublereal * berr, doublecomplex * work,
		   doublereal * rwork, integer * info, ftnlen uplo_len,
		   ftnlen trans_len, ftnlen diag_len);
extern int ztbtrs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * kd, integer * nrhs, doublecomplex * ab,
		   integer * ldab, doublecomplex * b, integer * ldb,
		   integer * info, ftnlen uplo_len, ftnlen trans_len,
		   ftnlen diag_len);
extern int ztgevc_(char *side, char *howmny, logical * select, integer * n,
		   doublecomplex * a, integer * lda, doublecomplex * b,
		   integer * ldb, doublecomplex * vl, integer * ldvl,
		   doublecomplex * vr, integer * ldvr, integer * mm,
		   integer * m, doublecomplex * work, doublereal * rwork,
		   integer * info, ftnlen side_len, ftnlen howmny_len);
extern int ztgex2_(logical * wantq, logical * wantz, integer * n,
		   doublecomplex * a, integer * lda, doublecomplex * b,
		   integer * ldb, doublecomplex * q, integer * ldq,
		   doublecomplex * z__, integer * ldz, integer * j1,
		   integer * info);
extern int ztgexc_(logical * wantq, logical * wantz, integer * n,
		   doublecomplex * a, integer * lda, doublecomplex * b,
		   integer * ldb, doublecomplex * q, integer * ldq,
		   doublecomplex * z__, integer * ldz, integer * ifst,
		   integer * ilst, integer * info);
extern int ztgsen_(integer * ijob, logical * wantq, logical * wantz,
		   logical * select, integer * n, doublecomplex * a,
		   integer * lda, doublecomplex * b, integer * ldb,
		   doublecomplex * alpha, doublecomplex * beta,
		   doublecomplex * q, integer * ldq, doublecomplex * z__,
		   integer * ldz, integer * m, doublereal * pl,
		   doublereal * pr, doublereal * dif, doublecomplex * work,
		   integer * lwork, integer * iwork, integer * liwork,
		   integer * info);
extern int ztgsja_(char *jobu, char *jobv, char *jobq, integer * m,
		   integer * p, integer * n, integer * k, integer * l,
		   doublecomplex * a, integer * lda, doublecomplex * b,
		   integer * ldb, doublereal * tola, doublereal * tolb,
		   doublereal * alpha, doublereal * beta, doublecomplex * u,
		   integer * ldu, doublecomplex * v, integer * ldv,
		   doublecomplex * q, integer * ldq, doublecomplex * work,
		   integer * ncycle, integer * info, ftnlen jobu_len,
		   ftnlen jobv_len, ftnlen jobq_len);
extern int ztgsna_(char *job, char *howmny, logical * select, integer * n,
		   doublecomplex * a, integer * lda, doublecomplex * b,
		   integer * ldb, doublecomplex * vl, integer * ldvl,
		   doublecomplex * vr, integer * ldvr, doublereal * s,
		   doublereal * dif, integer * mm, integer * m,
		   doublecomplex * work, integer * lwork, integer * iwork,
		   integer * info, ftnlen job_len, ftnlen howmny_len);
extern int ztgsy2_(char *trans, integer * ijob, integer * m, integer * n,
		   doublecomplex * a, integer * lda, doublecomplex * b,
		   integer * ldb, doublecomplex * c__, integer * ldc,
		   doublecomplex * d__, integer * ldd, doublecomplex * e,
		   integer * lde, doublecomplex * f, integer * ldf,
		   doublereal * scale, doublereal * rdsum,
		   doublereal * rdscal, integer * info, ftnlen trans_len);
extern int ztgsyl_(char *trans, integer * ijob, integer * m, integer * n,
		   doublecomplex * a, integer * lda, doublecomplex * b,
		   integer * ldb, doublecomplex * c__, integer * ldc,
		   doublecomplex * d__, integer * ldd, doublecomplex * e,
		   integer * lde, doublecomplex * f, integer * ldf,
		   doublereal * scale, doublereal * dif, doublecomplex * work,
		   integer * lwork, integer * iwork, integer * info,
		   ftnlen trans_len);
extern int ztpcon_(char *norm, char *uplo, char *diag, integer * n,
		   doublecomplex * ap, doublereal * rcond,
		   doublecomplex * work, doublereal * rwork, integer * info,
		   ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern int ztprfs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * nrhs, doublecomplex * ap, doublecomplex * b,
		   integer * ldb, doublecomplex * x, integer * ldx,
		   doublereal * ferr, doublereal * berr, doublecomplex * work,
		   doublereal * rwork, integer * info, ftnlen uplo_len,
		   ftnlen trans_len, ftnlen diag_len);
extern int ztptri_(char *uplo, char *diag, integer * n, doublecomplex * ap,
		   integer * info, ftnlen uplo_len, ftnlen diag_len);
extern int ztptrs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * nrhs, doublecomplex * ap, doublecomplex * b,
		   integer * ldb, integer * info, ftnlen uplo_len,
		   ftnlen trans_len, ftnlen diag_len);
extern int ztrcon_(char *norm, char *uplo, char *diag, integer * n,
		   doublecomplex * a, integer * lda, doublereal * rcond,
		   doublecomplex * work, doublereal * rwork, integer * info,
		   ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern int ztrevc_(char *side, char *howmny, logical * select, integer * n,
		   doublecomplex * t, integer * ldt, doublecomplex * vl,
		   integer * ldvl, doublecomplex * vr, integer * ldvr,
		   integer * mm, integer * m, doublecomplex * work,
		   doublereal * rwork, integer * info, ftnlen side_len,
		   ftnlen howmny_len);
extern int ztrexc_(char *compq, integer * n, doublecomplex * t, integer * ldt,
		   doublecomplex * q, integer * ldq, integer * ifst,
		   integer * ilst, integer * info, ftnlen compq_len);
extern int ztrrfs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * nrhs, doublecomplex * a, integer * lda,
		   doublecomplex * b, integer * ldb, doublecomplex * x,
		   integer * ldx, doublereal * ferr, doublereal * berr,
		   doublecomplex * work, doublereal * rwork, integer * info,
		   ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
extern int ztrsen_(char *job, char *compq, logical * select, integer * n,
		   doublecomplex * t, integer * ldt, doublecomplex * q,
		   integer * ldq, doublecomplex * w, integer * m,
		   doublereal * s, doublereal * sep, doublecomplex * work,
		   integer * lwork, integer * info, ftnlen job_len,
		   ftnlen compq_len);
extern int ztrsna_(char *job, char *howmny, logical * select, integer * n,
		   doublecomplex * t, integer * ldt, doublecomplex * vl,
		   integer * ldvl, doublecomplex * vr, integer * ldvr,
		   doublereal * s, doublereal * sep, integer * mm,
		   integer * m, doublecomplex * work, integer * ldwork,
		   doublereal * rwork, integer * info, ftnlen job_len,
		   ftnlen howmny_len);
extern int ztrsyl_(char *trana, char *tranb, integer * isgn, integer * m,
		   integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * b, integer * ldb, doublecomplex * c__,
		   integer * ldc, doublereal * scale, integer * info,
		   ftnlen trana_len, ftnlen tranb_len);
extern int ztrti2_(char *uplo, char *diag, integer * n, doublecomplex * a,
		   integer * lda, integer * info, ftnlen uplo_len,
		   ftnlen diag_len);
extern int ztrtri_(char *uplo, char *diag, integer * n, doublecomplex * a,
		   integer * lda, integer * info, ftnlen uplo_len,
		   ftnlen diag_len);
extern int ztrtrs_(char *uplo, char *trans, char *diag, integer * n,
		   integer * nrhs, doublecomplex * a, integer * lda,
		   doublecomplex * b, integer * ldb, integer * info,
		   ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
extern int ztzrqf_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * tau, integer * info);
extern int ztzrzf_(integer * m, integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * work, integer * lwork,
		   integer * info);
extern int zung2l_(integer * m, integer * n, integer * k, doublecomplex * a,
		   integer * lda, doublecomplex * tau, doublecomplex * work,
		   integer * info);
extern int zung2r_(integer * m, integer * n, integer * k, doublecomplex * a,
		   integer * lda, doublecomplex * tau, doublecomplex * work,
		   integer * info);
extern int zungbr_(char *vect, integer * m, integer * n, integer * k,
		   doublecomplex * a, integer * lda, doublecomplex * tau,
		   doublecomplex * work, integer * lwork, integer * info,
		   ftnlen vect_len);
extern int zunghr_(integer * n, integer * ilo, integer * ihi,
		   doublecomplex * a, integer * lda, doublecomplex * tau,
		   doublecomplex * work, integer * lwork, integer * info);
extern int zungl2_(integer * m, integer * n, integer * k, doublecomplex * a,
		   integer * lda, doublecomplex * tau, doublecomplex * work,
		   integer * info);
extern int zunglq_(integer * m, integer * n, integer * k, doublecomplex * a,
		   integer * lda, doublecomplex * tau, doublecomplex * work,
		   integer * lwork, integer * info);
extern int zungql_(integer * m, integer * n, integer * k, doublecomplex * a,
		   integer * lda, doublecomplex * tau, doublecomplex * work,
		   integer * lwork, integer * info);
extern int zungqr_(integer * m, integer * n, integer * k, doublecomplex * a,
		   integer * lda, doublecomplex * tau, doublecomplex * work,
		   integer * lwork, integer * info);
extern int zungr2_(integer * m, integer * n, integer * k, doublecomplex * a,
		   integer * lda, doublecomplex * tau, doublecomplex * work,
		   integer * info);
extern int zungrq_(integer * m, integer * n, integer * k, doublecomplex * a,
		   integer * lda, doublecomplex * tau, doublecomplex * work,
		   integer * lwork, integer * info);
extern int zungtr_(char *uplo, integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * work, integer * lwork,
		   integer * info, ftnlen uplo_len);
extern int zunm2l_(char *side, char *trans, integer * m, integer * n,
		   integer * k, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * c__, integer * ldc,
		   doublecomplex * work, integer * info, ftnlen side_len,
		   ftnlen trans_len);
extern int zunm2r_(char *side, char *trans, integer * m, integer * n,
		   integer * k, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * c__, integer * ldc,
		   doublecomplex * work, integer * info, ftnlen side_len,
		   ftnlen trans_len);
extern int zunmbr_(char *vect, char *side, char *trans, integer * m,
		   integer * n, integer * k, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * c__, integer * ldc,
		   doublecomplex * work, integer * lwork, integer * info,
		   ftnlen vect_len, ftnlen side_len, ftnlen trans_len);
extern int zunmhr_(char *side, char *trans, integer * m, integer * n,
		   integer * ilo, integer * ihi, doublecomplex * a,
		   integer * lda, doublecomplex * tau, doublecomplex * c__,
		   integer * ldc, doublecomplex * work, integer * lwork,
		   integer * info, ftnlen side_len, ftnlen trans_len);
extern int zunml2_(char *side, char *trans, integer * m, integer * n,
		   integer * k, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * c__, integer * ldc,
		   doublecomplex * work, integer * info, ftnlen side_len,
		   ftnlen trans_len);
extern int zunmlq_(char *side, char *trans, integer * m, integer * n,
		   integer * k, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * c__, integer * ldc,
		   doublecomplex * work, integer * lwork, integer * info,
		   ftnlen side_len, ftnlen trans_len);
extern int zunmql_(char *side, char *trans, integer * m, integer * n,
		   integer * k, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * c__, integer * ldc,
		   doublecomplex * work, integer * lwork, integer * info,
		   ftnlen side_len, ftnlen trans_len);
extern int zunmqr_(char *side, char *trans, integer * m, integer * n,
		   integer * k, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * c__, integer * ldc,
		   doublecomplex * work, integer * lwork, integer * info,
		   ftnlen side_len, ftnlen trans_len);
extern int zunmr2_(char *side, char *trans, integer * m, integer * n,
		   integer * k, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * c__, integer * ldc,
		   doublecomplex * work, integer * info, ftnlen side_len,
		   ftnlen trans_len);
extern int zunmr3_(char *side, char *trans, integer * m, integer * n,
		   integer * k, integer * l, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * c__, integer * ldc,
		   doublecomplex * work, integer * info, ftnlen side_len,
		   ftnlen trans_len);
extern int zunmrq_(char *side, char *trans, integer * m, integer * n,
		   integer * k, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * c__, integer * ldc,
		   doublecomplex * work, integer * lwork, integer * info,
		   ftnlen side_len, ftnlen trans_len);
extern int zunmrz_(char *side, char *trans, integer * m, integer * n,
		   integer * k, integer * l, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * c__, integer * ldc,
		   doublecomplex * work, integer * lwork, integer * info,
		   ftnlen side_len, ftnlen trans_len);
extern int zunmtr_(char *side, char *uplo, char *trans, integer * m,
		   integer * n, doublecomplex * a, integer * lda,
		   doublecomplex * tau, doublecomplex * c__, integer * ldc,
		   doublecomplex * work, integer * lwork, integer * info,
		   ftnlen side_len, ftnlen uplo_len, ftnlen trans_len);
extern int zupgtr_(char *uplo, integer * n, doublecomplex * ap,
		   doublecomplex * tau, doublecomplex * q, integer * ldq,
		   doublecomplex * work, integer * info, ftnlen uplo_len);
extern int zupmtr_(char *side, char *uplo, char *trans, integer * m,
		   integer * n, doublecomplex * ap, doublecomplex * tau,
		   doublecomplex * c__, integer * ldc, doublecomplex * work,
		   integer * info, ftnlen side_len, ftnlen uplo_len,
		   ftnlen trans_len);

#endif

