[#6862] Re: http_get.rb — 青山 和光 <PXN11625@...>
In-Reply-To: [ruby-list:6844] Re: http_get.rb
藤本です、こんにちは。
まつもと ゆきひろです
藤本です、こんにちは。
まつもと ゆきひろです
[#6889] lib/date.rb — Tadayoshi Funaba <tadf@...>
ふなばです。
まつもと ゆきひろです
[#6906] ruby's Icon ? — 藤本尚邦 / FUJIMOTO Hisakuni <hisa@...>
藤本です、こんにちは。
まつもと ゆきひろです
藤本です、こんにちは。
小澤さくです。
藤本です、こんにちは。
藤本です、こんばんは。
まつもと ゆきひろです
にしなです。
[#6918] manual 1.18b index — WATANABE Tetsuya <tetsu@...>
ruby-man-1.1b8 で、name タグがついているものを拾い集めて
まつもと ゆきひろです
小澤さくです。
まつもと ゆきひろです
小澤さくです。
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
前田です。
まつもと ゆきひろです
前田です。
[#6929] Expect lib for ruby — nosuzuki@... (Norio Suzuki)
はじめまして。Perl から ruby or python に乗り換えようと考えている鈴木
[#6954] Re: ruby's Icon ? — nosuzuki@... (Norio Suzuki)
こんばんは。鈴木教郎です。
まつもと ゆきひろです
小澤さくです。
Thu, Mar 05, 1998 at 02:52:26PM +0900 において
まつもと ゆきひろです
原です。
[#6978] win32 版 ruby の getc について — ARIMA Yasuhiro <fit0298@...>
はじめまして。有馬と申します。
[#6983] ext POSIX.setsid — WATANABE Tetsuya <tetsu@...>
拡張ライブラリの作り方はこんな感じでいいでしょうか?
[#7004] gtk 0.99.4 and gtk module — Noritsugu Nakamura <nnakamur@...>
[#7008] builtin class inherit — TEI meiki <tei@...>
鄭です。
前田です。
まつもと ゆきひろです
鄭です。
まつもと ゆきひろです
[#7022] スレッドの終了待ち — densuke@...2.so-net.or.jp
佐藤@東邦大です。
[#7023] infinity — Tadayoshi Funaba <tadf@...>
ふなばです。
前田です。
けいじゅ@日本ラショナルソフトウェアです.
In message <199803091741.CAA05774.keiju@cupmail0.rational.com>
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
In message <199803100359.MAA08628.keiju@cupmail0.rational.com>
けいじゅ@日本ラショナルソフトウェアです.
[#7083] about rbc — Kazuhisa YANAGAWA <katze@...>
rbc について二つ質問があります.
けいじゅ@日本ラショナルソフトウェアです.
けいじゅ@日本ラショナルソフトウェアです.
[#7107] calender-html.rb (Re: call for scripts) — Shin-ichiro HARA <sinara@...>
原です。
原です。
原です。
ごとけんです
原です。
原です。
[#7111] How to simulate Perl's DATA file handle — OZAWA Sakuro <crouton@...>
小澤さくです.
[#7126] do end or {} — Eiji-usagi-MATSUmoto <ematsu@...>
うさぎです
[#7145] gsub — WATANABE Tetsuya <tetsu@...>
gsub について
[#7147] each_char — TEI meiki <tei@...>
鄭です。
[#7153] please apply me — SHUDOH Kazuyuki <shudoh@...>
首藤といいます。
まつもと ゆきひろです
[#7192] I hope join. — Takashi Shimizu <simtak@...>
清水と申します。
[#7208] for in bsh — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
まつもと ゆきひろです
小澤さくです。
まつもと ゆきひろです
前田です。
けいじゅ@日本ラショナルソフトウェアです.
[#7222] jcode.rb — NAGAI Hidetoshi <nagai@...>
はじめまして.永井@知能.九工大と申します.
[#7232] final.rb error? — tateishi@...
立石です。
まつもと ゆきひろです
立石です。
In message <19980326102918.3974.qmail@localhost>
まつもと ゆきひろです
In message <199803270403.NAA00909@picachu.netlab.co.jp>
[#7244] [Q] test file1 -nt file2 — matz@... (Yukihiro Matsumoto)
まつもと ゆきひろです
[#7257] TkScale.new(parent){to -0.1} — gotoken@... (GOTO Kentaro)
ごとけんです
[#7259] Socket#shutdown — keiju@... (Keiju ISHITSUKA)
けいじゅ@日本ラショナルソフトウェアです.
まつもと ゆきひろです
けいじゅ@日本ラショナルソフトウェアです.
[ruby-list:7029] Re: infinity
前田です。
In message "[ruby-list:7023] infinity"
Tadayoshi Funaba <tadf@kt.rim.or.jp> wrote:
|ボツになりそうなんで、いわないでおこうかと思ったんですが、無限大って表
|現できたら便利だと思うんですけど、どうですか。
僕も前に欲しいと思ったことがあるのですが、忘れていました(^^;
ちょっとパッチ(というほど大袈裟なものではないですが)を書いてみました。
Float::INFINITY
Float::NaN
という二つの定数と、
Float#infinite?
Float#nan?
Float#finite?
という三つのメソッドを定義しています。
--
前田 修吾
--- numeric.c.orig Tue Mar 10 00:49:47 1998
+++ numeric.c Tue Mar 10 01:39:36 1998
@@ -168,7 +168,7 @@
char buf[32];
sprintf(buf, "%g", RFLOAT(flt)->value);
- if (strchr(buf, '.') == 0) {
+ if (finite(RFLOAT(flt)->value) && strchr(buf, '.') == 0) {
int len = strlen(buf);
char *ind = strchr(buf, 'e');
@@ -254,20 +254,12 @@
flo_div(x, y)
VALUE x, y;
{
- INT f_y;
- double d;
-
switch (TYPE(y)) {
case T_FIXNUM:
- f_y = FIX2INT(y);
- if (f_y == 0) num_zerodiv();
- return float_new(RFLOAT(x)->value / (double)f_y);
+ return float_new(RFLOAT(x)->value / (double)FIX2INT(y));
case T_BIGNUM:
- d = big2dbl(y);
- if (d == 0.0) num_zerodiv();
- return float_new(RFLOAT(x)->value / d);
+ return float_new(RFLOAT(x)->value / big2dbl(y));
case T_FLOAT:
- if (RFLOAT(y)->value == 0.0) num_zerodiv();
return float_new(RFLOAT(x)->value / RFLOAT(y)->value);
default:
return num_coerce_bin(x, y);
@@ -443,6 +435,37 @@
}
static VALUE
+flo_is_infinite(flt)
+ VALUE flt;
+{
+ int ret = isinf(RFLOAT(flt)->value);
+ if (ret)
+ return INT2FIX(ret);
+ else
+ return FALSE;
+}
+
+static VALUE
+flo_is_nan(flt)
+ VALUE flt;
+{
+ if (isnan(RFLOAT(flt)->value))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static VALUE
+flo_is_finite(flt)
+ VALUE flt;
+{
+ if (finite(RFLOAT(flt)->value))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static VALUE
to_integer(val)
VALUE val;
{
@@ -1145,6 +1168,8 @@
rb_define_method(cFixnum, "times", fix_dotimes, 0);
cFloat = rb_define_class("Float", cNumeric);
+ rb_define_const(cFloat, "INFINITY", float_new(1.0 / 0.0));
+ rb_define_const(cFloat, "NaN", float_new(0.0 / 0.0));
rb_undef_method(CLASS_OF(cFloat), "new");
@@ -1164,4 +1189,7 @@
rb_define_method(cFloat, "to_i", flo_to_i, 0);
rb_define_method(cFloat, "to_f", flo_to_f, 0);
rb_define_method(cFloat, "abs", flo_abs, 0);
+ rb_define_method(cFloat, "infinite?", flo_is_infinite, 0);
+ rb_define_method(cFloat, "nan?", flo_is_nan, 0);
+ rb_define_method(cFloat, "finite?", flo_is_finite, 0);
}