matz
7fc9c4a4a0
* 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/trunk@23730 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-17 17:05:31 +00:00
tadf
b6849b2502
* bignum.c (rb_big_fdiv): checks whether the given second argument
...
can be converted to float properly.
* numeric.c (fix_fdiv): calls rb_big_fdiv when the given second
argument is a bignum.
* rational.c (nurat_fdiv): should calculate Float(x/y), not
Float(x)/Float(y).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-17 12:55:16 +00:00
tadf
7a71dff0bf
avoid signbit() and adjust indentation.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-15 22:58:46 +00:00
tadf
04388f9f9d
* bignum.c (rb_big2db): (-Float::MAX.to_i*2).to_f should return
...
-HUGE_VAL (-Infinity).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-15 13:39:18 +00:00
matz
80ad1473cf
* bignum.c (bigand_int): new function to calculate bignum and
...
fixnum without allocating internal bignum.
* bignum.c (bigor_int): ditto.
* bignum.c (bigxor_int): ditto.
* bignum.c (bigand_int): even less object allocation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23596 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-27 16:16:57 +00:00
nobu
8e86bd59c0
* common.mk (bignum.o, numeric.o): depend on util.h.
...
* bignum.c, marshal.c: fixed types.
* numeric.c (infinite_value): use ruby_div0.
* include/ruby/util.h (ruby_div0): moved from marshal.c.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-26 04:58:15 +00:00
matz
0acedf8066
* bignum.c (bignew_1): inline memory allocation.
...
* bignum.c (bigtrunc): call rb_big_resize() only when needed.
* bignum.c (bigfixize): declare inline.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23574 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-26 02:19:33 +00:00
matz
dd54da6ede
* bignum.c (bigsub_int): subtraction without making internal
...
bignum values.
* bignum.c (bigadd_int): ditto for addition.
* bignum.c (bigtrunc): declare inline.
* bignum.c (rb_quad_pack): fix condition.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-04-20 17:53:36 +00:00
akr
5f64ea6c60
* bignum.c (rb_cmpint): FIX2INT may fail on LP64 platforms.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-26 16:20:58 +00:00
nobu
96c31ac787
* bignum.c (bigfixize): zero length Bignum is 0.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-13 00:30:15 +00:00
nobu
d1abc53721
* array.c, bignum.c, dln.c, error.c, gc.c, io.c, marshal.c,
...
numeric.c, pack.c, strftime.c, string.c, thread.c, transcode.c,
transcode_data.h, util.c, variable.c, vm_dump.c,
include/ruby/encoding.h, missing/crypt.c, missing/vsnprintf.c:
suppress VC type warnings. [ruby-core:22726]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-12 09:16:15 +00:00
nobu
2e54fe9d4d
* array.c, bignum.c, gc.c, numeric.c, string.c, util.c, insns.def,
...
missing/crypt.c, missing/vsnprintf.c, : suppress warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-10 05:43:14 +00:00
nobu
12d2c8ba41
stripped trailing spaces.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22 14:23:33 +00:00
tadf
c7e236efc1
* bignum.c (rb_cstr_to_inum): changed an error message.
...
* complex.c (string_to_c_strict): ditto.
* rational.c (string_to_r_strict): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-29 14:26:16 +00:00
mame
43a9e10a23
* bignum.c (bigmul1_karatsuba): remove temporal bignum.
...
* bignum.c (bigsqr): call bigmul0(x, x) because it is faster than the
original bigsqr at this point.
* bignum.c (rb_big_pow): a value returned from bigsqr is already
truncated.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-14 13:39:33 +00:00
mame
26fc24fb0b
* bignum.c (bigmul1_karatsuba): fix comment and refactoring.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-14 12:15:07 +00:00
mame
bba7733b20
* bignum.c (bigmul1_balance, bigmul1_karatsuba): remove all
...
rb_gc_force_recycle which causes memory leak.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-14 05:55:54 +00:00
mame
19f45f853c
* bignum.c (rb_big_mul): faster multiplication by Karatsuba method and
...
twice faster square than normal multiplication.
* random.c (rb_rand_internal): used by Bignum#*.
* test/ruby/test_bignum.rb: add some tests for above.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20733 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-14 03:59:02 +00:00
tadf
f2cb79ffee
* complex.c: uses f_(in)?exact_p macro.
...
* rational.c: ditto.
* bignum.c (rb_big_pow): bignum**bignum - should calculate without
rational.
* lib/complex.rb: should override Math module at most once.
* lib/mathn.rb: requires 'cmath' directly.
-この行以下は無視されます --
M complex.c
M ChangeLog
M lib/mathn.rb
M lib/complex.rb
M bignum.c
M rational.c
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-19 13:55:52 +00:00
matz
bc9c077400
* bignum.c (big2str_karatsuba): free internal buffer eagerly.
...
a patch from TOYOFUKU Chikanobu <nobu_toyofuku at nifty.com>
in [ruby-dev:36217].
* bignum.c (rb_big2str0): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-18 11:21:34 +00:00
ko1
69029b90fe
* gc.c, include/ruby/ruby.h: rename rb_register_mark_object()
...
to rb_gc_register_mark_object().
* eval.c, vm.c: initialize vm->mark_object_ary at
Init_top_self().
* bignum.c, complex.c, encoding.c, ext/win32ole/win32ole.c,
io.c, load.c, marshal.c, rational.c, ruby.c, vm.c:
use rb_gc_register_mark_object() instead of
rb_global_variable() or rb_gc_register_address().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-15 14:59:14 +00:00
matz
63471c7c32
* bignum.c (bigdivrem): adjust length for division and remainder.
...
a patch from TOYOFUKU Chikanobu <nobu_toyofuku at nifty.com> in
[ruby-dev:36231].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-11 06:30:56 +00:00
matz
ba75344338
* bignum.c (big2str_karatsuba): remove unnecessary fixnum code. a
...
patch from TOYOFUKU Chikanobu <nobu_toyofuku at nifty.com> in
[ruby-dev:36217].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19292 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-11 02:40:52 +00:00
matz
7a04666b3c
* bignum.c (bigdivrem1): optimization by skipping zeros at the
...
tail of digits. a patch from TOYOFUKU Chikanobu
<nobu_toyofuku at nifty.com> in [ruby-dev:36169].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19171 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-05 23:25:13 +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
matz
66529e382f
* bignum.c (bigdivmod): remove redundant code. a patch from
...
TOYOFUKU Chikanobu <nobu_toyofuku at nifty.com> in [ruby-dev:36044].
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-29 16:56:44 +00:00
tadf
a5bdf63afd
* bignum.c: added an alias (#magnitude).
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18926 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-29 14:50:43 +00:00
ko1
72ba13aa8e
* array.c, bignum.c, cont.c, dir.c, dln.c, encoding.c, enumerator.c,
...
enumerator.c (enumerator_allocate), eval_jump.c, file.c, hash.c,
io.c, load.c, pack.c, proc.c, random.c, re.c, ruby.c, st.c,
string.c, thread.c, thread_pthread.c, time.c, util.c, variable.c,
vm.c, gc.c:
allocated memory objects by xmalloc (ruby_xmalloc) should be
freed by xfree (ruby_xfree).
* ext/curses/curses.c, ext/dbm/dbm.c, ext/digest/digest.c,
ext/gdbm/gdbm.c, ext/json/ext/parser/parser.c,
ext/json/ext/parser/unicode.c, ext/openssl/ossl_cipher.c,
ext/openssl/ossl_hmac.c, ext/openssl/ossl_pkey_ec.c,
ext/sdbm/init.c, ext/strscan/strscan.c, ext/zlib/zlib.c:
ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17017 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-08 10:01:40 +00:00
akr
6c1e664bb1
* bignum.c (bigzero_p): check from MSB to LSB. [ruby-dev:34649]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-12 04:44:13 +00:00
matz
65b55c26a1
* bignum.c (rb_big_and): bit-wise operation should not take float
...
values. [ruby-dev:34612]
* bignum.c (rb_big_or): ditto.
* bignum.c (rb_big_xor): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-08 09:18:47 +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
nobu
de0561684c
* bignum.c (rb_big_divide): return an integer for idiv.
...
[ruby-dev:34553]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-01 14:20:15 +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
bdc00ba604
* bignum.c (rb_cmpint): moved from compar.c, to check bignum
...
zero.
* range.c (range_step): add step for each iteration if begin and
end are numeric. [ruby-core:15990]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15911 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-06 17:11:50 +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
nobu
e31a69562e
* bignum.c (big2dbl): more precise conversion at edge cases.
...
[ruby-dev:34195]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15881 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-01 07:40:23 +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
nobu
2188bbced3
* bignum.c (rb_cstr_to_inum): treat successive underscores as
...
nondigit. [ruby-dev:34089]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15799 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-19 05:36:43 +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
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
mame
fddbc2738f
* bignum.c: fix indent.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-07 12:28:57 +00:00
mame
a6267179ee
* bignum.c (power_cache_init, power_cache_get_power0, Init_Bignum):
...
delayed initializing power cache per base.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-07 12:14:17 +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
nobu
4a65cba488
* bignum.c (big2str_find_n1): check integer overflow.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15646 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-29 17:35:11 +00:00
usa
07de01ca3b
* bignum.c (big2str_karatsuba): initialize cache if not initialized.
...
* bignum.c (Init_Bignum): delayed initializing cache.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-25 06:34:38 +00:00
nobu
bc2fb51c5e
* bignum.c (BIGZEROP): fix for longer Bignum zeros. [ruby-Bugs-17454]
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-22 10:50:21 +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
tadf
8429f2be9f
adjustment
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-30 11:20:03 +00:00
tadf
fb997983a2
* bignum.c (rb_cstr_to_inum): '0_2' is a valid representatin.
...
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-30 03:07:37 +00:00