[#31166] is_ruby_native_thread() — Masahiro Sakai (酒井政裕) <masahiro.sakai@...>

酒井です。

16 messages 2007/07/08
[#31269] Re: is_ruby_native_thread() — Nobuyoshi Nakada <nobu@...> 2007/07/21

なかだです。

[#31270] Re: is_ruby_native_thread() — Hidetoshi NAGAI <nagai@...> 2007/07/22

永井@知能.九工大です.

[#31298] retryの使い方 — eklerni <eklerni@...>

松尾といいます。

52 messages 2007/07/25
[#31299] Re: retryの使い方 — SASADA Koichi <ko1@...> 2007/07/26

 ささだです。

[#31300] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/26

松尾です、返信ありがとうございます。

[#31303] Re: retryの使い方 — Yugui <yugui@...> 2007/07/26

Yuguiといいます。

[#31306] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/26

松尾といいます。

[#31308] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/07/26

In article <46A909DD.1070405@for.mail-box.ne.jp>,

[#31310] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/26

Tanaka Akira さんは書きました:

[#31314] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/07/30

In article <46A92530.80507@for.mail-box.ne.jp>,

[#31315] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/30

Tanaka Akira さんは書きました:

[#31316] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/07/30

In article <46AD7A16.8080509@for.mail-box.ne.jp>,

[#31317] Re: retryの使い方 — eklerni <eklerni@...> 2007/07/31

松尾です。

[#31381] Re: retryの使い方 — SASADA Koichi <ko1@...> 2007/08/12

 ささだです。

[#31422] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/15

まつもと ゆきひろです

[#31425] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/15

In article <E1ILDTi-0005T6-Be@x31>,

[#31426] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/15

まつもと ゆきひろです

[#31433] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/16

In article <E1ILKn6-0003Nv-0f@x31>,

[#31435] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/16

まつもと ゆきひろです

[#31447] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/16

In article <E1ILVN9-0006xJ-7I@x31>,

[#31450] Re: retryの使い方 — Tanaka Akira <akr@...> 2007/08/17

In article <E1ILq4x-0002Bs-Lg@x31>,

[#31451] Re: retryの使い方 — Yukihiro Matsumoto <matz@...> 2007/08/17

まつもと ゆきひろです

[ruby-dev:31236] rb_big_pow

From: Tanaka Akira <akr@...>
Date: 2007-07-15 14:37:08 UTC
List: ruby-dev #31236
ふと test_integer.rb の実行を callgrind をかけて、bignum.c
を眺めていると、rb_big_pow の中に実行されない部分があるのに
気がつきました。そしてしばらく眺めた結果、n という変数はずっ
と 1 なことに気がついてしまいました。なにか変だと思うんです
が、どうなんでしょう?

...
      case T_FIXNUM:
        yy = FIX2LONG(y);
        if (yy > 0) {
            VALUE z = 0;
            SIGNED_VALUE mask, n = 1; // ここで 1 を設定
...
            for (mask = FIXNUM_MAX + 1; mask; mask >>= 1) {
                if (!z) {
                    SIGNED_VALUE n2 = n * n; // 1 * 1 は 1
                    if (!POSFIXABLE(n2) || (n2 / n != n)) { // 条件は成立しない
                        z = bigtrunc(bigsqr(rb_int2big(n))); // ここは実行されない
                    }
                    else {
                        n = n2; // ここで 1 を代入
                    }
                }
                else {
                    z = bigtrunc(bigsqr(z));
                }
                if (yy & mask) {
                    if (!z) z = rb_int2big(n); // rb_int2bigには常に 1 を渡す
                    z = bigtrunc(rb_big_mul0(z, x));
                }
            }
            return bignorm(z);
        }
        d = (double)yy;
        break;
...
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread

Prev Next