けいじゅ@日本ラショナルソフトウェアです.

In [ruby-math:00806] the message: "[ruby-math:00806] Re:
Rational#to_f", on Dec/19 02:17(JST) masaki writes:

>正木です。

>class Numeric
>  def log2floor
>    raise "not defined for self <= 0" if self <= 0
>    s=1.size
>    byte=8
>    m=byte*s
>    case self
>    when Integer
>      return 0 if self==1
>      return m-(1..m).find{|i| self[m-i]==1} if size==s
>      self.div(2**(byte*(size-s))).log2floor + byte*(size-s)
>    when Rational
>      return floor.log2floor if self >= 1
>      n=(1/self).floor.log2floor + 1
>      (self*2**n).floor.log2floor - n
>    when Float
>      Math.frexp(self)[1]-1
>    end
>  end
>end
>
>に変更します。
>
>Integer に対する log2floor に相当するものが組み込みであったら
>便利だと思う人はほかにはいませんか?

私も組み込みになると良いと思います. これって, (正の)Integerの実際のビッ
ト長ですので.


__
..............................石塚 圭樹@日本ラショナルソフトウェア...
----------------------------------->> e-mail: keiju / rational.com <<---