トップ «前の日記(2007-03-23) 最新 次の日記(2007-04-30)» 編集

活動日誌


2007-04-26

[Ruby]累乗が遅い件

累乗が遅いらしいので、 どこから遅くなったのかを ruby_1_8 ブランチで調べてみました。

ruby 1.8.5 時点では問題はありませんでしたが、 次のコミット以降 core dump するようになり、

r10880 | matz | 2006-09-08 01:35:59 +0900 (金, 08  9月 2006) | 9 lines

* numeric.c (fix_plus): addition in Fixnum will never overflow
  long.  a patch from Ondrej Bilka <neleai at seznam.cz>.
  [ruby-core:08794]

* numeric.c (fix_minus): ditto.

* bignum.c (rb_big_pow): eagerly truncate resulting bignum.
  [ruby-core:08794]

これを修正した

r10898 | matz | 2006-09-10 00:27:34 +0900 (日, 10  9月 2006) | 5 lines

* bignum.c (rb_big_mul0): bignum multiplication without
  normalization.

* bignum.c (rb_big_pow): use rb_big_mul0().  [ruby-dev:29547]

のコミット以降、累乗が遅くなっているようです。

追記

改善されたようです。ruby-dev:30736


2005|02|03|04|05|06|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|03|04|05|06|10|
2008|04|10|
2009|10|
2010|05|08|
2012|01|02|03|
2014|01|
2022|05|
トップ «前の日記(2007-03-23) 最新 次の日記(2007-04-30)»