対称実数行列の固有ベクトル問題をすばやく解決するための探求において(最初の N 個の固有値とベクトルのみが必要です。ここで、「最初」は最大の (実) 値を持つものを指します)、Windows で ARPack++ を実行しようとしています。 . 開発には MSVS 2010 を使用しています。
私は現在リンカー地獄にいます。また、私は 99 歳の C++ 専門家で、朝食にちょっとしたものを食べるわけでもありません。
まず、ARPACK++ はヘッダーのみのライブラリです。これは ARPACK に依存しており、ARPACK にも BLAS および LAPACK への依存関係が必要です。幸いなことに、Windows ユーザーは、.lib および .dll ファイルを BLAS、LAPACK、および ARPACK で利用できます。また、最新のコンパイラで動作するように ARPACK++ にパッチが適用されています (いくつかのバグ修正が含まれています)。
どうやら ARPACK++ は、必要な依存関係をSuperLUライブラリに導入しています。これは、私の場合、使用する必要があるためです
ARluSymStdEig<ARFLOAT> prob(nev, matrix, which, ncv, tol,
maxit, resid, AutoShift);
名前に「lu」が含まれているclass/CTORで、実際に欠落しているシンボルが表示されます。次に試したのは、その頃 (2000年頃) の SuperLU ライブラリ、つまり SuperLU 2.0 を入手することでした。これは、MSVS2010 を直接使用してコンパイルできます (たとえば、Intel の FORTRAN コンパイラにお金を払わない限り、MinGW/MSys でコンパイルする必要がある ARPACK と比較して)。私が作成した静的な superlu2.lib を含めましたが、SuperLU 自体には宣言されているだけで実装されていないメソッドがあるようで、特に
void cusolve(int, int, complex*, complex*);
void clsolve(int, int, complex*, complex*);
void cmatvec(int, int, int, complex*, complex*, complex*);
cgstrs.cで。今、私は立ち往生していて、続行する方法がわかりません:/ SuperLU には再び依存関係があるようですが、言及されていません。