[#28509] Rational — Tadayoshi Funaba <tadf@...>

ふなばです。

49 messages 2006/04/05
[#28510] Re: Rational — keiju@... (石塚圭樹) 2006/04/05

けいじゅ@いしつかです.

[#28512] Re: Rational — Tadayoshi Funaba <tadf@...> 2006/04/05

ふなばです。

[#28513] Re: Rational — Shin-ichiro HARA <sinara@...> 2006/04/05

原です。

[#28514] Re: Rational — keiju@... (石塚圭樹) 2006/04/05

けいじゅ@いしつかです.

[#28517] Re: Rational — Yukihiro Matsumoto <matz@...> 2006/04/06

まつもと ゆきひろです

[#28520] Re: Rational — keiju@... (石塚圭樹) 2006/04/06

けいじゅ@いしつかです.

[#28521] Re: Rational — Yukihiro Matsumoto <matz@...> 2006/04/06

まつもと ゆきひろです

[#28525] Re: Rational — keiju@... (石塚圭樹) 2006/04/06

けいじゅ@いしつかです.

[#28527] Re: Rational — Shin-ichiro HARA <sinara@...> 2006/04/06

原です。

[#28536] Re: Rational — Shin-ichiro HARA <sinara@...> 2006/04/10

原です。

[#28537] Re: Rational — keiju@... (石塚圭樹) 2006/04/10

けいじゅ@いしつかです.

[#28589] Float#div and Float#divmod [AGAIN] — Shin-ichiro HARA <sinara@...>

原です。

16 messages 2006/04/23

[ruby-dev:28534] Re: Rational

From: Shin-ichiro HARA <sinara@...>
Date: 2006-04-10 14:39:44 UTC
List: ruby-dev #28534
原です。

>ふなばです。

>static VALUE
>rb_rat_flo_to_rat(klass, x)
>     double x;
>{
>    double f;
>    int e;
>    f = frexp(x, &e);
>#if 1 /* dbl */
>    f = ldexp(f, DBL_MANT_DIG);
>    e -= DBL_MANT_DIG;
>#else /* flt */
>    f = (float)ldexp(f, FLT_MANT_DIG);
>    e -= FLT_MANT_DIG;
>#endif
>
>    return RT_S_NEW2(klass, RT_MUL(rb_dbl2big(f),
>                            RT_POW(rb_int2big(2), INT2FIX(e))), INT2FIX(1));
>}
>
># コード上の数字 2 は、FLT_RADIX にすべきかも。

これでいいみたい。私のコードは工夫したつもりで、かえって精度を
おとしてしまっていたようです。

ところで /* flt */ の方はなぜ書いたのですか?rubyのFloatは、
double なので、/* dbl */の方でいいんですよね?


In This Thread