extern int sl_init__(integer *ictxt, integer *nprow, integer *npcol);
extern int ccdotc_(integer *n, complex *dotc, complex *x, integer *incx, complex *y, integer *incy);
extern int ccdotu_(integer *n, complex *dotu, complex *x, integer *incx, complex *y, integer *incy);
extern int cdbtf2_(integer *m, integer *n, integer *kl, integer *ku, complex *ab, integer *ldab, integer *info);
extern int cdbtrf_(integer *m, integer *n, integer *kl, integer *ku, complex *ab, integer *ldab, integer *info);
extern int cdttrf_(integer *n, complex *dl, complex *d__, complex *du, integer *info);
extern int cdttrsv_(char *uplo, char *trans, integer *n, integer *nrhs, complex *dl, complex *d__, complex *du, complex *b, integer *ldb, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int chk1mat_(integer *ma, integer *mapos0, integer *na, integer *napos0, integer *ia, integer *ja, integer *desca, integer *descapos0, integer *info);
extern int clahqr2_(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 clamsh_(complex *s, integer *lds, integer *nbulge, integer *jblk, complex *h__, integer *ldh, integer *n, real *ulp);
extern int clanv2_(complex *a, complex *b, complex *c__, complex *d__, complex *rt1, complex *rt2, real *cs, complex *sn);
extern int claref_(char *type__, complex *a, integer *lda, logical *wantz, complex *z__, integer *ldz, logical *block, integer *irow1, integer *icol1, integer *istart, integer *istop, integer *itmp1, integer *itmp2, integer *liloz, integer *lihiz, complex *vecs, complex *v2, complex *v3, complex *t1, complex *t2, complex *t3, ftnlen type_len);
extern int clatcpy_(char *uplo, integer *m, integer *n, complex *a, integer *lda, complex *b, integer *ldb, ftnlen uplo_len);
extern int cmatadd_(integer *m, integer *n, complex *alpha, complex *a, integer *lda, complex *beta, complex *c__, integer *ldc);
extern int cpttrsv_(char *uplo, char *trans, integer *n, integer *nrhs, real *d__, complex *e, complex *b, integer *ldb, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int csteqr2_(char *compz, integer *n, real *d__, real *e, complex *z__, integer *ldz, integer *nr, real *work, integer *info, ftnlen compz_len);
extern int ctrmvt_(char *uplo, integer *n, complex *t, integer *ldt, complex *x, integer *incx, complex *y, integer *incy, complex *w, integer *incw, complex *z__, integer *incz, ftnlen uplo_len);
extern int ddbtf2_(integer *m, integer *n, integer *kl, integer *ku, doublereal *ab, integer *ldab, integer *info);
extern int ddbtrf_(integer *m, integer *n, integer *kl, integer *ku, doublereal *ab, integer *ldab, integer *info);
extern int dddot_(integer *n, doublereal *dot, doublereal *x, integer *incx, doublereal *y, integer *incy);
extern int ddttrf_(integer *n, doublereal *dl, doublereal *d__, doublereal *du, integer *info);
extern int ddttrsv_(char *uplo, char *trans, integer *n, integer *nrhs, doublereal *dl, doublereal *d__, doublereal *du, doublereal *b, integer *ldb, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int desc_convert__(integer *desc_in__, integer *desc_out__, integer *info);
extern int descinit_(integer *desc, integer *m, integer *n, integer *mb, integer *nb, integer *irsrc, integer *icsrc, integer *ictxt, integer *lld, integer *info);
extern int descset_(integer *desc, integer *m, integer *n, integer *mb, integer *nb, integer *irsrc, integer *icsrc, integer *ictxt, integer *lld);
extern int dlamsh_(doublereal *s, integer *lds, integer *nbulge, integer *jblk, doublereal *h__, integer *ldh, integer *n, doublereal *ulp);
extern int dlapst_(char *id, integer *n, doublereal *d__, integer *indx, integer *info, ftnlen id_len);
extern int dlaref_(char *type__, doublereal *a, integer *lda, logical *wantz, doublereal *z__, integer *ldz, logical *block, integer *irow1, integer *icol1, integer *istart, integer *istop, integer *itmp1, integer *itmp2, integer *liloz, integer *lihiz, doublereal *vecs, doublereal *v2, doublereal *v3, doublereal *t1, doublereal *t2, doublereal *t3, ftnlen type_len);
extern int dlasorte_(doublereal *s, integer *lds, integer *j, doublereal *out, integer *info);
extern int dlasrt2_(char *id, integer *n, doublereal *d__, integer *key, integer *info, ftnlen id_len);
extern int dlatcpy_(char *uplo, integer *m, integer *n, doublereal *a, integer *lda, doublereal *b, integer *ldb, ftnlen uplo_len);
extern int dmatadd_(integer *m, integer *n, doublereal *alpha, doublereal *a, integer *lda, doublereal *beta, doublereal *c__, integer *ldc);
extern int dpttrsv_(char *trans, integer *n, integer *nrhs, doublereal *d__, doublereal *e, doublereal *b, integer *ldb, integer *info, ftnlen trans_len);
extern doublereal dsasum_(integer *n, real *x, integer *incx);
extern doublereal dscasum_(integer *n, complex *x, integer *incx);
extern doublereal dscnrm2_(integer *n, complex *x, integer *incx);
extern doublereal dsnrm2_(integer *n, real *x, integer *incx);
extern int dstein2_(integer *n, doublereal *d__, doublereal *e, integer *m, doublereal *w, integer *iblock, integer *isplit, doublereal *orfac, doublereal *z__, integer *ldz, doublereal *work, integer *iwork, integer *ifail, integer *info);
extern int dsteqr2_(char *compz, integer *n, doublereal *d__, doublereal *e, doublereal *z__, integer *ldz, integer *nr, doublereal *work, integer *info, ftnlen compz_len);
extern int dtrmvt_(char *uplo, integer *n, doublereal *t, integer *ldt, doublereal *x, integer *incx, doublereal *y, integer *incy, doublereal *w, integer *incw, doublereal *z__, integer *incz, ftnlen uplo_len);
extern integer iceil_(integer *inum, integer *idenom);
extern int ilacpy_(char *uplo, integer *m, integer *n, integer *a, integer *lda, integer *b, integer *ldb, ftnlen uplo_len);
extern integer ilcm_(integer *m, integer *n);
extern integer indxg2l_(integer *indxglob, integer *nb, integer *iproc, integer *isrcproc, integer *nprocs);
extern integer indxg2p_(integer *indxglob, integer *nb, integer *iproc, integer *isrcproc, integer *nprocs);
extern integer indxl2g_(integer *indxloc, integer *nb, integer *iproc, integer *isrcproc, integer *nprocs);
extern int infog1l_(integer *gindx, integer *nb, integer *nprocs, integer *myroc, integer *isrcproc, integer *lindx, integer *rocsrc);
extern int infog2l_(integer *grindx, integer *gcindx, integer *desc, integer *nprow, integer *npcol, integer *myrow, integer *mycol, integer *lrindx, integer *lcindx, integer *rsrc, integer *csrc);
extern integer npreroc_(integer *n, integer *nb, integer *iproc, integer *isrcproc, integer *nprocs);
extern integer numroc_(integer *n, integer *nb, integer *iproc, integer *isrcproc, integer *nprocs);
extern int pcchekpad_(integer *ictxt, char *mess, integer *m, integer *n, complex *a, integer *lda, integer *ipre, integer *ipost, complex *chkval, ftnlen mess_len);
extern int pccol2row_(integer *ictxt, integer *m, integer *n, integer *nb, complex *vs, integer *ldvs, complex *vd, integer *ldvd, integer *rsrc, integer *csrc, integer *rdest, integer *cdest, complex *work);
extern int pcdbsv_(integer *n, integer *bwl, integer *bwu, integer *nrhs, complex *a, integer *ja, integer *desca, complex *b, integer *ib, integer *descb, complex *work, integer *lwork, integer *info);
extern int pcdbtrf_(integer *n, integer *bwl, integer *bwu, complex *a, integer *ja, integer *desca, complex *af, integer *laf, complex *work, integer *lwork, integer *info);
extern int pcdbtrs_(char *trans, integer *n, integer *bwl, integer *bwu, integer *nrhs, complex *a, integer *ja, integer *desca, complex *b, integer *ib, integer *descb, complex *af, integer *laf, complex *work, integer *lwork, integer *info, ftnlen trans_len);
extern int pcdbtrsv_(char *uplo, char *trans, integer *n, integer *bwl, integer *bwu, integer *nrhs, complex *a, integer *ja, integer *desca, complex *b, integer *ib, integer *descb, complex *af, integer *laf, complex *work, integer *lwork, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int pcdtsv_(integer *n, integer *nrhs, complex *dl, complex *d__, complex *du, integer *ja, integer *desca, complex *b, integer *ib, integer *descb, complex *work, integer *lwork, integer *info);
extern int pcdttrf_(integer *n, complex *dl, complex *d__, complex *du, integer *ja, integer *desca, complex *af, integer *laf, complex *work, integer *lwork, integer *info);
extern int pcdttrs_(char *trans, integer *n, integer *nrhs, complex *dl, complex *d__, complex *du, integer *ja, integer *desca, complex *b, integer *ib, integer *descb, complex *af, integer *laf, complex *work, integer *lwork, integer *info, ftnlen trans_len);
extern int pcdttrsv_(char *uplo, char *trans, integer *n, integer *nrhs, complex *dl, complex *d__, complex *du, integer *ja, integer *desca, complex *b, integer *ib, integer *descb, complex *af, integer *laf, complex *work, integer *lwork, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int pcelget_(char *scope, char *top, complex *alpha, complex *a, integer *ia, integer *ja, integer *desca, ftnlen scope_len, ftnlen top_len);
extern int pcelset_(complex *a, integer *ia, integer *ja, integer *desca, complex *alpha);
extern int pcelset2_(complex *alpha, complex *a, integer *ia, integer *ja, integer *desca, complex *beta);
extern int pcfillpad_(integer *ictxt, integer *m, integer *n, complex *a, integer *lda, integer *ipre, integer *ipost, complex *chkval);
extern int pcgbsv_(integer *n, integer *bwl, integer *bwu, integer *nrhs, complex *a, integer *ja, integer *desca, integer *ipiv, complex *b, integer *ib, integer *descb, complex *work, integer *lwork, integer *info);
extern int pcgbtrf_(integer *n, integer *bwl, integer *bwu, complex *a, integer *ja, integer *desca, integer *ipiv, complex *af, integer *laf, complex *work, integer *lwork, integer *info);
extern int pcgbtrs_(char *trans, integer *n, integer *bwl, integer *bwu, integer *nrhs, complex *a, integer *ja, integer *desca, integer *ipiv, complex *b, integer *ib, integer *descb, complex *af, integer *laf, complex *work, integer *lwork, integer *info, ftnlen trans_len);
extern int pcgebd2_(integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *d__, real *e, complex *tauq, complex *taup, complex *work, integer *lwork, integer *info);
extern int pcgebrd_(integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *d__, real *e, complex *tauq, complex *taup, complex *work, integer *lwork, integer *info);
extern int pcgecon_(char *norm, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *anorm, real *rcond, complex *work, integer *lwork, real *rwork, integer *lrwork, integer *info, ftnlen norm_len);
extern int pcgeequ_(integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *r__, real *c__, real *rowcnd, real *colcnd, real *amax, integer *info);
extern int pcgehd2_(integer *n, integer *ilo, integer *ihi, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcgehrd_(integer *n, integer *ilo, integer *ihi, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcgelq2_(integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcgelqf_(integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcgels_(char *trans, integer *m, integer *n, integer *nrhs, complex *a, integer *ia, integer *ja, integer *desca, complex *b, integer *ib, integer *jb, integer *descb, complex *work, integer *lwork, integer *info, ftnlen trans_len);
extern int pcgeql2_(integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcgeqlf_(integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcgeqpf_(integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, integer *ipiv, complex *tau, complex *work, integer *lwork, real *rwork, integer *lrwork, integer *info);
extern int pcgeqr2_(integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcgeqrf_(integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcgerfs_(char *trans, integer *n, integer *nrhs, complex *a, integer *ia, integer *ja, integer *desca, complex *af, integer *iaf, integer *jaf, integer *descaf, integer *ipiv, complex *b, integer *ib, integer *jb, integer *descb, complex *x, integer *ix, integer *jx, integer *descx, real *ferr, real *berr, complex *work, integer *lwork, real *rwork, integer *lrwork, integer *info, ftnlen trans_len);
extern int pcgerq2_(integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcgerqf_(integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcgesv_(integer *n, integer *nrhs, complex *a, integer *ia, integer *ja, integer *desca, integer *ipiv, complex *b, integer *ib, integer *jb, integer *descb, integer *info);
extern int pcgesvd_(char *jobu, char *jobvt, integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *s, complex *u, integer *iu, integer *ju, integer *descu, complex *vt, integer *ivt, integer *jvt, integer *descvt, complex *work, integer *lwork, real *rwork, integer *info, ftnlen jobu_len, ftnlen jobvt_len);
extern int pcgesvx_(char *fact, char *trans, integer *n, integer *nrhs, complex *a, integer *ia, integer *ja, integer *desca, complex *af, integer *iaf, integer *jaf, integer *descaf, integer *ipiv, char *equed, real *r__, real *c__, complex *b, integer *ib, integer *jb, integer *descb, complex *x, integer *ix, integer *jx, integer *descx, real *rcond, real *ferr, real *berr, complex *work, integer *lwork, real *rwork, integer *lrwork, integer *info, ftnlen fact_len, ftnlen trans_len, ftnlen equed_len);
extern int pcgetf2_(integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, integer *ipiv, integer *info);
extern int pcgetrf_(integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, integer *ipiv, integer *info);
extern int pcgetri_(integer *n, complex *a, integer *ia, integer *ja, integer *desca, integer *ipiv, complex *work, integer *lwork, integer *iwork, integer *liwork, integer *info);
extern int pcgetrs_(char *trans, integer *n, integer *nrhs, complex *a, integer *ia, integer *ja, integer *desca, integer *ipiv, complex *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen trans_len);
extern int pcggqrf_(integer *n, integer *m, integer *p, complex *a, integer *ia, integer *ja, integer *desca, complex *taua, complex *b, integer *ib, integer *jb, integer *descb, complex *taub, complex *work, integer *lwork, integer *info);
extern int pcggrqf_(integer *m, integer *p, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *taua, complex *b, integer *ib, integer *jb, integer *descb, complex *taub, complex *work, integer *lwork, integer *info);
extern int pcheev_(char *jobz, char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *w, complex *z__, integer *iz, integer *jz, integer *descz, complex *work, integer *lwork, real *rwork, integer *lrwork, integer *info, ftnlen jobz_len, ftnlen uplo_len);
extern int pcheevd_(char *jobz, char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *w, complex *z__, integer *iz, integer *jz, integer *descz, complex *work, integer *lwork, real *rwork, integer *lrwork, integer *iwork, integer *liwork, integer *info, ftnlen jobz_len, ftnlen uplo_len);
extern int pcheevx_(char *jobz, char *range, char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *vl, real *vu, integer *il, integer *iu, real *abstol, integer *m, integer *nz, real *w, real *orfac, complex *z__, integer *iz, integer *jz, integer *descz, complex *work, integer *lwork, real *rwork, integer *lrwork, integer *iwork, integer *liwork, integer *ifail, integer *iclustr, real *gap, integer *info, ftnlen jobz_len, ftnlen range_len, ftnlen uplo_len);
extern int pchegs2_(integer *ibtype, char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen uplo_len);
extern int pchegst_(integer *ibtype, char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *b, integer *ib, integer *jb, integer *descb, real *scale, integer *info, ftnlen uplo_len);
extern int pchegvx_(integer *ibtype, char *jobz, char *range, char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *b, integer *ib, integer *jb, integer *descb, real *vl, real *vu, integer *il, integer *iu, real *abstol, integer *m, integer *nz, real *w, real *orfac, complex *z__, integer *iz, integer *jz, integer *descz, complex *work, integer *lwork, real *rwork, integer *lrwork, integer *iwork, integer *liwork, integer *ifail, integer *iclustr, real *gap, integer *info, ftnlen jobz_len, ftnlen range_len, ftnlen uplo_len);
extern int pchengst_(integer *ibtype, char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *b, integer *ib, integer *jb, integer *descb, real *scale, complex *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pchentrd_(char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *d__, real *e, complex *tau, complex *work, integer *lwork, real *rwork, integer *lrwork, integer *info, ftnlen uplo_len);
extern int pchetd2_(char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *d__, real *e, complex *tau, complex *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pchetrd_(char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *d__, real *e, complex *tau, complex *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pchettrd_(char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *d__, real *e, complex *tau, complex *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pchk1mat_(integer *ma, integer *mapos0, integer *na, integer *napos0, integer *ia, integer *ja, integer *desca, integer *descapos0, integer *nextra, integer *ex, integer *expos, integer *info);
extern int pchk2mat_(integer *ma, integer *mapos0, integer *na, integer *napos0, integer *ia, integer *ja, integer *desca, integer *descapos0, integer *mb, integer *mbpos0, integer *nb, integer *nbpos0, integer *ib, integer *jb, integer *descb, integer *descbpos0, integer *nextra, integer *ex, integer *expos, integer *info);
extern int globchk_(integer *ictxt, integer *n, integer *x, integer *ldx, integer *iwork, integer *info);
extern int pclabrd_(integer *m, integer *n, integer *nb, complex *a, integer *ia, integer *ja, integer *desca, real *d__, real *e, complex *tauq, complex *taup, complex *x, integer *ix, integer *jx, integer *descx, complex *y, integer *iy, integer *jy, integer *descy, complex *work);
extern int pclacgv_(integer *n, complex *x, integer *ix, integer *jx, integer *descx, integer *incx);
extern int pclacon_(integer *n, complex *v, integer *iv, integer *jv, integer *descv, complex *x, integer *ix, integer *jx, integer *descx, real *est, integer *kase);
extern int pclaconsb_(complex *a, integer *desca, integer *i__, integer *l, integer *m, complex *h44, complex *h33, complex *h43h34, complex *buf, integer *lwork);
extern int pclacp2_(char *uplo, integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *b, integer *ib, integer *jb, integer *descb, ftnlen uplo_len);
extern int pclacp3_(integer *m, integer *i__, complex *a, integer *desca, complex *b, integer *ldb, integer *ii, integer *jj, integer *rev);
extern int pclacpy_(char *uplo, integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *b, integer *ib, integer *jb, integer *descb, ftnlen uplo_len);
extern int pclaevswp_(integer *n, real *zin, integer *ldzi, complex *z__, integer *iz, integer *jz, integer *descz, integer *nvs, integer *key, real *rwork, integer *lrwork);
extern int pclahqr_(logical *wantt, logical *wantz, integer *n, integer *ilo, integer *ihi, complex *a, integer *desca, complex *w, integer *iloz, integer *ihiz, complex *z__, integer *descz, complex *work, integer *lwork, integer *iwork, integer *ilwork, integer *info);
extern int pclahrd_(integer *n, integer *k, integer *nb, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *t, complex *y, integer *iy, integer *jy, integer *descy, complex *work);
extern int pclamr1d_(integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *b, integer *ib, integer *jb, integer *descb);
extern E_f pclange_(char *norm, integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *work, ftnlen norm_len);
extern E_f pclanhe_(char *norm, char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *work, ftnlen norm_len, ftnlen uplo_len);
extern E_f pclanhs_(char *norm, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *work, ftnlen norm_len);
extern E_f pclansy_(char *norm, char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *work, ftnlen norm_len, ftnlen uplo_len);
extern E_f pclantr_(char *norm, char *uplo, char *diag, integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *work, ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern int pclapiv_(char *direc, char *rowcol, char *pivroc, integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, integer *ipiv, integer *ip, integer *jp, integer *descip, integer *iwork, ftnlen direc_len, ftnlen rowcol_len, ftnlen pivroc_len);
extern int pclaprnt_(integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, integer *irprnt, integer *icprnt, char *cmatnm, integer *nout, complex *work, ftnlen cmatnm_len);
extern int pclapv2_(char *direc, char *rowcol, integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, integer *ipiv, integer *ip, integer *jp, integer *descip, ftnlen direc_len, ftnlen rowcol_len);
extern int pclaqge_(integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *r__, real *c__, real *rowcnd, real *colcnd, real *amax, char *equed, ftnlen equed_len);
extern int pclaqsy_(char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *sr, real *sc, real *scond, real *amax, char *equed, ftnlen uplo_len, ftnlen equed_len);
extern int pclaread_(char *filnam, complex *a, integer *desca, integer *irread, integer *icread, complex *work, ftnlen filnam_len);
extern int pclarf_(char *side, integer *m, integer *n, complex *v, integer *iv, integer *jv, integer *descv, integer *incv, complex *tau, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, ftnlen side_len);
extern int pclarfb_(char *side, char *trans, char *direct, char *storev, integer *m, integer *n, integer *k, complex *v, integer *iv, integer *jv, integer *descv, complex *t, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, ftnlen side_len, ftnlen trans_len, ftnlen direct_len, ftnlen storev_len);
extern int pclarfc_(char *side, integer *m, integer *n, complex *v, integer *iv, integer *jv, integer *descv, integer *incv, complex *tau, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, ftnlen side_len);
extern int pclarfg_(integer *n, complex *alpha, integer *iax, integer *jax, complex *x, integer *ix, integer *jx, integer *descx, integer *incx, complex *tau);
extern int pclarft_(char *direct, char *storev, integer *n, integer *k, complex *v, integer *iv, integer *jv, integer *descv, complex *tau, complex *t, complex *work, ftnlen direct_len, ftnlen storev_len);
extern int pclarz_(char *side, integer *m, integer *n, integer *l, complex *v, integer *iv, integer *jv, integer *descv, integer *incv, complex *tau, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, ftnlen side_len);
extern int pclarzb_(char *side, char *trans, char *direct, char *storev, integer *m, integer *n, integer *k, integer *l, complex *v, integer *iv, integer *jv, integer *descv, complex *t, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, ftnlen side_len, ftnlen trans_len, ftnlen direct_len, ftnlen storev_len);
extern int pclarzc_(char *side, integer *m, integer *n, integer *l, complex *v, integer *iv, integer *jv, integer *descv, integer *incv, complex *tau, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, ftnlen side_len);
extern int pclarzt_(char *direct, char *storev, integer *n, integer *k, complex *v, integer *iv, integer *jv, integer *descv, complex *tau, complex *t, complex *work, ftnlen direct_len, ftnlen storev_len);
extern int pclascl_(char *type__, real *cfrom, real *cto, integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen type_len);
extern int pclase2_(char *uplo, integer *m, integer *n, complex *alpha, complex *beta, complex *a, integer *ia, integer *ja, integer *desca, ftnlen uplo_len);
extern int pclaset_(char *uplo, integer *m, integer *n, complex *alpha, complex *beta, complex *a, integer *ia, integer *ja, integer *desca, ftnlen uplo_len);
extern int pclasmsub_(complex *a, integer *desca, integer *i__, integer *l, integer *k, real *smlnum, complex *buf, integer *lwork);
extern int pclassq_(integer *n, complex *x, integer *ix, integer *jx, integer *descx, integer *incx, real *scale, real *sumsq);
extern int pclaswp_(char *direc, char *rowcol, integer *n, complex *a, integer *ia, integer *ja, integer *desca, integer *k1, integer *k2, integer *ipiv, ftnlen direc_len, ftnlen rowcol_len);
extern C_f pclatra_(complex * ret_val, integer *n, complex *a, integer *ia, integer *ja, integer *desca);
extern int pclatrd_(char *uplo, integer *n, integer *nb, complex *a, integer *ia, integer *ja, integer *desca, real *d__, real *e, complex *tau, complex *w, integer *iw, integer *jw, integer *descw, complex *work, ftnlen uplo_len);
extern int pclatrs_(char *uplo, char *trans, char *diag, char *normin, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *x, integer *ix, integer *jx, integer *descx, real *scale, real *cnorm, complex *work, ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len, ftnlen normin_len);
extern int pclatrz_(integer *m, integer *n, integer *l, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work);
extern int pclattrs_(char *uplo, char *trans, char *diag, char *normin, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *x, integer *ix, integer *jx, integer *descx, real *scale, real *cnorm, integer *info, ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len, ftnlen normin_len);
extern int pclauu2_(char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, ftnlen uplo_len);
extern int pclauum_(char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, ftnlen uplo_len);
extern int pclawil_(integer *ii, integer *jj, integer *m, complex *a, integer *desca, complex *h44, complex *h33, complex *h43h34, complex *v);
extern int pclawrite_(char *filnam, integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, integer *irwrit, integer *icwrit, complex *work, ftnlen filnam_len);
extern int pcmatadd_(integer *m, integer *n, complex *alpha, complex *a, integer *ia, integer *ja, integer *desca, complex *beta, complex *c__, integer *ic, integer *jc, integer *descc);
extern int pcmax1_(integer *n, complex *amax, integer *indx, complex *x, integer *ix, integer *jx, integer *descx, integer *incx);
extern int ccombamax1_(complex *v1, complex *v2);
/* Rerunning f2c -P may change prototypes or declarations. */
extern int pcpbsv_(char *uplo, integer *n, integer *bw, integer *nrhs, complex *a, integer *ja, integer *desca, complex *b, integer *ib, integer *descb, complex *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pcpbtrf_(char *uplo, integer *n, integer *bw, complex *a, integer *ja, integer *desca, complex *af, integer *laf, complex *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pcpbtrs_(char *uplo, integer *n, integer *bw, integer *nrhs, complex *a, integer *ja, integer *desca, complex *b, integer *ib, integer *descb, complex *af, integer *laf, complex *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pcpbtrsv_(char *uplo, char *trans, integer *n, integer *bw, integer *nrhs, complex *a, integer *ja, integer *desca, complex *b, integer *ib, integer *descb, complex *af, integer *laf, complex *work, integer *lwork, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int pcpocon_(char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *anorm, real *rcond, complex *work, integer *lwork, real *rwork, integer *lrwork, integer *info, ftnlen uplo_len);
extern int pcpoequ_(integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *sr, real *sc, real *scond, real *amax, integer *info);
extern int pcporfs_(char *uplo, integer *n, integer *nrhs, complex *a, integer *ia, integer *ja, integer *desca, complex *af, integer *iaf, integer *jaf, integer *descaf, complex *b, integer *ib, integer *jb, integer *descb, complex *x, integer *ix, integer *jx, integer *descx, real *ferr, real *berr, complex *work, integer *lwork, real *rwork, integer *lrwork, integer *info, ftnlen uplo_len);
extern int pcposv_(char *uplo, integer *n, integer *nrhs, complex *a, integer *ia, integer *ja, integer *desca, complex *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen uplo_len);
extern int pcposvx_(char *fact, char *uplo, integer *n, integer *nrhs, complex *a, integer *ia, integer *ja, integer *desca, complex *af, integer *iaf, integer *jaf, integer *descaf, char *equed, real *sr, real *sc, complex *b, integer *ib, integer *jb, integer *descb, complex *x, integer *ix, integer *jx, integer *descx, real *rcond, real *ferr, real *berr, complex *work, integer *lwork, real *rwork, integer *lrwork, integer *info, ftnlen fact_len, ftnlen uplo_len, ftnlen equed_len);
extern int pcpotf2_(char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len);
extern int pcpotrf_(char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len);
extern int pcpotri_(char *uplo, integer *n, complex *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len);
extern int pcpotrs_(char *uplo, integer *n, integer *nrhs, complex *a, integer *ia, integer *ja, integer *desca, complex *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen uplo_len);
extern int pcptsv_(char *uplo, integer *n, integer *nrhs, real *d__, complex *e, integer *ja, integer *desca, complex *b, integer *ib, integer *descb, complex *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pcpttrf_(integer *n, real *d__, complex *e, integer *ja, integer *desca, complex *af, integer *laf, complex *work, integer *lwork, integer *info);
extern int pcpttrs_(char *uplo, integer *n, integer *nrhs, real *d__, complex *e, integer *ja, integer *desca, complex *b, integer *ib, integer *descb, complex *af, integer *laf, complex *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pcpttrsv_(char *uplo, char *trans, integer *n, integer *nrhs, real *d__, complex *e, integer *ja, integer *desca, complex *b, integer *ib, integer *descb, complex *af, integer *laf, complex *work, integer *lwork, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int pcrow2col_(integer *ictxt, integer *m, integer *n, integer *nb, complex *vs, integer *ldvs, complex *vd, integer *ldvd, integer *rsrc, integer *csrc, integer *rdest, integer *cdest, complex *work);
extern int pcsrscl_(integer *n, real *sa, complex *sx, integer *ix, integer *jx, integer *descx, integer *incx);
extern int pcstein_(integer *n, real *d__, real *e, integer *m, real *w, integer *iblock, integer *isplit, real *orfac, complex *z__, integer *iz, integer *jz, integer *descz, real *work, integer *lwork, integer *iwork, integer *liwork, integer *ifail, integer *iclustr, real *gap, integer *info);
extern int pctrcon_(char *norm, char *uplo, char *diag, integer *n, complex *a, integer *ia, integer *ja, integer *desca, real *rcond, complex *work, integer *lwork, real *rwork, integer *lrwork, integer *info, ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern int pctreecomb_(integer *ictxt, char *scope, integer *n, complex *mine, integer *rdest0, integer *cdest0, S_fp subptr, ftnlen scope_len);
extern int ccombamax_(complex *v1, complex *v2);
extern int pctrevc_(char *side, char *howmny, logical *select, integer *n, complex *t, integer *desct, complex *vl, integer *descvl, complex *vr, integer *descvr, integer *mm, integer *m, complex *work, real *rwork, integer *info, ftnlen side_len, ftnlen howmny_len);
extern int pctrrfs_(char *uplo, char *trans, char *diag, integer *n, integer *nrhs, complex *a, integer *ia, integer *ja, integer *desca, complex *b, integer *ib, integer *jb, integer *descb, complex *x, integer *ix, integer *jx, integer *descx, real *ferr, real *berr, complex *work, integer *lwork, real *rwork, integer *lrwork, integer *info, ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
extern int pctrti2_(char *uplo, char *diag, integer *n, complex *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len, ftnlen diag_len);
extern int pctrtri_(char *uplo, char *diag, integer *n, complex *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len, ftnlen diag_len);
extern int pctrtrs_(char *uplo, char *trans, char *diag, integer *n, integer *nrhs, complex *a, integer *ia, integer *ja, integer *desca, complex *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
extern int pctzrzf_(integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcung2l_(integer *m, integer *n, integer *k, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcung2r_(integer *m, integer *n, integer *k, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcungl2_(integer *m, integer *n, integer *k, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcunglq_(integer *m, integer *n, integer *k, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcungql_(integer *m, integer *n, integer *k, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcungqr_(integer *m, integer *n, integer *k, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcungr2_(integer *m, integer *n, integer *k, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcungrq_(integer *m, integer *n, integer *k, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *work, integer *lwork, integer *info);
extern int pcunm2l_(char *side, char *trans, integer *m, integer *n, integer *k, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pcunm2r_(char *side, char *trans, integer *m, integer *n, integer *k, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pcunmbr_(char *vect, char *side, char *trans, integer *m, integer *n, integer *k, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, integer *lwork, integer *info, ftnlen vect_len, ftnlen side_len, ftnlen trans_len);
extern int pcunmhr_(char *side, char *trans, integer *m, integer *n, integer *ilo, integer *ihi, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pcunml2_(char *side, char *trans, integer *m, integer *n, integer *k, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pcunmlq_(char *side, char *trans, integer *m, integer *n, integer *k, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pcunmql_(char *side, char *trans, integer *m, integer *n, integer *k, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pcunmqr_(char *side, char *trans, integer *m, integer *n, integer *k, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pcunmr2_(char *side, char *trans, integer *m, integer *n, integer *k, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pcunmr3_(char *side, char *trans, integer *m, integer *n, integer *k, integer *l, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pcunmrq_(char *side, char *trans, integer *m, integer *n, integer *k, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pcunmrz_(char *side, char *trans, integer *m, integer *n, integer *k, integer *l, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pcunmtr_(char *side, char *uplo, char *trans, integer *m, integer *n, complex *a, integer *ia, integer *ja, integer *desca, complex *tau, complex *c__, integer *ic, integer *jc, integer *descc, complex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen uplo_len, ftnlen trans_len);
extern int pdchekpad_(integer *ictxt, char *mess, integer *m, integer *n, doublereal *a, integer *lda, integer *ipre, integer *ipost, doublereal *chkval, ftnlen mess_len);
extern int pdcol2row_(integer *ictxt, integer *m, integer *n, integer *nb, doublereal *vs, integer *ldvs, doublereal *vd, integer *ldvd, integer *rsrc, integer *csrc, integer *rdest, integer *cdest, doublereal *work);
extern int pddbsv_(integer *n, integer *bwl, integer *bwu, integer *nrhs, doublereal *a, integer *ja, integer *desca, doublereal *b, integer *ib, integer *descb, doublereal *work, integer *lwork, integer *info);
extern int pddbtrf_(integer *n, integer *bwl, integer *bwu, doublereal *a, integer *ja, integer *desca, doublereal *af, integer *laf, doublereal *work, integer *lwork, integer *info);
extern int pddbtrs_(char *trans, integer *n, integer *bwl, integer *bwu, integer *nrhs, doublereal *a, integer *ja, integer *desca, doublereal *b, integer *ib, integer *descb, doublereal *af, integer *laf, doublereal *work, integer *lwork, integer *info, ftnlen trans_len);
extern int pddbtrsv_(char *uplo, char *trans, integer *n, integer *bwl, integer *bwu, integer *nrhs, doublereal *a, integer *ja, integer *desca, doublereal *b, integer *ib, integer *descb, doublereal *af, integer *laf, doublereal *work, integer *lwork, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int pddtsv_(integer *n, integer *nrhs, doublereal *dl, doublereal *d__, doublereal *du, integer *ja, integer *desca, doublereal *b, integer *ib, integer *descb, doublereal *work, integer *lwork, integer *info);
extern int pddttrf_(integer *n, doublereal *dl, doublereal *d__, doublereal *du, integer *ja, integer *desca, doublereal *af, integer *laf, doublereal *work, integer *lwork, integer *info);
extern int pddttrs_(char *trans, integer *n, integer *nrhs, doublereal *dl, doublereal *d__, doublereal *du, integer *ja, integer *desca, doublereal *b, integer *ib, integer *descb, doublereal *af, integer *laf, doublereal *work, integer *lwork, integer *info, ftnlen trans_len);
extern int pddttrsv_(char *uplo, char *trans, integer *n, integer *nrhs, doublereal *dl, doublereal *d__, doublereal *du, integer *ja, integer *desca, doublereal *b, integer *ib, integer *descb, doublereal *af, integer *laf, doublereal *work, integer *lwork, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int pdelget_(char *scope, char *top, doublereal *alpha, doublereal *a, integer *ia, integer *ja, integer *desca, ftnlen scope_len, ftnlen top_len);
extern int pdelset_(doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *alpha);
extern int pdelset2_(doublereal *alpha, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *beta);
extern int pdfillpad_(integer *ictxt, integer *m, integer *n, doublereal *a, integer *lda, integer *ipre, integer *ipost, doublereal *chkval);
extern int pdgbsv_(integer *n, integer *bwl, integer *bwu, integer *nrhs, doublereal *a, integer *ja, integer *desca, integer *ipiv, doublereal *b, integer *ib, integer *descb, doublereal *work, integer *lwork, integer *info);
extern int pdgbtrf_(integer *n, integer *bwl, integer *bwu, doublereal *a, integer *ja, integer *desca, integer *ipiv, doublereal *af, integer *laf, doublereal *work, integer *lwork, integer *info);
extern int pdgbtrs_(char *trans, integer *n, integer *bwl, integer *bwu, integer *nrhs, doublereal *a, integer *ja, integer *desca, integer *ipiv, doublereal *b, integer *ib, integer *descb, doublereal *af, integer *laf, doublereal *work, integer *lwork, integer *info, ftnlen trans_len);
extern int pdgebd2_(integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *d__, doublereal *e, doublereal *tauq, doublereal *taup, doublereal *work, integer *lwork, integer *info);
extern int pdgebrd_(integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *d__, doublereal *e, doublereal *tauq, doublereal *taup, doublereal *work, integer *lwork, integer *info);
extern int pdgecon_(char *norm, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *anorm, doublereal *rcond, doublereal *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen norm_len);
extern int pdgeequ_(integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *r__, doublereal *c__, doublereal *rowcnd, doublereal *colcnd, doublereal *amax, integer *info);
extern int pdgehd2_(integer *n, integer *ilo, integer *ihi, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdgehrd_(integer *n, integer *ilo, integer *ihi, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdgelq2_(integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdgelqf_(integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdgels_(char *trans, integer *m, integer *n, integer *nrhs, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *b, integer *ib, integer *jb, integer *descb, doublereal *work, integer *lwork, integer *info, ftnlen trans_len);
extern int pdgeql2_(integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdgeqlf_(integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdgeqpf_(integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, integer *ipiv, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdgeqr2_(integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdgeqrf_(integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdgerfs_(char *trans, integer *n, integer *nrhs, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *af, integer *iaf, integer *jaf, integer *descaf, integer *ipiv, doublereal *b, integer *ib, integer *jb, integer *descb, doublereal *x, integer *ix, integer *jx, integer *descx, doublereal *ferr, doublereal *berr, doublereal *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen trans_len);
extern int pdgerq2_(integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdgerqf_(integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdgesv_(integer *n, integer *nrhs, doublereal *a, integer *ia, integer *ja, integer *desca, integer *ipiv, doublereal *b, integer *ib, integer *jb, integer *descb, integer *info);
extern int pdgesvd_(char *jobu, char *jobvt, integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *s, doublereal *u, integer *iu, integer *ju, integer *descu, doublereal *vt, integer *ivt, integer *jvt, integer *descvt, doublereal *work, integer *lwork, integer *info, ftnlen jobu_len, ftnlen jobvt_len);
extern int pdgesvx_(char *fact, char *trans, integer *n, integer *nrhs, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *af, integer *iaf, integer *jaf, integer *descaf, integer *ipiv, char *equed, doublereal *r__, doublereal *c__, doublereal *b, integer *ib, integer *jb, integer *descb, doublereal *x, integer *ix, integer *jx, integer *descx, doublereal *rcond, doublereal *ferr, doublereal *berr, doublereal *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen fact_len, ftnlen trans_len, ftnlen equed_len);
extern int pdgetf2_(integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, integer *ipiv, integer *info);
extern int pdgetrf_(integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, integer *ipiv, integer *info);
extern int pdgetri_(integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, integer *ipiv, doublereal *work, integer *lwork, integer *iwork, integer *liwork, integer *info);
extern int pdgetrs_(char *trans, integer *n, integer *nrhs, doublereal *a, integer *ia, integer *ja, integer *desca, integer *ipiv, doublereal *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen trans_len);
extern int pdggqrf_(integer *n, integer *m, integer *p, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *taua, doublereal *b, integer *ib, integer *jb, integer *descb, doublereal *taub, doublereal *work, integer *lwork, integer *info);
extern int pdggrqf_(integer *m, integer *p, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *taua, doublereal *b, integer *ib, integer *jb, integer *descb, doublereal *taub, doublereal *work, integer *lwork, integer *info);
extern int pdlabad_(integer *ictxt, doublereal *small, doublereal *large);
extern int pdlabrd_(integer *m, integer *n, integer *nb, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *d__, doublereal *e, doublereal *tauq, doublereal *taup, doublereal *x, integer *ix, integer *jx, integer *descx, doublereal *y, integer *iy, integer *jy, integer *descy, doublereal *work);
extern int pdlacon_(integer *n, doublereal *v, integer *iv, integer *jv, integer *descv, doublereal *x, integer *ix, integer *jx, integer *descx, integer *isgn, doublereal *est, integer *kase);
extern int pdlaconsb_(doublereal *a, integer *desca, integer *i__, integer *l, integer *m, doublereal *h44, doublereal *h33, doublereal *h43h34, doublereal *buf, integer *lwork);
extern int pdlacp2_(char *uplo, integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *b, integer *ib, integer *jb, integer *descb, ftnlen uplo_len);
extern int pdlacp3_(integer *m, integer *i__, doublereal *a, integer *desca, doublereal *b, integer *ldb, integer *ii, integer *jj, integer *rev);
extern int pdlacpy_(char *uplo, integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *b, integer *ib, integer *jb, integer *descb, ftnlen uplo_len);
extern int pdlaed0_(integer *n, doublereal *d__, doublereal *e, doublereal *q, integer *iq, integer *jq, integer *descq, doublereal *work, integer *iwork, integer *info);
extern int pdlaed1_(integer *n, integer *n1, doublereal *d__, integer *id, doublereal *q, integer *iq, integer *jq, integer *descq, doublereal *rho, doublereal *work, integer *iwork, integer *info);
extern int pdlaed2_(integer *ictxt, integer *k, integer *n, integer *n1, integer *nb, doublereal *d__, integer *drow, integer *dcol, doublereal *q, integer *ldq, doublereal *rho, doublereal *z__, doublereal *w, doublereal *dlamda, doublereal *q2, integer *ldq2, doublereal *qbuf, integer *ctot, integer *psm, integer *npcol, integer *indx, integer *indxc, integer *indxp, integer *indcol, integer *coltyp, integer *nn, integer *nn1, integer *nn2, integer *ib1, integer *ib2);
extern int pdlaed3_(integer *ictxt, integer *k, integer *n, integer *nb, doublereal *d__, integer *drow, integer *dcol, doublereal *rho, doublereal *dlamda, doublereal *w, doublereal *z__, doublereal *u, integer *ldu, doublereal *buf, integer *indx, integer *indcol, integer *indrow, integer *indxr, integer *indxc, integer *ctot, integer *npcol, integer *info);
extern int pdlaedz_(integer *n, integer *n1, integer *id, doublereal *q, integer *iq, integer *jq, integer *ldq, integer *descq, doublereal *z__, doublereal *work);
extern int pdlaevswp_(integer *n, doublereal *zin, integer *ldzi, doublereal *z__, integer *iz, integer *jz, integer *descz, integer *nvs, integer *key, doublereal *work, integer *lwork);
extern int pdlahqr_(logical *wantt, logical *wantz, integer *n, integer *ilo, integer *ihi, doublereal *a, integer *desca, doublereal *wr, doublereal *wi, integer *iloz, integer *ihiz, doublereal *z__, integer *descz, doublereal *work, integer *lwork, integer *iwork, integer *ilwork, integer *info);
extern int pdlahrd_(integer *n, integer *k, integer *nb, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *t, doublereal *y, integer *iy, integer *jy, integer *descy, doublereal *work);
extern doublereal pdlamch_(integer *ictxt, char *cmach, ftnlen cmach_len);
extern int pdlamr1d_(integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *b, integer *ib, integer *jb, integer *descb);
extern doublereal pdlange_(char *norm, integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *work, ftnlen norm_len);
extern doublereal pdlanhs_(char *norm, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *work, ftnlen norm_len);
extern doublereal pdlansy_(char *norm, char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *work, ftnlen norm_len, ftnlen uplo_len);
extern doublereal pdlantr_(char *norm, char *uplo, char *diag, integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *work, ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern int pdlapiv_(char *direc, char *rowcol, char *pivroc, integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, integer *ipiv, integer *ip, integer *jp, integer *descip, integer *iwork, ftnlen direc_len, ftnlen rowcol_len, ftnlen pivroc_len);
extern int pdlaprnt_(integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, integer *irprnt, integer *icprnt, char *cmatnm, integer *nout, doublereal *work, ftnlen cmatnm_len);
extern int pdlapv2_(char *direc, char *rowcol, integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, integer *ipiv, integer *ip, integer *jp, integer *descip, ftnlen direc_len, ftnlen rowcol_len);
extern int pdlaqge_(integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *r__, doublereal *c__, doublereal *rowcnd, doublereal *colcnd, doublereal *amax, char *equed, ftnlen equed_len);
extern int pdlaqsy_(char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *sr, doublereal *sc, doublereal *scond, doublereal *amax, char *equed, ftnlen uplo_len, ftnlen equed_len);
extern int pdlaread_(char *filnam, doublereal *a, integer *desca, integer *irread, integer *icread, doublereal *work, ftnlen filnam_len);
extern int pdlared1d_(integer *n, integer *ia, integer *ja, integer *desc, doublereal *bycol, doublereal *byall, doublereal *work, integer *lwork);
extern int pdlared2d_(integer *n, integer *ia, integer *ja, integer *desc, doublereal *byrow, doublereal *byall, doublereal *work, integer *lwork);
extern int pdlarf_(char *side, integer *m, integer *n, doublereal *v, integer *iv, integer *jv, integer *descv, integer *incv, doublereal *tau, doublereal *c__, integer *ic, integer *jc, integer *descc, doublereal *work, ftnlen side_len);
extern int pdlarfb_(char *side, char *trans, char *direct, char *storev, integer *m, integer *n, integer *k, doublereal *v, integer *iv, integer *jv, integer *descv, doublereal *t, doublereal *c__, integer *ic, integer *jc, integer *descc, doublereal *work, ftnlen side_len, ftnlen trans_len, ftnlen direct_len, ftnlen storev_len);
extern int pdlarfg_(integer *n, doublereal *alpha, integer *iax, integer *jax, doublereal *x, integer *ix, integer *jx, integer *descx, integer *incx, doublereal *tau);
extern int pdlarft_(char *direct, char *storev, integer *n, integer *k, doublereal *v, integer *iv, integer *jv, integer *descv, doublereal *tau, doublereal *t, doublereal *work, ftnlen direct_len, ftnlen storev_len);
extern int pdlarz_(char *side, integer *m, integer *n, integer *l, doublereal *v, integer *iv, integer *jv, integer *descv, integer *incv, doublereal *tau, doublereal *c__, integer *ic, integer *jc, integer *descc, doublereal *work, ftnlen side_len);
extern int pdlarzb_(char *side, char *trans, char *direct, char *storev, integer *m, integer *n, integer *k, integer *l, doublereal *v, integer *iv, integer *jv, integer *descv, doublereal *t, doublereal *c__, integer *ic, integer *jc, integer *descc, doublereal *work, ftnlen side_len, ftnlen trans_len, ftnlen direct_len, ftnlen storev_len);
extern int pdlarzt_(char *direct, char *storev, integer *n, integer *k, doublereal *v, integer *iv, integer *jv, integer *descv, doublereal *tau, doublereal *t, doublereal *work, ftnlen direct_len, ftnlen storev_len);
extern int pdlascl_(char *type__, doublereal *cfrom, doublereal *cto, integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen type_len);
extern int pdlase2_(char *uplo, integer *m, integer *n, doublereal *alpha, doublereal *beta, doublereal *a, integer *ia, integer *ja, integer *desca, ftnlen uplo_len);
extern int pdlaset_(char *uplo, integer *m, integer *n, doublereal *alpha, doublereal *beta, doublereal *a, integer *ia, integer *ja, integer *desca, ftnlen uplo_len);
extern int pdlasmsub_(doublereal *a, integer *desca, integer *i__, integer *l, integer *k, doublereal *smlnum, doublereal *buf, integer *lwork);
extern int pdlasrt_(char *id, integer *n, doublereal *d__, doublereal *q, integer *iq, integer *jq, integer *descq, doublereal *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen id_len);
extern int pdlassq_(integer *n, doublereal *x, integer *ix, integer *jx, integer *descx, integer *incx, doublereal *scale, doublereal *sumsq);
extern int pdlaswp_(char *direc, char *rowcol, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, integer *k1, integer *k2, integer *ipiv, ftnlen direc_len, ftnlen rowcol_len);
extern doublereal pdlatra_(integer *n, doublereal *a, integer *ia, integer *ja, integer *desca);
extern int pdlatrd_(char *uplo, integer *n, integer *nb, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *d__, doublereal *e, doublereal *tau, doublereal *w, integer *iw, integer *jw, integer *descw, doublereal *work, ftnlen uplo_len);
extern int pdlatrs_(char *uplo, char *trans, char *diag, char *normin, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *x, integer *ix, integer *jx, integer *descx, doublereal *scale, doublereal *cnorm, doublereal *work, ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len, ftnlen normin_len);
extern int pdlatrz_(integer *m, integer *n, integer *l, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work);
extern int pdlauu2_(char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, ftnlen uplo_len);
extern int pdlauum_(char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, ftnlen uplo_len);
extern int pdlawil_(integer *ii, integer *jj, integer *m, doublereal *a, integer *desca, doublereal *h44, doublereal *h33, doublereal *h43h34, doublereal *v);
extern int pdlawrite_(char *filnam, integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, integer *irwrit, integer *icwrit, doublereal *work, ftnlen filnam_len);
extern int pdmatadd_(integer *m, integer *n, doublereal *alpha, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *beta, doublereal *c__, integer *ic, integer *jc, integer *descc);
extern int pdorg2l_(integer *m, integer *n, integer *k, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdorg2r_(integer *m, integer *n, integer *k, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdorgl2_(integer *m, integer *n, integer *k, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdorglq_(integer *m, integer *n, integer *k, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdorgql_(integer *m, integer *n, integer *k, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdorgqr_(integer *m, integer *n, integer *k, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdorgr2_(integer *m, integer *n, integer *k, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdorgrq_(integer *m, integer *n, integer *k, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdorm2l_(char *side, char *trans, integer *m, integer *n, integer *k, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *c__, integer *ic, integer *jc, integer *descc, doublereal *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pdorm2r_(char *side, char *trans, integer *m, integer *n, integer *k, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *c__, integer *ic, integer *jc, integer *descc, doublereal *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pdormbr_(char *vect, char *side, char *trans, integer *m, integer *n, integer *k, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *c__, integer *ic, integer *jc, integer *descc, doublereal *work, integer *lwork, integer *info, ftnlen vect_len, ftnlen side_len, ftnlen trans_len);
extern int pdormhr_(char *side, char *trans, integer *m, integer *n, integer *ilo, integer *ihi, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *c__, integer *ic, integer *jc, integer *descc, doublereal *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pdorml2_(char *side, char *trans, integer *m, integer *n, integer *k, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *c__, integer *ic, integer *jc, integer *descc, doublereal *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pdormlq_(char *side, char *trans, integer *m, integer *n, integer *k, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *c__, integer *ic, integer *jc, integer *descc, doublereal *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pdormql_(char *side, char *trans, integer *m, integer *n, integer *k, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *c__, integer *ic, integer *jc, integer *descc, doublereal *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pdormqr_(char *side, char *trans, integer *m, integer *n, integer *k, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *c__, integer *ic, integer *jc, integer *descc, doublereal *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pdormr2_(char *side, char *trans, integer *m, integer *n, integer *k, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *c__, integer *ic, integer *jc, integer *descc, doublereal *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pdormr3_(char *side, char *trans, integer *m, integer *n, integer *k, integer *l, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *c__, integer *ic, integer *jc, integer *descc, doublereal *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pdormrq_(char *side, char *trans, integer *m, integer *n, integer *k, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *c__, integer *ic, integer *jc, integer *descc, doublereal *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pdormrz_(char *side, char *trans, integer *m, integer *n, integer *k, integer *l, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *c__, integer *ic, integer *jc, integer *descc, doublereal *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pdormtr_(char *side, char *uplo, char *trans, integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *c__, integer *ic, integer *jc, integer *descc, doublereal *work, integer *lwork, integer *info, ftnlen side_len, ftnlen uplo_len, ftnlen trans_len);
extern int pdpbsv_(char *uplo, integer *n, integer *bw, integer *nrhs, doublereal *a, integer *ja, integer *desca, doublereal *b, integer *ib, integer *descb, doublereal *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pdpbtrf_(char *uplo, integer *n, integer *bw, doublereal *a, integer *ja, integer *desca, doublereal *af, integer *laf, doublereal *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pdpbtrs_(char *uplo, integer *n, integer *bw, integer *nrhs, doublereal *a, integer *ja, integer *desca, doublereal *b, integer *ib, integer *descb, doublereal *af, integer *laf, doublereal *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pdpbtrsv_(char *uplo, char *trans, integer *n, integer *bw, integer *nrhs, doublereal *a, integer *ja, integer *desca, doublereal *b, integer *ib, integer *descb, doublereal *af, integer *laf, doublereal *work, integer *lwork, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int pdpocon_(char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *anorm, doublereal *rcond, doublereal *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen uplo_len);
extern int pdpoequ_(integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *sr, doublereal *sc, doublereal *scond, doublereal *amax, integer *info);
extern int pdporfs_(char *uplo, integer *n, integer *nrhs, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *af, integer *iaf, integer *jaf, integer *descaf, doublereal *b, integer *ib, integer *jb, integer *descb, doublereal *x, integer *ix, integer *jx, integer *descx, doublereal *ferr, doublereal *berr, doublereal *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen uplo_len);
extern int pdposv_(char *uplo, integer *n, integer *nrhs, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen uplo_len);
extern int pdposvx_(char *fact, char *uplo, integer *n, integer *nrhs, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *af, integer *iaf, integer *jaf, integer *descaf, char *equed, doublereal *sr, doublereal *sc, doublereal *b, integer *ib, integer *jb, integer *descb, doublereal *x, integer *ix, integer *jx, integer *descx, doublereal *rcond, doublereal *ferr, doublereal *berr, doublereal *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen fact_len, ftnlen uplo_len, ftnlen equed_len);
extern int pdpotf2_(char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len);
extern int pdpotrf_(char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len);
extern int pdpotri_(char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len);
extern int pdpotrs_(char *uplo, integer *n, integer *nrhs, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen uplo_len);
extern int pdptsv_(integer *n, integer *nrhs, doublereal *d__, doublereal *e, integer *ja, integer *desca, doublereal *b, integer *ib, integer *descb, doublereal *work, integer *lwork, integer *info);
extern int pdpttrf_(integer *n, doublereal *d__, doublereal *e, integer *ja, integer *desca, doublereal *af, integer *laf, doublereal *work, integer *lwork, integer *info);
extern int pdpttrs_(integer *n, integer *nrhs, doublereal *d__, doublereal *e, integer *ja, integer *desca, doublereal *b, integer *ib, integer *descb, doublereal *af, integer *laf, doublereal *work, integer *lwork, integer *info);
extern int pdpttrsv_(char *uplo, integer *n, integer *nrhs, doublereal *d__, doublereal *e, integer *ja, integer *desca, doublereal *b, integer *ib, integer *descb, doublereal *af, integer *laf, doublereal *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pdrow2col_(integer *ictxt, integer *m, integer *n, integer *nb, doublereal *vs, integer *ldvs, doublereal *vd, integer *ldvd, integer *rsrc, integer *csrc, integer *rdest, integer *cdest, doublereal *work);
extern int pdrscl_(integer *n, doublereal *sa, doublereal *sx, integer *ix, integer *jx, integer *descx, integer *incx);
extern int pdstebz_(integer *ictxt, 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 *lwork, integer *iwork, integer *liwork, integer *info, ftnlen range_len, ftnlen order_len);
extern int pdlaebz_(integer *ijob, integer *n, integer *mmax, integer *minp, doublereal *abstol, doublereal *reltol, doublereal *pivmin, doublereal *d__, integer *nval, doublereal *intvl, integer *intvlct, integer *mout, doublereal *lsave, integer *ieflag, integer *info);
extern int pdlaecv_(integer *ijob, integer *kf, integer *kl, doublereal *intvl, integer *intvlct, integer *nval, doublereal *abstol, doublereal *reltol);
extern int pdlapdct_(doublereal *sigma, integer *n, doublereal *d__, doublereal *pivmin, integer *count);
extern int pdstedc_(char *compz, integer *n, doublereal *d__, doublereal *e, doublereal *q, integer *iq, integer *jq, integer *descq, doublereal *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen compz_len);
extern int pdstein_(integer *n, doublereal *d__, doublereal *e, integer *m, doublereal *w, integer *iblock, integer *isplit, doublereal *orfac, doublereal *z__, integer *iz, integer *jz, integer *descz, doublereal *work, integer *lwork, integer *iwork, integer *liwork, integer *ifail, integer *iclustr, doublereal *gap, integer *info);
extern int pdsyev_(char *jobz, char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *w, doublereal *z__, integer *iz, integer *jz, integer *descz, doublereal *work, integer *lwork, integer *info, ftnlen jobz_len, ftnlen uplo_len);
extern int pdsyevd_(char *jobz, char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *w, doublereal *z__, integer *iz, integer *jz, integer *descz, doublereal *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen jobz_len, ftnlen uplo_len);
extern int pdsyevx_(char *jobz, char *range, char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *vl, doublereal *vu, integer *il, integer *iu, doublereal *abstol, integer *m, integer *nz, doublereal *w, doublereal *orfac, doublereal *z__, integer *iz, integer *jz, integer *descz, doublereal *work, integer *lwork, integer *iwork, integer *liwork, integer *ifail, integer *iclustr, doublereal *gap, integer *info, ftnlen jobz_len, ftnlen range_len, ftnlen uplo_len);
extern int pdsygs2_(integer *ibtype, char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen uplo_len);
extern int pdsygst_(integer *ibtype, char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *b, integer *ib, integer *jb, integer *descb, doublereal *scale, integer *info, ftnlen uplo_len);
extern int pdsygvx_(integer *ibtype, char *jobz, char *range, char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *b, integer *ib, integer *jb, integer *descb, doublereal *vl, doublereal *vu, integer *il, integer *iu, doublereal *abstol, integer *m, integer *nz, doublereal *w, doublereal *orfac, doublereal *z__, integer *iz, integer *jz, integer *descz, doublereal *work, integer *lwork, integer *iwork, integer *liwork, integer *ifail, integer *iclustr, doublereal *gap, integer *info, ftnlen jobz_len, ftnlen range_len, ftnlen uplo_len);
extern int pdsyngst_(integer *ibtype, char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *b, integer *ib, integer *jb, integer *descb, doublereal *scale, doublereal *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pdsyntrd_(char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *d__, doublereal *e, doublereal *tau, doublereal *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pdsytd2_(char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *d__, doublereal *e, doublereal *tau, doublereal *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pdsytrd_(char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *d__, doublereal *e, doublereal *tau, doublereal *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pdsyttrd_(char *uplo, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *d__, doublereal *e, doublereal *tau, doublereal *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pdtrcon_(char *norm, char *uplo, char *diag, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *rcond, doublereal *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern int pdtreecomb_(integer *ictxt, char *scope, integer *n, doublereal *mine, integer *rdest0, integer *cdest0, S_fp subptr, ftnlen scope_len);
extern int dcombamax_(doublereal *v1, doublereal *v2);
extern int dcombssq_(doublereal *v1, doublereal *v2);
extern int dcombnrm2_(doublereal *x, doublereal *y);
extern int pdtrrfs_(char *uplo, char *trans, char *diag, integer *n, integer *nrhs, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *b, integer *ib, integer *jb, integer *descb, doublereal *x, integer *ix, integer *jx, integer *descx, doublereal *ferr, doublereal *berr, doublereal *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
extern int pdtrti2_(char *uplo, char *diag, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len, ftnlen diag_len);
extern int pdtrtri_(char *uplo, char *diag, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len, ftnlen diag_len);
extern int pdtrtrs_(char *uplo, char *trans, char *diag, integer *n, integer *nrhs, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
extern int pdtzrzf_(integer *m, integer *n, doublereal *a, integer *ia, integer *ja, integer *desca, doublereal *tau, doublereal *work, integer *lwork, integer *info);
extern int pdzsum1_(integer *n, doublereal *asum, doublecomplex *x, integer *ix, integer *jx, integer *descx, integer *incx);
extern int pichekpad_(integer *ictxt, char *mess, integer *m, integer *n, integer *a, integer *lda, integer *ipre, integer *ipost, integer *chkval, ftnlen mess_len);
extern int picol2row_(integer *ictxt, integer *m, integer *n, integer *nb, integer *vs, integer *ldvs, integer *vd, integer *ldvd, integer *rsrc, integer *csrc, integer *rdest, integer *cdest, integer *work);
extern int pielget_(char *scope, char *top, integer *alpha, integer *a, integer *ia, integer *ja, integer *desca, ftnlen scope_len, ftnlen top_len);
extern int pielset_(integer *a, integer *ia, integer *ja, integer *desca, integer *alpha);
extern int pielset2_(integer *alpha, integer *a, integer *ia, integer *ja, integer *desca, integer *beta);
extern int pifillpad_(integer *ictxt, integer *m, integer *n, integer *a, integer *lda, integer *ipre, integer *ipost, integer *chkval);
extern int pilaprnt_(integer *m, integer *n, integer *a, integer *ia, integer *ja, integer *desca, integer *irprnt, integer *icprnt, char *cmatnm, integer *nout, integer *work, ftnlen cmatnm_len);
extern int pirow2col_(integer *ictxt, integer *m, integer *n, integer *nb, integer *vs, integer *ldvs, integer *vd, integer *ldvd, integer *rsrc, integer *csrc, integer *rdest, integer *cdest, integer *work);
extern int pitreecomb_(integer *ictxt, char *scope, integer *n, integer *mine, integer *rdest0, integer *cdest0, S_fp subptr, ftnlen scope_len);
extern integer pjlaenv_(integer *ictxt, integer *ispec, char *name__, char *opts, integer *n1, integer *n2, integer *n3, integer *n4, ftnlen name_len, ftnlen opts_len);
extern int pschekpad_(integer *ictxt, char *mess, integer *m, integer *n, real *a, integer *lda, integer *ipre, integer *ipost, real *chkval, ftnlen mess_len);
extern int pscol2row_(integer *ictxt, integer *m, integer *n, integer *nb, real *vs, integer *ldvs, real *vd, integer *ldvd, integer *rsrc, integer *csrc, integer *rdest, integer *cdest, real *work);
extern int pscsum1_(integer *n, real *asum, complex *x, integer *ix, integer *jx, integer *descx, integer *incx);
extern int psdbsv_(integer *n, integer *bwl, integer *bwu, integer *nrhs, real *a, integer *ja, integer *desca, real *b, integer *ib, integer *descb, real *work, integer *lwork, integer *info);
extern int psdbtrf_(integer *n, integer *bwl, integer *bwu, real *a, integer *ja, integer *desca, real *af, integer *laf, real *work, integer *lwork, integer *info);
extern int psdbtrs_(char *trans, integer *n, integer *bwl, integer *bwu, integer *nrhs, real *a, integer *ja, integer *desca, real *b, integer *ib, integer *descb, real *af, integer *laf, real *work, integer *lwork, integer *info, ftnlen trans_len);
extern int psdbtrsv_(char *uplo, char *trans, integer *n, integer *bwl, integer *bwu, integer *nrhs, real *a, integer *ja, integer *desca, real *b, integer *ib, integer *descb, real *af, integer *laf, real *work, integer *lwork, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int psdtsv_(integer *n, integer *nrhs, real *dl, real *d__, real *du, integer *ja, integer *desca, real *b, integer *ib, integer *descb, real *work, integer *lwork, integer *info);
extern int psdttrf_(integer *n, real *dl, real *d__, real *du, integer *ja, integer *desca, real *af, integer *laf, real *work, integer *lwork, integer *info);
extern int psdttrs_(char *trans, integer *n, integer *nrhs, real *dl, real *d__, real *du, integer *ja, integer *desca, real *b, integer *ib, integer *descb, real *af, integer *laf, real *work, integer *lwork, integer *info, ftnlen trans_len);
extern int psdttrsv_(char *uplo, char *trans, integer *n, integer *nrhs, real *dl, real *d__, real *du, integer *ja, integer *desca, real *b, integer *ib, integer *descb, real *af, integer *laf, real *work, integer *lwork, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int pselget_(char *scope, char *top, real *alpha, real *a, integer *ia, integer *ja, integer *desca, ftnlen scope_len, ftnlen top_len);
extern int pselset_(real *a, integer *ia, integer *ja, integer *desca, real *alpha);
extern int pselset2_(real *alpha, real *a, integer *ia, integer *ja, integer *desca, real *beta);
extern int psfillpad_(integer *ictxt, integer *m, integer *n, real *a, integer *lda, integer *ipre, integer *ipost, real *chkval);
extern int psgbsv_(integer *n, integer *bwl, integer *bwu, integer *nrhs, real *a, integer *ja, integer *desca, integer *ipiv, real *b, integer *ib, integer *descb, real *work, integer *lwork, integer *info);
extern int psgbtrf_(integer *n, integer *bwl, integer *bwu, real *a, integer *ja, integer *desca, integer *ipiv, real *af, integer *laf, real *work, integer *lwork, integer *info);
extern int psgbtrs_(char *trans, integer *n, integer *bwl, integer *bwu, integer *nrhs, real *a, integer *ja, integer *desca, integer *ipiv, real *b, integer *ib, integer *descb, real *af, integer *laf, real *work, integer *lwork, integer *info, ftnlen trans_len);
extern int psgebd2_(integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *d__, real *e, real *tauq, real *taup, real *work, integer *lwork, integer *info);
extern int psgebrd_(integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *d__, real *e, real *tauq, real *taup, real *work, integer *lwork, integer *info);
extern int psgecon_(char *norm, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *anorm, real *rcond, real *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen norm_len);
extern int psgeequ_(integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *r__, real *c__, real *rowcnd, real *colcnd, real *amax, integer *info);
extern int psgehd2_(integer *n, integer *ilo, integer *ihi, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int psgehrd_(integer *n, integer *ilo, integer *ihi, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int psgelq2_(integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int psgelqf_(integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int psgels_(char *trans, integer *m, integer *n, integer *nrhs, real *a, integer *ia, integer *ja, integer *desca, real *b, integer *ib, integer *jb, integer *descb, real *work, integer *lwork, integer *info, ftnlen trans_len);
extern int psgeql2_(integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int psgeqlf_(integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int psgeqpf_(integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, integer *ipiv, real *tau, real *work, integer *lwork, integer *info);
extern int psgeqr2_(integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int psgeqrf_(integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int psgerfs_(char *trans, integer *n, integer *nrhs, real *a, integer *ia, integer *ja, integer *desca, real *af, integer *iaf, integer *jaf, integer *descaf, integer *ipiv, real *b, integer *ib, integer *jb, integer *descb, real *x, integer *ix, integer *jx, integer *descx, real *ferr, real *berr, real *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen trans_len);
extern int psgerq2_(integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int psgerqf_(integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int psgesv_(integer *n, integer *nrhs, real *a, integer *ia, integer *ja, integer *desca, integer *ipiv, real *b, integer *ib, integer *jb, integer *descb, integer *info);
extern int psgesvd_(char *jobu, char *jobvt, integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *s, real *u, integer *iu, integer *ju, integer *descu, real *vt, integer *ivt, integer *jvt, integer *descvt, real *work, integer *lwork, integer *info, ftnlen jobu_len, ftnlen jobvt_len);
extern int psgesvx_(char *fact, char *trans, integer *n, integer *nrhs, real *a, integer *ia, integer *ja, integer *desca, real *af, integer *iaf, integer *jaf, integer *descaf, integer *ipiv, char *equed, real *r__, real *c__, real *b, integer *ib, integer *jb, integer *descb, real *x, integer *ix, integer *jx, integer *descx, real *rcond, real *ferr, real *berr, real *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen fact_len, ftnlen trans_len, ftnlen equed_len);
extern int psgetf2_(integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, integer *ipiv, integer *info);
extern int psgetrf_(integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, integer *ipiv, integer *info);
extern int psgetri_(integer *n, real *a, integer *ia, integer *ja, integer *desca, integer *ipiv, real *work, integer *lwork, integer *iwork, integer *liwork, integer *info);
extern int psgetrs_(char *trans, integer *n, integer *nrhs, real *a, integer *ia, integer *ja, integer *desca, integer *ipiv, real *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen trans_len);
extern int psggqrf_(integer *n, integer *m, integer *p, real *a, integer *ia, integer *ja, integer *desca, real *taua, real *b, integer *ib, integer *jb, integer *descb, real *taub, real *work, integer *lwork, integer *info);
extern int psggrqf_(integer *m, integer *p, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *taua, real *b, integer *ib, integer *jb, integer *descb, real *taub, real *work, integer *lwork, integer *info);
extern int pslabad_(integer *ictxt, real *small, real *large);
extern int pslabrd_(integer *m, integer *n, integer *nb, real *a, integer *ia, integer *ja, integer *desca, real *d__, real *e, real *tauq, real *taup, real *x, integer *ix, integer *jx, integer *descx, real *y, integer *iy, integer *jy, integer *descy, real *work);
extern int pslacon_(integer *n, real *v, integer *iv, integer *jv, integer *descv, real *x, integer *ix, integer *jx, integer *descx, integer *isgn, real *est, integer *kase);
extern int pslaconsb_(real *a, integer *desca, integer *i__, integer *l, integer *m, real *h44, real *h33, real *h43h34, real *buf, integer *lwork);
extern int pslacp2_(char *uplo, integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *b, integer *ib, integer *jb, integer *descb, ftnlen uplo_len);
extern int pslacp3_(integer *m, integer *i__, real *a, integer *desca, real *b, integer *ldb, integer *ii, integer *jj, integer *rev);
extern int pslacpy_(char *uplo, integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *b, integer *ib, integer *jb, integer *descb, ftnlen uplo_len);
extern int pslaed0_(integer *n, real *d__, real *e, real *q, integer *iq, integer *jq, integer *descq, real *work, integer *iwork, integer *info);
extern int pslaed1_(integer *n, integer *n1, real *d__, integer *id, real *q, integer *iq, integer *jq, integer *descq, real *rho, real *work, integer *iwork, integer *info);
extern int pslaed2_(integer *ictxt, integer *k, integer *n, integer *n1, integer *nb, real *d__, integer *drow, integer *dcol, real *q, integer *ldq, real *rho, real *z__, real *w, real *dlamda, real *q2, integer *ldq2, real *qbuf, integer *ctot, integer *psm, integer *npcol, integer *indx, integer *indxc, integer *indxp, integer *indcol, integer *coltyp, integer *nn, integer *nn1, integer *nn2, integer *ib1, integer *ib2);
extern int pslaed3_(integer *ictxt, integer *k, integer *n, integer *nb, real *d__, integer *drow, integer *dcol, real *rho, real *dlamda, real *w, real *z__, real *u, integer *ldu, real *buf, integer *indx, integer *indcol, integer *indrow, integer *indxr, integer *indxc, integer *ctot, integer *npcol, integer *info);
extern int pslaedz_(integer *n, integer *n1, integer *id, real *q, integer *iq, integer *jq, integer *ldq, integer *descq, real *z__, real *work);
extern int pslaevswp_(integer *n, real *zin, integer *ldzi, real *z__, integer *iz, integer *jz, integer *descz, integer *nvs, integer *key, real *work, integer *lwork);
extern int pslahqr_(logical *wantt, logical *wantz, integer *n, integer *ilo, integer *ihi, real *a, integer *desca, real *wr, real *wi, integer *iloz, integer *ihiz, real *z__, integer *descz, real *work, integer *lwork, integer *iwork, integer *ilwork, integer *info);
extern int pslahrd_(integer *n, integer *k, integer *nb, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *t, real *y, integer *iy, integer *jy, integer *descy, real *work);
extern E_f pslamch_(integer *ictxt, char *cmach, ftnlen cmach_len);
extern int pslamr1d_(integer *n, real *a, integer *ia, integer *ja, integer *desca, real *b, integer *ib, integer *jb, integer *descb);
extern E_f pslange_(char *norm, integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *work, ftnlen norm_len);
extern E_f pslanhs_(char *norm, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *work, ftnlen norm_len);
extern E_f pslansy_(char *norm, char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *work, ftnlen norm_len, ftnlen uplo_len);
extern E_f pslantr_(char *norm, char *uplo, char *diag, integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *work, ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern int pslapiv_(char *direc, char *rowcol, char *pivroc, integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, integer *ipiv, integer *ip, integer *jp, integer *descip, integer *iwork, ftnlen direc_len, ftnlen rowcol_len, ftnlen pivroc_len);
extern int pslaprnt_(integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, integer *irprnt, integer *icprnt, char *cmatnm, integer *nout, real *work, ftnlen cmatnm_len);
extern int pslapv2_(char *direc, char *rowcol, integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, integer *ipiv, integer *ip, integer *jp, integer *descip, ftnlen direc_len, ftnlen rowcol_len);
extern int pslaqge_(integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *r__, real *c__, real *rowcnd, real *colcnd, real *amax, char *equed, ftnlen equed_len);
extern int pslaqsy_(char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *sr, real *sc, real *scond, real *amax, char *equed, ftnlen uplo_len, ftnlen equed_len);
extern int pslaread_(char *filnam, real *a, integer *desca, integer *irread, integer *icread, real *work, ftnlen filnam_len);
extern int pslared1d_(integer *n, integer *ia, integer *ja, integer *desc, real *bycol, real *byall, real *work, integer *lwork);
extern int pslared2d_(integer *n, integer *ia, integer *ja, integer *desc, real *byrow, real *byall, real *work, integer *lwork);
extern int pslarf_(char *side, integer *m, integer *n, real *v, integer *iv, integer *jv, integer *descv, integer *incv, real *tau, real *c__, integer *ic, integer *jc, integer *descc, real *work, ftnlen side_len);
extern int pslarfb_(char *side, char *trans, char *direct, char *storev, integer *m, integer *n, integer *k, real *v, integer *iv, integer *jv, integer *descv, real *t, real *c__, integer *ic, integer *jc, integer *descc, real *work, ftnlen side_len, ftnlen trans_len, ftnlen direct_len, ftnlen storev_len);
extern int pslarfg_(integer *n, real *alpha, integer *iax, integer *jax, real *x, integer *ix, integer *jx, integer *descx, integer *incx, real *tau);
extern int pslarft_(char *direct, char *storev, integer *n, integer *k, real *v, integer *iv, integer *jv, integer *descv, real *tau, real *t, real *work, ftnlen direct_len, ftnlen storev_len);
extern int pslarz_(char *side, integer *m, integer *n, integer *l, real *v, integer *iv, integer *jv, integer *descv, integer *incv, real *tau, real *c__, integer *ic, integer *jc, integer *descc, real *work, ftnlen side_len);
extern int pslarzb_(char *side, char *trans, char *direct, char *storev, integer *m, integer *n, integer *k, integer *l, real *v, integer *iv, integer *jv, integer *descv, real *t, real *c__, integer *ic, integer *jc, integer *descc, real *work, ftnlen side_len, ftnlen trans_len, ftnlen direct_len, ftnlen storev_len);
extern int pslarzt_(char *direct, char *storev, integer *n, integer *k, real *v, integer *iv, integer *jv, integer *descv, real *tau, real *t, real *work, ftnlen direct_len, ftnlen storev_len);
extern int pslascl_(char *type__, real *cfrom, real *cto, integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen type_len);
extern int pslase2_(char *uplo, integer *m, integer *n, real *alpha, real *beta, real *a, integer *ia, integer *ja, integer *desca, ftnlen uplo_len);
extern int pslaset_(char *uplo, integer *m, integer *n, real *alpha, real *beta, real *a, integer *ia, integer *ja, integer *desca, ftnlen uplo_len);
extern int pslasmsub_(real *a, integer *desca, integer *i__, integer *l, integer *k, real *smlnum, real *buf, integer *lwork);
extern int pslasrt_(char *id, integer *n, real *d__, real *q, integer *iq, integer *jq, integer *descq, real *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen id_len);
extern int pslassq_(integer *n, real *x, integer *ix, integer *jx, integer *descx, integer *incx, real *scale, real *sumsq);
extern int pslaswp_(char *direc, char *rowcol, integer *n, real *a, integer *ia, integer *ja, integer *desca, integer *k1, integer *k2, integer *ipiv, ftnlen direc_len, ftnlen rowcol_len);
extern E_f pslatra_(integer *n, real *a, integer *ia, integer *ja, integer *desca);
extern int pslatrd_(char *uplo, integer *n, integer *nb, real *a, integer *ia, integer *ja, integer *desca, real *d__, real *e, real *tau, real *w, integer *iw, integer *jw, integer *descw, real *work, ftnlen uplo_len);
extern int pslatrs_(char *uplo, char *trans, char *diag, char *normin, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *x, integer *ix, integer *jx, integer *descx, real *scale, real *cnorm, real *work, ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len, ftnlen normin_len);
extern int pslatrz_(integer *m, integer *n, integer *l, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work);
extern int pslauu2_(char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, ftnlen uplo_len);
extern int pslauum_(char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, ftnlen uplo_len);
extern int pslawil_(integer *ii, integer *jj, integer *m, real *a, integer *desca, real *h44, real *h33, real *h43h34, real *v);
extern int pslawrite_(char *filnam, integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, integer *irwrit, integer *icwrit, real *work, ftnlen filnam_len);
extern int psmatadd_(integer *m, integer *n, real *alpha, real *a, integer *ia, integer *ja, integer *desca, real *beta, real *c__, integer *ic, integer *jc, integer *descc);
extern int psorg2l_(integer *m, integer *n, integer *k, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int psorg2r_(integer *m, integer *n, integer *k, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int psorgl2_(integer *m, integer *n, integer *k, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int psorglq_(integer *m, integer *n, integer *k, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int psorgql_(integer *m, integer *n, integer *k, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int psorgqr_(integer *m, integer *n, integer *k, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int psorgr2_(integer *m, integer *n, integer *k, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int psorgrq_(integer *m, integer *n, integer *k, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int psorm2l_(char *side, char *trans, integer *m, integer *n, integer *k, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *c__, integer *ic, integer *jc, integer *descc, real *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int psorm2r_(char *side, char *trans, integer *m, integer *n, integer *k, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *c__, integer *ic, integer *jc, integer *descc, real *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int psormbr_(char *vect, char *side, char *trans, integer *m, integer *n, integer *k, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *c__, integer *ic, integer *jc, integer *descc, real *work, integer *lwork, integer *info, ftnlen vect_len, ftnlen side_len, ftnlen trans_len);
extern int psormhr_(char *side, char *trans, integer *m, integer *n, integer *ilo, integer *ihi, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *c__, integer *ic, integer *jc, integer *descc, real *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int psorml2_(char *side, char *trans, integer *m, integer *n, integer *k, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *c__, integer *ic, integer *jc, integer *descc, real *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int psormlq_(char *side, char *trans, integer *m, integer *n, integer *k, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *c__, integer *ic, integer *jc, integer *descc, real *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int psormql_(char *side, char *trans, integer *m, integer *n, integer *k, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *c__, integer *ic, integer *jc, integer *descc, real *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int psormqr_(char *side, char *trans, integer *m, integer *n, integer *k, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *c__, integer *ic, integer *jc, integer *descc, real *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int psormr2_(char *side, char *trans, integer *m, integer *n, integer *k, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *c__, integer *ic, integer *jc, integer *descc, real *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int psormr3_(char *side, char *trans, integer *m, integer *n, integer *k, integer *l, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *c__, integer *ic, integer *jc, integer *descc, real *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int psormrq_(char *side, char *trans, integer *m, integer *n, integer *k, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *c__, integer *ic, integer *jc, integer *descc, real *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int psormrz_(char *side, char *trans, integer *m, integer *n, integer *k, integer *l, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *c__, integer *ic, integer *jc, integer *descc, real *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int psormtr_(char *side, char *uplo, char *trans, integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *c__, integer *ic, integer *jc, integer *descc, real *work, integer *lwork, integer *info, ftnlen side_len, ftnlen uplo_len, ftnlen trans_len);
extern int pspbsv_(char *uplo, integer *n, integer *bw, integer *nrhs, real *a, integer *ja, integer *desca, real *b, integer *ib, integer *descb, real *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pspbtrf_(char *uplo, integer *n, integer *bw, real *a, integer *ja, integer *desca, real *af, integer *laf, real *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pspbtrs_(char *uplo, integer *n, integer *bw, integer *nrhs, real *a, integer *ja, integer *desca, real *b, integer *ib, integer *descb, real *af, integer *laf, real *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pspbtrsv_(char *uplo, char *trans, integer *n, integer *bw, integer *nrhs, real *a, integer *ja, integer *desca, real *b, integer *ib, integer *descb, real *af, integer *laf, real *work, integer *lwork, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int pspocon_(char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *anorm, real *rcond, real *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen uplo_len);
extern int pspoequ_(integer *n, real *a, integer *ia, integer *ja, integer *desca, real *sr, real *sc, real *scond, real *amax, integer *info);
extern int psporfs_(char *uplo, integer *n, integer *nrhs, real *a, integer *ia, integer *ja, integer *desca, real *af, integer *iaf, integer *jaf, integer *descaf, real *b, integer *ib, integer *jb, integer *descb, real *x, integer *ix, integer *jx, integer *descx, real *ferr, real *berr, real *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen uplo_len);
extern int psposv_(char *uplo, integer *n, integer *nrhs, real *a, integer *ia, integer *ja, integer *desca, real *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen uplo_len);
extern int psposvx_(char *fact, char *uplo, integer *n, integer *nrhs, real *a, integer *ia, integer *ja, integer *desca, real *af, integer *iaf, integer *jaf, integer *descaf, char *equed, real *sr, real *sc, real *b, integer *ib, integer *jb, integer *descb, real *x, integer *ix, integer *jx, integer *descx, real *rcond, real *ferr, real *berr, real *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen fact_len, ftnlen uplo_len, ftnlen equed_len);
extern int pspotf2_(char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len);
extern int pspotrf_(char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len);
extern int pspotri_(char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len);
extern int pspotrs_(char *uplo, integer *n, integer *nrhs, real *a, integer *ia, integer *ja, integer *desca, real *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen uplo_len);
extern int psptsv_(integer *n, integer *nrhs, real *d__, real *e, integer *ja, integer *desca, real *b, integer *ib, integer *descb, real *work, integer *lwork, integer *info);
extern int pspttrf_(integer *n, real *d__, real *e, integer *ja, integer *desca, real *af, integer *laf, real *work, integer *lwork, integer *info);
extern int pspttrs_(integer *n, integer *nrhs, real *d__, real *e, integer *ja, integer *desca, real *b, integer *ib, integer *descb, real *af, integer *laf, real *work, integer *lwork, integer *info);
extern int pspttrsv_(char *uplo, integer *n, integer *nrhs, real *d__, real *e, integer *ja, integer *desca, real *b, integer *ib, integer *descb, real *af, integer *laf, real *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int psrow2col_(integer *ictxt, integer *m, integer *n, integer *nb, real *vs, integer *ldvs, real *vd, integer *ldvd, integer *rsrc, integer *csrc, integer *rdest, integer *cdest, real *work);
extern int psrscl_(integer *n, real *sa, real *sx, integer *ix, integer *jx, integer *descx, integer *incx);
extern int psstebz_(integer *ictxt, 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 *lwork, integer *iwork, integer *liwork, integer *info, ftnlen range_len, ftnlen order_len);
extern int pslaebz_(integer *ijob, integer *n, integer *mmax, integer *minp, real *abstol, real *reltol, real *pivmin, real *d__, integer *nval, real *intvl, integer *intvlct, integer *mout, real *lsave, integer *ieflag, integer *info);
extern int pslaecv_(integer *ijob, integer *kf, integer *kl, real *intvl, integer *intvlct, integer *nval, real *abstol, real *reltol);
extern int pslapdct_(real *sigma, integer *n, real *d__, real *pivmin, integer *count);
extern int psstedc_(char *compz, integer *n, real *d__, real *e, real *q, integer *iq, integer *jq, integer *descq, real *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen compz_len);
extern int psstein_(integer *n, real *d__, real *e, integer *m, real *w, integer *iblock, integer *isplit, real *orfac, real *z__, integer *iz, integer *jz, integer *descz, real *work, integer *lwork, integer *iwork, integer *liwork, integer *ifail, integer *iclustr, real *gap, integer *info);
extern int pssyev_(char *jobz, char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *w, real *z__, integer *iz, integer *jz, integer *descz, real *work, integer *lwork, integer *info, ftnlen jobz_len, ftnlen uplo_len);
extern int pssyevd_(char *jobz, char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *w, real *z__, integer *iz, integer *jz, integer *descz, real *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen jobz_len, ftnlen uplo_len);
extern int pssyevx_(char *jobz, char *range, char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *vl, real *vu, integer *il, integer *iu, real *abstol, integer *m, integer *nz, real *w, real *orfac, real *z__, integer *iz, integer *jz, integer *descz, real *work, integer *lwork, integer *iwork, integer *liwork, integer *ifail, integer *iclustr, real *gap, integer *info, ftnlen jobz_len, ftnlen range_len, ftnlen uplo_len);
extern int pssygs2_(integer *ibtype, char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen uplo_len);
extern int pssygst_(integer *ibtype, char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *b, integer *ib, integer *jb, integer *descb, real *scale, integer *info, ftnlen uplo_len);
extern int pssygvx_(integer *ibtype, char *jobz, char *range, char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *b, integer *ib, integer *jb, integer *descb, real *vl, real *vu, integer *il, integer *iu, real *abstol, integer *m, integer *nz, real *w, real *orfac, real *z__, integer *iz, integer *jz, integer *descz, real *work, integer *lwork, integer *iwork, integer *liwork, integer *ifail, integer *iclustr, real *gap, integer *info, ftnlen jobz_len, ftnlen range_len, ftnlen uplo_len);
extern int pssyngst_(integer *ibtype, char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *b, integer *ib, integer *jb, integer *descb, real *scale, real *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pssyntrd_(char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *d__, real *e, real *tau, real *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pssytd2_(char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *d__, real *e, real *tau, real *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pssytrd_(char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *d__, real *e, real *tau, real *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pssyttrd_(char *uplo, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *d__, real *e, real *tau, real *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pstrcon_(char *norm, char *uplo, char *diag, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *rcond, real *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern int pstreecomb_(integer *ictxt, char *scope, integer *n, real *mine, integer *rdest0, integer *cdest0, S_fp subptr, ftnlen scope_len);
extern int scombamax_(real *v1, real *v2);
extern int scombssq_(real *v1, real *v2);
extern int scombnrm2_(real *x, real *y);
extern int pstrrfs_(char *uplo, char *trans, char *diag, integer *n, integer *nrhs, real *a, integer *ia, integer *ja, integer *desca, real *b, integer *ib, integer *jb, integer *descb, real *x, integer *ix, integer *jx, integer *descx, real *ferr, real *berr, real *work, integer *lwork, integer *iwork, integer *liwork, integer *info, ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
extern int pstrti2_(char *uplo, char *diag, integer *n, real *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len, ftnlen diag_len);
extern int pstrtri_(char *uplo, char *diag, integer *n, real *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len, ftnlen diag_len);
extern int pstrtrs_(char *uplo, char *trans, char *diag, integer *n, integer *nrhs, real *a, integer *ia, integer *ja, integer *desca, real *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
extern int pstzrzf_(integer *m, integer *n, real *a, integer *ia, integer *ja, integer *desca, real *tau, real *work, integer *lwork, integer *info);
extern int pzchekpad_(integer *ictxt, char *mess, integer *m, integer *n, doublecomplex *a, integer *lda, integer *ipre, integer *ipost, doublecomplex *chkval, ftnlen mess_len);
extern int pzcol2row_(integer *ictxt, integer *m, integer *n, integer *nb, doublecomplex *vs, integer *ldvs, doublecomplex *vd, integer *ldvd, integer *rsrc, integer *csrc, integer *rdest, integer *cdest, doublecomplex *work);
extern int pzdbsv_(integer *n, integer *bwl, integer *bwu, integer *nrhs, doublecomplex *a, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *descb, doublecomplex *work, integer *lwork, integer *info);
extern int pzdbtrf_(integer *n, integer *bwl, integer *bwu, doublecomplex *a, integer *ja, integer *desca, doublecomplex *af, integer *laf, doublecomplex *work, integer *lwork, integer *info);
extern int pzdbtrs_(char *trans, integer *n, integer *bwl, integer *bwu, integer *nrhs, doublecomplex *a, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *descb, doublecomplex *af, integer *laf, doublecomplex *work, integer *lwork, integer *info, ftnlen trans_len);
extern int pzdbtrsv_(char *uplo, char *trans, integer *n, integer *bwl, integer *bwu, integer *nrhs, doublecomplex *a, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *descb, doublecomplex *af, integer *laf, doublecomplex *work, integer *lwork, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int pzdrscl_(integer *n, doublereal *sa, doublecomplex *sx, integer *ix, integer *jx, integer *descx, integer *incx);
extern int pzdtsv_(integer *n, integer *nrhs, doublecomplex *dl, doublecomplex *d__, doublecomplex *du, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *descb, doublecomplex *work, integer *lwork, integer *info);
extern int pzdttrf_(integer *n, doublecomplex *dl, doublecomplex *d__, doublecomplex *du, integer *ja, integer *desca, doublecomplex *af, integer *laf, doublecomplex *work, integer *lwork, integer *info);
extern int pzdttrs_(char *trans, integer *n, integer *nrhs, doublecomplex *dl, doublecomplex *d__, doublecomplex *du, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *descb, doublecomplex *af, integer *laf, doublecomplex *work, integer *lwork, integer *info, ftnlen trans_len);
extern int pzdttrsv_(char *uplo, char *trans, integer *n, integer *nrhs, doublecomplex *dl, doublecomplex *d__, doublecomplex *du, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *descb, doublecomplex *af, integer *laf, doublecomplex *work, integer *lwork, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int pzelget_(char *scope, char *top, doublecomplex *alpha, doublecomplex *a, integer *ia, integer *ja, integer *desca, ftnlen scope_len, ftnlen top_len);
extern int pzelset_(doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *alpha);
extern int pzelset2_(doublecomplex *alpha, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *beta);
extern int pzfillpad_(integer *ictxt, integer *m, integer *n, doublecomplex *a, integer *lda, integer *ipre, integer *ipost, doublecomplex *chkval);
extern int pzgbsv_(integer *n, integer *bwl, integer *bwu, integer *nrhs, doublecomplex *a, integer *ja, integer *desca, integer *ipiv, doublecomplex *b, integer *ib, integer *descb, doublecomplex *work, integer *lwork, integer *info);
extern int pzgbtrf_(integer *n, integer *bwl, integer *bwu, doublecomplex *a, integer *ja, integer *desca, integer *ipiv, doublecomplex *af, integer *laf, doublecomplex *work, integer *lwork, integer *info);
extern int pzgbtrs_(char *trans, integer *n, integer *bwl, integer *bwu, integer *nrhs, doublecomplex *a, integer *ja, integer *desca, integer *ipiv, doublecomplex *b, integer *ib, integer *descb, doublecomplex *af, integer *laf, doublecomplex *work, integer *lwork, integer *info, ftnlen trans_len);
extern int pzgebd2_(integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *d__, doublereal *e, doublecomplex *tauq, doublecomplex *taup, doublecomplex *work, integer *lwork, integer *info);
extern int pzgebrd_(integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *d__, doublereal *e, doublecomplex *tauq, doublecomplex *taup, doublecomplex *work, integer *lwork, integer *info);
extern int pzgecon_(char *norm, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *anorm, doublereal *rcond, doublecomplex *work, integer *lwork, doublereal *rwork, integer *lrwork, integer *info, ftnlen norm_len);
extern int pzgeequ_(integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *r__, doublereal *c__, doublereal *rowcnd, doublereal *colcnd, doublereal *amax, integer *info);
extern int pzgehd2_(integer *n, integer *ilo, integer *ihi, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzgehrd_(integer *n, integer *ilo, integer *ihi, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzgelq2_(integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzgelqf_(integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzgels_(char *trans, integer *m, integer *n, integer *nrhs, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *jb, integer *descb, doublecomplex *work, integer *lwork, integer *info, ftnlen trans_len);
extern int pzgeql2_(integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzgeqlf_(integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzgeqpf_(integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, integer *ipiv, doublecomplex *tau, doublecomplex *work, integer *lwork, doublereal *rwork, integer *lrwork, integer *info);
extern int pzgeqr2_(integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzgeqrf_(integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzgerfs_(char *trans, integer *n, integer *nrhs, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *af, integer *iaf, integer *jaf, integer *descaf, integer *ipiv, doublecomplex *b, integer *ib, integer *jb, integer *descb, doublecomplex *x, integer *ix, integer *jx, integer *descx, doublereal *ferr, doublereal *berr, doublecomplex *work, integer *lwork, doublereal *rwork, integer *lrwork, integer *info, ftnlen trans_len);
extern int pzgerq2_(integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzgerqf_(integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzgesv_(integer *n, integer *nrhs, doublecomplex *a, integer *ia, integer *ja, integer *desca, integer *ipiv, doublecomplex *b, integer *ib, integer *jb, integer *descb, integer *info);
extern int pzgesvd_(char *jobu, char *jobvt, integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *s, doublecomplex *u, integer *iu, integer *ju, integer *descu, doublecomplex *vt, integer *ivt, integer *jvt, integer *descvt, doublecomplex *work, integer *lwork, doublereal *rwork, integer *info, ftnlen jobu_len, ftnlen jobvt_len);
extern int pzgesvx_(char *fact, char *trans, integer *n, integer *nrhs, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *af, integer *iaf, integer *jaf, integer *descaf, integer *ipiv, char *equed, doublereal *r__, doublereal *c__, doublecomplex *b, integer *ib, integer *jb, integer *descb, doublecomplex *x, integer *ix, integer *jx, integer *descx, doublereal *rcond, doublereal *ferr, doublereal *berr, doublecomplex *work, integer *lwork, doublereal *rwork, integer *lrwork, integer *info, ftnlen fact_len, ftnlen trans_len, ftnlen equed_len);
extern int pzgetf2_(integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, integer *ipiv, integer *info);
extern int pzgetrf_(integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, integer *ipiv, integer *info);
extern int pzgetri_(integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, integer *ipiv, doublecomplex *work, integer *lwork, integer *iwork, integer *liwork, integer *info);
extern int pzgetrs_(char *trans, integer *n, integer *nrhs, doublecomplex *a, integer *ia, integer *ja, integer *desca, integer *ipiv, doublecomplex *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen trans_len);
extern int pzggqrf_(integer *n, integer *m, integer *p, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *taua, doublecomplex *b, integer *ib, integer *jb, integer *descb, doublecomplex *taub, doublecomplex *work, integer *lwork, integer *info);
extern int pzggrqf_(integer *m, integer *p, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *taua, doublecomplex *b, integer *ib, integer *jb, integer *descb, doublecomplex *taub, doublecomplex *work, integer *lwork, integer *info);
extern int pzheev_(char *jobz, char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *w, doublecomplex *z__, integer *iz, integer *jz, integer *descz, doublecomplex *work, integer *lwork, doublereal *rwork, integer *lrwork, integer *info, ftnlen jobz_len, ftnlen uplo_len);
extern int pzheevd_(char *jobz, char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *w, doublecomplex *z__, integer *iz, integer *jz, integer *descz, doublecomplex *work, integer *lwork, doublereal *rwork, integer *lrwork, integer *iwork, integer *liwork, integer *info, ftnlen jobz_len, ftnlen uplo_len);
extern int pzheevx_(char *jobz, char *range, char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *vl, doublereal *vu, integer *il, integer *iu, doublereal *abstol, integer *m, integer *nz, doublereal *w, doublereal *orfac, doublecomplex *z__, integer *iz, integer *jz, integer *descz, doublecomplex *work, integer *lwork, doublereal *rwork, integer *lrwork, integer *iwork, integer *liwork, integer *ifail, integer *iclustr, doublereal *gap, integer *info, ftnlen jobz_len, ftnlen range_len, ftnlen uplo_len);
extern int pzhegs2_(integer *ibtype, char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen uplo_len);
extern int pzhegst_(integer *ibtype, char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *jb, integer *descb, doublereal *scale, integer *info, ftnlen uplo_len);
extern int pzhegvx_(integer *ibtype, char *jobz, char *range, char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *jb, integer *descb, doublereal *vl, doublereal *vu, integer *il, integer *iu, doublereal *abstol, integer *m, integer *nz, doublereal *w, doublereal *orfac, doublecomplex *z__, integer *iz, integer *jz, integer *descz, doublecomplex *work, integer *lwork, doublereal *rwork, integer *lrwork, integer *iwork, integer *liwork, integer *ifail, integer *iclustr, doublereal *gap, integer *info, ftnlen jobz_len, ftnlen range_len, ftnlen uplo_len);
extern int pzhengst_(integer *ibtype, char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *jb, integer *descb, doublereal *scale, doublecomplex *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pzhentrd_(char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *d__, doublereal *e, doublecomplex *tau, doublecomplex *work, integer *lwork, doublereal *rwork, integer *lrwork, integer *info, ftnlen uplo_len);
extern int pzhetd2_(char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *d__, doublereal *e, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pzhetrd_(char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *d__, doublereal *e, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pzhettrd_(char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *d__, doublereal *e, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pzlabrd_(integer *m, integer *n, integer *nb, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *d__, doublereal *e, doublecomplex *tauq, doublecomplex *taup, doublecomplex *x, integer *ix, integer *jx, integer *descx, doublecomplex *y, integer *iy, integer *jy, integer *descy, doublecomplex *work);
extern int pzlacgv_(integer *n, doublecomplex *x, integer *ix, integer *jx, integer *descx, integer *incx);
extern int pzlacon_(integer *n, doublecomplex *v, integer *iv, integer *jv, integer *descv, doublecomplex *x, integer *ix, integer *jx, integer *descx, doublereal *est, integer *kase);
extern int pzlaconsb_(doublecomplex *a, integer *desca, integer *i__, integer *l, integer *m, doublecomplex *h44, doublecomplex *h33, doublecomplex *h43h34, doublecomplex *buf, integer *lwork);
extern int pzlacp2_(char *uplo, integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *jb, integer *descb, ftnlen uplo_len);
extern int pzlacp3_(integer *m, integer *i__, doublecomplex *a, integer *desca, doublecomplex *b, integer *ldb, integer *ii, integer *jj, integer *rev);
extern int pzlacpy_(char *uplo, integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *jb, integer *descb, ftnlen uplo_len);
extern int pzlaevswp_(integer *n, doublereal *zin, integer *ldzi, doublecomplex *z__, integer *iz, integer *jz, integer *descz, integer *nvs, integer *key, doublereal *rwork, integer *lrwork);
extern int pzlahqr_(logical *wantt, logical *wantz, integer *n, integer *ilo, integer *ihi, doublecomplex *a, integer *desca, doublecomplex *w, integer *iloz, integer *ihiz, doublecomplex *z__, integer *descz, doublecomplex *work, integer *lwork, integer *iwork, integer *ilwork, integer *info);
extern int pzlahrd_(integer *n, integer *k, integer *nb, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *t, doublecomplex *y, integer *iy, integer *jy, integer *descy, doublecomplex *work);
extern int pzlamr1d_(integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *jb, integer *descb);
extern doublereal pzlange_(char *norm, integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *work, ftnlen norm_len);
extern doublereal pzlanhe_(char *norm, char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *work, ftnlen norm_len, ftnlen uplo_len);
extern doublereal pzlanhs_(char *norm, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *work, ftnlen norm_len);
extern doublereal pzlansy_(char *norm, char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *work, ftnlen norm_len, ftnlen uplo_len);
extern doublereal pzlantr_(char *norm, char *uplo, char *diag, integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *work, ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern int pzlapiv_(char *direc, char *rowcol, char *pivroc, integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, integer *ipiv, integer *ip, integer *jp, integer *descip, integer *iwork, ftnlen direc_len, ftnlen rowcol_len, ftnlen pivroc_len);
extern int pzlaprnt_(integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, integer *irprnt, integer *icprnt, char *cmatnm, integer *nout, doublecomplex *work, ftnlen cmatnm_len);
extern int pzlapv2_(char *direc, char *rowcol, integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, integer *ipiv, integer *ip, integer *jp, integer *descip, ftnlen direc_len, ftnlen rowcol_len);
extern int pzlaqge_(integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *r__, doublereal *c__, doublereal *rowcnd, doublereal *colcnd, doublereal *amax, char *equed, ftnlen equed_len);
extern int pzlaqsy_(char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *sr, doublereal *sc, doublereal *scond, doublereal *amax, char *equed, ftnlen uplo_len, ftnlen equed_len);
extern int pzlaread_(char *filnam, doublecomplex *a, integer *desca, integer *irread, integer *icread, doublecomplex *work, ftnlen filnam_len);
extern int pzlarf_(char *side, integer *m, integer *n, doublecomplex *v, integer *iv, integer *jv, integer *descv, integer *incv, doublecomplex *tau, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, ftnlen side_len);
extern int pzlarfb_(char *side, char *trans, char *direct, char *storev, integer *m, integer *n, integer *k, doublecomplex *v, integer *iv, integer *jv, integer *descv, doublecomplex *t, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, ftnlen side_len, ftnlen trans_len, ftnlen direct_len, ftnlen storev_len);
extern int pzlarfc_(char *side, integer *m, integer *n, doublecomplex *v, integer *iv, integer *jv, integer *descv, integer *incv, doublecomplex *tau, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, ftnlen side_len);
extern int pzlarfg_(integer *n, doublecomplex *alpha, integer *iax, integer *jax, doublecomplex *x, integer *ix, integer *jx, integer *descx, integer *incx, doublecomplex *tau);
extern int pzlarft_(char *direct, char *storev, integer *n, integer *k, doublecomplex *v, integer *iv, integer *jv, integer *descv, doublecomplex *tau, doublecomplex *t, doublecomplex *work, ftnlen direct_len, ftnlen storev_len);
extern int pzlarz_(char *side, integer *m, integer *n, integer *l, doublecomplex *v, integer *iv, integer *jv, integer *descv, integer *incv, doublecomplex *tau, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, ftnlen side_len);
extern int pzlarzb_(char *side, char *trans, char *direct, char *storev, integer *m, integer *n, integer *k, integer *l, doublecomplex *v, integer *iv, integer *jv, integer *descv, doublecomplex *t, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, ftnlen side_len, ftnlen trans_len, ftnlen direct_len, ftnlen storev_len);
extern int pzlarzc_(char *side, integer *m, integer *n, integer *l, doublecomplex *v, integer *iv, integer *jv, integer *descv, integer *incv, doublecomplex *tau, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, ftnlen side_len);
extern int pzlarzt_(char *direct, char *storev, integer *n, integer *k, doublecomplex *v, integer *iv, integer *jv, integer *descv, doublecomplex *tau, doublecomplex *t, doublecomplex *work, ftnlen direct_len, ftnlen storev_len);
extern int pzlascl_(char *type__, doublereal *cfrom, doublereal *cto, integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen type_len);
extern int pzlase2_(char *uplo, integer *m, integer *n, doublecomplex *alpha, doublecomplex *beta, doublecomplex *a, integer *ia, integer *ja, integer *desca, ftnlen uplo_len);
extern int pzlaset_(char *uplo, integer *m, integer *n, doublecomplex *alpha, doublecomplex *beta, doublecomplex *a, integer *ia, integer *ja, integer *desca, ftnlen uplo_len);
extern int pzlasmsub_(doublecomplex *a, integer *desca, integer *i__, integer *l, integer *k, doublereal *smlnum, doublecomplex *buf, integer *lwork);
extern int pzlassq_(integer *n, doublecomplex *x, integer *ix, integer *jx, integer *descx, integer *incx, doublereal *scale, doublereal *sumsq);
extern int pzlaswp_(char *direc, char *rowcol, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, integer *k1, integer *k2, integer *ipiv, ftnlen direc_len, ftnlen rowcol_len);
extern Z_f pzlatra_(doublecomplex * ret_val, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca);
extern int pzlatrd_(char *uplo, integer *n, integer *nb, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *d__, doublereal *e, doublecomplex *tau, doublecomplex *w, integer *iw, integer *jw, integer *descw, doublecomplex *work, ftnlen uplo_len);
extern int pzlatrs_(char *uplo, char *trans, char *diag, char *normin, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *x, integer *ix, integer *jx, integer *descx, doublereal *scale, doublereal *cnorm, doublecomplex *work, ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len, ftnlen normin_len);
extern int pzlatrz_(integer *m, integer *n, integer *l, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work);
extern int pzlattrs_(char *uplo, char *trans, char *diag, char *normin, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *x, integer *ix, integer *jx, integer *descx, doublereal *scale, doublereal *cnorm, integer *info, ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len, ftnlen normin_len);
extern int pzlauu2_(char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, ftnlen uplo_len);
extern int pzlauum_(char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, ftnlen uplo_len);
extern int pzlawil_(integer *ii, integer *jj, integer *m, doublecomplex *a, integer *desca, doublecomplex *h44, doublecomplex *h33, doublecomplex *h43h34, doublecomplex *v);
extern int pzlawrite_(char *filnam, integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, integer *irwrit, integer *icwrit, doublecomplex *work, ftnlen filnam_len);
extern int pzmatadd_(integer *m, integer *n, doublecomplex *alpha, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *beta, doublecomplex *c__, integer *ic, integer *jc, integer *descc);
extern int pzmax1_(integer *n, doublecomplex *amax, integer *indx, doublecomplex *x, integer *ix, integer *jx, integer *descx, integer *incx);
extern int zcombamax1_(doublecomplex *v1, doublecomplex *v2);
/* Rerunning f2c -P may change prototypes or declarations. */
extern int pzpbsv_(char *uplo, integer *n, integer *bw, integer *nrhs, doublecomplex *a, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *descb, doublecomplex *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pzpbtrf_(char *uplo, integer *n, integer *bw, doublecomplex *a, integer *ja, integer *desca, doublecomplex *af, integer *laf, doublecomplex *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pzpbtrs_(char *uplo, integer *n, integer *bw, integer *nrhs, doublecomplex *a, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *descb, doublecomplex *af, integer *laf, doublecomplex *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pzpbtrsv_(char *uplo, char *trans, integer *n, integer *bw, integer *nrhs, doublecomplex *a, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *descb, doublecomplex *af, integer *laf, doublecomplex *work, integer *lwork, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int pzpocon_(char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *anorm, doublereal *rcond, doublecomplex *work, integer *lwork, doublereal *rwork, integer *lrwork, integer *info, ftnlen uplo_len);
extern int pzpoequ_(integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *sr, doublereal *sc, doublereal *scond, doublereal *amax, integer *info);
extern int pzporfs_(char *uplo, integer *n, integer *nrhs, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *af, integer *iaf, integer *jaf, integer *descaf, doublecomplex *b, integer *ib, integer *jb, integer *descb, doublecomplex *x, integer *ix, integer *jx, integer *descx, doublereal *ferr, doublereal *berr, doublecomplex *work, integer *lwork, doublereal *rwork, integer *lrwork, integer *info, ftnlen uplo_len);
extern int pzposv_(char *uplo, integer *n, integer *nrhs, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen uplo_len);
extern int pzposvx_(char *fact, char *uplo, integer *n, integer *nrhs, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *af, integer *iaf, integer *jaf, integer *descaf, char *equed, doublereal *sr, doublereal *sc, doublecomplex *b, integer *ib, integer *jb, integer *descb, doublecomplex *x, integer *ix, integer *jx, integer *descx, doublereal *rcond, doublereal *ferr, doublereal *berr, doublecomplex *work, integer *lwork, doublereal *rwork, integer *lrwork, integer *info, ftnlen fact_len, ftnlen uplo_len, ftnlen equed_len);
extern int pzpotf2_(char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len);
extern int pzpotrf_(char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len);
extern int pzpotri_(char *uplo, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len);
extern int pzpotrs_(char *uplo, integer *n, integer *nrhs, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen uplo_len);
extern int pzptsv_(char *uplo, integer *n, integer *nrhs, doublereal *d__, doublecomplex *e, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *descb, doublecomplex *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pzpttrf_(integer *n, doublereal *d__, doublecomplex *e, integer *ja, integer *desca, doublecomplex *af, integer *laf, doublecomplex *work, integer *lwork, integer *info);
extern int pzpttrs_(char *uplo, integer *n, integer *nrhs, doublereal *d__, doublecomplex *e, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *descb, doublecomplex *af, integer *laf, doublecomplex *work, integer *lwork, integer *info, ftnlen uplo_len);
extern int pzpttrsv_(char *uplo, char *trans, integer *n, integer *nrhs, doublereal *d__, doublecomplex *e, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *descb, doublecomplex *af, integer *laf, doublecomplex *work, integer *lwork, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int pzrow2col_(integer *ictxt, integer *m, integer *n, integer *nb, doublecomplex *vs, integer *ldvs, doublecomplex *vd, integer *ldvd, integer *rsrc, integer *csrc, integer *rdest, integer *cdest, doublecomplex *work);
extern int pzstein_(integer *n, doublereal *d__, doublereal *e, integer *m, doublereal *w, integer *iblock, integer *isplit, doublereal *orfac, doublecomplex *z__, integer *iz, integer *jz, integer *descz, doublereal *work, integer *lwork, integer *iwork, integer *liwork, integer *ifail, integer *iclustr, doublereal *gap, integer *info);
extern int pztrcon_(char *norm, char *uplo, char *diag, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublereal *rcond, doublecomplex *work, integer *lwork, doublereal *rwork, integer *lrwork, integer *info, ftnlen norm_len, ftnlen uplo_len, ftnlen diag_len);
extern int pztreecomb_(integer *ictxt, char *scope, integer *n, doublecomplex *mine, integer *rdest0, integer *cdest0, S_fp subptr, ftnlen scope_len);
extern int zcombamax_(doublecomplex *v1, doublecomplex *v2);
extern int pztrevc_(char *side, char *howmny, logical *select, integer *n, doublecomplex *t, integer *desct, doublecomplex *vl, integer *descvl, doublecomplex *vr, integer *descvr, integer *mm, integer *m, doublecomplex *work, doublereal *rwork, integer *info, ftnlen side_len, ftnlen howmny_len);
extern int pztrrfs_(char *uplo, char *trans, char *diag, integer *n, integer *nrhs, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *jb, integer *descb, doublecomplex *x, integer *ix, integer *jx, integer *descx, doublereal *ferr, doublereal *berr, doublecomplex *work, integer *lwork, doublereal *rwork, integer *lrwork, integer *info, ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
extern int pztrti2_(char *uplo, char *diag, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len, ftnlen diag_len);
extern int pztrtri_(char *uplo, char *diag, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, integer *info, ftnlen uplo_len, ftnlen diag_len);
extern int pztrtrs_(char *uplo, char *trans, char *diag, integer *n, integer *nrhs, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *b, integer *ib, integer *jb, integer *descb, integer *info, ftnlen uplo_len, ftnlen trans_len, ftnlen diag_len);
extern int pztzrzf_(integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzung2l_(integer *m, integer *n, integer *k, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzung2r_(integer *m, integer *n, integer *k, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzungl2_(integer *m, integer *n, integer *k, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzunglq_(integer *m, integer *n, integer *k, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzungql_(integer *m, integer *n, integer *k, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzungqr_(integer *m, integer *n, integer *k, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzungr2_(integer *m, integer *n, integer *k, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzungrq_(integer *m, integer *n, integer *k, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *work, integer *lwork, integer *info);
extern int pzunm2l_(char *side, char *trans, integer *m, integer *n, integer *k, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pzunm2r_(char *side, char *trans, integer *m, integer *n, integer *k, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pzunmbr_(char *vect, char *side, char *trans, integer *m, integer *n, integer *k, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, integer *lwork, integer *info, ftnlen vect_len, ftnlen side_len, ftnlen trans_len);
extern int pzunmhr_(char *side, char *trans, integer *m, integer *n, integer *ilo, integer *ihi, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pzunml2_(char *side, char *trans, integer *m, integer *n, integer *k, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pzunmlq_(char *side, char *trans, integer *m, integer *n, integer *k, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pzunmql_(char *side, char *trans, integer *m, integer *n, integer *k, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pzunmqr_(char *side, char *trans, integer *m, integer *n, integer *k, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pzunmr2_(char *side, char *trans, integer *m, integer *n, integer *k, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pzunmr3_(char *side, char *trans, integer *m, integer *n, integer *k, integer *l, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pzunmrq_(char *side, char *trans, integer *m, integer *n, integer *k, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pzunmrz_(char *side, char *trans, integer *m, integer *n, integer *k, integer *l, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen trans_len);
extern int pzunmtr_(char *side, char *uplo, char *trans, integer *m, integer *n, doublecomplex *a, integer *ia, integer *ja, integer *desca, doublecomplex *tau, doublecomplex *c__, integer *ic, integer *jc, integer *descc, doublecomplex *work, integer *lwork, integer *info, ftnlen side_len, ftnlen uplo_len, ftnlen trans_len);
extern int sdbtf2_(integer *m, integer *n, integer *kl, integer *ku, real *ab, integer *ldab, integer *info);
extern int sdbtrf_(integer *m, integer *n, integer *kl, integer *ku, real *ab, integer *ldab, integer *info);
extern int sdttrf_(integer *n, real *dl, real *d__, real *du, integer *info);
extern int sdttrsv_(char *uplo, char *trans, integer *n, integer *nrhs, real *dl, real *d__, real *du, real *b, integer *ldb, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int slamsh_(real *s, integer *lds, integer *nbulge, integer *jblk, real *h__, integer *ldh, integer *n, real *ulp);
extern int slapst_(char *id, integer *n, real *d__, integer *indx, integer *info, ftnlen id_len);
extern int slaref_(char *type__, real *a, integer *lda, logical *wantz, real *z__, integer *ldz, logical *block, integer *irow1, integer *icol1, integer *istart, integer *istop, integer *itmp1, integer *itmp2, integer *liloz, integer *lihiz, real *vecs, real *v2, real *v3, real *t1, real *t2, real *t3, ftnlen type_len);
extern int slasorte_(real *s, integer *lds, integer *j, real *out, integer *info);
extern int slasrt2_(char *id, integer *n, real *d__, integer *key, integer *info, ftnlen id_len);
extern int slatcpy_(char *uplo, integer *m, integer *n, real *a, integer *lda, real *b, integer *ldb, ftnlen uplo_len);
extern int slboot_();
extern int sltimer_(integer *i__);
extern int slenable_();
extern int sldisable_();
extern doublereal slinquire_(char *timetype, integer *i__, ftnlen timetype_len);
extern int slcombine_(integer *ictxt, char *scope, char *op, char *timetype, integer *n, integer *ibeg, doublereal *times, ftnlen scope_len, ftnlen op_len, ftnlen timetype_len);
/* comlen sltimer00_ 2052 */
extern int smatadd_(integer *m, integer *n, real *alpha, real *a, integer *lda, real *beta, real *c__, integer *ldc);
extern int spttrsv_(char *trans, integer *n, integer *nrhs, real *d__, real *e, real *b, integer *ldb, integer *info, ftnlen trans_len);
extern int ssdot_(integer *n, real *dot, real *x, integer *incx, real *y, integer *incy);
extern int sstein2_(integer *n, real *d__, real *e, integer *m, real *w, integer *iblock, integer *isplit, real *orfac, real *z__, integer *ldz, real *work, integer *iwork, integer *ifail, integer *info);
extern int ssteqr2_(char *compz, integer *n, real *d__, real *e, real *z__, integer *ldz, integer *nr, real *work, integer *info, ftnlen compz_len);
extern int strmvt_(char *uplo, integer *n, real *t, integer *ldt, real *x, integer *incx, real *y, integer *incy, real *w, integer *incw, real *z__, integer *incz, ftnlen uplo_len);
extern int zdbtf2_(integer *m, integer *n, integer *kl, integer *ku, doublecomplex *ab, integer *ldab, integer *info);
extern int zdbtrf_(integer *m, integer *n, integer *kl, integer *ku, doublecomplex *ab, integer *ldab, integer *info);
extern int zdttrf_(integer *n, doublecomplex *dl, doublecomplex *d__, doublecomplex *du, integer *info);
extern int zdttrsv_(char *uplo, char *trans, integer *n, integer *nrhs, doublecomplex *dl, doublecomplex *d__, doublecomplex *du, doublecomplex *b, integer *ldb, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int zlahqr2_(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 zlamsh_(doublecomplex *s, integer *lds, integer *nbulge, integer *jblk, doublecomplex *h__, integer *ldh, integer *n, doublereal *ulp);
extern int zlanv2_(doublecomplex *a, doublecomplex *b, doublecomplex *c__, doublecomplex *d__, doublecomplex *rt1, doublecomplex *rt2, doublereal *cs, doublecomplex *sn);
extern int zlaref_(char *type__, doublecomplex *a, integer *lda, logical *wantz, doublecomplex *z__, integer *ldz, logical *block, integer *irow1, integer *icol1, integer *istart, integer *istop, integer *itmp1, integer *itmp2, integer *liloz, integer *lihiz, doublecomplex *vecs, doublecomplex *v2, doublecomplex *v3, doublecomplex *t1, doublecomplex *t2, doublecomplex *t3, ftnlen type_len);
extern int zlatcpy_(char *uplo, integer *m, integer *n, doublecomplex *a, integer *lda, doublecomplex *b, integer *ldb, ftnlen uplo_len);
extern int zmatadd_(integer *m, integer *n, doublecomplex *alpha, doublecomplex *a, integer *lda, doublecomplex *beta, doublecomplex *c__, integer *ldc);
extern int zpttrsv_(char *uplo, char *trans, integer *n, integer *nrhs, doublereal *d__, doublecomplex *e, doublecomplex *b, integer *ldb, integer *info, ftnlen uplo_len, ftnlen trans_len);
extern int zsteqr2_(char *compz, integer *n, doublereal *d__, doublereal *e, doublecomplex *z__, integer *ldz, integer *nr, doublereal *work, integer *info, ftnlen compz_len);
extern int ztrmvt_(char *uplo, integer *n, doublecomplex *t, integer *ldt, doublecomplex *x, integer *incx, doublecomplex *y, integer *incy, doublecomplex *w, integer *incw, doublecomplex *z__, integer *incz, ftnlen uplo_len);
extern int zzdotc_(integer *n, doublecomplex *dotc, doublecomplex *x, integer *incx, doublecomplex *y, integer *incy);
extern int zzdotu_(integer *n, doublecomplex *dotu, doublecomplex *x, integer *incx, doublecomplex *y, integer *incy);
