[前][次][番号順一覧][スレッド一覧][生データ]

yarv-dev:1151

From: "miura" <m-72 tf6.so-net.ne.jp>
Date: Sat, 24 Nov 2007 13:39:09 +0900
Subject: [yarv-dev:1151] Re: 考えている案

三浦です

>  あれ,最近私,1.9 に RFLOAT_VALUE を追加したんですが.

ちょっと古いソースを持ってきたようです。
2007/11/5のバージョンを基にしています。最新のものをチェックします。

> miura wrote:
>> (3)の指数部を削る方式で、fixnumに泣いてもらってfixnumの領域に押し込
>> むようにしました。fixnumは30bitを越えるとbignumになってしまいます。
>
>  ってことは 32bit CPU 上ですね.
>

86系の32bitです。Windows XP上のCygwinで開発しています。

>  ちなみに,FIXFLOAT_P(obj) が真にならない場合というのはどういう状況
> でしょうか.double を 30bit に押し込めた場合に埋め込みということ? 
> この場合,全部を 30bit 表現にするんだと思ってたもので.
>

指数が30bitで収まらないとき、(すごく大きいか、すごく絶対値が小さい数)は
ヒープにちゃんとしたフォーマットでとるように考えています。こうすると、
とりあえず機能上の制限はなくなります。
rb_float_newは次のような定義になります。

VALUE
rb_float_new(float d)
{
    VALUE v1 = d2v(d);
    VALUE v2 = ROTL(v1, 4);

    if ((v2 & 0x7) == 4 || (v2 & 0x7) == 3) {
      printf("(float2value)%f ", d); /* デバッグ用 */
      return ((v2 | 0x3) ^ 2);
    }
    else {
      NEWOBJ(flt, struct RFloat);
      OBJSETUP(flt, rb_cFloat, T_FLOAT);

      flt->value = d;
      return (VALUE)flt;
    }
}



--
ML: yarv-dev quickml.atdot.net
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]

      1122 2007-11-20 19:08 [ko1 atdot.net       ] 考えている案                            
      1123 2007-11-20 19:25 ┣[horinout rish.kyoto-]                                       
      1124 2007-11-20 19:33 ┃┣[ko1 atdot.net       ]                                     
      1127 2007-11-20 19:52 ┃┣[horinout rish.kyoto-]                                     
      1129 2007-11-20 20:05 ┃┃┗[ko1 atdot.net       ]                                   
      1130 2007-11-20 20:21 ┃┃ ┗[horinout rish.kyoto-]                                 
      1131 2007-11-20 20:24 ┃┃  ┗[ko1 atdot.net       ]                               
      1132 2007-11-20 20:32 ┃┗[2008 shudo.net      ]                                     
      1133 2007-11-20 20:53 ┃ ┗[horinout rish.kyoto-]                                   
      1137 2007-11-20 21:15 ┃  ┗[2008 shudo.net      ]                                 
      1125 2007-11-20 19:39 ┣[m-72 tf6.so-net.ne.j]                                       
      1126 2007-11-20 19:46 ┃┗[ko1 atdot.net       ]                                     
      1128 2007-11-20 19:58 ┃ ┣[m-72 tf6.so-net.ne.j]                                   
      1135 2007-11-20 20:59 ┃ ┗[m-72 tf6.so-net.ne.j]                                   
      1145 2007-11-21 19:44 ┃  ┗[ko1 atdot.net       ]                                 
      1146 2007-11-21 20:34 ┃   ┗[m-72 tf6.so-net.ne.j]                               
      1134 2007-11-20 20:54 ┣[2008 shudo.net      ]                                       
      1144 2007-11-21 08:39 ┃┗[ko1 atdot.net       ]                                     
      1140 2007-11-21 03:52 ┣[t_nissie yahoo.co.jp] 富豪的 VALUE 型( Re: 考えている案)  
      1141 2007-11-21 04:57 ┃┗[ko1 atdot.net       ]                                     
      1142 2007-11-21 05:29 ┃ ┗[t_nissie yahoo.co.jp]                                   
      1143 2007-11-21 06:02 ┃  ┗[ko1 atdot.net       ]                                 
      1147 2007-11-24 12:56 ┗[m-72 tf6.so-net.ne.j]                                       
      1148 2007-11-24 13:10  ┣[ko1 atdot.net       ]                                     
      1152 2007-11-25 08:51  ┃┗[m-72 tf6.so-net.ne.j]                                   
      1149 2007-11-24 13:18  ┣[ko1 atdot.net       ]                                     
      1150 2007-11-24 13:21  ┗[ko1 atdot.net       ]                                     
->    1151 2007-11-24 13:39   ┗[m-72 tf6.so-net.ne.j]