[#34011] Should --verbose be equal to -v ? — Yugui <yugui@...>

Yuguiです。

15 messages 2008/03/10
[#34012] Re: Should --verbose be equal to -v ? — Yukihiro Matsumoto <matz@...> 2008/03/10

まつもと ゆきひろです

[#34105] rational.rb, complex.rb and mathn.rb — Tadayoshi Funaba <tadf@...>

rational と complex が組み込みになったことで、lib/mathn.rb の意義は薄

29 messages 2008/03/22
[#34106] Re: rational.rb, complex.rb and mathn.rb — Tadayoshi Funaba <tadf@...> 2008/03/22

現時点で rational.rb と complex.rb を残しているのは、それが無難だから

[#34107] Re: rational.rb, complex.rb and mathn.rb — Tadayoshi Funaba <tadf@...> 2008/03/22

で、かなり選択肢を絞った叩き台です。

[#34120] Re: rational.rb, complex.rb and mathn.rb — keiju@... (石塚圭樹) 2008/03/24

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

[#34125] Re: rational.rb, complex.rb and mathn.rb — Shin-ichiro HARA <sinara@...> 2008/03/25

原です。

[#34130] Re: rational.rb, complex.rb and mathn.rb — Tadayoshi Funaba <tadf@...> 2008/03/25

> 私も Complex の組み込みは Rational とは比較にならないくらい、仕様が決め

[#34158] Complex組み込み — Masahiro TANAKA <masa16.tanaka@...>

Complexが組み込みになるそうですが、これはcomplex.rbを踏襲して、

49 messages 2008/03/27
[#34161] Re: Complex組み込み — Shin-ichiro HARA <sinara@...> 2008/03/28

原です。

[#34168] Re: Complex組み込み — Tadayoshi Funaba <tadf@...> 2008/03/28

> 今までの Complex は、complex.rb にほぼ残して、たとえば Rational 成分

[#34186] Re: Complex組み込み — Shin-ichiro HARA <sinara@...> 2008/03/31

原です。

[#34187] Re: Complex組み込み — Tadayoshi Funaba <tadf@...> 2008/03/31

> そうです。Complex が難しい、という話を書いておくと、

[#34193] Re: Complex組み込み — Yukihiro Matsumoto <matz@...> 2008/03/31

まつもと ゆきひろです

[#34203] Re: Complex組み込み — Tadayoshi Funaba <tadf@...> 2008/04/01

> |僕としては、/ 演算子の振舞いについて前向きに検討してほしいです。

[#34215] Re: Complex組み込み — Yukihiro Matsumoto <matz@...> 2008/04/02

まつもと ゆきひろです

[#34166] Re: Complex組み込み — Tadayoshi Funaba <tadf@...> 2008/03/28

> となるようですが、別の実装として、

[ruby-dev:34110] Re: LP64: date.rb:321:in `convert': integer 86400000000000 too big to convert to `int' (RangeError)

From: Tadayoshi Funaba <tadf@...>
Date: 2008-03-22 15:35:17 UTC
List: ruby-dev #34110
> LP64 なマシンで test-all が動かなくなっています。

別の理由で、test-all が手元でできないですが、こんな感じでどうでしょう。


Index: complex.c
===================================================================
--- complex.c	(revision 15817)
+++ complex.c	(working copy)
@@ -70,12 +70,12 @@
 {
    VALUE _r;
    if (FIXNUM_P(y)) {
-     if (FIX2INT(y) == 0)
+     if (FIX2LONG(y) == 0)
        _r = x;
      else
        _r = rb_funcall(x, '+', 1, y);
    } else if (FIXNUM_P(x)) {
-     if (FIX2INT(x) == 0)
+     if (FIX2LONG(x) == 0)
        _r = y;
      else
        _r = rb_funcall(x, '+', 1, y);
@@ -85,10 +85,10 @@
 }
 
 inline static VALUE
-f_div(x, y)
+f_div(VALUE x, VALUE y)
 {
   VALUE _r;
-  if (FIXNUM_P(y) && FIX2INT(y) == 1)
+  if (FIXNUM_P(y) && FIX2LONG(y) == 1)
     _r = x;
    else
      _r = rb_funcall(x, '/', 1, y);
@@ -100,7 +100,7 @@
 {
    VALUE _r;
   if (FIXNUM_P(x) && FIXNUM_P(y))
-    _r = f_boolcast(FIX2INT(x) > FIX2INT(y));
+    _r = f_boolcast(FIX2LONG(x) > FIX2LONG(y));
   else
     _r = rb_funcall(x, '>', 1, y);
   return _r;
@@ -111,7 +111,7 @@
 {
    VALUE _r;
   if (FIXNUM_P(x) && FIXNUM_P(y))
-    _r = f_boolcast(FIX2INT(x) < FIX2INT(y));
+    _r = f_boolcast(FIX2LONG(x) < FIX2LONG(y));
   else
     _r = rb_funcall(x, '<', 1, y);
   return _r;
@@ -124,7 +124,7 @@
 {
    VALUE _r;
    if (FIXNUM_P(y)) {
-     int _iy = FIX2INT(y);
+     long _iy = FIX2LONG(y);
      if (_iy == 0) {
        if (TYPE(x) == T_FLOAT)
 	 _r = rb_float_new(0.0);
@@ -135,7 +135,7 @@
      else
        _r = rb_funcall(x, '*', 1, y);
    } else if (FIXNUM_P(x)) {
-     int _ix = FIX2INT(x);
+     long _ix = FIX2LONG(x);
      if (_ix == 0) {
        if (TYPE(y) == T_FLOAT)
 	 _r = rb_float_new(0.0);
@@ -155,7 +155,7 @@
 {
    VALUE _r;
    if (FIXNUM_P(y)) {
-     if (FIX2INT(y) == 0)
+     if (FIX2LONG(y) == 0)
        _r = x;
      else
        _r = rb_funcall(x, '-', 1, y);
@@ -189,7 +189,7 @@
 {
    VALUE _r;
    if (FIXNUM_P(x) && FIXNUM_P(y)) {
-     int c = FIX2INT(x) - FIX2INT(y);
+     long c = FIX2LONG(x) - FIX2LONG(y);
      if (c > 0)
        c = 1;
      else if (c < 0)
@@ -208,7 +208,7 @@
 {
    VALUE _r;
    if (FIXNUM_P(x) && FIXNUM_P(y))
-     _r = f_boolcast(FIX2INT(x) == FIX2INT(y));
+     _r = f_boolcast(FIX2LONG(x) == FIX2LONG(y));
    else
      _r = rb_funcall(x, id_equal_p, 1, y);
    return _r;
@@ -223,7 +223,7 @@
 {
    VALUE _r;
   if (FIXNUM_P(x))
-    _r = f_boolcast(FIX2INT(x) < 0);
+    _r = f_boolcast(FIX2LONG(x) < 0);
   else
     _r = rb_funcall(x, '<', 1, ZERO);
   return _r;
@@ -234,7 +234,7 @@
 {
    VALUE _r;
    if (FIXNUM_P(x))
-     _r = f_boolcast(FIX2INT(x) == 0);
+     _r = f_boolcast(FIX2LONG(x) == 0);
    else
      _r = rb_funcall(x, id_equal_p, 1, ZERO);
    return _r;
@@ -245,7 +245,7 @@
 {
    VALUE _r;
    if (FIXNUM_P(x))
-     _r = f_boolcast(FIX2INT(x) == 1);
+     _r = f_boolcast(FIX2LONG(x) == 1);
    else
      _r = rb_funcall(x, id_equal_p, 1, ONE);
    return _r;
Index: rational.c
===================================================================
--- rational.c	(revision 15818)
+++ rational.c	(working copy)
@@ -53,12 +53,12 @@
 {
    VALUE _r;
    if (FIXNUM_P(y)) {
-     if (FIX2INT(y) == 0)
+     if (FIX2LONG(y) == 0)
        _r = x;
      else
        _r = rb_funcall(x, '+', 1, y);
    } else if (FIXNUM_P(x)) {
-     if (FIX2INT(x) == 0)
+     if (FIX2LONG(x) == 0)
        _r = y;
      else
        _r = rb_funcall(x, '+', 1, y);
@@ -68,10 +68,10 @@
 }
 
 inline static VALUE
-f_div(x, y)
+f_div(VALUE x, VALUE y)
 {
   VALUE _r;
-  if (FIXNUM_P(y) && FIX2INT(y) == 1)
+  if (FIXNUM_P(y) && FIX2LONG(y) == 1)
     _r = x;
    else
      _r = rb_funcall(x, '/', 1, y);
@@ -83,7 +83,7 @@
 {
    VALUE _r;
   if (FIXNUM_P(x) && FIXNUM_P(y))
-    _r = f_boolcast(FIX2INT(x) > FIX2INT(y));
+    _r = f_boolcast(FIX2LONG(x) > FIX2LONG(y));
   else
     _r = rb_funcall(x, '>', 1, y);
   return _r;
@@ -94,7 +94,7 @@
 {
    VALUE _r;
   if (FIXNUM_P(x) && FIXNUM_P(y))
-    _r = f_boolcast(FIX2INT(x) < FIX2INT(y));
+    _r = f_boolcast(FIX2LONG(x) < FIX2LONG(y));
   else
     _r = rb_funcall(x, '<', 1, y);
   return _r;
@@ -107,7 +107,7 @@
 {
    VALUE _r;
    if (FIXNUM_P(y)) {
-     int _iy = FIX2INT(y);
+     long _iy = FIX2LONG(y);
      if (_iy == 0) {
        if (TYPE(x) == T_FLOAT)
 	 _r = rb_float_new(0.0);
@@ -118,7 +118,7 @@
      else
        _r = rb_funcall(x, '*', 1, y);
    } else if (FIXNUM_P(x)) {
-     int _ix = FIX2INT(x);
+     long _ix = FIX2LONG(x);
      if (_ix == 0) {
        if (TYPE(y) == T_FLOAT)
 	 _r = rb_float_new(0.0);
@@ -138,7 +138,7 @@
 {
    VALUE _r;
    if (FIXNUM_P(y)) {
-     if (FIX2INT(y) == 0)
+     if (FIX2LONG(y) == 0)
        _r = x;
      else
        _r = rb_funcall(x, '-', 1, y);
@@ -162,7 +162,7 @@
 {
    VALUE _r;
    if (FIXNUM_P(x) && FIXNUM_P(y)) {
-     int c = FIX2INT(x) - FIX2INT(y);
+     long c = FIX2LONG(x) - FIX2LONG(y);
      if (c > 0)
        c = 1;
      else if (c < 0)
@@ -180,7 +180,7 @@
 {
    VALUE _r;
    if (FIXNUM_P(x) && FIXNUM_P(y))
-     _r = f_boolcast(FIX2INT(x) == FIX2INT(y));
+     _r = f_boolcast(FIX2LONG(x) == FIX2LONG(y));
    else
      _r = rb_funcall(x, id_equal_p, 1, y);
    return _r;
@@ -194,7 +194,7 @@
 {
    VALUE _r;
   if (FIXNUM_P(x))
-    _r = f_boolcast(FIX2INT(x) < 0);
+    _r = f_boolcast(FIX2LONG(x) < 0);
   else
     _r = rb_funcall(x, '<', 1, ZERO);
   return _r;
@@ -205,7 +205,7 @@
 {
    VALUE _r;
    if (FIXNUM_P(x))
-     _r = f_boolcast(FIX2INT(x) == 0);
+     _r = f_boolcast(FIX2LONG(x) == 0);
    else
      _r = rb_funcall(x, id_equal_p, 1, ZERO);
    return _r;
@@ -216,7 +216,7 @@
 {
    VALUE _r;
    if (FIXNUM_P(x))
-     _r = f_boolcast(FIX2INT(x) == 1);
+     _r = f_boolcast(FIX2LONG(x) == 1);
    else
      _r = rb_funcall(x, id_equal_p, 1, ONE);
    return _r;
@@ -319,7 +319,7 @@
 
   for (;;) {
     if (FIXNUM_P(x)) {
-      if (FIX2INT(x) == 0)
+      if (FIX2LONG(x) == 0)
 	return y;
       if (FIXNUM_P(y))
 	return LONG2NUM(i_gcd(FIX2LONG(x), FIX2LONG(y)));
@@ -897,7 +897,7 @@
     {
       get_dat1(self);
 
-      if (FIXNUM_P(dat->den) && FIX2INT(dat->den) == 1)
+      if (FIXNUM_P(dat->den) && FIX2LONG(dat->den) == 1)
 	return f_cmp(dat->num, other);
       else
 	return f_cmp(self, f_rational_new_bang1(CLASS_OF(self), other));
@@ -912,8 +912,8 @@
 
       if (FIXNUM_P(adat->num) && FIXNUM_P(adat->den) &&
 	  FIXNUM_P(bdat->num) && FIXNUM_P(bdat->den)) {
-	num1 = f_imul(FIX2INT(adat->num), FIX2INT(bdat->den));
-	num2 = f_imul(FIX2INT(bdat->num), FIX2INT(adat->den));
+	num1 = f_imul(FIX2LONG(adat->num), FIX2LONG(bdat->den));
+	num2 = f_imul(FIX2LONG(bdat->num), FIX2LONG(adat->den));
       } else {
 	num1 = f_mul(adat->num, bdat->den);
 	num2 = f_mul(bdat->num, adat->den);
@@ -939,7 +939,7 @@
 
       if (!FIXNUM_P(dat->den))
 	return Qfalse;
-      if (FIX2INT(dat->den) != 1)
+      if (FIX2LONG(dat->den) != 1)
 	return Qfalse;
       if (f_equal_p(dat->num, other))
 	return Qtrue;

In This Thread