2011-07-04 24 views
8

LAPACKを使用する私の目的は、行列のコレスキーを計算することです。私はFedoraのC/C++でプログラミングしていますが、インストールするlapackとlapackeまたはclapackのLAPACKを混同していますか?lapackeまたはclapackでlinuxのc/C++でプログラミングする場合

+1

コメントのみです。 C/C++のような言語はありません。 CとC++があります。彼らは同じではありません。 CまたはC++でコーディングしたいですか? – talonmies

答えて

9

2つの基本的な違いは、Fortranコンパイラの必要性です。

CLAPACKは基本的に、古いf2cコンバータを通過するNETLIB LAPACKルーチンを参照するだけで、ライブラリをCコンパイラでコンパイルすることができます。

LAPACKEはFortran LAPACKライ​​ブラリ用の正式なC言語インタフェースを定義する試みです(Intel IIRCが開始)。 LAPACKの実装に依存せず、ツールチェーン固有のCをFortranの相互運用性に隠してプログラマがそれらを心配する必要がないという利点があります。 LAPACKEには、C99複合組み込み型と正しく動作するという明確な利点もあります。

BLASの選択はBLASの選択によって決定されますが、LAPACK + LAPACKとBLAS implmementationのどちらかを選ぶことをお勧めします。

+0

あなたの返信、talonmiesありがとう。私はcとC++を混在させてコーディングしています。私はlapackのインストールに苦労しています。私はちょうどLapack 3.3.1とLapackeをインストールしましたが、lapack_testingを作成すると、 '../../../lapack-3.3.1/lapack_LINUX.a(xerbla.o):関数 'xerbla_'で: /trunk/lapack/lapack-3.3.1/SRC/xerbla.f:40: '_gfortran_st_write 'への未定義の参照3.3.1ではなくLapack 3.2.1をインストールする必要がありますか? – user506146

+0

[解決]。 make.incでは、私はLINKER = fortranを設定し、lapacke_testingをエラーなく実行する必要があることを知りました。 THanks @ – user506146

+0

これは、あなたがFortran標準ライブラリをリンクしていないことを伝えています。 Fortranコンパイラを使用してリンクする必要があり、リンクする必要があるライブラリのリストにCまたはC++の標準ライブラリを追加する方が簡単です。 – talonmies

関連する問題