Граф коммитов

366 Коммитов

Автор SHA1 Сообщение Дата
zzak 51c43dba6a * ext/bigdecimal/*: improve documentation, nodoc samples with @mrkn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-13 14:44:25 +00:00
mrkn 1699396fe5 * ext/bigdecimal/lib/bigdecimal/util.rb (Float#to_d): fix the number
of figures.  Patch by Vipul A M <vipulnsward@gmail.com>.
  https://github.com/ruby/ruby/pull/323  fix GH-323

* test/bigdecimal/test_bigdecimal_util.rb: fix for the above change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-06-04 06:37:44 +00:00
mrkn 1db209763a * ext/bigdecimal/bigdecimal.c (BigDecimal_power): use rb_dbl2big
to convert a double value to a Bignum.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-31 16:59:09 +00:00
zzak 2439bc9e69 * ext/bigdecimal/bigdecimal.c: Formatting for BigMath [Fixes GH-306]
Based on a patch by @eLobato.
* ext/bigdecimal/lib/bigdecimal/math.rb: ditto


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40840 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-19 21:00:43 +00:00
ktsj edb98f8b91 fix typos. Patch by k_takata.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-19 03:10:21 +00:00
akr b47138580c * lib/mkmf.rb: Add ruby/ruby.h, ruby/missing.h, ruby/intern.h,
ruby/st.h and ruby/subst.h for ruby_headers in generated Makefile.

* ext/-test-/old_thread_select/depend: Update dependencies.

* ext/-test-/wait_for_single_fd/depend: Ditto.

* ext/bigdecimal/depend: Ditto.

* ext/curses/depend: Ditto.

* ext/digest/bubblebabble/depend: Ditto.

* ext/digest/depend: Ditto.

* ext/digest/md5/depend: Ditto.

* ext/digest/rmd160/depend: Ditto.

* ext/digest/sha1/depend: Ditto.

* ext/digest/sha2/depend: Ditto.

* ext/dl/callback/depend: Ditto.

* ext/dl/depend: Ditto.

* ext/etc/depend: Ditto.

* ext/nkf/depend: Ditto.

* ext/objspace/depend: Ditto.

* ext/pty/depend: Ditto.

* ext/readline/depend: Ditto.

* ext/ripper/depend: Ditto.

* ext/sdbm/depend: Ditto.

* ext/socket/depend: Ditto.

* ext/stringio/depend: Ditto.

* ext/strscan/depend: Ditto.

* ext/syslog/depend: Ditto.

* ext/-test-/num2int/depend: Removed.

* ext/dbm/depend: Ditto.

* ext/fcntl/depend: Ditto.

* ext/gdbm/depend: Ditto.

* ext/racc/cparse/depend: Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40268 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-13 00:46:29 +00:00
akr 3f9e0e43c3 * ext/bigdecimal/bigdecimal.c (VpCtoV): Initialize a local variable
even when overflow.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40215 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-10 08:39:53 +00:00
akr fa9b5bf223 * bignum.c (rb_ll2big): Don't overflow on signed integer negation.
* ext/bigdecimal/bigdecimal.c (MUL_OVERFLOW_SIGNED_VALUE_P): New
  macro.
  (AddExponent): Don't overflow on signed integer multiplication.
  (VpCtoV): Don't overflow on signed integer arithmetic.
  (VpCtoV): Don't overflow on signed integer arithmetic.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-10 03:34:38 +00:00
hsbt 0cfc4866d4 code cleanup by @vipulnsward [GH fixes #267]
* lib/cgi/core.rb: change each to each_value
 * ext/bigdecimal/lib/bigdecimal/{jacobian,math}.rb:
   remove unused variables from bigdecimal lib



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-29 00:42:32 +00:00
naruse 20219afd83 Suppress warnings
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39893 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-23 19:50:47 +00:00
mrkn bc43842252 * ext/bigdecimal/bigdecimal.c (BigDecimal_divide): Use Qnil and NIL_P
instead of (VALUE)0 as a return value.

* ext/bigdecimal/bigdecimal.c (BigDecimal_div): ditto.

* ext/bigdecimal/bigdecimal.c (BigDecimal_divremain): ditto.

* ext/bigdecimal/bigdecimal.c (BigDecimal_remainder): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39885 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-23 14:30:56 +00:00
mrkn e52a4a70a9 * ext/bigdecimal/bigdecimal.c: Fix style.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-22 01:38:55 +00:00
ayumin 49636da490 * ext/bigdecimal/bigdecimal.c: fixed typo. same as r39830
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39831 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-19 19:23:15 +00:00
ayumin 6f072a36c0 * ext/bigdecimal/bigdecimal.c: fixed typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39830 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-19 19:19:46 +00:00
kazu dbec401c11 use INT2FIX(0) instead of INT2NUM(0).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39604 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-03-05 16:31:19 +00:00
mrkn c42cf83f26 * ext/bigdecimal/bigdecimal.gemspec: bump to 1.2.0.
[ruby-core:51777] [Bug #7761]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@39321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-02-19 11:50:48 +00:00
mrkn a4665e30f7 * ext/bigdecimal/bigdecimal.c (BigDecimal_to_s): use CRuby style.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38810 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-14 05:42:51 +00:00
mrkn 512b987544 * ext/bigdecimal/bigdecimal.c: use `RB_TYPE_P(x, t)` instead of
`TYPE(x) == t`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38809 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-14 05:42:48 +00:00
mrkn dc2182aab8 * ext/bigdecimal/bigdecimal.c (BigDecimal_sub):
need to specify precision for converting Rational and Float.
  [ruby-dev:46544] [Bug #7404]

* ext/bigdecimal/bigdecimal.c (BigDecimal_mult): ditto.

* ext/bigdecimal/bigdecimal.c (BigDecimal_divide): ditto.

* ext/bigdecimal/bigdecimal.c (BigDecimal_DoDivmod): ditto.

* ext/bigdecimal/bigdecimal.c (BigDecimal_divremain): ditto.

* test/bigdecimal/test_bigdecimal.rb: add tests for the above fixes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-13 06:15:37 +00:00
mrkn 1be6a498ba * ext/bigdecimal/bigdecimal.c (rmpd_power_by_big_decimal):
add RB_GC_GUARD to prevent the immediate object is GCed too early.
  This patch was made by Yusuke Endoh.  [Bug #7044] [ruby-core:47632]

* test/bigdecimal/test_bigdecimal.rb: add a reproduction test for
  the issue [Bug #7044]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-01-07 14:42:52 +00:00
shugo 3a6dec0c5d * include/ruby/ruby.h (RB_UNUSED_VAR): new macro to suppress
warnings for unused variables.

* ext/bigdecimal/bigdecimal.c (ENTER): use RB_UNUSED_VAR() to
  suppress annoying warnings by -Wunused-but-set-variable in gcc 4.6.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38351 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-13 03:09:22 +00:00
mrkn 1fec21fe60 * ext/bigdecimal/bigdecimal.c (BigDecimal_new): stop checking string
taintness.  [Bug #5508] [ruby-core:40510]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-12-02 15:09:49 +00:00
zzak 50c859715d * ext/bigdecimal/bigdecimal.c:
Documentation for BigDecimal
  Based on a patch from Vincent Batts
  [ruby-core:49047] [Bug #7305]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37580 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-09 07:03:13 +00:00
mrkn a3e5a86596 * ext/bigdecimal/bigdecimal.c (BigDecimal_new),
test/bigdecimal/test_bigdecimal.rb:
  Fix exception message of BigDecimal constructor with a Float.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-01 13:04:04 +00:00
mrkn 2e6b5ece95 * ext/bigdecimal/bigdecimal.c (BigDecimal_add),
test/bigdecimal/test_bigdecimal.rb:
  need to specify precision for converting Rational and Float.
  [ruby-core:48045] [Bug #7176]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-11-01 13:03:53 +00:00
usa 1d1130eea1 * ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): use self's sign to
determine 0.0 and Inf's sign instead of internal double value's.
  Reported by phasis68 (Heesob Park) at [ruby-core:47381] [Bug #6955]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-31 05:34:08 +00:00
nobu d7ca01a73a bigdecimal.c: check underflow
* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): check underflow since
  strtod() sets errno to ERANGE at underflow too.  [ruby-core:47342]
  [Bug #6944]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-30 07:17:56 +00:00
nobu 13527efd59 bigdecimal.c: fix format specifier
* ext/bigdecimal/bigdecimal.c (BigMath_s_log): fix format specifier.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36633 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-05 15:40:56 +00:00
mrkn d3a349bbc3 * ext/bigdecimal/lib/bigdecimal/jacobian.rb,
ext/bigdecimal/lib/bigdecimal/newton.rb:
  fix documentation comments.
  Patch by alperakgun from github.com/shyouhei/ruby/pull/8

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-30 07:30:46 +00:00
mrkn ecb6bd90c0 * ext/bigdecimal/lib/bigdecimal/jacobian.rb (Jacobian#dfdxi):
fix jacobian to get stuck in an infinite loop when a solution is not
  found due to forget to increment nRetry counter.
  Patch by alperakgun from github.com/shyouhei/ruby/pull/8

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35843 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-30 07:26:51 +00:00
nobu af310963ab * ext/bigdecimal/bigdecimal.c (PUSH): to prevent VALUE from GC,
must not cast it to unsigned long, which may be shorter than
	  VALUE, and the result can be mere garbage.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35619 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-11 05:09:58 +00:00
nobu 9cc7e9d1e8 Revert r35616 "* ext/bigdecimal/bigdecimal.c: use RB_GC_GUARD. [ruby-dev:45627]"
RB_GC_GUARD() is only for variables on the machine stack, because it
forces a VALUE to be stored in a variable which should be referenced
from the GC, but does not add any reference path to the variable.
So it makes no sense for objects in heap.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35618 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-11 04:50:54 +00:00
mrkn c8b3528383 * ext/bigdecimal/bigdecimal.c: use RB_GC_GUARD. [ruby-dev:45627]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35616 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-10 18:44:25 +00:00
naruse 0fce0545b6 * ext/bigdecimal/bigdecimal.c (Init_bigdecimal): define IDs before
they are used. [ruby-core:44900] [Bug #6406]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-07 02:03:28 +00:00
drbrain da39d32f60 * encoding.c (rb_enc_codepoint_len): Use UNREACHABLE to avoid "control
reaches end of non-void function" warnings.  [ruby-trunk - Bug #6066]
* re.c (name_to_backref_number):  ditto.
* object.c (rb_Float):  ditto.
* io.c (io_readpartial):  ditto.
* io.c (io_read_nonblock):  ditto.
* pack.c (rb_uv_to_utf8):  ditto.
* proc.c (rb_method_entry_arity):  ditto.
* vm_method.c (rb_f_notimplement):  ditto.
* struct.c (rb_struct_aset_id):  ditto.
* class.c (rb_scan_args):  ditto.
* process.c (rlimit_resource_type):  ditto.
* process.c (rlimit_resource_value):  ditto.
* process.c (p_uid_switch):  ditto.
* process.c (p_gid_switch):  ditto.
* ext/digest/digest.c (rb_digest_instance_update):  ditto.
* ext/digest/digest.c (rb_digest_instance_finish):  ditto.
* ext/digest/digest.c (rb_digest_instance_reset):  ditto.
* ext/digest/digest.c (rb_digest_instance_block_length):  ditto.
* ext/bigdecimal/bigdecimal.c (BigDecimalCmp):  ditto.
* ext/dl/handle.c (rb_dlhandle_close):  ditto.
* ext/tk/tcltklib.c (pending_exception_check0):  ditto.
* ext/tk/tcltklib.c (pending_exception_check1):  ditto.
* ext/tk/tcltklib.c (ip_cancel_eval_core):  ditto.
* ext/tk/tcltklib.c (lib_get_reltype_name):  ditto.
* ext/tk/tcltklib.c (create_dummy_encoding_for_tk_core):  ditto.
* ext/tk/tkutil/tkutil.c (tk_hash_kv):  ditto.
* ext/openssl/ossl_ssl.c (ossl_ssl_session_reused):  ditto.
* ext/openssl/ossl_pkey_ec.c (ossl_ec_key_dsa_verify_asn1):  ditto.
* ext/openssl/ossl_pkey_ec.c (ossl_ec_point_is_at_infinit):  ditto.
* ext/openssl/ossl_pkey_ec.c (ossl_ec_point_is_on_curve):  ditto.
* ext/fiddle/conversions.c (generic_to_value):  ditto.
* ext/socket/raddrinfo.c (rsock_io_socket_addrinfo):  ditto.
* ext/socket/socket.c (sock_s_getnameinfo):  ditto.
* ext/ripper/eventids2.c (ripper_token2eventid):  ditto.
* cont.c (return_fiber):  ditto.
* dmydln.c (dln_load):  ditto.
* vm_insnhelper.c (vm_search_normal_superclass):  ditto.
* bignum.c (big_fdiv):  ditto.
* marshal.c (r_symlink):  ditto.
* marshal.c (r_symbol):  ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-04-13 23:45:37 +00:00
naruse 697b53d8a9 * ext/bigdecimal/lib/bigdecimal/math.rb: remove description about
BigMath#log. patched by Sho Hashimoto [ruby-dev:45307] [Bug #6112]

* string.c (str_byteslice): fix typo.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-03-05 02:53:36 +00:00
nobu f5482e4c38 * ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): since methods
can be overridden, so should not make an assumption on the type
  of results.  [ruby-core:42969][Bug #6093]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34829 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-27 08:03:24 +00:00
kazu 0212af1733 * ext/bigdecimal/bigdecimal.h: add satisfy cc-mode comment.
* util.c: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34104 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-22 21:06:19 +00:00
nagachika c9a9036d0b ChangeLog: revert r34093. sorry, these are necessary for ruby-mode.el
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34097 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-21 15:50:15 +00:00
nagachika 4af11279c6 * ext/bigdecimal/bigdecimal.c (VpMult, VpCtoV, VpSqrt): remove assined
but unused variables.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34095 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-21 15:42:41 +00:00
nagachika af845f3528 * ext/bigdecimal/bigdecimal.h: remove unused lines.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-21 15:37:07 +00:00
nobu f9a4d5717c * ext/bigdecimal/bigdecimal.c (BigDecimal_s_allocate): follow
Allocation Framework.  [Bug #5775]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34089 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-21 03:35:27 +00:00
kazu 327ea26b59 * ext/bigdecimal/README: Update redmine.ruby-lang.org to bugs.ruby-lang.org
* ext/socket/ancdata.c: ditto
* test/-ext-/wait_for_single_fd/test_wait_for_single_fd.rb: ditto
* test/syck/test_yaml.rb: ditto
* doc/ChangeLog-1.9.3: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34085 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-20 16:09:17 +00:00
nobu 9c00c1234d * ext/bigdecimal/bigdecimal.c (Init_bigdecimal): does not follow
allocation framework right now.  [ruby-core:41710] [Bug #5773]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34070 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-18 05:34:34 +00:00
drbrain 3a5daefe1f * ext/bigdecimal/bigdecimal.c: Document +@, -@, hash, INFINITY, Nan.
Patch by Sylvain Daubert.  [Ruby 1.9 - Feature #5622]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-07 01:58:59 +00:00
nobu d0b2816d02 * ext/bigdecimal/bigdecimal.c (VpAllocReal): reduce extra frac.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33931 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-02 06:48:10 +00:00
nobu a394c59be3 * ext/bigdecimal/bigdecimal.h (Real): suppress false warning from
clang.  [ruby-core:41418] [Bug#5693]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-12-01 05:43:22 +00:00
nobu 413f24d3b0 * whitespace cleanup.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33634 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-11-04 07:19:23 +00:00
nobu e6ce15c68a * ext/bigdecimal/bigdecimal.gemspec (files): fixed typo, and
removed nonexistent file.
* ext/bigdecimal/bigdecimal.gemspec (homepage): added.
* ext/io/console/io-console.gemspec (homepage): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33470 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-16 10:46:30 +00:00
ayumin 839b4b5125 Fix typo
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-09-28 10:17:26 +00:00
ayumin fcb2bb8bd6 * ext/bigdecimal/README: update report to.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-09-27 19:15:51 +00:00
mrkn 0e18153140 * ext/bigdecimal/bigdecimal_en.html: removed because this file isn't
maintained now.
* ext/bigdecimal/bigdecimal_ja.html: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33348 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-09-27 19:06:52 +00:00
ayumin 0abbe4c1e6 * ext/bigdecimal/bigdecimal.c (BigDecimal_abs): Fix comment.
BigDecimal#sqrt requires argument. Reported by Makoto Kishimoto.
  Thanks for your contribution. [Bug #5267] [ruby-dev:44452]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33238 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-09-09 13:06:51 +00:00
mrkn 52c7bbd444 * ext/bigdecimal/bigdecimal.c (cannot_be_coerced_into_BigDecimal):
remove duplication.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-17 14:04:22 +00:00
mrkn 4e8d6c105c Merge branch '5172_bigdecimal_gc_issue' into trunk
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-08-17 06:35:21 +00:00
mrkn 5edd7f07d8 * ext/bigdecimal/bigdecimal.c (BigDecimal_version): version 1.1.0.
* ext/bigdecimal/bigdecimal.gemspec: turn into a default gem.
* tool/rbinstall.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-30 05:31:45 +00:00
nobu 72276eb06b * remove unused variables.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-29 15:49:36 +00:00
mrkn dca0b41777 * ext/bigdecimal/lib/bigdecimal/util.rb (Rational#to_d):
zero or negative precision is error.  fixes #5098.
  [ruby-dev:44210]
* test/bigdecimal/test_bigdecimal_util.rb: add test for the above
  change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-26 15:49:47 +00:00
mrkn 079fb8d4c3 * ext/bigdecimal/lib/bigdecimal/util.rb (Float#to_d): modified for
specifying precision.  fixes #5098.  [ruby-dev:44210]
* test/bigdecimal/test_bigdecimal_util.rb: add test for the above
  change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32679 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-26 15:48:25 +00:00
mrkn 2fcb91c74c * ext/bigdecimal/lib/bigdecimal/util.rb (Integer#to_d): added
for symmetry to BigDecimal() function with an Integer.
  fixes #5098.  [ruby-dev:44210]
* test/bigdecimal/test_bigdecimal_util.rb: add test for the above
  change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32677 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-26 15:46:42 +00:00
mrkn 5ba05758fe * ext/bigdecimal/lib/bigdecimal/util.rb (BigDecimal#to_d): added
for adapting other Numeric subclasses.  [ruby-dev:44245]
* test/bigdecimal/test_bigdecimal_util.rb: test for the above change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-26 15:40:27 +00:00
mrkn a238140726 * bigdecimal/bigdecimal.c (VpDup) a new function for duplicating
a BigDecimal.

* bigdecimal/bigdecimal.c (BigDecimal_new): support generating a new
  BigDecimal from another BigDecimal using BigDecimal global function
  or constructor.  [ruby-dev:44245]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32674 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-26 15:40:23 +00:00
mrkn 99f8f14d89 * ext/bigdecimal/bigdecimal.c (rmpd_power_by_big_decimal): fix
precision treatment errors.
* test/bigdecimal/test_bigdecimal.rb: add tests for the above change.
  fix precision treatment errors.
* ext/bigdecimal/bigdecimal.c (BigDecimal_power): precision argument
  should be optional for its compatibility.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32500 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-10 14:05:07 +00:00
mrkn ebd61e5f28 * ext/bigdecimal/bigdecimal.c (BigDecimal_power): support non-integral
exponent.  fixes #3271
* ext/bigdecimal/bigdecimal.c (rmpd_power_by_big_decimal): ditto.
* ext/bigdecimal/bigdecimal.c (BigDecimal_power_op): add a function to
  only use for "**" operator.
* test/bigdecimal/test_bigdecimal.rb: add a bunch of tests for the
  above changes.
* ext/bigdecimal/bigdecimal.c (is_integer): add an utility function.
* ext/bigdecimal/bigdecimal.c (is_negative): ditto.
* ext/bigdecimal/bigdecimal.c (is_positive): ditto.
* ext/bigdecimal/bigdecimal.c (is_zero): ditto.
* ext/bigdecimal/bigdecimal.c (is_one): ditto.
* ext/bigdecimal/bigdecimal.c (is_even): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32485 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-10 03:19:49 +00:00
mrkn bb6384761e * ext/bigdecimal/bigdecimal.c (BigMath_s_log): move BigMath.log from
bigdecimal/math.rb.
* ext/bigdecimal/lib/bigdecimal/math.rb: ditto.
* test/bigdecimal/test_bigdecimal.rb: move test for BigMath.log from
  test/bigdecimal/test_bigmath.rb.
* test/bigdecimal/test_bigmath.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32258 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-27 16:26:09 +00:00
mrkn b7a693da8e * ext/bigdecimal/bigdecimal.c (VpNewRbClass): fix type of the 2nd
argument.
* ext/bigdecimal/bigdecimal.h: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-17 17:38:18 +00:00
mrkn f107d1e706 * ext/bigdecimal/bigdecimal.c (BigMath_s_exp): move BigMath.exp from
bigdecimal/math.rb.
* ext/bigdecimal/lib/bigdecimal/math.rb: ditto.
* test/bigdecimal/test_bigdecimal.rb: move test for BigMath.exp from
  test/bigdecimal/test_bigmath.rb.
* test/bigdecimal/test_bigmath.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-17 17:38:14 +00:00
mrkn 5112c6d1d9 * ext/bigdecimal/bigdecimal.c (is_kind_of_BigDecimal): new function to
examine the whether the object is kind of BigDecimal.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-13 09:51:52 +00:00
mrkn 3bd8b390de * ext/bigdecimal/bigdecimal.c (BigDecimalCmp): use GetVpValueWithPrec
for Float and Rational arguments.
* test/bigdecimal/test_bigdecimal.rb (test_new, test_cmp, test_power):
  add and modify tests for the above change.
* ext/bigdecimal/bigdecimal.c (BigDecimalCmp): modify coding style to
  match ruby's standard.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32052 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-13 09:51:48 +00:00
tadf c2f9e1b100 * ext/bigdecimal (BigDecimal_to_i): Integer#** may return flonum.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-09 16:08:38 +00:00
nagachika 10c0604a34 * ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): remove unused
variable.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31871 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-31 15:36:55 +00:00
mrkn 678b6820f7 * ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): support instantiation from
a Float through Rational.
* ext/bigdecimal/bigdecimal.c (BigDecimal_new): ditto.
* test/bigdecimal/test_bigdecimal.rb (test_global_new_float): add a test for
  the above changes.
* test/bigdecimal/test_bigdecimal.rb (test_new_with_float): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-31 15:33:42 +00:00
mrkn d7058e10dc * ext/bigdecimal/bigdecimal.c (BigDecimal_coerce): support coerce with a
Rational.  The precision used for instantiate a BigDecimal from the
  given Rational is obtained from the receiver BigDecimal.
* test/bigdecimal/test_bigdecimal.rb (test_coerce): add a test for the
  above change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31868 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-31 15:09:38 +00:00
mrkn 100931ac2c * ext/bigdecimal/bigdecimal.c (GetVpValueWithPrec): replace the algorithm for
coercing from a Rational to stop requiring "bigecimal/util.rb".
  [ruby-core:34318]
* ext/bigdecimal/bigdecimal.c (GetVpValue): refactoring.
* ext/bigdecimal/bigdecimal.c (BigDecimal_new): support instantiation from a
  Rational.
* test/bigdecimal/test_bigdecimal.rb (test_global_new_with_rationao): add a
  test for the above change.
* test/bigdecimal/test_bigdecimal.rb (test_new_with_rationao): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31864 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-31 14:43:39 +00:00
mrkn b54141bb1b * ext/bigdecimal/bigdecimal.c (BigDecimal_new): support instantiation a
BigDecimal object from an Integer.
* test/bigdecimal/test_bigdecimal.rb (test_new_with_integer):
  add for testing the above change.
* ext/bigdecimal/bigdecimal.c (BigDecimal_global_new): replace its body
  with a BigDecimal_new call.
* test/bigdecimal/test_bigdecimal.rb (test_global_new_with_integer):
  add for testing the above change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-31 13:45:31 +00:00
nobu 0d6d23b25d * ext: remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-22 09:26:02 +00:00
drbrain 5bae5b4ae2 * ext/bigdecimal/lib/bigdecimal/util.rb: Improve documentation. Patch
by Pete Higgins.  [Ruby 1.9 - Bug #4746]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-20 17:51:16 +00:00
drbrain 18d29d79a2 * ext/bigdecimal/lib/bigdecimal/jacobian.rb: Document isEqual. Patch
by Kuba Fietkiewicz.  [Ruby 1.9 - Bug #4744]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31652 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-20 17:44:27 +00:00
nobu 3a47cf3395 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-15 11:55:52 +00:00
matz 1df42597d1 cancel subversion backfire. sorry
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31046 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-03-07 08:44:45 +00:00
matz eb807d42ec * gc.c (rb_gc_set_params): allow GC parameter configuration by
environment variables.  based on a patch from funny-falcon at
  https://gist.github.com/856296, but honors safe level.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31044 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-03-07 08:39:39 +00:00
mrkn f83651ac30 * ext/bigdecimal/bigdecimal.c (VpMemAlloc): CVE-2011-0188.
Fixes a bug reported by Drew Yao <ayao at apple.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-03-01 04:40:49 +00:00
kazu 5e14eeb482 ext/bigdecimal/bigdecimal.h: suppress "warning: 'VPrint' declared 'static' but never defined".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30177 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-11 08:46:28 +00:00
mrkn 0ec61a3156 * ext/bigdecimal/lib/bigdecimal/util.rb (to_digits): avoid unused
variables warning, reported by Aaron Patterson.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29805 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-11-16 00:37:31 +00:00
mrkn 3e85e58411 * ext/bigdecimal/bigdecimal.c (BIGDECIMAL_ENABLE_VPRINT):
VPrint is usually disabled.  It's only used in debugging.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29364 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-29 08:55:17 +00:00
mrkn ecfc868bdb * ext/bigdecimal/bigdecimal.c (BigDecimal_save_limit):
return the result of a block.
* test/bigdecimal/test_bigdecimal.rb (test_save_limit):
  add a test for the above change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-29 08:55:11 +00:00
mrkn fed832d7f2 * ext/bigdecimal/bigdecimal.c (BigDecimal_save_rounding_mode):
return the result of a block.
* test/bigdecimal/test_bigdecimal.rb (test_save_rounding_mode):
  add a test for the above change.
* test/bigdecimal/test_bigdecimal.rb (test_save_exception_mode):
  add a test for the return value of BigDecimal.save_exception_mode.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29361 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-29 04:32:20 +00:00
usa 98d7c2b8f1 * ext/bigdecimal/bigdecimal.c (BigDecimal_div2, BigDecimal_add2,
BigDecimal_sub2, BigDecimal_mult2, VpLimitRound): remove meaningless
  casts to get rid of compiler warnings.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-29 03:48:21 +00:00
nobu f20f30fc07 * ext/bigdecimal/bigdecimal.c (VPrint, VpToString): fix format.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-29 03:35:31 +00:00
mrkn 971a57004e * ext/bigdecimal/bigdecimal.c (check_rounding_mode, BigDecimal_mode):
raise ArgumentError instead of TypeError passing invalid modes.
* test/bigdecimal/test_bigdecimal.rb (test_mode, test_round):
  change against the above modifications.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-19 17:38:18 +00:00
mrkn fb7fe14575 * ext/bigdecimal/bigdecimal.c (check_rounding_mode): added for
converting symbol to rounding mode number.
* ext/bigdecimal/bigdecimal.c (BigDecimal_mode, BigDecimal_round):
  support to specify rounding mode by symbol.
* test/bigdecimal/test_bigdecimal.rb (test_mode, test_round):
  add tests for avobe changes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-18 21:06:08 +00:00
mrkn 3cbda570c2 * ext/bigdecimal/bigdecimal.c: fix rounding algorithms for half-down
and half-even.  This change is based on the patch created by Matthew
  Willson, the reporter of this bug.  [Bug #3803] [ruby-core:32136]
* test/bigdecimal/test_bigdecimal.rb: add tests for above changes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29293 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-18 20:19:38 +00:00
mrkn a2bf9203e8 * ext/bigdecimal/bigdecimal.c (BigDecimal_save_exception_mode,
BigDecimal_save_rounding_mode, BigDecimal_save_limit): added.
* test/bigdecimal/test_bigdecimal.rb: added tests for the above
  features.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-28 08:52:14 +00:00
mrkn 3dc6edf793 * ext/bigdecimal/bigdecimal.c (Init_bigdecimal, rmpd_set_thread_local_exception_mode, VpGetException, VpSetException): thread-local exception mode.
* ext/bigdecimal/bigdecimal.c (Init_bigdecimal, rmpd_set_thread_local_precision_limit, VpGetPrecLimit, VpSetPrecLimit): thread-local precision limit.
* ext/bigdecimal/bigdecimal.c (Init_bigdecimal, rmpd_set_thread_local_rounding_mode, VpGetRoundMode, VpSetRoundMode, VpException, VpInternalRound): thread-local rounding mode.
* ext/bigdecimal/bigdecimal.c (BigDecimal_mode, BigDecimal_round, VpIsRoundMode, VpGetRoundMode, VpSetRoundMode, VpActiveRound, VpMidRound, VpLeftRound), ext/bigdecimal/bigdecimal.h: use unsigned short for rounding mode.
* test/bigdecimal/test_bigdecimal.rb (test_mode): add test for setting rounding mode.
* test/bigdecimal/test_bigdecimal.rb (test_thread_local_mode): add test for setting mode thread-locally.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-26 00:14:18 +00:00
mrkn af8cae1e7f * ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): to_f must underflow when the exponent is less than DBL_MIN_10_EXP - BASE_FIG.
* test/bigdecimal/test_bigdecimal.rb (test_to_f): added test for the above changes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29078 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-23 16:22:04 +00:00
usa 8eb121d812 * ext/bigdecimal/bigdecimal.h (llabs): never never never never never
use "long long".

* ext/bigdecimal.bigdecimal.c (BigDecimal_to_i): get rid of a warning.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28999 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-16 01:02:23 +00:00
mrkn 56d3b926ce * ext/bigdecimal/bigdecimal.c (BigDecimal_dump, BigDecimal_inspect, VPrint, VpToString, VpVarCheck): use PRIuSIZE, PRIdSIZE, PRIdVALUE, and PRIxVALUE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-15 09:20:44 +00:00
mrkn 1148f6a327 * ext/bigdecimal/bigdecimal.h (VpVtoD): fix a type of e.
* ext/bigdecimal/bigdecimal.c (BigDecimal_dump, BigDecimal_inspect): fix format for size_t.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-15 04:32:40 +00:00
mrkn d86da0fcf1 * ext/bigdecimal/extconf.rb, ext/bigdecimal/bigdecimal.h (labs, llabs): support environments missing labs and llabs.
* ext/bigdecimal/bigdecimal.h (vabs): added.
* ext/bigdecimal/extconf.rb, ext/bigdecimal/bigdecimal.h, ext/bigdecimal/bigdecimal.c, test/bigdecimal/test_bigdecimal.rb (TestBigDecimal#test_new): replace U_LONG, S_LONG, S_INT, and U_INT with appropreate standard or ruby-provided types.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-14 15:22:43 +00:00
mrkn f2c65c0a33 * ext/bigdecimal/bigdecimal.c: don't use // comment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-11 02:02:16 +00:00
mrkn 7694956ef7 * ext/bigdecimal/bigdecimal.c, ext/bigdecimal/bigdecimal.h, ext/bigdecimal/extconf.rb: BASE and BASE_FIG are defined based on the size of BDIGIT and renamed.
* ext/bigdecimal/bigdecimal.c, ext/bigdecimal/bigdecimal.h: use BDIGIT for Real#frac.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-10 06:25:27 +00:00
mrkn 678af70ce8 * ext/bigdecimal/bigdecimal.h, ext/bigdecimal/bigdecimal.c: add extern declaration of rb_cBigDecimal.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-10 06:25:23 +00:00
nobu c53664c84d .cvsignore: have not been used already. [Bug #3468]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-07 05:43:21 +00:00
nobu aa1141e167 * ext/bigdecimal/bigdecimal.c (BigDecimal_hash): fix type warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28838 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-02 22:34:44 +00:00
mrkn 98685cc70f * ext/bigdecimal/bigdecimal.c (BigDecimal_hash): use rb_memhash and take care of negative finite numbers properly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-01 13:20:22 +00:00
nobu 25b9eb5e57 * include/ruby/ruby.h (rb_data_type_t): restructured. [ruby-dev:41862]
add parent member.

* error.c (rb_typeddata_inherited_p): new function.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-18 07:31:54 +00:00
mrkn 1c3e07f0d6 * ext/bigdecimal/bigdecimal.c (Init_bigdecimal): add two new constants BigDecimal::INFINITY and BigDecimal::NAN.
* ext/bigdecimal/lib/bigdecimal/math.rb (BigMath.exp): modify the behaviors for infinity arguments as same as Math.exp.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-03 07:47:00 +00:00
nobu 5b20a1398b * ext/bigdecimal/lib/bigdecimal/math.rb (BigMath#log): improved
precision and performance. [ruby-dev:41295]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-12 06:04:59 +00:00
mrkn 74365313f7 * ext/bigdecimal/lib/bigdecimal/math.rb (atan), test/bigdecimal/test_bigmath.rb (test_atan): explicitly specify the precision for calculating a reciprocal number of an argument. [Bug #3267]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-11 05:11:59 +00:00
nobu 66abf4ad68 * ext/bigdecimal/bigdecimal.c (VpAlloc): ensure buf does not get
collected.  based on a patch masaya tarui at [ruby-dev:41213].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27665 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-08 02:07:43 +00:00
naruse 54476a6024 * ext/bigdecimal/bigdecimal.c (VpCtoV): fix to check overflow.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-06 19:28:12 +00:00
nobu c8316e30ae * ext/bigdecimal/bigdecimal.c (BigDecimal_IsInfinite): don't use
non-ascii character.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-01 07:46:46 +00:00
nobu 382085b75b * ext/bigdecimal: fixed types.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-28 00:47:22 +00:00
nobu 6c29e97c72 * ext/bigdecimal/bigdecimal.def: unnecessary.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27495 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-26 01:07:36 +00:00
nobu cce2aa4958 * ext/bigdecimal/bigdecimal.c: suppressed warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27494 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-26 01:07:32 +00:00
nobu 977267c2e0 * ext/**/*.[ch]: removed trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-22 08:04:13 +00:00
mrkn 5318e0f605 * ext/bigdecimal/bigdecimal.[ch]: replace _DEBUG with BIGDECIMAL_DEBUG to prevent activating debugging code when compiled with -DEBUG flag on Windows. [ruby-core:22989] #1308
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-21 17:22:27 +00:00
mame 49884b5769 * ext/bigdecimal/bigdecimal.c (BigDecimal_coerce): revert r23389,
which not only is unnecessary but also causes the inconsistency of
  return type.  [ruby-core:25706] [Bug #2129]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27358 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-16 12:36:41 +00:00
nobu ad41699b47 * ext/bigdecimal/bigdecimal.c (BigDecimal_{to_i,mod,divmod,div2}):
removed unused variables.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-17 20:58:34 +00:00
naruse d4120b1f1d * ext/bigdecimal/bigdecimal.c (VpCtoV): keep e's sign.
When e doesn't over flow e * BASE_FIG but overflow e * 10,
  e will overflow.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26954 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-16 08:38:14 +00:00
mame 520053232e * ext/bigdecimal/bigdecimal.c (BigDecimal_divide): fix precision too.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-09 14:49:41 +00:00
mame 03ad923cdd * ext/bigdecimal/bigdecimal.c (BigDecimal_DoDivmod): fix precision.
[ruby-core:17472][ruby-dev:35372][ruby-dev:40105][ruby-dev:40358]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26626 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-09 14:30:30 +00:00
mame 7a4621eecf * ext/bigdecimal/bigdecimal.c (BigDecimal_DoDivmod): get red of
floating point exception.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-03 18:02:47 +00:00
mame 6c1c35db17 * ext/bigdecimal/bigdecimal.c (BigDecimal_DoDivmod): fix infinity
handling.  1 / Infinity was evaluated to NaN.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-03 16:34:24 +00:00
matz d1499525d5 * ext/bigdecimal/bigdecimal.c (BigDecimal_to_i): update RDoc to
denote that #to_i raises FloatDomainError for Inf and NaN.

* ext/bigdecimal/bigdecimal.c (BigDecimal_to_i): fast #to_i using
  BigDecimal_split(). 

* bignum.c (conv_digit): use faster ISDIGIT() assuming ASCII.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-28 16:34:11 +00:00
mame 1d3c2678e2 * ext/bigdecimal/bigdecimal.c (BigDecimal_DoDivmod, BigDecimal_mod,
BigDecimal_divmod, BigDecimal_div2): BigDecimal#% and #div returned
  an array itself that was returned by #divmod.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-26 15:25:04 +00:00
mame 48b4d8c528 * ext/bigdecimal/bigdecimal.c (VpCtoV): do not raise infinity
exception for BigDecimal("0E200000000000").

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-26 15:21:25 +00:00
mame 05d80e2fc6 * ext/bigdecimal/bigdecimal.c (VpCtoV): BigDecimal("0E200000000000")
was Infinity, not 0.

* test/bigdecimal/test_bigdecimal.rb: add a test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-26 12:52:49 +00:00
marcandre 553b55f6e6 ext/bigdecimal/bigdecimal_en.html: Remove obsolete information, fix typos
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26035 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-06 22:35:45 +00:00
marcandre c07e7d167d * ext/bigdecimal/bigdecimal.c (BigDecimalCmp): Fix comparisons [ruby-core:26646]
* test/bigdecimal/test_bigdecimal.rb (class): Fix and improve tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25765 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-14 00:17:07 +00:00
marcandre 54b5ac5663 * string.c (rb_str_each_line): rdoc fix
* ext/bigdecimal/bigdecimal.c (#infinite?, #nonzero?): rdoc fix

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-09 06:50:29 +00:00
naruse 74d16cd0a4 * ext/bigdecimal/bigdecimal.c: fixed rdoc. [ruby-core:26457]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-01 11:16:53 +00:00
naruse 438b8706a7 * ext/bigdecimal/bigdecimal.c (VpMidRound): remove warnings.
patch from Charlie Savage. [ruby-core:22869]

* ext/digest/bubblebabble/bubblebabble.c (bubblebabble_str_new): ditto.

* ext/digest/digest.c (hexencode_str_new): ditto.

* ext/iconv/iconv.c (iconv_convert): ditto.

* ext/socket/socket.c (inspect_sockaddr): ditto.

* ext/socket/raddrinfo.c (sockaddr_obj): ditto.

* ext/syck/emitter.c (syck_emitter_write): ditto.

* ext/syck/emitter.c (syck_emitter_flush): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25365 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-16 04:36:31 +00:00
nobu 39ea1c8c7c * ext/bigdecimal/lib/bigdecimal/math.rb (atan): atan(Infinity) is
PI/2.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25063 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-23 17:21:26 +00:00
nobu 1ef3ac4738 * ext/bigdecimal/lib/bigdecimal/math.rb (atan): reduce loop with
the formula of the double corner.  based on a patch from
  Masahiro Kanai (CanI) in [ruby-dev:39367].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25062 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-23 17:08:37 +00:00
nobu 8c3926aea0 * ext/bigdecimal/lib/bigdecimal/math.rb (atan): refined.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-23 12:25:20 +00:00
nobu 2c34b66e24 * ext/bigdecimal/lib/bigdecimal/{ludcmp,math}.rb: depend on
bigdecimal.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25029 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-21 20:04:10 +00:00
nobu 51132a8ad9 * ext/bigdecimal/lib/bigdecimal/newton.rb: rdoc needs to be
followed by the definition.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25028 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-21 20:00:21 +00:00
nobu c1f1b452cb * ext/bigdecimal/lib/bigdecimal/*.rb: made module functions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25027 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-21 19:56:20 +00:00
nobu 178dafefa9 * ext/bigdecimal/lib/*.rb: fixed indent.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25026 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-21 19:49:32 +00:00
nobu d9bfa822ea * ext/bigdecimal/bigdecimal.c (GetVpValue): support conversion from
Rational.  [ruby-core:25697]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-21 19:47:39 +00:00
marcandre 52999632d7 * ext/bigdecimal/bigdecimal.c (BigDecimal_remainder): Doc fix [ruby-core:18796]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-21 17:42:37 +00:00
nobu cd4f59bc5e * ext/bigdecimal/lib/bigdecimal/math.rb (sin, cos, atan, exp, log):
improved precision and performance.  based on a patch from Makoto
  Yamashita in [ruby-core:25600] and [ruby-core:25602].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-20 15:07:38 +00:00
nobu 7bac09fc26 * ext/bigdecimal/bigdecimal.c (BigDecimal_data_type): typed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24822 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-09 12:20:51 +00:00
azav a34dc9dc14 * ext/bigdecimal.c: moved BASE_FIG definition before it is used first time.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-25 15:18:37 +00:00
matz fe737a1e1d * ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): went infinity too
early.  add BASE_FIG margin.  [ruby-dev:38673]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-18 16:02:21 +00:00
nobu 610c0568c4 * ext/bigdecimal/bigdecimal.c (gfCheckVal): never used.
* ext/bigdecimal/bigdecimal.c (VpInit): fixed format modifiers.

* ext/bigdecimal/bigdecimal.c (VPrint): constified.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23667 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-11 08:49:37 +00:00
matz 5594f2bffb * ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): returns Inf if
exp is bigger than DBL_MANT_DIG.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23609 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-31 22:46:43 +00:00
matz 70abf7e8fa * ext/bigdecimal/bigdecimal.c (BigDecimal_coerce): support
coercing into Rational.   [ruby-core:23415]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23389 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-10 23:59:10 +00:00
nobu 287a34ae0d * {ext,lib,test}/**/*.rb: removed trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-06 03:56:38 +00:00