haskellで数字を文字列に変換

haskellで文字列を数字に変換するにはreadを使う n = read "01235" main = print n --1234 逆に、数字から文字列に変換する場合はshowを使う。 main = print (show (read "01234")) --1234

boost::numeric::ublas::vectorの速度比較

C++

boost/numeric/ublas/vectorの生成と代入に関する速度をまとめた。 要素数を5千万にして生成と代入の速度を計測。 compiler及び環境 i686-apple-darwin11-llvm-g++-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00) Macbookair 20…

C++のclassとstructの違い

C++

はっきりとした言及があまりなかったので一応メモ。 Cにおいてclassとstructは(Cには記憶クラスというものがあって)全くの別物だが、C++ではstructとclassに機能的な違いはない。 structとclassの違い 振る舞いとしての唯一の違いはデフォルトのアクセス指…

C++のstaticに関するまとめ

C++

static(メンバ)変数への代入について知識がうろ覚えだったので、整理した。要点は以下。 staticな変数は宣言と同時に代入する staticなstruct型の初期化は{}で行う. class内のstaticなメンバに代入するときはクラスの宣言の外で代入.また型の指定が必要. c…

nullptrまとめ

C++11から追加されたnullptrのまとめ 概要 More C++ Idioms/nullptr - Wikibooks ライブラリ版 C++0x nullptr の実装 - Faith and Brave - C++で遊ぼう ライブラリ版の問題 ライブラリ版nullptrの悲劇 - 名古屋313の日記

C++の組み込み型はクラスとして扱える

C++

タイトル通り。 doubleという名前のクラスと思って以下でdoubleの値を生成できる。 double a = double() double b = double(1.0) ポインタも同様のことが可能だがtypedefが必要 double* a = double*(); //error double* b = (double*)(); //error typedef do…

ディレクトリ以下の特定ディレクトリを除外しファイル列挙

特定のディレクトリを除外して、カレントディレクトリ以下のファイルを列挙する。例えば、includeを除いて、.hファイルを全部列挙。 findを使って以下のようにかける。 find . -type d -name "include" -prune -o -name "*.h" -print 列挙したファイルのファ…

boost::bindとboost::functionをメンバ関数に使う

C++

タイトル通り。 boost::bindはメンバ関数を指定すると、第一引数にクラスを引数に取る関数として解釈される。 例 #include <iostream> #include <boost/function.hpp> #include <boost/bind.hpp> struct LinearExtrapolation { LinearExtrapolation( const double leftPoint, const double leftValue, const</boost/bind.hpp></boost/function.hpp></iostream>…

MacでHaskell

Haskellを使えるようにする。 haskell-platformというのがあるのでそれをインストールすればHaskellを使うのに必要なものが一通りインストールされる。 Macportsがあれば以下でおっけー。 sudo port install haskell-platform で良い。 haskellのパッケージ…

C++でClass内のtypedefにもpublic, privateは適用される

C++

