benchmark

RとC++:乱数の生成

こちらからの続き 乱数を発生するシミュレーションをしてみる 基本は一様整数乱数を発生させるrand()と計算機の時刻からシード整数を取るsrand() rand()は規定の大きな整数を最大値とする一様整数乱数を作るので、0-1の実数一様乱数を作るには r = (double)r…

RとC++:C++のStandard Template Libraryをさらに調べる

Standard Template LibraryというのはC++の中の仕組みで、std::transformはそのうちの一つであるが、その仕組みを調べる 特に、複数の引数を与えること(複数の返り値を得ること)がどうなっているかについて情報を集める こちら

RとC++:Rの処理をそのままC++化(Standard Template Libraryでやる方法)

参考は以下のようにして出るvignett記事の"Using Standard Template Library algorithms" library(Rcpp) library(inline) vignette( "Rcpp-introduction" ) この記事の例題をなぞってみる src <- ' Rcpp::List input(data); Rcpp::Function f(fun); Rcpp::Li…

RとC++:オブジェクトの変換・対応

こちらからの続き RのオブジェクトとC++のそれの対応 R->C++がたくさんある C++->Rは(2行目の)wrap()。(これのみ?) a b c Rcpp::as() used to map SEXP to a C++ object (or proxy) Rcpp::wrap() used to map C++ object to a SEXP Rcpp::List proxy class…

cxxfunction()に慣れる

動くソースができたので、少しずつ複雑にしよう 3次元格子から任意次元格子へ library(Rcpp) library(inline) my.body2 <- ' IntegerVector a(A); IntegerVector b(B); int c=as<int>(C);; int n = a.length(); NumericMatrix x(n,c); for(int i=0;i</int>

cxxfunction()を使う

前の記事でinlineパッケージのcxxfunction()を使ってC++化することを書いた 問題は、cxxfunction()を使えるようになること 語学の勉強なので、「動く言葉」を蒐集してなんとか使えるようになればよいだろう "cxxfunction"をキーワードに検索をかけてリンクを…

RcppをWindowsで使う

RcppはRの(関数を作ったりするときに使う)パッケージでC++を使うためのパッケージ WindowsでRを使っており、ちょっと前作業も必要なので、冬休みくらいに、時間があるときに向いている こちらで書かれているように「むっちゃ速い」ということなので、試して…