■
それと Mac OS X で BLAS の関数、例えば、dgemm を呼び出すのにちょっとてこずったので、やり方を書いておく。
まず、ライブラリ含まれているかどうかを調べる。/usr/lib/libatlas.dylib に含まれているはず。
$ otool -v -t /usr/lib/libatlas.dylib|grep dgemm
_scalar_dgemm:
_dgemm_:
_atl_f77wrap_dgemm__:
_cblas_dgemm:
_ATL_dgemm:
_ATL_dgemmNN:
_ATL_dgemmNT:
_ATL_dgemmTN:
_ATL_dgemmTT:
_ATL_dgemmNN_RB:
_ATL_dgemmNT_RB:
_ATL_dgemmTN_RB:
とまぁ含まれている。
しかし、libatlas をロードしてもコンパイルできない。
vecLib/vecLib.h を include すればよいと思っていたのだけれど、
vecLib.h から vBLAS.h を見ると Single precision の関数しかプロトタイプ宣言がない。
なので、自前でヘッダを書かないといけない。
extern "C"{ extern void dgemm_(const char*, const char*, const int*, const int*, const int*, co nst double*, const double*, const int*, const double*, const int*, const double*, d ouble*, const int*); }
これで、libatlas をロードしてやれば ok.