たにちゅーの思惑|谷口忠大Home Page(たにちゅー・どっと・こむ)

HOME > たにちゅーの思惑 >  研究 > CPPLapackの導入

CPPLapackの導入

2009-05-19  (tue)|カテゴリー:


このページでは,CPPLAPACKの使い方を学ぶ紹介をします.

1.CPPLAPACKについて

cpplapackはC++で利用できる行列演算ライブラリのラッパーです.

もともとLapackはFortranで開発された行列演算ライブラリですが,CLapackとしてC言語から利用できるようになりました.

これをC++のクラスやメモリ管理の機構を加え,グッと利便性を増したのがcpplapackです.

オペレータ演算子のオーバーロードや,クラス実装により 数学的な記述がかのうになりました.

つまり,行列の足し算が

A = B + C ;

で済むという・・・.さらに,転置は

At = t(A) ;

で済みます.

少しでもforループを減らしたい私としては,また,若い頃からオブジェクト指向にドクされた私としては最早,これなしにはやっていけないのです.

2.基本参考サイト

以下のサイトで基本を学んでください.

CPPLapackドキュメント日本語版

一応,日本語版ドキュメントの本家

CPPLapackチュートリアル

上島氏による,チュートリアルサイト.基本はまず,このチュートリアルに従って,やってみることで身につきます.

CPPLapack Documentation

総本山? ここにClassのメンバー関数などが全て書いてあり,どんな関数があるのか知りたいときはここにいって,Class Listをみます.

3.インストール(使用できるようになるまで: Linux編)

まず,Linuxにlapackのライブラリを入れるひつようがあります.

Synapticパッケージマネージャを立ち上げて,lapackで検索してみてください.

Vine linux 4.2 なら lapack が, Ubuntu 7 なら例えばlapack3 が引っかかると思います.

あと, -devというのがついたやつも出てきたら,それもチェックしてインストールしちゃいましょう.

これで,ライブラリ自体は入ってくれます.Syapticの無い人は

apt-get install lapack

とかで行けるらしい.

次に,CPPLapackを入れます.この入れ方はCPPLapackチュートリアルに書いてあるのですが,一部間違っているので,再度書いておきます(引用).

  1. mkdir ~/local,mkdir ~local/libと入力し,ディレクトリ~/local/libを作成する.
  2. cd ~/local/libと入力する.
  3. http://sourceforge.net/projects/cpplapack/からCPPLapackの最新版cpplapack-XXXX_XX_XX.tar.gzをダウンロードする.
  4. tar xzf cpplapack-XXXX_XX_XX.tar.gzと入力し,CPPLapackを展開する.
  5. ln -s cpplapack-XXXX_XX_XX cpplapackと入力し,シンボリックリンクを作成する.

なぜか,チュートリアルでは5のln が luになってました.

この上で,プログラム中で

#include <cpplapack.h>

と呼び出せば,大概いけます.

4.主に使うもの

基本的に使うクラスは

dcovector

double の column (列) vector ということ.普通の列ベクトル.

drovector

double の row (行) vectorということ.普通の行ベクトル.時々使う.

dgematrix

double の general (一般) matrix(行列)ということ.非常によく使う.

使い方はとりあえず, CPPLapackチュートリアルで体感してください.

5.うまくいかない

Vine 4.2の場合,上記だけでは

/usr/bin/ld: cannot find -llapack

と,怒られる可能性があります.

これは,Vine でインストールした laplack, blas, g2cのlibファイルの名前が違うからの可能性があります.

su になって

> updatedb

として,

> locate liblapack

で,libの位置を特定

/usr/lib/liblapack.so.3.1.1

こんな場所を言ってくるので,これを /usr/lib/liblapack.so にコピーするなり,シンボリックリンクはるなりすればいけるはず.

同様のことが, blas と g2c にも言えるので,同じようにすること.

COMMENTS コメント

  1. たにちゅー 2010-07-04 (sun)

    新たに下記に,windowsとlinux環境での環境構築情報を
    書きました.ご参照ください.

    http://bit.ly/bnagb4

コメントの投稿




*


下記のタグが使用できます。
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <img localsrc="" alt=""> <pre lang="" line="" escaped="">

インフォメーション

LECTURE menu



tanichuの著作

copyright © Tadahiro Taniguchi All Right Reserved.