summaryrefslogtreecommitdiffstats
path: root/numeric.c
Commit message (Collapse)AuthorAgeFilesLines
* fix typos.akr2007-12-311-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14811 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * pack.c (pack_pack): use NUM2LONG instead of NUM2INT.usa2007-12-241-3/+3
| | | | | | | | | | | * numeric.c (fix_lshift, fix_aref): use SIZEOF_LONG instead of SIZEOF_VALUE. * bignum.c (big2ulong, rb_big_aref): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14625 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * proc.c (method_name): preserve Symbol's encoding.matz2007-12-241-2/+2
| | | | | | * numeric.c (fix_id2name): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14620 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* enable several rdoc.akr2007-12-241-4/+4
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/encoding.h, encoding.c, re.c, io.c, parse.y, numeric.c,akr2007-12-221-1/+1
| | | | | | | | | ruby.c, transcode.c: rename rb_ascii_encoding. to rb_ascii8bit_encoding. rb_ascii_encoding is ambiguous with ASCII-8BIT and US-ASCII. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * encoding.c (rb_ascii_encoding): renamed from previousmatz2007-12-211-1/+1
| | | | | | rb_default_encoding(). git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * io.c (rb_io_s_read): allow specifying encoding explicitly.matz2007-12-211-0/+1
| | | | | | | | | | | | * io.c (rb_io_binmode): specifies encoding to ASCII-8BIT (binary). * io.c (rb_io_s_read): IO should be in binary mode when offset is specified. * encoding.c (rb_to_encoding): returns default encoding if no corresponding encoding found. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * regerror.c, string.c, io.c, lib/getoptlong.rb, lib/net/imap.rb,akr2007-12-211-1/+1
| | | | | | | | | | | compile.c, sprintf.c, parse.y, ext/win32ole/win32ole.c, ext/tk/sample/demos-en/entry3.rb, ext/tk/lib/tcltk.rb, ext/openssl/ossl_bn.c, numeric.c, vm.c, benchmark/bm_so_meteor_contest.rb, bignum.c, ruby.c: don't "illegal" for non law violation context. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14377 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h: rename RFloat#double_value -> float_value.ko12007-11-201-1/+1
| | | | | | | | * numeric.c, parse.y: ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (round): fallback definition.nobu2007-11-131-6/+19
| | | | | | | | * numeric.c (flo_divmod, flo_round): use round() always. [ruby-dev:32269] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13914 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h: introduce 2 macros:ko12007-11-131-88/+88
| | | | | | | | | | | | | | | RFLOAT_VALUE(v), DOUBLE2NUM(dbl). Rename RFloat#value -> RFloat#double_value. Do not touch RFloat#double_value directly. * bignum.c, insns.def, marshal.c, math.c, numeric.c, object.c, pack.c, parse.y, process.c, random.c, sprintf.c, string.c, time.c: apply above changes. * ext/dl/mkcallback.rb, ext/json/ext/generator/generator.c: ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (flodivmod): work around for inifinity.nobu2007-11-131-1/+11
| | | | | | | | * numeric.c (flo_divmod): work around for platforms have no round(). [ruby-dev:32247] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13907 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (flo_divmod): round to the nearest integer. [ ruby-Bugs-14540 ]shyouhei2007-11-121-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13902 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (int_chr): take an optional encoding parameter.nobu2007-10-261-10/+30
| | | | | | | [ruby-core:12816] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13787 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (fix_pow): returns 1.0 for 0**0.0.nobu2007-10-261-0/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13786 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (fix_pow): returns infinity for 0**-1. [ruby-dev:32084]nobu2007-10-261-2/+8
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (flo_round): should be number but not rounding factor.nobu2007-10-151-1/+1
| | | | | | | [ruby-dev:32060] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c: use #ifdef for test LONG_LONG_VALUE.akr2007-09-301-2/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby/ruby.h (struct RBignum): embed digits in RBignum forakr2007-09-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | small bignums. * bignum.c: RBignum embeded digits implemented. * include/ruby/intern.h: declare rb_big_resize. * gc.c: don't free embedded digits. * numeric.c: replace direct bignum field accessor by abstract field accessor such as RBIGNUM(val)->sign to RBIGNUM_SIGN(val). * sprintf.c: ditto. * compar.c: ditto. * marshal.c: ditto. * random.c: ditto. * .gdbinit: support embedded small bignums. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13330 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (SQRT_LONG_MAX): use SIZEOF_LONG instead of SIZEOF_VALUEusa2007-08-301-1/+1
| | | | | | | because SIZEOF_VALUE > SIZEOF_LONG on some platforms. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * encoding.c: provide basic features for M17N.matz2007-08-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * parse.y: encoding aware parsing. * parse.y (pragma_encoding): encoding specification pragma. * parse.y (rb_intern3): encoding specified symbols. * string.c (rb_str_length): length based on characters. for older behavior, bytesize method added. * string.c (rb_str_index_m): index based on characters. rindex as well. * string.c (succ_char): encoding aware succeeding string. * string.c (rb_str_reverse): reverse based on characters. * string.c (rb_str_inspect): encoding aware string description. * string.c (rb_str_upcase_bang): encoding aware case conversion. downcase, capitalize, swapcase as well. * string.c (rb_str_tr_bang): tr based on characters. delete, squeeze, tr_s, count as well. * string.c (rb_str_split_m): split based on characters. * string.c (rb_str_each_line): encoding aware each_line. * string.c (rb_str_each_char): added. iteration based on characters. * string.c (rb_str_strip_bang): encoding aware whitespace stripping. lstrip, rstrip as well. * string.c (rb_str_justify): encoding aware justifying (ljust, rjust, center). * string.c (str_encoding): get encoding attribute from a string. * re.c (rb_reg_initialize): encoding aware regular expression * sprintf.c (rb_str_format): formatting (i.e. length count) based on characters. * io.c (rb_io_getc): getc to return one-character string. for older behavior, getbyte method added. * ext/stringio/stringio.c (strio_getc): ditto. * io.c (rb_io_ungetc): allow pushing arbitrary string at the current reading point. * ext/stringio/stringio.c (strio_ungetc): ditto. * ext/strscan/strscan.c: encoding support. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@13261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (rb_big_lshift, rb_big_rshift): separated functionsnobu2007-07-191-14/+29
| | | | | | | | | | to get rid of infinite recursion. fixed calculation in edge cases. [ruby-dev:31244] * numeric.c (rb_fix_lshift, rb_fix_rshift): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (fix_pow): integer power calculation: 0**n => 0, matz2007-07-141-4/+19
| | | | | | | | | 1**n => 1, -1**n => 1 (n: even) / -1 (n: odd). * test/ruby/test_fixnum.rb (TestFixnum::test_pow): update test suite. pow(-3, 2^64) gives NaN when pow(3, 2^64) gives Inf. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12789 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (int_pow): overflow detection using FIT_SQRT_LONG().matz2007-07-131-6/+6
| | | | | | [ruby-dev:31215] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12778 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (int_round): should not return false, but self.matz2007-07-131-1/+1
| | | | | | [ruby-dev:31212] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12772 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * blockinlining.c: remove "yarv" prefix.ko12007-07-121-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * array.c, numeric.c: ditto. * insnhelper.ci, insns.def, vm_evalbody.ci: ditto. * yarvcore.c: removed. * yarvcore.h: renamed to core.h. * cont.c, debug.c, error.c, process.c, signal.c : ditto. * ext/probeprofiler/probeprofiler.c: ditto. * id.c, id.h: added. * inits.c: ditto. * compile.c: rename internal functions. * compile.h: fix debug flag. * eval.c, object.c, vm.c: remove ruby_top_self. use rb_vm_top_self() instead. * eval_intern.h, eval_load: ditto. * gc.c: rename yarv_machine_stack_mark() to rb_gc_mark_machine_stack(). * insnhelper.h: remove unused macros. * iseq.c: add iseq_compile() to create iseq object from source string. * proc.c: rename a internal function. * template/insns.inc.tmpl: remove YARV prefix. * thread.c: * vm.c (rb_iseq_eval): added. * vm.c: move some functions from yarvcore.c. * vm_dump.c: fix to remove compiler warning. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (int_pow): fix previous nubu's commit.usa2007-07-051-4/+7
| | | | | | | | * test/ruby/test_fixnum.rb: new test. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (int_pow): even number multiplication never be negative.nobu2007-07-051-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (fix_pow): get rid of division by zero. reported bynobu2007-06-291-3/+16
| | | | | | | | | | Yusuke ENDOH <mame AT tsg.ne.jp> [ruby-dev:31040] * numeric.c (int_round): do nothing when rounding by zeroth digit. check underflow. [ruby-dev:31043] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12661 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c: fix indent.nobu2007-06-291-29/+29
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12660 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * include/ruby: moved public headers.nobu2007-06-101-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (int_round): should not just truncate.matz2007-06-051-16/+25
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * compile.c, dir.c, eval.c, eval_jump.h, eval_method.h, numeric.c,nobu2007-06-051-24/+24
| | | | | | | | pack.c, parse.y, re.c, thread.c, vm.c, vm_dump.c, call_cfunc.ci, thread_pthread.ci, thread_win32.ci: fixed indentation. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (int_round): small optimization to handle bignums.matz2007-06-011-1/+17
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12423 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (num_round): should convert self to Float.nobu2007-06-011-5/+1
| | | | | | | [ruby-dev:30860] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12421 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (flo_round): now takes optional argument to specifymatz2007-05-311-23/+40
| | | | | | | | number of digits, like round() in Python/PHP. * numeric.c (num_round): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c: purged trailing spaces.nobu2007-05-091-124/+124
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12265 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (Init_Bignum), numeric.c (Init_Numeric): added fdiv asnobu2007-05-091-0/+4
| | | | | | | aliases of quo. [ruby-dev:30771] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12263 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (int_pow): bugfix of overflow detection.nobu2007-04-271-1/+1
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12228 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (int_pow): rb_big_pow() may return other than Bignum.nobu2007-04-271-2/+4
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12227 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (rb_big_pow): reduce multiplying for even number.nobu2007-04-261-1/+33
| | | | | | | | * numeric.c (int_pow): calculate power in Fixnum as possible. [ruby-dev:30726] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@12223 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (fix_equal): A bit more optimization.knu2007-02-211-3/+2
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11808 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (fix_equal): remove FIX2LONG() to optimize. suggestedmatz2007-02-211-17/+7
| | | | | | | | | in http://t-a-w.blogspot.com/2007/02/making-ruby-faster.html. [ruby-talk:240223] * numeric.c (fix_cmp): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11807 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * call_cfunc.ci, compile.c, compile.h, debug.h, eval.c,nobu2007-02-021-1/+1
| | | | | | | | | | | eval_error.h, eval_jump.h, eval_load.c, eval_thread.c, gc.c, insnhelper.h, insns.def, iseq.c, main.c, numeric.c, parse.y, range.c, regenc.h, ruby.h, signal.c, thread.c, thread_win32.ci, vm.c, vm.h, vm_dump.c, vm_evalbody.ci, yarvcore.c, yarvcore.h: fixed indents and non-C90 comments. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11620 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (int_pred): add Integer#pred correspondingmatz2007-01-301-0/+21
| | | | | | Integer#succ. [RCR#5] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11596 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * Merge YARVko12006-12-311-21/+47
| | | | git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * bignum.c (rb_big_hash): use rb_memhash().matz2006-09-211-3/+1
| | | | | | | | * numeric.c (flo_hash): simplified. klass need not to affect resulting hash value. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@10992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (Init_Numeric): fix_odd_p and fix_even_p are for Fixnum.nobu2006-09-211-2/+2
| | | | | | | patch from Ondrej Bilka <neleai at seznam.cz>. [ruby-core:08904] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@10986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (int_odd_p): a new method to check even or odd.matz2006-09-211-0/+68
| | | | | | | | | [RCR#337] * numeric.c (int_even_p): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@10982 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* * numeric.c (fix_mul): typo again. patch from Tadashi Saitonobu2006-09-201-1/+1
| | | | | | | <shiba at mail2.accsnet.ne.jp>. fixed: [ruby-core:08893] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@10972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e