00001
00005 #ifndef TBCI_LAPACK_LIB_H
00006 #define TBCI_LAPACK_LIB_H
00007
00008 #ifdef __cplusplus
00009 extern "C" {
00010 #endif
00011 #include "f2c.h"
00012
00013 #if 0
00014 typedef int integer;
00015 typedef char *address;
00016 typedef short int shortint;
00017
00018
00019 typedef double doublereal;
00020
00021 typedef struct { doublereal r, i; } doublecomplex;
00022 typedef int logical;
00023 typedef short int shortlogical;
00024 typedef char logical1;
00025 typedef char integer1;
00026 #endif
00027
00028 #ifdef _DOXYGEN
00029 # define integer int
00030 # define doublereal double
00031 # define doublecomplex __complex__ double
00032 # define real float
00033 # define complex __complex__ float
00034 #endif
00035
00036
00037 double dlamch_(const char*);
00038
00039
00040
00041
00042 int dgesv_(integer *n, integer *nrhs, doublereal *a, integer *lda,
00043 integer *ipiv, doublereal *b, integer *ldb, integer *info);
00044
00045
00046
00047 int dgbsv_(integer *n, integer *kl, integer *ku, integer *nrhs,
00048 doublereal *ab, integer *ldab, integer *ipiv, doublereal *b,
00049 integer *ldb, integer *info);
00050
00051
00052 int dgbsvx_(const char *fact, const char *trans, integer *n, integer *kl,
00053 integer *ku, integer *nrhs, doublereal *ab, integer *ldab,
00054 doublereal *afb, integer *ldafb, integer *ipiv, char *equed,
00055 doublereal *r, doublereal *c, doublereal *b, integer *ldb,
00056 doublereal *x, integer *ldx,
00057 doublereal *rcond, doublereal *ferr, doublereal *berr,
00058 doublereal *work, integer *iwork, integer *info);
00059
00060 int dgbsvx2_(const char *fact, const char *trans, integer *n, integer *kl,
00061 integer *ku, integer *nrhs, doublereal *ab, integer *ldab,
00062 doublereal *afb, integer *ldafb, integer *ipiv, char *equed,
00063 doublereal *r, doublereal *c, doublereal *b, integer *ldb,
00064 doublereal *x, integer *ldx,
00065 doublereal *rcond, doublereal *ferr, doublereal *berr,
00066 doublereal *work, integer *iwork, integer *info);
00067
00068
00069
00070
00071 int zgesv_(integer *n, integer *nrhs, doublecomplex *a,
00072 integer *lda, integer *ipiv, doublecomplex *b,
00073 integer *ldb, integer *info);
00074
00075
00076
00077 int dsyev_(const char *jobz, const char *uplo, integer *n, doublereal *a,
00078 integer *lda, doublereal *w, doublereal *work, integer *lwork,
00079 integer *info);
00080
00081 int dspev_(const char *jobz, const char *uplo, integer *n, doublereal *ap,
00082 doublereal *w, doublereal *z, integer *ldz, doublereal *work,
00083 integer *info);
00084
00085 int dgeev_(const char *jobvl, const char *jobvr, integer *n, doublereal *a,
00086 integer *lda, doublereal *wr, doublereal *wi, doublereal *vl,
00087 integer *ldvl, doublereal *vr, integer *ldvr, doublereal *work,
00088 integer *lwork, integer *info);
00089
00090
00091
00092 int dsbev_(const char *jobz, const char *uplo, integer *n, integer *kd,
00093 doublereal *ab, integer *ldab, doublereal *w, doublereal *z,
00094 integer *ldz, doublereal *work, integer *info);
00095
00096
00097 int dsbevx_(const char *jobz, const char *range, const char *uplo, integer *n,
00098 integer *kd, doublereal *ab, integer *ldab, doublereal *q,
00099 integer *ldq, doublereal *vl, doublereal *vu, integer *il,
00100 integer *iu, doublereal *abstol, integer *m, doublereal *w,
00101 doublereal *z, integer *ldz, doublereal *work, integer *iwork,
00102 integer *ifail, integer *info);
00103
00104
00105 int zgeev_(const char *jobvl, const char *jobvr, integer *n,
00106 doublecomplex *a, integer *lda, doublecomplex *w, doublecomplex *vl,
00107 integer *ldvl, doublecomplex *vr, integer *ldvr, doublecomplex *work,
00108 integer *lwork, doublereal *rwork, integer *info);
00109
00110
00111 int zheev_(const char *jobz, const char *uplo, integer *n, doublecomplex *a,
00112 integer *lda, doublereal *w, doublecomplex *work, integer *lwork,
00113 doublereal *rwork, integer *info);
00114
00115
00116 int zgehrd_(integer *n, integer *ilo, integer *ihi, doublecomplex *a,
00117 integer *lda, doublecomplex *tau, doublecomplex *work,
00118 integer *lwork, integer *info);
00119
00120 int zunghr_(integer *n, integer *ilo, integer *ihi, doublecomplex *a,
00121 integer *lda, doublecomplex *tau, doublecomplex *work,
00122 integer *lwork, integer *info);
00123
00124 int zhseqr_(const char *job, const char *compz, integer *n, integer *ilo, integer *ihi,
00125 doublecomplex *h, integer *ldh, doublecomplex *w,
00126 doublecomplex *z, integer *ldz, doublecomplex *work,
00127 integer *lwork, integer *info);
00128
00129
00130
00131
00132 long own_ew_(long *jobz, long *uplo, long *n, long *m, doublecomplex *ab, long *ldab,
00133 doublecomplex* bb, long *ldbb, double *vl, double *vu, double *w,
00134 doublecomplex *q, long *ldq, doublecomplex *work, double *rwork,
00135 long *iwork);
00136 long own_ev_(long *n, long *m, double *w, doublecomplex *z, long *ldz, doublecomplex *q,
00137 long *ldq, doublecomplex *work, double *rwork, long *iwork, long *ifail);
00138
00139 #ifdef __cplusplus
00140 }
00141 #endif
00142
00143 #endif