タイトル通りだが、以下がサンプル。 テンプレートを使う時に重要になるのでメモ。 class Test { private: typedef double private_real; public: typedef double public_real; }; int main(int argc, char const* argv[]) { Test::public_real public_real …

Macportsでcppunitのインストール

Macportsでcppunitをインストールする。幸いなことに、最新版がインストールできそう。 sudo port install cppunit でOK。 サンプルを実行 正しくインストールされているかサンプルを実行する。 サンプルはcppunitのソースファイルのexampleを利用するので、…

MacでVirtualenvsをインストール

pythonのvirtualenvs環境をMacに構築する。 pythonは入っているものとする。 インストール 取りあえず今後の為にpipを入れる。pipはpythonのパッケージ管理ソフト。インストールが楽になる。 terminalで以下を実行。 easy_install pip これでpipが入るので今…

vimでヘッダファイルとソースファイルを交互に開く

vim

C++のコードを書いている時デバッグ時にヘッダーとソースファイルを行き来したいときが多々ある。 そんな感じのことを実現してくれるプラグイン。 mopp/next-alter.vim · GitHub インストール NeoBundleInstallがあれば、.vimrcに以下を書いて:NeoBundleInst…

MacでInternet Explorerを使う

Mac

MacでWindowsのアプリケーションを使う方法は、仮想マシン上でWindowsを起動するか、wineを使うかの2択。 今回はWineを使ってInternet Explorerを使う方法の紹介。 Wineそのものはコマンドラインで利用するWindowsのエミュレータのようなもので、使い方を覚…

boostでmatrixのrow vectorを取得する

boostの行列を扱っていて列や行ベクトルが必要になるときがある。そういう場合は、boost/numeric/ublas/matrix_proxy.hppを使う。 サンプルコード #include <iostream> #include <boost/numeric/ublas/io.hpp> #include <boost/numeric/ublas/matrix.hpp> #include <boost/numeric/ublas/matrix_proxy.hpp> using namespace boost::numeric::ublas; int main() { matrix</boost/numeric/ublas/matrix_proxy.hpp></boost/numeric/ublas/matrix.hpp></boost/numeric/ublas/io.hpp></iostream>

Macでソースコードを奇麗に印刷

Mac

電車で朝まで書いていたコードのチェックとかしたい時にソースコードをPDFにして携帯やタブレットで見れると便利である。 また、デバッグが上手く行かない時に紙に印刷してゴロゴロ眺めていると思いがけずバグを見つけることもある。 インストール MacPorts…

AndroidからiPhoneへ連絡先の移行

iOS

AndroidからiPhoneへ連絡先の移行をする。 Googleアカウントを使って同期する方法があるが、GMailで送信したことがあるメールアドレスなども連絡先として追加されてしまうので、自分でインポートする連絡先を選択したい場合は下記の方法を取る。 Androidでや…

PDFの奇数ページを左回転し偶数ページを右回転させる

先日誤って奇数ページが右に90度、偶数ページが左に90度回転してる変な状態でスキャンしてしまった。 元に戻すには、PDFの奇数ページを左に90度か移転し、偶数ページを右に90度回転させる必要がある。 PDFの偶数・奇数ページに別々の処理をする方法のメモ。 …

vimで英語の日付を一発で入力

vim

vimで日付を一発で入力する方法は色々あるが、日本語環境だと英語式の日付を入力するには一手間いる様子。 英語でコメントを書いていても、日付が日本式だとあまり嬉しくないので変更できるようにする。 アメリカ式とイギリス式に対応したのを書いたのでメモ…

Macでpsからepsへ変換する

ps2epsを使う。 MacPortsが入っている場合は sudo ports install ps2eps でOK。 入っていない場合は、texがインストールされていれば多分入っている。 texユーザくらいしか必要としない機能だろうから話を進める。 ps2epsの使い方 hoge.psをhoge.epsに変換し…

jsbookでのフォントエラー

TeX

以下のようなエラーが出る場合 /opt/local/share/texmf-texlive/tex/platex/jsclasses/jsbook.cls:337: LaTeX Error Font family `JY1+mc' unknown. この場合は、documentclassにuplatexオプションをつける。 \documentclass[uplatex,12pt,openany]{jsbook} …

TeXのjsbookで改ページを抑制

TeX

jsbookで文章を作成すると、章を変える度奇数ページに章が来るように偶数ページには空白ページが挿入される。これは、jsbookはデフォルトで、twoside+openrightオプションが付くためである。 解決方法は幾つかある。 1. onesideオプションをつける。 oneside…

TeXでアルゴリズムを奇麗にかく

以下のサイトからalgorithms.zipをDLし解凍する。 CTAN: tex-archive/macros/latex/contrib/algorithms algorithms.pdfのinstllationの章に書いてある通りにすればOK。 一応参考までに、MacPortsで入れた場合の手順を書いておく。 解凍した場所(algorithms.…

Ubuntu12.10に最新のFlash Playerプラグインを入れる

Adobe Flash playerのバージョンが変わってプラグインが変更されたようなので、最新のプラグインを入れる。 ブラウザ:Firefox OS: Ubuntu12.10 64bit を想定しているが、OSはUbuntuなら殆ど同じ方法で良いと思う。 Adobe - 別のバージョンのAdobe Flash Play…

はてなブログでGoogle analyticsを使う場合に設定すべきフィルタ

はてなブログでGoogle Analyticsを使う場合に、正しくアクセス解析をする為に幾つかフィルタを設定する必要があるが大きく以下の2つである。 自分自身のアクセスの除外 ブログ記事を作成中のPreviewによるPVの除外 1については、色々なサイトで解説がある。…

はてなブログでの数式の書き方

Markdown記法でブログを書いていると、MathJaxで使う記号と幾つか相性が悪いので、メモ。 行列 $$ A = \left( \begin{array}{ccc} 1 & \rho_{1,2} & \rho_{1,3} \\ 0 & \sqrt{1 - \rho_{1,2}^{2}} & \frac{\rho_{2,3}−\rho_{1,2}\rho_{1,3}}{\sqrt{1−\rho_{1…

相関付きの多次元正規乱数の生成

のメモ。 相関付きの次元正規乱数を生成するには次のようにする。 の相関行列が次のように与えられているとする。 $$ \displaystyle R = \left( \begin{array}{cccc} 1 & \rho_{1,2} & \ldots & \rho_{1,N} \\ \rho_{1,2} & 1 & \ldots & \rho_{2,N} \\ \vdo…

Maximaで非可換代数の計算

Maximaでは簡単な非可換代数の計算なら特にプログラムを書くことなくできるので、BCH formulaの最初の項の計算を例に使い方をメモ。 Baker–Campbell–Hausdorff formula 詳細は以下。 Baker–Campbell–Hausdorff formula - Wikipedia, the free encyclopedia …

Maximaで多変数ベクトル値関数の定義

Maximaで多変数ベクトル値関数の定義。 f(x):=[x[1]*x[2], sqrt(x[2])]; g(x):=[sqrt(x[1]), x[1]*x[2]]; f(g([x1,x2])); diff(f([x1,x2]), x1); 合成関数も正しく使える。偏微分もできる。 MacのwxMaximaで数式が消える場合 以下に記載があるように、[Prefe…

Macのvim-latexの設定

vim-latexの設定を色々見直したので、まとめ。 下記を合わせて参考。 vim-latexのバグ - adragoonaの日記 MacPortsでLaTeXの導入とvim-latex - adragoonaの日記 設定ファイル せっかちな人の為に、設定ファイルをまずのせておく。以下を.vimrcに記載する。 f…