WindowsでのCLAPACKのインストールと使用
Installation Use Clapack Windows
久しぶりにWindowsにLAPACKをインストールするのは本当に難しいです。まず第一に、コンピューターにはFORTRANコンパイラーがありません。そのため、LAPACKの公式サイトにLAPACKをインストールするのは久しぶりで、まだ行っていません。そうすれば、ubantuの下に簡単にインストールできます。しかし、それでもWindowsでは成功しないので、CLAPACKをWindowsにインストールしてください。
1.はじめに
LAPACK(Linear Algebra PACKage)は、Fortran言語で記述されたBLAS(Basic Linear Algebra Subprograms)に基づく高性能線形代数計算ライブラリであり、線形システムの最小二乗解である線形代数方程式の解法などの計算に使用できます。方程式、固有値と固有ベクトルおよびその他の問題を計算します。そしてCLAPACKはLAPACKのC言語インターフェースです。
2、コンパイル
Environment: VS2013, cmake, clapack-3.2.1-cmake compressed package Official website installation link: http://icl.cs.utk.edu/lapack-for-windows/clapack/index.html
具体的な手順は次のとおりです。
1.ダウンロード clapack-3.2.1-CMAKE.tgzと解凍します。
圧縮されたパッケージをダウンロードして解凍します
2.ダウンロード cmake マシンにインストールします。
cmakeコンパイラをダウンロードしてインストールします
3.CMAKEを開きますcmakeを開きます
-ソースコードフォルダー内のCLAPACK-3.2.1-CMAKEフォルダーをポイントします
最初のステップで解凍されたソースコードを参照します。ここで、はソースコードです。
-ビルドする新しいフォルダーをポイントします(同じではない方が良いです)
cmakeによってコンパイルされたclpackファイルを配置するための新しいフォルダーを作成します(ソースファイルのホームに配置しないことをお勧めします)
-ライブラリとインクルードを特定の場所に配置する場合は、[構成]をクリックし、インストールパスを確認します。
[構成]をクリックします
-Visual StudioSolutionを選択します。 nmakeまたはその他のプラットフォームを選択することもできます。
Visual Studio Solutionを選択すると、何もする必要がないようです。
-すべてが白くなるまで、もう一度[構成]をクリックする必要がある場合があります
もう一度[構成]をクリックする必要がある場合があり、赤い背景が消えます
-[生成]をクリックすると、CLAPACK用のVisual Studioが作成され、完了です。
[生成]をクリックすると、vsのclapackプロジェクトが作成されます。
-CMAKEを閉じる
cmakeを閉じる
4、「ビルド」フォルダを見て、CLAPACK Visual StudioSolutionがあります。開くだけです。
clapackがコンパイルされて配置されているフォルダーを開くと、作成されたvsソリューションが表示されます。
5、「ALL_BUILD」プロジェクトをビルドします。ソリューションをビルドし、ライブラリを作成します
ALL_BUILDをスタートアップ項目として設定し、コンパイルします
6、「インストール」を構築します。これにより、ライブラリが配置され、インストールフォルダに含まれます。
スタートアップ項目としてINSTALLを設定し、コンパイルします
7、「RUN_TESTS」を作成します。 BLASおよびCLAPACKテストが実行されます。
RUN_TESTSをスタートアップ項目として設定し、コンパイルします。 (部分的なコンパイルは失敗しますが、問題ではありません)
CMAKEの設定を変更しなかった場合は、6番目の手順を完了すると、必要なものがC: Program Files CLAPACKにあります。 。手 .lib
3、使用
1. Create a new vs console project 2. Open the project properties page a) Add the clapack library directory b) Add library directory c) add dependencies
3.新しいファイルを作成します
#include #include #include 'f2c.h' #include 'clapack.h' int main(void) { /* 3x3 matrix A * 76 25 11 * 27 89 51 * 18 60 32 */ doublereal A[16] = { 0.35, 0.09, -0.44, 0.25, 0.45, 0.07, -0.33, -0.32, -0.14, -0.54, -0.03, -0.13, -0.17, 0.35, 0.17, 0.11 } integer info int i, j char jobvl = 'V' char jobvr = 'V' integer n = 4 doublereal *a = A integer lda = 4 doublereal* wr = (doublereal*)malloc(sizeof(doublereal) * n) doublereal* wi = (doublereal*)malloc(sizeof(doublereal) * n) integer ldvr = 4 doublereal* vr = (doublereal*)malloc(sizeof(doublereal) * n * ldvr) integer ldvl = 4 doublereal* vl = (doublereal*)malloc(sizeof(doublereal) * n * ldvl) integer lwork = n * 4 doublereal *work = (doublereal*)malloc(sizeof(doublereal) * lwork) dgeev_(&jobvl, &jobvr, &n, a, &lda, wr, wi, vl, &ldvl, vr, &ldvr, work, &lwork, &info) printf('info:%d
', info) printf('D =
') for (i = 0 i for (j = 0 j if (i == j) printf('%10.5f', wr[i]) else printf('%10.5f', 0.0) } printf('
') } printf('Vl =
') for (i = 0 i for (j = 0 j printf('%10.5f', vl[n * j + i]) } printf('
') } printf('Vr =
') for (i = 0 i for (j = 0 j printf('%10.5f', vr[n * j + i]) } printf('
') } return info }
4.コンパイル