LAPACKEのlatmsを使う
何の話か
LAPACKにはlatmsと呼ばれる特異値や条件数を指定して乱数行列を生成するための関数が用意されています。
しかし、これをLAPACKEから使うにはliblapacke.aのビルド時にやることがあるよという話。
latmsが使えるliblapacke.aのビルド
latmsの実体はそもそもtmglib(LAPACKのテスト用行列を生成したりするためのライブラリ)に含まれるもので、lapacklibのものではありません。
デフォルトではlapackelibはlapacklibのCインターフェイスとなっているため、tmglibの関数を当然含みません。
そこで、make.incを編集してlapackelibにtmglibのCインターフェイスを含ませるよう設定してからビルドします。
- LAPACK — Linear Algebra PACKageから欲しいバージョンのLAPACKをダウンロードして展開</a>
- 展開したディレクトリ内で以下のコマンドを実行
- make.inc内の のコメントアウトを外す。
- lapackelibをビルド。必要に応じてその他のライブラリもビルド。
</ol>
このmain.incの書き換えを行わないと、当然ですが というエラーが出ます。
おわりに
LAPACKは数値計算の根幹となるライブラリな気がするのですが、ドキュメントの整備状況やネットに転がっている質問・回答が少なくて使うのに苦労する気がします。
気のせいですかね。