RにCのプログラムを取り込む

RにCのプログラムを取り込む方法についてのメモ

##RにCのプログラムを取り込む方法
とりあえず以下のプログラムを取り込んでみる
foo.c

プログラムがあるディレクトリへ移動して
R CMD SHLIB foo.c
と入力する.そうするとfoo.soというファイルが出来るので,これをRから参照することになる.

GUIのRを起動して
>dyn.load("hogehoge/foo.so")
>out <- .C("foo",as.integer(5), as.double(1:5), as.double(0))
と入力し,outを表示させると
>out
[[1]]
[1] 5

[[2]]
[1] 1 2 3 4 5

[[3]]
[1] 1 5
と出る.

リスト形式で戻るので,必要に応じて変更しよう
listsum <- function(x){
    n <- length(x)
    .C("foo",as.integer(n), as.double(x), as.double(0))[[3]]
}
とすると
>listsum(c(1,3,10))
[1] 14
と出る.



MacOSXへのOpenCVのインストール

#MacPortsを用いたOpenCVのインストールについてまとめてしました
#こちらの記事をどうぞ


前回はWindows上でOpenCVをいじってみたけど,今回はMacOSX上で使うためのインストール方法
少々やっかいなのでメモメモ


##参考WebSite
Hacking is believing@itoshi.tv - MacBook ProへOpenCVをインストールして, iSightで顔認識したりするぞ (動画付き)
Christoph Seibert: Weblog - OpenCV on Mac OS X

##用意するもの
Fink
iSquint
OpenCVのLinux用ソース
コンパイルエラーが起きても怒らない明鏡止水の心

##インストール方法
#1
Finkで以下のパッケージをインストールしておく
pkgconfig
giflib
libjpeg
libpng3
libtiff
gtk+2
gtk+2-dev
pango1-xft2-dev
glib2-dev
atk1
libtool14
autoconf2.5
automake1.9

#2
ffmpegはiSquint内に入っているらしいので,それを使う.
最新版はiSquint 1.5
dmgをマウントして,ffmpegを/usr/local/bin/以下にコピー
sudo cp /Volumes/iSquint/iSquint.app/Contents/Resources/ffmpeg /usr/local/bin/







#3
OpenCVをダウンロードしてくる.最新版はOpenCV 1.0.0
tarで解凍した後に./configure(オプションが結構あるので注意)
あとはmake, sudo make installという普通の流れ.
tar zxvf opencv-1.0.0.tar.gz
cd opencv-1.0.0
./configure --with-apps CPPFLAGS="-I/sw/include -I/usr/include/malloc" LDFLAGS=-L/sw/lib
make
sudo make install

#4
環境変数の設定
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
よく使う場合は.bashrcに書き込んでしまってもいいかも

#5
サンプルプログラムのコンパイル
cd samples/c
chmod +x ./build_all.sh
./build_all.sh



gfortranのインストール

##リンク先のHigh Performance Compupting for Mac OS Xからgfortranのバイナリが無くなってるようです.
##新しくインストール方法をまとめた記事を作っておきましたので,こちらへどうぞ


Fortranでプログラミングすることは滅多にないんだけど,Rのパッケージをインストールするときに必要なことが多いので,コンパイラのインストールメモ

この作業は失敗すると大変なことになるので要注意


##MacOSXにgfortranをインストールする方法
##必要な物
gfortranのバイナリー
失敗してもめげない勇気

##インストール方法
#1
High Performance Computing for Mac OS XのGCC 4 (auto-vectorizing gcc with openmp)のところにあるBinariesのところからgfortran-intel-bin.tar.gzをダウンロードする.
これはIntel版なので,PowerPCユーザーの人はgfortran-bin.tar.gzをダウンロード.

#2
適当なディレクトリに保存したgfortran-intel-bin.tar.gzをインストールする.
sudo tar zxvf gfortran-intel-bin.tar.gz -C /


これでインストールは完了
パスが通っていればTerminalでgfortranと入力すれと
gfortran: no input files
と返ってくるはず.