00001 extern "C" {
00002
00003
00004 void zgesv_( const long &N, const long &nrhs, std::complex<double> *a,
00005 const long &lda, long *ipiv, std::complex<double> *b,
00006 const long &ldb, long &info );
00007
00008 void zgbsv_( const long &N, const long &KL, const long &KU,
00009 const long &nrhs, std::complex<double> *ab, const long &ldab,
00010 long *ipiv, std::complex<double> *b, const long &ldb,
00011 long &info );
00012
00013 void zgtsv_( const long &N, const long &nrhs, std::complex<double> *dl,
00014 std::complex<double> *d, std::complex<double> *du,
00015 std::complex<double> *b, const long &ldb, long &info );
00016
00017 void zposv_( const char &uplo, const long &N, const long &nrhs,
00018 std::complex<double> *a, const long &lda, std::complex<double> *b,
00019 const long &ldb, long &info );
00020
00021 void zppsv_( const char &uplo, const long &N, const long &nrhs,
00022 std::complex<double> *ap, std::complex<double> *b, const long &ldb,
00023 long &info );
00024
00025 void zpbsv_( const char &uplo, const long &N, const long &kd,
00026 const long &nrhs, std::complex<double> *ab, const long &ldab,
00027 std::complex<double> *b, const long &ldb, long &info );
00028
00029 void zptsv_( const long &N, const long &nrhs, double *d,
00030 std::complex<double> *e, std::complex<double> *b, const long &ldb,
00031 long &info );
00032
00033 void zhesv_( const char &uplo, const long &N, const long &nrhs,
00034 std::complex<double> *a, const long &lda, long *ipiv,
00035 std::complex<double> *b, const long &ldb, std::complex<double> *work,
00036 const long &lwork, long &info );
00037
00038 void zsysv_( const char &uplo, const long &N, const long &nrhs,
00039 std::complex<double> *a, const long &lda, long *ipiv,
00040 std::complex<double> *b, const long &ldb, std::complex<double> *work,
00041 const long &lwork, long &info );
00042
00043 void zhpsv_( const char &uplo, const long &N, const long &nrhs,
00044 std::complex<double> *ap, long *ipiv, std::complex<double> *b,
00045 const long &ldb, long &info );
00046
00047 void zspsv_( const char &uplo, const long &N, const long &nrhs,
00048 std::complex<double> *ap, long *ipiv, std::complex<double> *b,
00049 const long &ldb, long &info );
00050
00051
00052
00053
00054 void zgels_( const char &trans, const long &M, const long &N,
00055 const long &nrhs, std::complex<double> *a, const long &lda,
00056 std::complex<double> *b, const long &ldb,
00057 std::complex<double> *work, const long &lwork, long &info );
00058
00059 void zgelsy_( const long &M, const long &N, const long &nrhs,
00060 std::complex<double> *a, const long &lda, std::complex<double> *b,
00061 const long &ldb, long *jpvt, const double &rcond,
00062 long &rank, std::complex<double> *work, const long &lwork,
00063 double *rwork, long &info );
00064
00065 void zgelss_( const long &M, const long &N, const long &nrhs,
00066 std::complex<double> *a, const long &lda, std::complex<double> *b,
00067 const long &ldb, double *s, const double &rcond,
00068 long &rank, std::complex<double> *work, const long &lwork,
00069 double *rwork, long &info );
00070
00071 void zgglse_( const long &M, const long &N, const long &p,
00072 std::complex<double> *a, const long &lda, std::complex<double> *b,
00073 const long &ldb, std::complex<double> *c, std::complex<double> *d,
00074 std::complex<double> *x, std::complex<double> *work,
00075 const long &lwork, long &info );
00076
00077 void zggglm_( const long &N, const long &M, const long &p,
00078 std::complex<double> *a, const long &lda, std::complex<double> *b,
00079 const long &ldb, std::complex<double> *d, std::complex<double> *x,
00080 std::complex<double> *y, std::complex<double> *work,
00081 const long &lwork, long &info );
00082
00083
00084
00085
00086 void zgeev_( const char &jobvl, const char &jobvr, const long &N,
00087 std::complex<double> *a, const long &lda, std::complex<double> *w,
00088 std::complex<double> *vl, const long &ldvl, std::complex<double> *vr,
00089 const long &ldvr, std::complex<double> *work, const long &lwork,
00090 double *rwork, long &info );
00091
00092 void zheev_( const char &jobz, const char &uplo, const long &N,
00093 std::complex<double> *a, const long &lda, double *w,
00094 std::complex<double> *work, const long &lwork, double *rwork,
00095 long &info );
00096 void zheevd_( const char &jobz, const char &uplo, const long &N,
00097 std::complex<double> *a, const long &lda, double *w,
00098 std::complex<double> *work, const long &lwork, double *rwork,
00099 const long &lrwork, long *iwork, const long &liwork,
00100 long &info );
00101
00102 void zhpev_( const char &jobz, const char &uplo, const long &N,
00103 std::complex<double> *ap, double *w, std::complex<double> *z,
00104 const long &ldz, std::complex<double> *work, double *rwork,
00105 long &info );
00106 void zhpevd_( const char &jobz, const char &uplo, const long &N,
00107 std::complex<double> *ap, double *w, std::complex<double> *z,
00108 const long &ldz, std::complex<double> *work, const long &lwork,
00109 double *rwork, const long &lrwork, long *iwork,
00110 const long &liwork, long &info );
00111
00112 void zhbev_( const char &jobz, const char &uplo, const long &N,
00113 const long &kd, std::complex<double> *ab, const long &ldab,
00114 double *w, std::complex<double> *z, const long &ldz,
00115 std::complex<double> *work, double *rwork, long &info );
00116 void zhbevd_( const char &jobz, const char &uplo, const long &N,
00117 const long &kd, std::complex<double> *ab, const long &ldab,
00118 double *w, std::complex<double> *z, const long &ldz,
00119 std::complex<double> *work, const long &lwork, double *rwork,
00120 const long &lrwork, long *iwork, const long &liwork,
00121 long &info );
00122
00123 void zgees_( const char &jobvs, const char &sort,
00124 bool (*select)( std::complex<double> *, std::complex<double> * ),
00125 const long &N, std::complex<double> *a, const long &lda,
00126 long &sdim, std::complex<double> *w, std::complex<double> *vs,
00127 const long &ldvs, std::complex<double> *work, const long &lwork,
00128 double *rwork, bool *bwork, long &info );
00129
00130 void zgesvd_( const char &jobu, const char &jobvt, const long &M,
00131 const long &N, std::complex<double> *a, const long &lda,
00132 double *s, std::complex<double> *u, const long &ldu,
00133 std::complex<double> *vt, const long &ldvt,
00134 std::complex<double> *work, const long &lwork, double *rwork,
00135 long &info );
00136 void zgesdd_( const char &jobz, const long &M, const long &N,
00137 std::complex<double> *a, const long &lda, double *s,
00138 std::complex<double> *u, const long &ldu, std::complex<double> *vt,
00139 const long &ldvt, std::complex<double> *work, const long &lwork,
00140 double *rwork, long *iwork,
00141 long &info );
00142
00143
00144
00145 void zggev_( const char &jobvl, const char &jobvr, const long &N,
00146 std::complex<double> *a, const long &lda, std::complex<double> *b,
00147 const long &ldb, std::complex<double> *alpha,
00148 std::complex<double> *beta, std::complex<double> *vl,
00149 const long &ldvl, std::complex<double> *vr, const long &ldvr,
00150 std::complex<double> *work, const long &lwork, double *rwork,
00151 long &info );
00152
00153
00154 void zhegv_( const long &itype, const char &jobz, const char &uplo,
00155 const long &N, std::complex<double> *a, const long &lda,
00156 std::complex<double> *b, const long &ldb, double *w,
00157 std::complex<double> *work, const long &lwork, double *rwork,
00158 long &info );
00159 void zhegvd_( const long &itype, const char &jobz, const char &uplo,
00160 const long &N, std::complex<double> *a, const long &lda,
00161 std::complex<double> *b, const long &ldb, double *w,
00162 std::complex<double> *work, const long &lwork, double *rwork,
00163 const long &lrwork, long *iwork, const long &liwork,
00164 long &info );
00165
00166
00167 void zhpgv_( const long &itype, const char &jobz, const char &uplo,
00168 const long &N, std::complex<double> *ap, std::complex<double> *bp,
00169 double *w, std::complex<double> *z, const long &ldz,
00170 std::complex<double> *work, double *rwork, long &info );
00171 void zhpgvd_( const long &itype, const char &jobz, const char &uplo,
00172 const long &N, std::complex<double> *ap, std::complex<double> *bp,
00173 double *w, std::complex<double> *z, const long &ldz,
00174 std::complex<double> *work, const long &lwork, double *rwork,
00175 const long &lrwork, long *iwork, const long &liwork,
00176 long &info );
00177
00178
00179 void zhbgv_( const char &jobz, const char &uplo, const long &N,
00180 const long &ka, const long &kb, std::complex<double> *ab,
00181 const long &ldab, std::complex<double> *bb, const long &ldbb,
00182 double *w, std::complex<double> *z, const long &ldz,
00183 std::complex<double> *work, double *rwork, long &info );
00184 void zhbgvd_( const char &jobz, const char &uplo, const long &N,
00185 const long &ka, const long &kb, std::complex<double> *ab,
00186 const long &ldab, std::complex<double> *bb, const long &ldbb,
00187 double *w, std::complex<double> *z, const long &ldz,
00188 std::complex<double> *work, const long &lwork, double *rwork,
00189 const long &lrwork, long *iwork, const long &liwork,
00190 long &info );
00191
00192 void zgges_( const char &jobvsl, const char &jobvsr, const char &sort,
00193 bool (*delctg)( std::complex<double> *, std::complex<double> * ),
00194 const long &N, std::complex<double> *a, const long &lda,
00195 std::complex<double> *b, const long &ldb, long &sdim,
00196 std::complex<double> *alpha, std::complex<double> *beta,
00197 std::complex<double> *vsl, const long &ldvsl,
00198 std::complex<double> *vsr, const long &ldvsr,
00199 std::complex<double> *work, const long &lwork, double *rwork,
00200 bool *bwork, long &info );
00201
00202 void zggsvd_( const char &jobu, const char &jobv, const char &jobq,
00203 const long &M, const long &N, const long &p, long &k,
00204 long &L, std::complex<double> *a, const long &lda,
00205 std::complex<double> *b, const long &ldb, double *alpha,
00206 double *beta, std::complex<double> *u, const long &ldu,
00207 std::complex<double> *v, const long &ldv, std::complex<double> *q,
00208 const long &ldq, std::complex<double> *work, double *rwork,
00209 long *iwork, long &info );
00210 }