アルマジロを可愛がることにした

f:id:aaaazzzz036:20140219124244p:plain
Armadillo: C++ linear algebra library


あっ, どーも僕です.

数あるRcpp系パッケージのなかでRcppArmadilloを少し勉強したのでまとめます. RcppArmadilloによりRcpp経由で, C++ライブラリのArmadilloを使用できます. 以下にRcppArmadilloの機能をまとめます. ただし, 内容はRcppArmadilloの機能に絞ったものです. また, 複素や疎行列に関しては少し省いています.


アルマジロその1. 行列操作編 - サボタージュ禁止のおさぼり日記
アルマジロその2. 演算編 - サボタージュ禁止のおさぼり日記
アルマジロその3. 線形代数編 - サボタージュ禁止のおさぼり日記


Rcppそのものの使い方は下に載せた参考文献にあたってください.
なお, 私も勉強中ですので間違いに気づいていない場合があります. また, あの機能がないだとか, この機能は使えないなどお気づきの方はそっと教えて下さい.


追記 そういえば, イテレータとテンプレートについては理解できなかったので, 書いてないです..... C++勉強します.

モチベーション

Rcpp資料少なすぎ問題

重い処理はRcppに投げれよい, とよく目にしますが資料が不足していると感じています. そのため, プログラム歴がRからはじまったわたしのようなRユーザーが, Rcppを学ぶのはハードル高いです. よって, 機能を調べて公開することは有用だと思います.

Rcppに投げればいいという人が入門資料つくってくれよ!って思ってましたが, わたしはもう24でした. 欲しけりゃ自分でやればいいだけの話ですね.

EigenとArmadillo, どっちが良いのか問題

EigenもArmadilloも, linear Algebraのためのライブラリです. わたしが調べた限りではどっちが良いのかわかりませんでしたが, どちらかといえばArmadilloの方がRに近いと感じたためArmadilloやります.

また, 調べてみてわかりましたが, EigenとArmadilloの機能や書き方はよく似ています. なので, とりあえずArmadilloの機能を調べておけばEigenも使いこなせると思います.

Rcppが使えるとかっこいい問題

eizoo3010の日記をみました.

GSLすでにRのライブラリがある問題

GSLをRから使うためのRパッケージがすでにあるので, 面白そうでしたが今回はパスします.

参考文献

Rcpp+inline

RcppはVignetteと, 下記の書籍のpart1, 2を参照すればよいと思います. ただ, Rcppの資料は書籍と同じ内容のもがネットにたくさん落ちていますので, まずネットで探してみるのもいいと思います.

Seamless R and C++ Integration with Rcpp (Use R!)

Seamless R and C++ Integration with Rcpp (Use R!)


RcppEigen

RcppEigenは使い方はVignetteで, Eigenの機能については暗黒通信団さんの「行列ライブラリEigenのノート」が良いと思います.