arpackff.hpp
来自「FreeFem++可以生成高质量的有限元网格。可以用于流体力学」· HPP 代码 · 共 440 行 · 第 1/2 页
HPP
440 行
irvec = (int) rvec; iselect = new logical[ncv]; iZ = (Z == NULL) ? &V[0] : Z; F77NAME(sseupd)(&irvec, &HowMny, iselect, d, iZ, &ldz, &sigma, &bmat, &n, which, &nev, &tol, resid, &ncv, &V[0], &ldv, &iparam[1], &ipntr[1], &workd[1], &workl[1], &lworkl, &info HIDDEN_112 ); delete[] iselect;} // seupp (float).inline void naupp(int& ido, char bmat, int n, char* which, int nev, double& tol, double resid[], int ncv, double V[], int ldv, int iparam[], int ipntr[], double workd[], double workl[], int lworkl, int& info){ F77NAME(dnaupd)(&ido, &bmat, &n, which, &nev, &tol, resid, &ncv, &V[0], &ldv, &iparam[1], &ipntr[1], &workd[1], &workl[1], &lworkl, &info HIDDEN_12);} // naupp (double).inline void naupp(int& ido, char bmat, int n, char* which, int nev, float& tol, float resid[], int ncv, float V[], int ldv, int iparam[], int ipntr[], float workd[], float workl[], int lworkl, int& info){ F77NAME(snaupd)(&ido, &bmat, &n, which, &nev, &tol, resid, &ncv, &V[0], &ldv, &iparam[1], &ipntr[1], &workd[1], &workl[1], &lworkl, &info HIDDEN_12 );} // naupp (float).inline void caupp(int& ido, char bmat, int n, char* which, int nev, double& tol, complex<double> resid[], int ncv, complex<double> V[], int ldv, int iparam[], int ipntr[], complex<double> workd[], complex<double> workl[], int lworkl, double rwork[], int& info){ F77NAME(znaupd)(&ido, &bmat, &n, which, &nev, &tol, resid, &ncv, &V[0], &ldv, &iparam[1], &ipntr[1], &workd[1], &workl[1], &lworkl, &rwork[1], &info HIDDEN_12 );} // caupp inline void caupp(int& ido, char bmat, int n, char* which, int nev, float& tol, complex<float> resid[], int ncv, complex<float> V[], int ldv, int iparam[], int ipntr[], complex<float> workd[], complex<float> workl[], int lworkl, float rwork[], int& info){ F77NAME(cnaupd)(&ido, &bmat, &n, which, &nev, &tol, resid, &ncv, &V[0], &ldv, &iparam[1], &ipntr[1], &workd[1], &workl[1], &lworkl, &rwork[1], &info HIDDEN_12);} // caupp inline void ceupp(bool rvec, char HowMny, complex<double> d[], complex<double> Z[], int ldz, complex<double> sigma, complex<double> workev[], char bmat, int n, char* which, int nev, double tol, complex<double> resid[], int ncv, complex<double> V[], int ldv, int iparam[], int ipntr[], complex<double> workd[], complex<double> workl[], int lworkl, double rwork[], int& info){ int irvec; logical* iselect; complex<double>* iZ; irvec = (int) rvec; iselect = new logical[ncv]; iZ = (Z == NULL) ? &V[0] : Z; F77NAME(zneupd)(&irvec, &HowMny, iselect, d, iZ, &ldz, &sigma, &workev[0], &bmat, &n, which, &nev, &tol, resid, &ncv, &V[0], &ldv, &iparam[1], &ipntr[1], &workd[1], &workl[1], &lworkl, &rwork[1], &info HIDDEN_112); delete[] iselect;} // ceupp (complex<double>).inline void ceupp(bool rvec, char HowMny, complex<float> d[], complex<float> Z[], int ldz, complex<float> sigma, complex<float> workev[], char bmat, int n, char* which, int nev, float tol, complex<float> resid[], int ncv, complex<float> V[], int ldv, int iparam[], int ipntr[], complex<float> workd[], complex<float> workl[], int lworkl, float rwork[], int& info){ int irvec; logical* iselect; complex<float>* iZ; irvec = (int) rvec; iselect = new logical[ncv]; iZ = (Z == NULL) ? &V[0] : Z; F77NAME(cneupd)(&irvec, &HowMny, iselect, d, iZ, &ldz, &sigma, &workev[0], &bmat, &n, which, &nev, &tol, resid, &ncv, &V[0], &ldv, &iparam[1], &ipntr[1], &workd[1], &workl[1], &lworkl, &rwork[1], &info HIDDEN_112); delete[] iselect;} // ceupp (complex<float>).inline void neupp(bool rvec, char HowMny, double dr[], double di[], double Z[], int ldz, double sigmar, double sigmai, double workv[], char bmat, int n, char* which, int nev, double tol, double resid[], int ncv, double V[], int ldv, int iparam[], int ipntr[], double workd[], double workl[], int lworkl, int& info){ int irvec; logical* iselect; double* iZ; irvec = (int) rvec; iselect = new logical[ncv]; iZ = (Z == NULL) ? &V[0] : Z; F77NAME(dneupd)(&irvec, &HowMny, iselect, dr, di, iZ, &ldz, &sigmar, &sigmai, &workv[1], &bmat, &n, which, &nev, &tol, resid, &ncv, &V[0], &ldv, &iparam[1], &ipntr[1], &workd[1], &workl[1], &lworkl, &info HIDDEN_112); delete[] iselect;} // neupp (double). inline void neupp(bool rvec, char HowMny, float dr[], float di[], float Z[], int ldz, float sigmar, float sigmai, float workv[], char bmat, int n, char* which, int nev, float tol, float resid[], int ncv, float V[], int ldv, int iparam[], int ipntr[], float workd[], float workl[], int lworkl, int& info){ int irvec; logical* iselect; float* iZ; irvec = (int) rvec; iselect = new logical[ncv]; iZ = (Z == NULL) ? &V[0] : Z; F77NAME(sneupd)(&irvec, &HowMny, iselect, dr, di, iZ, &ldz, &sigmar, &sigmai, &workv[1], &bmat, &n, which, &nev, &tol, resid, &ncv, &V[0], &ldv, &iparam[1], &ipntr[1], &workd[1], &workl[1], &lworkl, &info HIDDEN_112); delete[] iselect;} // neupp (float). inline void sauppError(int info){ if(info<0) cerr << " erreur arpack sauppError" <<info << endl; switch (info) { case 0: return; case -8: throw ErrorExec("lapack error [sd]aupp ",info); case -9: throw ErrorExec("arpack error START_RESID_ZERO [sd]aupp ",info); case -9999: throw ErrorExec("arpack error ARNOLDI_NOT_BUILD [sd]aupp ",info); case 1: throw ErrorExec("arpack error MAX_ITERATIONS [sd]aupp ",info); return; case 3: throw ErrorExec("arpack error NO_SHIFTS_APPLIED [sd]aupp ",info); return; default : throw ErrorExec("arpack error AUPP_ERROR [sd]aupp ",info); }}inline void seuppError(int info){ if(info<0) cerr << " erreur arpack seuppError" <<info << endl; switch (info) { case 0: return; case -8: case -9: throw ErrorExec("lapack LAPACK_ERROR [sd]eupp ",info); case -14: throw ErrorExec("lapack NOT_ACCURATE_EIG [sd]eupp ",info); case 1: throw ErrorExec("lapack REORDERING_ERROR [sd]eupp ",info); default : throw ErrorExec("lapack error [sd]eupp ",info); }} // EuppError.#endif // ARPACKFF_HPP
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?