2010-07-01から1ヶ月間の記事一覧

Parsecで簡単な電卓を作ってみた

LanguageDef と TokenParser と ExpressionParser を使ってみたかったので。。。空白の扱いについて、ごちゃごちゃ書く必要がなくて楽でいいですね。 module Main (main) where import Text.ParserCombinators.Parsec as Parsec import qualified Text.Parse…

CairoとSDLを組合せてつかう

cairoの描画フロントエンドとしてSDLを使ってみた。ちょっと画面に表示させるだけなのにCocoaだのなんだのを使うのが面倒だったので…。見た感じ、cairo image surfaceとSDL surfaceを比較すると、cairoの方がピクセルフォーマットに対する許容度が低かったの…

GF100のキャッシュの性能

Motivation GTX480に代表されるGF100およびGTX460などのGF104にはL1, L2キャッシュが搭載され、メモリアクセスに関する制限が緩和されました。何も考えずに書くとGT200系では性能が出なかった場合でも、十分な性能が発揮されることがあります。そこで、定数…

Boost.Rangeでdropを実装してみた

なぜかBoost.Range.Adaptorsにdropがなかったので作ってみた。slicedでdropを書けなくはないんですが、長さがわからないrangeに適用できないのが問題です。実際はtakeを先に作ったんですが、dropの方が短かったので…。 boost::copy(input | taco::drop(5), o…

std::chronoによる処理時間測定

C++

処理時間の測定は、clockやgettimeofdayを使う事が多いと思いますが、あまりC++っぽくありません。そこで、C++0xからstd名前空間に入ったstd::chronoを使ってみようと思います。std::chrono::system_clock::now()で現在の時刻(time_point)が取れるので、それ…