[#28501] rb_gc_call_finalizer_at_exit() の実行中かどうかを知りたい — Hidetoshi NAGAI <nagai@...>
永井@知能.九工大です.
6 messages
2006/04/03
[#28502] Re: rb_gc_call_finalizer_at_exit() の実行中かどうかを知りたい
— Yukihiro Matsumoto <matz@...>
2006/04/03
まつもと ゆきひろです
[#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
ふなばです。
[#28515] Re: Rational
— keiju@... (石塚圭樹)
2006/04/05
けいじゅ@いしつかです.
[#28522] Re: Rational
— Tadayoshi Funaba <tadf@...>
2006/04/06
ふなばです。
[#28523] Re: Rational
— Yukihiro Matsumoto <matz@...>
2006/04/06
まつもと ゆきひろです
[#28526] Re: Rational
— Tadayoshi Funaba <tadf@...>
2006/04/06
ふなばです。
[#28530] Re: Rational
— Tadayoshi Funaba <tadf@...>
2006/04/09
ふなばです。
[#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
けいじゅ@いしつかです.
[#28545] Re: Rational
— Shin-ichiro HARA <sinara@...>
2006/04/11
原です。
[#28546] Re: Rational
— Yukihiro Matsumoto <matz@...>
2006/04/11
まつもと ゆきひろです
[#28547] Re: Rational
— keiju@... (石塚圭樹)
2006/04/11
けいじゅ@いしつかです.
[#28548] Re: Rational
— Yukihiro Matsumoto <matz@...>
2006/04/11
まつもと ゆきひろです
[#28563] Proxy authentication patches for open-uri and rubygems — "Tadashi Kadowaki" <tadakado@...>
門脇と申します。
3 messages
2006/04/15
[#28569] rational 1.01 — Shin-ichiro HARA <sinara@...>
原です。
16 messages
2006/04/16
[#28571] Re: rational 1.01
— Tadayoshi Funaba <tadf@...>
2006/04/16
ふなばです。
[#28572] Re: rational 1.01
— Shin-ichiro HARA <sinara@...>
2006/04/16
原です。
[#28573] Re: rational 1.01
— Tadayoshi Funaba <tadf@...>
2006/04/16
ふなばです。
[#28574] Re: rational 1.01
— Shin-ichiro HARA <sinara@...>
2006/04/16
原です。
[#28575] Re: rational 1.01
— Shin-ichiro HARA <sinara@...>
2006/04/17
原です。
[#28576] Re: rational 1.01
— Tadayoshi Funaba <tadf@...>
2006/04/17
ふなばです。
[#28578] Re: rational 1.01
— Tadayoshi Funaba <tadf@...>
2006/04/17
ふなばです。
[#28584] Re: rational 1.01
— Shin-ichiro HARA <sinara@...>
2006/04/18
原です。
[#28589] Float#div and Float#divmod [AGAIN] — Shin-ichiro HARA <sinara@...>
原です。
16 messages
2006/04/23
[#28590] Re: Float#div and Float#divmod [AGAIN]
— Yukihiro Matsumoto <matz@...>
2006/04/23
まつもと ゆきひろです
[#28591] Re: Float#div and Float#divmod [AGAIN]
— Shin-ichiro HARA <sinara@...>
2006/04/23
[#28592] Re: Float#div and Float#divmod [AGAIN]
— Yukihiro Matsumoto <matz@...>
2006/04/23
まつもと ゆきひろです
[ruby-dev:28587] Re: rational 1.01
From:
Tadayoshi Funaba <tadf@...>
Date:
2006-04-22 15:41:36 UTC
List:
ruby-dev #28587
ふなばです。
いろいろと提案が受けいれられてうれしいです。
> Scheme には rationalize->exact というのもありますね。いずれにして
> も有理数を rationalize するという言葉使いはおかしくて、Haskell の
> approxRational という名前が適当かもしれない。第2引数を取らない
> Common Lisp の rationalize は納得できます。
rationalize->exact は、MIT Scheme の拡張みたいですが、どちらかというと、
こっちに近いんでしょうね。
名前がヘンじゃないかというのは、そうなのかな、というのはありますが、
Common Lisp にしても、有理数を受けとりますし、Scheme では、非厳密数を
つかった計算は原則的に非厳密数を返すことになるので、有理数が返るとは限
らないわけで。しかし、やっぱり approxRational みたいなのがいいんですか
ね。
ところで、Scheme の inexact->exact も Haskell の approxRational も第二
引数は負数でも構わないようです。なので、特別な理由がなければ、そうして
もいいかなと思いました。
あと、rationalize 中の同値判定がおかしいように思うのですが、確認をお願
いします。
--- rational.c.orig Tue Apr 18 20:28:12 2006
+++ rational.c Sat Apr 22 23:56:21 2006
@@ -478,5 +478,5 @@
return RT_NEW2(RT_MINUS(snum, RT_MUL(other, sden)), sden);
case T_FLOAT:
- return RT_PLUS(rb_rat_to_f(self), RT_UMINUS(other));
+ return RT_MINUS(rb_rat_to_f(self), other);
default:
@@ -942,5 +942,5 @@
if (RT_NEG(eps)) {
- rb_raise(rb_eArgError, "precision is negative.");
+ eps = RT_UMINUS(eps);
}
@@ -962,5 +962,5 @@
RT_read2(x, xn, xd);
RT_read2(y, yn, yd);
- if (RT_EQ(xn, xd) && RT_EQ(yn, yd)) {
+ if (RT_EQ(xn, yn) && RT_EQ(xd, yd)) {
return x;
}
@@ -1359,5 +1359,5 @@
if (RT_NEG(eps)) {
- rb_raise(rb_eArgError, "precision is negative.");
+ eps = RT_UMINUS(eps);
}
@@ -1601,5 +1601,5 @@
if (RT_NEG(eps)) {
- rb_raise(rb_eArgError, "precision is negative.");
+ eps = RT_UMINUS(eps);
}
@@ -1614,5 +1614,5 @@
RT_read2(x, xn, xd);
RT_read2(y, yn, yd);
- if (RT_EQ(xn, xd) && RT_EQ(yn, yd)) {
+ if (RT_EQ(xn, yn) && RT_EQ(xd, yd)) {
return x;
}