Commit graph

251 commits

Author SHA1 Message Date
yugui
3c0e4e61d6 merges r24684 from trunk into ruby_1_9_1.
--
* vm_method.c (rb_remove_method_id): exported.

* numeric.c (num_sadded): fix for non-ascii method name.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@25547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-28 16:11:27 +00:00
yugui
0a84a18ef4 merges r24511 from trunk into ruby_1_9_1.
--
* insns.def, vm.c, vm_insnhelper.c, vm_insnhelper.h: check
  definition of (classes)#=== for case/when optimization.
  Fix Bug #1376 [ruby-core:23190].
* string.c (Init_String), bignum.c (Init_Bignum),
  numeric.c (Init_Numeric): define String#===, Symbol#===,
  Bignum#===, Fixnum#===, Float#=== as same as (classes)#==.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@25478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-25 14:46:19 +00:00
yugui
208ec9936a merges r24361 from trunk into ruby_1_9_1.
--
* numeric.c (flo_hash): normalize -0.0 to 0.0.  [ruby-core:24577]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@24458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-08-08 15:31:53 +00:00
yugui
34304a667d merges r23742 from trunk into ruby_1_9_1.
--
* numeric.c (flo_cmp): should always return nil for NaN.

* numeric.c (flo_cmp): handle infinite value specially using
  infinite? method internally.  [ruby-dev:38681]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@23803 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-21 10:35:50 +00:00
yugui
9bf9043556 merges r23741 from trunk into ruby_1_9_1.
--
	* numeric.c (*_numerator,*_denominator): moved to rational.c.

	* rational.c (*_numerator,*_denominator): moved from numeric.c.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@23802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-21 10:35:37 +00:00
yugui
0e5852ce00 merges r23733 from trunk into ruby_1_9_1.
--
	* numeric.c ( num_numerator, num_denominator): use
	  to_r [ruby-core:23910].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@23799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-21 10:35:02 +00:00
yugui
24523af7cc merges r23730 from trunk into ruby_1_9_1.
--
* numeric.c (flo_cmp): Infinity is greater than any bignum
  number.  [ruby-dev:38672]

* bignum.c (rb_big_cmp): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@23798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-21 10:34:46 +00:00
yugui
0c27d72a0d merges r21298 from trunk into ruby_1_9_1.
* numeric.c (ruby_float_step): extracted from num_step().

* range.c (range_step): uses ruby_float_step() for float range.
  [ruby-dev:37691]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21322 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-04 14:05:36 +00:00
yugui
9d10cc0a6b merges r21174 from trunk into ruby_1_9_1.
arrangement

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-30 10:32:23 +00:00
yugui
db8fcd41fd merges r20918 from trunk into ruby_1_9_1.
* numeric.c (int_ord): Integer#ord implemented.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-26 05:54:18 +00:00
yugui
d9f4570bdd merges r20909 and r20910 from trunk into ruby_1_9_1.
* configure.in (mingw): no longer uses snprintf and vsnprintf of
  msvcrt.

* win32/win32.c (rb_w32_vsnprintf, rb_w32_snprintf): removed.

* win32/Makefile.sub (config.h): vsnprintf exists in VC7 or later.

