c++

たらい回し関数の速度比較

aviutl拡張編集がLuaを使っているから、というだけで何となくLuaに手を出してみた。意外と簡単だし、実行速度も速いと感じたので、xyzzy lispと比較してみる。 せっかくなので、c++とも比較してみたいと思い、ベンチマーク用に適当なたらい回し関数を利用す…

round関数

C++

intを有効桁数指定で四捨五入したいのだが、もう少しまともに書けないものか・・・。 template<class T> int round (T a,int n) { //aを有効桁数n桁で四捨五入 //丸め部分がちょうど5なら偶数に丸める int x[64], f = 0, i = 0; T m = 1; for (;;) { x[i] = a%10, a /</class>…

ライフゲーム(3)

C++

ライフゲームのルールを読み込めるようにした(DL)。 boost::Qiかboost::Lexが使える気がしたが、良く分からないのでboost::tokenizerで分解してステートマシンでごり押しである。もっとクールに書きたい・・・。 まあ、好きなルールで実行できるようになった…

ライフゲーム(2)

ライフゲーム - 象徴ヶ淵で作ってた奴は画面サイズを大きくすると、無駄に処理速度が低下してしまったのでFLTKは止めた。GLUTも試したが、画面サイズを大きくするともたついてしまう。SDLの通常画面では期待通りの処理速度で動いてくれたので、そちらに切り…

ライフゲーム

FLTKで画像の表示がなんとか出来るようになったので、 コンウェイ(J.H.Conway)のライフゲームのバリアントを作ってみた(DL)。 普通のルールではなくて、拡張したルールを用いている。全く同じで、高速なプログラムが存在していないようなので作ってみた。や…

FLTKをインストールした

C++

こっちはずっと楽である(それでも苦労したが)。 CMAKEを用意して、GUIで適当に設定してconfigureとgenerateを行う。するとインストールディレクトリにmakeが出来るので指定されたmakeを使ってmakeすればよい。GL関連のコンパイルで失敗したようで、GLの機能…

wxWidgetをインストールした

C++

GUI付けたいなーと思って調べたら、wxWidgetが良いと力説するサイトがあったので、wxWidgetをインストールしようとした。 のだが、書いてある通りに試したはずだが上手く行かない。 ***/wxMSW-2.8.11/build/msw> mingw32-make -f makefile.gcc if not exist …

メルセンヌツイスタの導入

億単位の解を生成するのに、rand()では力不足すぎる。というわけで、メルセンヌツイスタ(MT)を導入することにした。 MTをサポートするライブラリはいくつかあるが、初心者は最も使われているものを使え、ということで、boost::randomに含まれているものを使…

2次割り当て問題の解を評価する(2)

というわけで、評価関数をc++で書くことにした。適当に書いて100000回計算させて360ms。xyzzy上での344倍の速度である。ここまで差があると、xyzzy上で走らせるのはもったいない・・・。 しかし、探索アルゴリズムをlispで試したい。そこで、c++でdllを作っ…