pair は STL のヘッダ <utility> で定義されている、二つの要素のペアを入れる入れ物です。 二つの要素 first と second の呪縛から逃れる 二つの要素 ページの先頭へ pair は二つの要素を入れる入れ物です。それぞれの要素は C++ のオブジェクトで、その型はテンプレート引数で決まります。簡単な例を見て見ましょう。この場合、int と float がテンプレート引数です。 #include <utility> using namespace std; int main() { pair<int, float> pairif; pairif.first = 1; pairif.second = 2.3f; } pair は基本的には、次のように定義された struct PAIR に良く似ています。 struct PAIR { int first; float s
ご挨拶 こんにちは、ロンドンのNew Bambooという会社でWebエンジニアとして働いている@makoto_inoueです。ここのところ、PusherというWebSocketのクラウドサービスの開発に関わっています。今回から3回に渡ってWebSocketに関する短期連載を担当させていただきます。 私を含めたNew Bambooの面々(我々は自分たちのことをBambinoと呼んでいます)がWebSocketになぜ興味を持ったかということからはじまり、実際にクラウドサービスを始めるまでにいたったストーリーをお話ししたいと思います。そのストーリーを通じて、WebSocketが切り開く「リアルタイムWeb」な世界への可能性や技術的課題を皆さんと共有できればと思っています。
ここ数日、Twitter上で appengine に関する発言をたくさん目にする。それを見る限り、「注目をされてはいるが、手を出しかねている人が多い」というのが現状だろう。そこで、私からもひと言。 App Engine は純粋なソフトウェア・エンジニアにとっての天国 私自身、色々な開発環境を試して来たが、私のようにプログラミングが大好きで、新しい言語や環境を学ぶのが楽しくて仕方が無いエンジニアにとっては、「App Engineは天国」というのが正直な感想。SQLやRailsのように一見開発効率を良くしてはくれるが、直感的に実行効率とかが把握できない「補助輪付きプログラミング」と違い、App Engine上でのプログラミングは、ちょっと手を抜くとすぐに実行効率の悪さとして跳ね返ってくる「一輪車プログラミング」。 新しい言語を学ぶのが苦ならApp Engineは避けた方が良い 現時点で、Pyt
はじめまして、gumiの津村です。 現在は解析系の仕事をしたり、ツールを作ったりしています。 今回の話は高速化についてです。 結構長めの文章です。 目次 実行速度の高速化 Python/C API ctypes Pyrex Cython SWIG その他 纏め 実行速度の高速化 高速化といっても色々ありますが、今回は実行速度の高速化についてです。 弊社ではPythonを全面的に採用していますが、そもそもLLは実行速度が遅い言語です。特にC言語のようなコンパイラ系の言語と比べると非常に遅いです。 それでもLL系の言語がここまで使われるようになったのは、開発効率が良いからです。 もはや常識ですね。 しかし、それでも特定の領域ではどうしてもPythonのようなLL系言語では厳しい部分も出てきます。 アルゴリズムを変更しても、ハードウエアを変えても、無理な物は無理です。 速度に問題がある場合の最適
CanvasのdrawImage APIは下図のように、ソースイメージ中の任意の矩形領域をCanvas領域中の任意の大きさの矩形にマッピングできます。 context.drawImage(image, sx, sy, sw, sh, dx, dy, dw, dh) このAPIによって、イメージの部分領域の縦・横方向の拡大縮小が自由にできるようになっています。 今回は、この拡大機能がちょっと気になったので以下のブラウザの各バージョンで調べてみました。 Firefox Chrome Safari Opera 3.6.11 8.0.552.11 dev 5.0.2 10.63 調べたのは、下のような赤と青が1ピクセル毎に交互に描かれているイメージを拡大したときの補間の表現です。 このイメージを下記表のように拡大してみました。 5倍 10倍 20倍 40倍 80倍 160倍 320倍 640倍 1
はじめに Canvasのパフォーマンスを測定するベンチマークプログラムはそこら中に転がっていますが、ほんの一部分の測定だったり、逆に中身が複雑過ぎたりと僕が希望するようなものが見当たらなかったので、自分で作って各ブラウザで測定してみました。 測定したブラウザのバージョンは以下です。 Chrome Firefox Safari Opera 9.0.570.1 dev 3.6.12 5.0.2 10.63 ベンチマーク 作成したベンチマークプログラムは単位時間で描画関数を何回繰り返して実行できるかという単純なものです。実行中に描画される絵のいくつかを載せておきます。 hlinebezierfill_arcfill_starsimage_scaleradial_gradient 以下に全測定項目の概要を記します。 hline ひたすら水平方向の直線を描きます。 vline 垂直方向の直線 lin
Dirichlet分布からのサンプリングを実装するときに使おうと思って、echizen_tmさんのところで大プッシュされていた計算機シミュレーションのための確率分布乱数生成法を買った。 結局、Diriclet分布からのサンプリングについてはガンマ分布からのサンプリングに還元でき、ガンマ分布からのサンプリングはこちらの調査資料の方に詳しく載ってた(pdf)ので、この本が届く前に実装は終わってしまったのだが、600ページ近くあって、いろいろな分布からのサンプリング法が載っているので、これからきっと、役に立つ日がくるだろう。 とりあえず、正規分布からのサンプリングで、Box-Muller法よりも速い方法を探していたのだが、Ziggurat法というのがBox-Mullerの5倍ぐらい速いらしい。Wikipediaと違って正規分布の場合に特化した場合の実装方法が載っているので、後で実装してみようと思
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く