c++

c++クラスが衝突しているとき

今、Aさんが作成したC++の諸関数群がある Bさんが作成したC++の諸関数群がある どちらも似たような目的で作られており、クラス名などが大幅に同名となっている。それぞれのクラスを定義した名前も同名になっている 両方を使ったプログラムが書きたい。どう…

わかったかも、C++とSTL

C++

昨日の記事でSTLの教科書の第2章をめくってみて、こういうことだとわかった C++はオブジェクト指向言語(そんなことは、昔から知ってましたが、言葉として覚えていただけでした) オブジェクト指向なので、クラスを作って、それのインスタンスを発生させて(そ…

SpinXFormを使ってみる

こちらのSpinXFormからコマンドラインで動くバージョンを取れば、 make して ./spinxform ./examples/bumpy/sphere.obj ./examples/bumpy/bumpy.tga ./examples/bumpy/testout.obj というような使い方をすることで、sphere.obj(頂点3次元座標がv始まりの行…

DEC

C++ library”libigl” リンク DEC全般 PDF DDG Forum Keenan 微分形式、自分なりのまとめ もう一つの自分なりのまとめ(シャープとフラット) 以下の絵はこちらのslidesの386枚目から

C++ライブラリ

このDECのライブラリは、実数・複素数・四元数のそれぞれの演算を定義しつつ、離散外積代数(ホッジスターとか)の行列表現を使い、かつ、疎行列を使って、そのうえで線形台数ライブラリによる高速演算に乗せることで、3次元オブジェクトの変形などをしている…

Armadillo,RcppArmadilloにみるC++ライブラリのR化

Armadilloの中身をみるためにはここからダウンロード RcppArmadilloの中身を見るためにはこのgithubへアクセス まずは、Armadilloが何かを確認しよう C++で素敵に線形代数をやるためのライブラリで、LAPAKとかに依存している(依存せずに使ってもよいらしいけ…

DLLして使えるようにする

R C++

R-extentionマニュアルの5.6(こちら)(こちらなら4.3)をそのままなぞれば、ヘッダーファイルとそれに対応するcppファイルとを使った実行cppファイルを、DLLにした上で、R内から呼び出して使うことはできる はて。 あまりに自分の使い方と遠いので、何をしてい…

C/C++ so/dllのR読み込み

C++をRで使うとはどういうことか、というと… C++(Cも)として動いている何かがある それをRから使える動的ライブラリにして、 それをRから呼び出せるようにRに接続して、 Rから呼び出す関数を作り そして使う という段階を踏む 「C++(Cも)として動いている何…

C++写経用メモ

少しC++がわかってきたので、写経をしてもよい頃かも知れない こちらに数値計算系のサイトがあって、おもしろそう Advanced RのRcppのセクションも助走によい→Rcppの準備の確認はこちらで

C++ -> Rcpp 写経その3『配列で大量のデータ処理』

http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CBEG/cbeg4.html:『配列で大量のデータ処理』 その6 intからdoubleへ変換 // sample06.cpp #include <stdio.h> main(void) { int score1, score2; double mean; printf("Input the score of No.1 = "); scanf("</stdio.h>…

C++ -> Rcpp 写経その2『ループで繰り返し計算』

『ループで繰り返し計算』 その4 ループで加算 // sample04.cpp #include <stdio.h> main(void) { int n; // 変数の宣言 int sum = 0; // 変数の宣言と初期化 // for ループ for( n=1 ; n<=10 ; n++ ){ sum += n; // 足し上げる } printf("The sum is %d\n", sum ); </stdio.h>…

C++ -> Rcpp 写経その1『簡単な計算』

『簡単な計算』 その1 文字列を表示・文字列を返す // sample01.cpp #include <stdio.h> main(void) { printf("Computer in Physics\n"); } // sample01R.cpp #include <stdio.h> #include <Rcpp.h> using namespace Rcpp; // [[Rcpp::export]] CharacterVector sample01() { //printf</rcpp.h></stdio.h></stdio.h>…

Armadillo with or without R

準備:g++が使えるようにしておく Have g++ ready. Windowsなら、Rtoolsを使ってR経由で使えるようにすればよい You can use Rtools for windows to get g++ ready. さて。Rとは別にArmadilloを使った1枚のソースコードファイルがあるとする You have one f…

メモ

Windowsの話 RtoolsはRのコマンドライン実行をしたり、コンパイルを可能にしたりするための一式を入れるツール。Cygwinとかと似たような意味合いもある コンパイラg++は、Rtoolsで入れたり、cygwinで入れたり、python(x,y)でコンパイラごと入れたりするとバ…

簡単なC++ライブラリ作成とその利用

次のような、自作ライブラリを用いたプログラムを作ることにする メイン関数は、内部で指定した整数を、二つの関数で変換し、その二つの出力の和を表示する メイン関数が呼び出す自作関数は (1)引数を2倍して、3を加える:これを一つのcppファイルに書いて…

ヘッダファイルには関数を書かない

上の例では、main()のソースファイルから関数を呼び出すにあたって、その関数を別のファイルに書くため、と称して、ヘッダーファイル化しました が! そうすると、複雑になってきたときに厄介なので、そうはしないように、とのこと(こちら) ヘッダファイルに…

実行可能ファイルを作る、ヘッダファイルをインクルードする、hoge.hファイルの置き場所を確認する

昨日の記事でC++をRから使うための記事を書き始めたけれど、案の定、コンパイルのいろいろに翻弄されて座礁した もう一度、初めから 初めの一歩 1枚ファイルで実行するプログラムをc++で書く。ただし、画面に何が起きているかが出てこないと、そもそも何を…

ぱらぱらめくる『Problems & Solutions In Scientific Computing With C++ And Java Simulations』

Problems & Solutions In Scientific Computing With C++ And Java Simulations作者: Willi-Hans Steeb,Yorick Hardy,Alexandre Hardy,Ruedi Stoop出版社/メーカー: World Scientific Pub Co Inc発売日: 2004/11/28メディア: ペーパーバックこの商品を含むブ…

Armadillo

ArmadilloはC++の線形代数ライブラリなのだけれど、Rで使うときにはRcppArmadilloパッケージを介して使う手がある(C++のArmadilloをC++を書くときに使ってもよいのだろうけれど、それより「R Armadillo連携に特化しているということだろう Rcpp自体の代りにR…

STL

STLとは 色々あるけれど、いくつかの大事な塊がある (1)Iterator (繰り返し処理のための仕組み) (2)アルゴリズム (3)データ構造 (1) Iterator 地道にベクトルの要素アドレスを指定して回すこともできるが… double sumC(NumericVector x) { int n = x.size();…

Rcppで格子遊び2

完全2部グラフから、条件を満たす辺のリストを作る 2部グラフの一塊はx+y+z+w=n-1のベクトルの集まり、もう一塊がx+y+z+w=nのベクトルの集まり それぞれ、相当のベクトル数ではあるけれど、全ペアの距離を調べてリストアップする ただし、出来上がるエッジ…

Rcppで格子遊び1

頂点数を数える 頂点数はただの漸化式。C++化する必要もないだろう。してもよいけど… n <- 500 a <- rep(0,n) a[1] <- 1 for(i in 2:n){ a[i] <- (i+2)*a[i-1]/(i-1) } a Rcppを使ってみる コメント行は"//"で始まる RcppArmadilloを使うので"//Rcpp::depend…

Rcppで格子遊び0

こちらでRcppを覚えてみようか、そのための地ならし情報収集をしてみよう、という記事を書いた。 その実践編。『自分のためにRcppを使ってみる 〜RstudioでC++を覚える』 課題を以下のように設定する。 d=4次元立方格子の非負整数格子を考える 格子はハミン…

離散外微分パッケージdgpdecを使う

昨日の記事でpythonのDECパッケージを使ってみようとして挫折したが、openソースをsubversion ツールでとってくる、という技を身につけたので、C++をとってくることにする ここが元サイト(そもそもこのサイトの文書を読んでDECをやろうとしたのに、C++よりpy…

カルマンフィルター

まずはWiki記事 隠れマルコフとの関係(一次マルコフ)、再帰ベイズ、情報フィルタ 離散か連続か 出力のみが観察される場合と、入力情報も取れる場合とがある(入力を選びながら出力を観察し、軌道修正するのは、Multi-armed Bandit問題(とそれに関するThompson…

カルマンフィルター

ここで多次元球面上に埋め込んだ順列にカルマンフィルターを使う話をかじった このコンピュータ・数学ブログでの「今の流行り」はC++なので、C++のライブラリを見てみよう(こちら) まず、README.txt For installation instructions, read INSTALL.txt. To us…

C++の関数はあるんだけど…というとき

ここ数日の記事はC(→C++)とそれを見越してのRcpp Rstudioと連携しての実行、さらにパッケージ化とかに手を染めるが、pathやらコンパイラやらで面倒多し とりあえず、Rstudioを言われた通りにいれる(こんな風に)とその上では、C++ソースをsourceCpp()で使える…

RcppのsourceCpp()とパッケージ作成

こちらの時代はRcppでのRとC++の連結では、inlineというのを使ってRのコードの中にC++対応のソースを書いて…というやり方だった RcppにsourceCpp()という関数ができて、C++で書いた関数を読み込む、というように変化していた この方が楽 それについてはここ…

Rstudioを使ってRcppする

こちらにあるように、Rの最新版(R2.15.0で始めたら対応していなかった…R3.0でやり直して成功した)で、Rtoolsを入れて、Rstudioも入れた RstudioのC/C++ファイル作成機能などを使ってやった こちらも参考 注意! // [[Rcpp::export]] はコメント行かと思った…

Rcppを使う練習:RcppでRとC++のやりとり

RcppはRでC++を使うための橋渡し援助のパッケージ そのRcppが、データや値をRの世界とC++の世界とでやりとりすすために持っている関数を使う例を示したパッケージがRcppExamples(こちら) ついでにRcppのクイック・レファレンス(こちら) 例をみよう Writing R…