2012-01-01から1年間の記事一覧
Interpreter pattern - Wikipedia DSL(Domain Specific Lanuage、ドメイン特化言語)を作るときに良いっぽい。要するにAST(Abstract Syntax Tree)を作るときに使うイメージかな?以下のコードは例の如くwikipediaにあったコードをC++に書きなおしたもの。サ…
DSL(Domain Specific Language)作成のための第一歩としてよくある電卓的なものを作るぞと。ネットで見かける日本語の情報は不勉強な私の知識を超えている内容なので、ここでは丁寧にまとめておきたい。環境はVisual Studio 2010 Shell版のF#(Not 製品版のV…
ggplot2 Time Series Heatmapsにあるグラフがあまりに美しかったのでやったみた。まずはデータ取得・描画用のライブラリをインストールしておく。 install.packages("ggplot2") install.packages("RFinanceYJ") ここでは2011年のTOPIXのHeatmapを作成し…
前フリ 逐次モンテカルロ・粒子フィルタというのは状態推定*1をシミュレーションに基づいて実行する技でして、最近は「データ同化」なんてワードと絡めて有名になってきている気がしています。アイディアとしてはカルマンフィルタの非線形拡張&解析ベースで…
グラフの凡例は当然描きたいグラフに応じてその”内容”を文字列で設定するわけですが、その凡例の「文字幅」に応じて表示する位置を調整しないといけないわけです。このやり方を最近理解したのでメモ。肝は「legend関数の返り値の$rect$wが凡例の幅になってる…
うぇっぶには疎いのでやり方がよくわからず、有識者の方々にお伺いしたところ @teramonagi 同じことやったことがあるので、参考までに sink(file(paste(filename, "html", sep="."), open="w", encoding="UTF-8"));cat(HTML);sink()2012-04-05 00:17:29 via …
ちょっと某会で「R Language Definition」を読んでて、「6 Computing on the language」担当になったのでそのためのメモ。 Language objectsについて 評価対象/評価式 typeof mode class is.language quote(x + y) language call call TRUE quote(x) symbol …
備忘録。 texのインストール あべのり氏のインストーラを使用してインストール。とりあえず全部デフォルトの設定で。 ・・・としたら、beamerがはいっとった!!!*1以下の話はいらないけど、調べたんで残しておく。”警告消す”技は有効。 Beamerのインストー…
式構造自体を保存し、必要な際に評価するための枠組み。「Expression Template」でググると色々例が出てくるが、大体行列・ベクトルを扱ったものばかりなので、がんばって”スカラー”評価をする用のクラスを書いてみた。正しくなさげ・最適化の余地ありだと思…
型変換演算子を使うとC++の言語使用でサポートされていない「戻り値の型によるオーバーロード」を実現することができる。以下のコードではstruct X内にA・Bの両型での型変換演算子を用意しているのがミソ。 #include<iostream> using namespace std; //戻り値の型 stru</iostream>…
型変換演算子(Type conversion operator)をオーバーロードして特定の型へのキャストを実現できる。以下では適当に作ったPointer(ポインタ)型クラスのオブジェクトをNULLポインタのときにfalseが返るようにbool型へキャストしている。 #include<iostream> using name</iostream>…
手元にあるVisual StudioがExpress版だと中々作るのが難しいExcelアドインですが、CodePlex Archiveというものを使うと驚くほど簡単にExcelアドインを.NET言語を使って作成できます。またさらに、.NET言語からR言語を呼び出すことを可能にするDLLを、我らが…
C#で作ったDLL(最終的にExcelから使用したい)をExcelから使用した状態でデバッグしたくて色々調べてたら、 「方法 : DLL プロジェクトからデバッグする」によると Express Edition では、外部の呼び出し元アプリケーションを指定できません。 Express Edit…
templateを使って静的に(コンパイル時に)仮想関数の仕組みを提供させようというもの。これを使うと仮想関数を呼びだすオーバーヘッドがなくなるので良いらしい。基本クラス(Base)をTemplateクラスとして宣言しておいて、派生クラスで自身を指定するのがミ…
欠損データを扱う場合や疎らにしか取得できないデータを扱う場合に、補間をしなければならない。そんな時には approx approxfun の関数を使う。名前から判断できるようにapproxfunの方は補間用の関数を返してくれて、これはとても使い勝手が良い。この関数だ…
関数の積分値を計算したい場合はその名もずばりの「integrate」関数というものがあるので、これを使う。例えばf(x) = xを0〜2の区間で積分したい場合は integrate(function(x){x}, lower = 0, upper = 2) とする。出力はlistで返却されるので、その中で必要…
要するにVBAでいうVariant型的な物をC++でどう作るのかというお話。この問題に対する設計の定石としては以下のようなクラスを設計することで対応する。 今回は”代入できる”という機能だけ作成。ここにtemplateで指定した型が持つべき関数を規定・制限したり…
コンパイル時に処理を切り替えたい場合に使用。Strategyパターンでは継承により処理を切り替えるが、こちらはテンプレートパラメーターで処理を切り替える。以下のサンプルコードは上述のLINK先のStrategyパターンのをもじって書いた。複数の特徴(戦略)を…
タイトル通り、templateを再帰的に使用することで関数チックな動作をさせる。0の場合を特殊化することで計算をうまく終了させている。また2つのtemplate引数がある場合の特殊化の書き方も覚えておきたい。 #include<iostream> using namespace std; //べき乗を計算 t</iostream>…
テンプレート引数で基本クラスを指定する手法らしい。発想としてはデコレーターパターンに近いような気がする。ここでは文字列の出力を太字・イタリック・あるいはその合成に指定できるようなサンプルコードを書く。 #include <string> #include<iostream> using namespace std</iostream></string>…
C++のテンプレートに関する本を斜め読みしているので、面白そうな奴だけでもまとめておこうと。 配列の要素数を返す関数 配列の最終要素を返す関数 を作成する。template引数に整数値を使用できるというところがポイント。 #include<iostream> using namespace std; //</iostream>…
「R単体だと遅いので計算のボトルネックはC++で書くようにすればいいんじゃないか、せっかくそのためのRcppなる便利パッケージもあるし」とずっと思っていたものの毎回インストール方法を調べることすら億劫がってやっていなかったのですが、前回の記事に書…
最近発刊されたR言語使い必携の書 をパラパラ読んでいるのですが、そこにcompilerパッケージ*1の使い方も書いてあって、これを見た限りcompilerパッケージを使ってコンパイルした関数はコンパイルしてないそのままの関数よりも10倍程度速くなってるっぽい…
金融と関係ない業界で働いている方から 「クオンツという仕事があるのはわかったが、実際にどういうことをやっているのかよくわからない。もっとよく知りたいのでお勧めの書籍があれば紹介してほしい」 という旨のご質問を頂いたので私が読んだ中である程度…
いつも書く時には忘れてて、そのたびに簡単なサンプルコード書いてるのでいい加減メモっておく。代入演算子の多重定義(オーバーロード)の際にはセオリー通りreturn *thisでオブジェクトの参照を返すのも忘れないようにする。挙動のまとめとしては Hoge x:…
脳みその体操のために指数分布とポアソン分布について第20回R勉強会@東京(#TokyoR) : ATNDで「指数分布とポアソン分布のいけない関係」というタイトルでお話させていただきました。その際の資料は以下です。 指数分布とポアソン分布のいけない関係 View m…
Twitter上でTwitter / @wdkz: @teramonagi 大仏様、あけましておめでとう ... via kwoutTwitter / @wdkz: @teramonagi 大仏様、あけましておめでとう ... via kwoutという質問をいただいたので、サンプルコード含めてここで回答します。今回は描画したいサン…
なんとなーく頭でわかっているつもりになっていたものをちゃんと手を動かしてやっておきたい。 まず、インポータンスサンプリングについて一言で説明しておくと 「ある量の期待値を計算したいという状況において、その確率変数が大きな値を取る個所を重点的*…
以下のようにplot⇒par⇒plot⇒axis(4)と関数を順に書けばいいっぽい。 二個目に書いたplotの軸が第二軸としてaxis(4)により描画される。 x <- seq(0,13,0.01) plot(x, dexp(x), type = "l", ylab = "", col = 'red') par(new =T) plot(x, dnorm(x -10), type =…
前回の記事「誘導型モデルを使った信用リスクのある割引債の価格付け−1 - My Life as a Mock Quant」の続き。前回の記事の最後に書いたように、作成したプログラムのテストをしたいので今回はまず簡単にできるチェックとして デフォルトがないと仮定した場…