[#47667] 文字列中に含まれる 8 進数表記 "\nnn" というパターンに正規表現でマッチさせたい — Kensuke Kaneko <kyanny@...>
金子健介と申します。
7 messages
2010/12/01
[#47684] ネットワークに流れるパケットのキャプチャーについて。 — Tetsuo Beppu <anfojp@...>
はじめまして。
5 messages
2010/12/10
[#47705] Windows(CP932)でのRuby1.9のirbの実行について — 中川貴 <nora1962@...>
はじめまして中川と申します。
4 messages
2010/12/22
[#47715] Windowsで1.9.2p136+zlibのインストール — AOKI Yoshihiro <aoki@...>
あおきと申します。
14 messages
2010/12/27
[#47716] Re: Windowsで1.9.2p136+zlibのインストール
— "U.Nakamura" <usa@...>
2010/12/27
こんにちは、なかむら(う)です。
[#47717] Re: Windowsで1.9.2p136+zlibのインストール
— AOKI Yoshihiro <aoki@...>
2010/12/27
あおきです。
[#47719] Re: Windowsで1.9.2p136+zlibのインストール
— "U.Nakamura" <usa@...>
2010/12/27
こんにちは、なかむら(う)です。
[#47720] Re: Windowsで1.9.2p136+zlibのインストール
— AOKI Yoshihiro <aoki@...>
2010/12/27
あおきです。
[ruby-list:47675] Bignum#* を Toom3 乗法に対応させる patch
From:
Kenta Murata <muraken@...>
Date:
2010-12-03 07:52:56 UTC
List:
ruby-list #47675
むらたです。
Bignum#* を Toom3 乗法 (r=2 の Toom-Cook 乗法) に対応させる patch を作りました。
svn trunk の r29883 をベースに開発していましたが、r29965 にも適用可能でした。
patch は以下の gist に投稿してあります。
https://gist.github.com/726653
n ビット数同士の乗算10回分の計算時間を 1.9.2p80 と比較すると以下のようになります。
1千万ビット数同士の乗算において2倍強の高速化が実現できています。
------------------------------------------
n [bit] 1.9.2p80 [sec] Toom3 [sec]
------------------------------------------
1 0 0
100_000 0.04 0.04
500_000 0.44 0.36
1_000_000 1.33 0.88
5_000_000 18.98 11.28
10_000_000 60.50 28.82
50_000_000 705.13 332.78
100_000_000 2119.45 946.28
------------------------------------------
使用したマシンのスペックは以下のとおりです。
OS: Mac OS X 10.6.5
CPU: Core i7 2.66GHz
MEM: 8GB
この patch では Karatsuba 乗法から切り替える桁数の閾値 TOOM3_MUL_DIGITS を150に
設定しています。この値が最適かどうかはこれから調査します。
Toom3 乗法に対応させて乗算が高速化されることで、除算と冪乗が間接的に高速化されます。
すると、Rational が内部で行ってる通分や、prime.rb で実装されている素因数分解などの
高速化を実現できます。
上の patch にはデバッグ用のコードが混ざってるので、
取り込んで良ければ、それらを消した patch をマージしてコミットしたいです。
ご検討していただけますでしょうか。
--
Kenta Murata
OpenPGP FP = 1D69 ADDE 081C 9CC2 2E54 98C1 CEFE 8AFB 6081 B062
本を書きました!!
『Ruby 逆引きレシピ』 http://www.amazon.co.jp/dp/4798119881/mrkn-22
E-mail: mrkn@mrkn.jp
twitter: http://twitter.com/mrkn/
blog: http://d.hatena.ne.jp/mrkn/