* win32/mkexports.rb (Exports#initialize): aliases
  rb_w32_vsnprintf and rb_w32_snprintf for binary compatibility.

* sprintf.c (rb_str_format): uses snprintf instead of sprintf.

* numeric.c (flo_to_s, rb_num2long, rb_num2ll): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-25 09:51:10 +00:00
yugui
dd463a9fe3 merges r20348 from trunk into ruby_1_9_1.
* numeric.c (num_step): treat infinite step specially.
  [ruby-dev:37157] fix: #781.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-30 09:22:47 +00:00
matz
8705e3623c * numeric.c (num_sadded): remove newly defined singleton method
that should not exist after exception handling.  [ruby-dev:36569]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-18 10:39:41 +00:00
tadf
28a04df7bb fixed indentation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-21 03:37:30 +00:00
yugui
396650e0bd * prec.c: removed. Precision will be redesigned and be back again.
c.f. [ruby-dev:36352].

* common.mk (COMMON_OBJS): removed prec.o.

* inits.c (rb_call_inits): removed Init_Precision.

* numeric.c (Init_Numeric): removed inclusion of Precision.
  removed #induced_from from each class.

* rational.c: ditto.

* ext/bigdecimal/bigdecimal.c: ditto.

* lib/rdoc/knwon_classes.rb: removed the entry for Precision.

* test/ruby/test_prec.rb: removed.

* test/ruby/test_integer.rb: removed tests for Precision.

* test/ruby/test_fixnum.rb: ditto.

* test/ruby/test_float.rb: ditto.

* test/ruby/test_rational.rb: ditto.

* test/ruby/test_complex.rb: ditto.

* test/bigdecimal/test_bigdecimal.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-19 13:10:54 +00:00
matz
d7de44a8fc * dln.c: newer BeOS support. a patch from Pete Goodeve
<pete.goodeve at computer.org> in [ruby-core:18712].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-19 00:33:19 +00:00
tadf
acde7364f7 * numeric.c: provides predicate real? instead of scalar?.
* complex.c: follows the above change.

	* lib/cmath.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-16 22:04:19 +00:00
matz
31b6ea65bb * include/ruby/ruby.h (DBL2NUM): renamed from DOUBLE2NUM.
a patch from Tadashi Saito <shiba at mail2.accsnet.ne.jp>
  in [ruby-dev:36102].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-05 18:24:21 +00:00
tadf
5185955f3f * complex.c ({nucomp,numeric}_rect): new.
* complex.c: added some aliases
	  (::rectangular, ::rect, #rectangular, #rect, #phase,
	  #magnitude).

	* complex.c (string_to_c_internal): should not strip any null
	  bytes.

	* rational.c (string_to_r_internal): ditto.

	* rational.c (i_gcd): reverted to nurat 0.0.2's one.

	* numeric.c: added an alias (#magnitude).

	* test/ruby/test_complex.rb: added assertions.

	* test/ruby/test_rational.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-29 13:41:41 +00:00
nobu
5f9c188d97 * include/ruby/ruby.h (rb_intern_const): tiny optimization.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-16 00:20:31 +00:00
usa
dbd68031e0 * numeric.c (check_uint): fix wrong message.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-18 15:32:36 +00:00
usa
404d0ad40f * numeric.c (check_uint, rb_num2uint, rb_fix2uint): fixed wrong check
about 64bit positive value.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18126 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-18 15:29:17 +00:00
usa
6852eaaf0d * numeric.c (check_uint, rb_num2uint, rb_fix2uint): strict check.
fixed [ruby-dev:33683]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-17 01:23:35 +00:00
usa
75d3a3d0df * numeric.c (check_uint, rb_num2uint, rb_fix2uint): proper check.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-04 08:52:51 +00:00
usa
f8ed3b245a * numeric.c (rb_num2uint, rb_fix2uint): typo.
* ChangeLog: format.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-03 20:04:35 +00:00
usa
fc64f8c5fe * numeric.c (check_uint, rb_num2uint): also needs checking negative
value. see [ruby-dev:33683]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17861 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-03 17:22:29 +00:00
akr
5f8e0b6633 * numeric.c (num_coerce): call rb_Float(x) first. don't depend on
evaluation order of function arguments.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-30 16:03:41 +00:00
nobu
a2b83212d6 * numeric.c (flo_round): get rid of overflow.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17498 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-21 07:21:10 +00:00
nobu
5a647a3f5f * include/ruby/ruby.h (CONST_ID): constant ID cache for non-gcc.
* *.c: no cache in init functions.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-09 09:25:32 +00:00
akr
85f554594a * numeric.c: "%" is required before PRI?VALUE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-27 23:43:46 +00:00
matz
77446d45a8 * numeric.c (num_div): should raise ZeroDivisionError.
* numeric.c (fix_divide): ditto.

* test/ruby/test_numeric.rb (TestNumeric::test_divmod): avoid
  ZeroDivisionError in tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-27 12:51:28 +00:00
matz
8a3f0ce44a * numeric.c (num_fdiv): fallback to_f should always return float
result.  should not use #quo that may return rational.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16649 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-27 12:47:14 +00:00
matz
5342ed85f9 * numeric.c (check_int): use PRIxVALUE format specifier.
* numeric.c (check_uint, rb_num2fix, int_chr): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16648 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-27 12:44:52 +00:00
matz
10f263c10e * numeric.c (bit_coerce): float should not be a valid operand of
bitwise operations.  [ruby-dev:34583]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-07 13:24:55 +00:00
matz
274c6471b8 * numeric.c (fix_divide): float division should floor() before
rounding into integer.  [ruby-dev:34584]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-07 13:23:24 +00:00
matz
640a62ea71 * string.c (sym_to_i): remove obsolete method. preparation for
symbol GC.

* numeric.c (fix_to_sym): ditto.

* numeric.c (fix_id2name): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-07 09:18:06 +00:00
matz
fa16110326 * bignum.c (rb_big_fdiv): flo.fdiv(NaN) should result NaN.
* numeric.c (num_quo): renamed and moved from bignum.c.
  [ruby-dev:34582]

* bignum.c (rb_big_fdiv): update RDoc description

* rational.c (nurat_s_new_m): small refactoring.

* bignum.c (rb_big2dbl): no need for forceful warning when
  converting to float.  overflow is a nature of float values.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16308 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-07 04:14:57 +00:00
nobu
b5f2df6b9e * bignum.c (rb_big_divide), numeric.c (fix_divide): check for result
domain.  [ruby-dev:34559]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16258 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-01 15:00:01 +00:00
tadf
4e046758f5 * numeric.c: cancelled recent changes (except to remove rdiv).
* bignum.c: ditto.

	* bignum.c: added rb_big_idiv.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-07 13:52:26 +00:00
matz
c69d2005c3 * numeric.c (num_quo): RDoc updated.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-03 16:04:31 +00:00
matz
228f30be3a * bignum.c (Init_Bignum): rdiv method removed. [ruby-dev:34242]
* complex.c (nucomp_quo): ditto.

* numeric.c (num_rdiv): ditto.

* rational.c (nurat_div): ditto.

* complex.c (nucomp_fdiv): fdiv implementation restored.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-03 16:01:16 +00:00
matz
c3d2e4d381 * numeric.c (num_rdiv): should always return rational number.
* rational.c (nurat_add, nurat_sub, nurat_mul, nurat_fdiv,
  nurat_cmp): use rb_num_coerce_bin().

* rational.c (nurat_division): does / and rdiv.

* .gdbinit (rp): no longer use rb_p().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15887 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-02 14:13:53 +00:00
matz
88a4961cb2 * numeric.c (num_quo): should convert its operand to Rational.
* rational.c (string_to_r_strict): should raise TypeError.

* bignum.c (Init_Bignum): should not redefine Bignum#div.
  Numeric#div will do.  [ruby-dev:34066]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-31 10:14:42 +00:00
tadf
6125552c27 both complex and rational are now builtin classes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-16 00:23:43 +00:00
nobu
d6ca5fefd0 * numeric.c (flo_divmod): remvoed unused variable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-14 05:03:28 +00:00
matz
c7bea6f6e7 * numeric.c (fix_divmod): should return integer division. [ruby-dev:34006]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-13 16:37:54 +00:00
nobu
83c017d7af * numeric.c (fix_coerce): try conversion before type check.
[ruby-core:15838]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-11 10:48:12 +00:00
akr
861219ce4a fix doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-09 01:04:46 +00:00
matz
39787ea14d * numeric.c (fix_to_s): avoid rb_scan_args() when no argument
given. 
* bignum.c (rb_big_to_s): ditto.
* enum.c (enum_first): ditto.
* eval_jump.c (rb_f_catch): ditto.
* io.c (rb_obj_display): ditto.
* class.c (rb_obj_singleton_methods): ditto.
* object.c (rb_class_initialize): ditto.
* random.c (rb_f_srand): ditto.
* range.c (range_step): ditto.
* re.c (rb_reg_s_last_match): ditto.
* string.c (rb_str_to_i): ditto.
* string.c (rb_str_each_line): ditto.
* string.c (rb_str_chomp_bang): ditto.
* string.c (rb_str_sum): ditto.

* string.c (str_modifiable): declare inline.
* string.c (str_independent): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-05 05:22:17 +00:00
matz
f3ac3dc79c * numeric.c (rb_num_coerce_bin): add ID argument to specify
caller's method name.  [ruby-dev:33663]

* numeric.c (rb_num_coerce_cmp): ditto.

* numeric.c (rb_num_coerce_relop): ditto.

* ext/bigdecimal/bigdecimal.c (DoSomeOne): add function name argument.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-12 02:46:21 +00:00