summaryrefslogtreecommitdiffstats
path: root/numeric.c
Commit message (Collapse)AuthorAgeFilesLines
* merges r24684 from trunk into ruby_1_9_1.yugui2009-10-281-3/+3
| | | | | | | | | -- * vm_method.c (rb_remove_method_id): exported. * numeric.c (num_sadded): fix for non-ascii method name. git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@25547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* merges r24511 from trunk into ruby_1_9_1.yugui2009-10-251-0/+2
| | | | | | | | | | | | -- * 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: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@25478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* merges r24361 from trunk into ruby_1_9_1.yugui2009-08-081-0/+2
| | | | | | | -- * numeric.c (flo_hash): normalize -0.0 to 0.0. [ruby-core:24577] git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@24458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* merges r23742 from trunk into ruby_1_9_1.yugui2009-06-211-0/+6
| | | | | | | | | | -- * 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: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@23803 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* merges r23741 from trunk into ruby_1_9_1.yugui2009-06-211-33/+0
| | | | | | | | | -- * numeric.c (*_numerator,*_denominator): moved to rational.c. * rational.c (*_numerator,*_denominator): moved from numeric.c. git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@23802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* merges r23733 from trunk into ruby_1_9_1.yugui2009-06-211-2/+4
| | | | | | | | -- * numeric.c ( num_numerator, num_denominator): use to_r [ruby-core:23910]. git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@23799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* merges r23730 from trunk into ruby_1_9_1.yugui2009-06-211-0/+4
| | | | | | | | | | -- * numeric.c (flo_cmp): Infinity is greater than any bignum number. [ruby-dev:38672] * bignum.c (rb_big_cmp): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@23798 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* merges r21298 from trunk into ruby_1_9_1.yugui2009-01-041-21/+29
| | | | | | | | | * 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: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@21322 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* merges r21174 from trunk into ruby_1_9_1.yugui2008-12-301-2/+2
| | | | | | arrangement git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@21193 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* merges r20918 from trunk into ruby_1_9_1.yugui2008-12-261-0/+21
| | | | | | * numeric.c (int_ord): Integer#ord implemented. git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@21062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* merges r20909 and r20910 from trunk into ruby_1_9_1.yugui2008-12-251-4/+4
| | | | | | | | | | | | | | | | | | * 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: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@20998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* merges r20348 from trunk into ruby_1_9_1.yugui2008-11-301-4/+9
| | | | | | | * numeric.c (num_step): treat infinite step specially. [ruby-dev:37157] fix: #781. git-svn-id: http://svn.ruby-lang.org/repos/ruby/branches/ruby_1_9_1@20409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (num_sadded): remove newly defined singleton methodmatz2008-10-181-1/+3
| | | | | | that should not exist after exception handling. [ruby-dev:36569] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fixed indentation.tadf2008-09-211-2/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * prec.c: removed. Precision will be redesigned and be back again.yugui2008-09-191-67/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: http://svn.ruby-lang.org/repos/ruby/trunk@19430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * dln.c: newer BeOS support. a patch from Pete Goodevematz2008-09-191-0/+3
| | | | | | <pete.goodeve at computer.org> in [ruby-core:18712]. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c: provides predicate real? instead of scalar?.tadf2008-09-161-4/+4
| | | | | | | | | | * complex.c: follows the above change. * lib/cmath.c: ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19393 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h (DBL2NUM): renamed from DOUBLE2NUM.matz2008-09-051-39/+39
| | | | | | | a patch from Tadashi Saito <shiba at mail2.accsnet.ne.jp> in [ruby-dev:36102]. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@19160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * complex.c ({nucomp,numeric}_rect): new.tadf2008-08-291-0/+3
| | | | | | | | | | | | | | | | | | | | | | | * 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: http://svn.ruby-lang.org/repos/ruby/trunk@18925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h (rb_intern_const): tiny optimization.nobu2008-08-161-0/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@18653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (check_uint): fix wrong message.usa2008-07-181-8/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@18128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (check_uint, rb_num2uint, rb_fix2uint): fixed wrong checkusa2008-07-181-14/+15
| | | | | | | | about 64bit positive value. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@18126 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (check_uint, rb_num2uint, rb_fix2uint): strict check.usa2008-07-171-10/+19
| | | | | | | | fixed [ruby-dev:33683] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@18099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (check_uint, rb_num2uint, rb_fix2uint): proper check.usa2008-07-041-4/+10
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (rb_num2uint, rb_fix2uint): typo.usa2008-07-031-2/+2
| | | | | | | * ChangeLog: format. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (check_uint, rb_num2uint): also needs checking negativeusa2008-07-031-8/+4
| | | | | | | | value. see [ruby-dev:33683] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17861 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (num_coerce): call rb_Float(x) first. don't depend onakr2008-06-301-1/+3
| | | | | | | evaluation order of function arguments. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (flo_round): get rid of overflow.nobu2008-06-211-5/+10
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17498 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h (CONST_ID): constant ID cache for non-gcc.nobu2008-06-091-0/+2
| | | | | | | * *.c: no cache in init functions. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c: "%" is required before PRI?VALUE.akr2008-05-271-4/+4
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (num_div): should raise ZeroDivisionError.matz2008-05-271-1/+6
| | | | | | | | | * numeric.c (fix_divide): ditto. * test/ruby/test_numeric.rb (TestNumeric::test_divmod): avoid ZeroDivisionError in tests. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16650 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (num_fdiv): fallback to_f should always return floatmatz2008-05-271-1/+15
| | | | | | result. should not use #quo that may return rational. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16649 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (check_int): use PRIxVALUE format specifier.matz2008-05-271-12/+4
| | | | | | * numeric.c (check_uint, rb_num2fix, int_chr): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16648 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (bit_coerce): float should not be a valid operand ofmatz2008-05-071-5/+9
| | | | | | bitwise operations. [ruby-dev:34583] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16316 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (fix_divide): float division should floor() beforematz2008-05-071-1/+1
| | | | | | rounding into integer. [ruby-dev:34584] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * string.c (sym_to_i): remove obsolete method. preparation formatz2008-05-071-49/+0
| | | | | | | | | | symbol GC. * numeric.c (fix_to_sym): ditto. * numeric.c (fix_id2name): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (rb_big_fdiv): flo.fdiv(NaN) should result NaN.matz2008-05-071-13/+4
| | | | | | | | | | | | | | * 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: http://svn.ruby-lang.org/repos/ruby/trunk@16308 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (rb_big_divide), numeric.c (fix_divide): check for resultnobu2008-05-011-10/+12
| | | | | | | domain. [ruby-dev:34559] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@16258 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c: cancelled recent changes (except to remove rdiv).tadf2008-04-071-28/+22
| | | | | | | | | | * bignum.c: ditto. * bignum.c: added rb_big_idiv. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (num_quo): RDoc updated.matz2008-04-031-4/+4
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (Init_Bignum): rdiv method removed. [ruby-dev:34242]matz2008-04-031-20/+6
| | | | | | | | | | | | * 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: http://svn.ruby-lang.org/repos/ruby/trunk@15897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (num_rdiv): should always return rational number.matz2008-04-021-29/+40
| | | | | | | | | | | * 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: http://svn.ruby-lang.org/repos/ruby/trunk@15887 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (num_quo): should convert its operand to Rational.matz2008-03-311-2/+2
| | | | | | | | | * 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: http://svn.ruby-lang.org/repos/ruby/trunk@15866 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* both complex and rational are now builtin classes.tadf2008-03-161-6/+63
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15783 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (flo_divmod): remvoed unused variable.nobu2008-03-141-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (fix_divmod): should return integer division. [ruby-dev:34006]matz2008-03-131-11/+18
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15764 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (fix_coerce): try conversion before type check.nobu2008-03-111-9/+19
| | | | | | | [ruby-core:15838] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* fix doc.akr2008-03-091-0/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (fix_to_s): avoid rb_scan_args() when no argumentmatz2008-03-051-4/+7
| | | | | | | | | | | | | | | | | | | | | | 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: http://svn.ruby-lang.org/repos/ruby/trunk@15691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (rb_num_coerce_bin): add ID argument to specifymatz2008-02-121-31/+31
| | | | | | | | | | | | 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: http://svn.ruby-lang.org/repos/ruby/trunk@15437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e