summaryrefslogtreecommitdiff
path: root/ext/bigdecimal/bigdecimal.c
AgeCommit message (Collapse)Author
2010-08-23* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): to_f must underflow when ↵mrkn
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-16* ext/bigdecimal/bigdecimal.h (llabs): never never never never neverusa
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-15* ext/bigdecimal/bigdecimal.c (BigDecimal_dump, BigDecimal_inspect, VPrint, ↵mrkn
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* ext/bigdecimal/bigdecimal.h (VpVtoD): fix a type of e.mrkn
* 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-14* ext/bigdecimal/extconf.rb, ext/bigdecimal/bigdecimal.h (labs, llabs): ↵mrkn
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-11* ext/bigdecimal/bigdecimal.c: don't use // comment.mrkn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-10* ext/bigdecimal/bigdecimal.c, ext/bigdecimal/bigdecimal.h, ↵mrkn
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* ext/bigdecimal/bigdecimal.h, ext/bigdecimal/bigdecimal.c: add extern ↵mrkn
declaration of rb_cBigDecimal. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28946 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-02* ext/bigdecimal/bigdecimal.c (BigDecimal_hash): fix type warnings.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28838 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-01* ext/bigdecimal/bigdecimal.c (BigDecimal_hash): use rb_memhash and take ↵mrkn
care of negative finite numbers properly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-18* include/ruby/ruby.h (rb_data_type_t): restructured. [ruby-dev:41862]nobu
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-03* ext/bigdecimal/bigdecimal.c (Init_bigdecimal): add two new constants ↵mrkn
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-05-08* ext/bigdecimal/bigdecimal.c (VpAlloc): ensure buf does not getnobu
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-06* ext/bigdecimal/bigdecimal.c (VpCtoV): fix to check overflow.naruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-01* ext/bigdecimal/bigdecimal.c (BigDecimal_IsInfinite): don't usenobu
non-ascii character. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-28* ext/bigdecimal: fixed types.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-26* ext/bigdecimal/bigdecimal.c: suppressed warnings.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27494 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-21* ext/bigdecimal/bigdecimal.[ch]: replace _DEBUG with BIGDECIMAL_DEBUG to ↵mrkn
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-16* ext/bigdecimal/bigdecimal.c (BigDecimal_coerce): revert r23389,mame
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-03-17* ext/bigdecimal/bigdecimal.c (BigDecimal_{to_i,mod,divmod,div2}):nobu
removed unused variables. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-16* ext/bigdecimal/bigdecimal.c (VpCtoV): keep e's sign.naruse
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-02-09* ext/bigdecimal/bigdecimal.c (BigDecimal_divide): fix precision too.mame
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-09* ext/bigdecimal/bigdecimal.c (BigDecimal_DoDivmod): fix precision.mame
[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-03* ext/bigdecimal/bigdecimal.c (BigDecimal_DoDivmod): get red ofmame
floating point exception. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-03* ext/bigdecimal/bigdecimal.c (BigDecimal_DoDivmod): fix infinitymame
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-01-28* ext/bigdecimal/bigdecimal.c (BigDecimal_to_i): update RDoc tomatz
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-26* ext/bigdecimal/bigdecimal.c (BigDecimal_DoDivmod, BigDecimal_mod,mame
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* ext/bigdecimal/bigdecimal.c (VpCtoV): do not raise infinitymame
exception for BigDecimal("0E200000000000"). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-26* ext/bigdecimal/bigdecimal.c (VpCtoV): BigDecimal("0E200000000000")mame
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
2009-11-14* ext/bigdecimal/bigdecimal.c (BigDecimalCmp): Fix comparisons [ruby-core:26646]marcandre
* 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-09* string.c (rb_str_each_line): rdoc fixmarcandre
* 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-01* ext/bigdecimal/bigdecimal.c: fixed rdoc. [ruby-core:26457]naruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25615 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-16* ext/bigdecimal/bigdecimal.c (VpMidRound): remove warnings.naruse
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-09-21* ext/bigdecimal/bigdecimal.c (GetVpValue): support conversion fromnobu
Rational. [ruby-core:25697] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25025 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-21* ext/bigdecimal/bigdecimal.c (BigDecimal_remainder): Doc fix [ruby-core:18796]marcandre
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-09* ext/bigdecimal/bigdecimal.c (BigDecimal_data_type): typed.nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24822 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-07-25* ext/bigdecimal.c: moved BASE_FIG definition before it is used first time.azav
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-06-18* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): went infinity toomatz
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-11* ext/bigdecimal/bigdecimal.c (gfCheckVal): never used.nobu
* 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-05-31* ext/bigdecimal/bigdecimal.c (BigDecimal_to_f): returns Inf ifmatz
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-10* ext/bigdecimal/bigdecimal.c (BigDecimal_coerce): supportmatz
coercing into Rational. [ruby-core:23415] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23389 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-01* ext/bigdecimal/bigdecimal.c (gfDebug): uncommented out.nobu
[ruby-core:22600] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-16* ext/bigdecimal/bigdecimal.c (VpToString): reverted modificationmatz
(that caused a bug) in r20359. [ruby-dev:37370] * ext/bigdecimal/bigdecimal.c (BigDecimal_limit): comment update. [ruby-dev:37465] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20797 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-10* ext/bigdecimal/bigdecimal.c (BigDecimal_round): should be roundmatz
to integer. [ruby-dev:37355] * ext/bigdecimal/bigdecimal.c (BigDecimal_divmod): division should be integer. [incompatible] [ruby-dev:37355] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20616 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-08* ext/bigdecimal/bigdecimal.c (BigDecimal_truncate): returnmatz
integer if no optional argument given. [incompatible] * ext/bigdecimal/bigdecimal.c (BigDecimal_floor): ditto. * ext/bigdecimal/bigdecimal.c (BigDecimal_ceil): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-27* ext/bigdecimal/bigdecimal.c (BigDecimal_DoDivmod): bigdecimalmatz
division (including modulo) should raise ZeroDivisionError as integer division. [incompatible] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-27* ext/bigdecimal/bigdecimal.c (BigDecimal_div2): should returnmatz
Integer for #div operation. * ext/bigdecimal/bigdecimal.c (BigDecimal_div2): should raise ZeroDivisionError if divisor is zero. [ruby-dev:37207] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-26* ext/bigdecimal/bigdecimal.c (VpException): bigdecimal zeromatz
division should raise FloatDomainError if mode VP_EXCEPTION_ZERODIVIDE is set. [ruby-dev:37204] * ext/bigdecimal/bigdecimal.c (BigDecimal_mode): should handle VP_EXCEPTION_ZERODIVIDE. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20366 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-25* ext/bigdecimal/bigdecimal.c (BigDecimal_to_r): raise exceptionmatz
for nan/inf conversion. [ruby-dev:37187] fix #793 * ext/bigdecimal/bigdecimal.c (BigDecimal_to_i): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-25* ext/bigdecimal/bigdecimal.c (VpAlloc): avoid ALLOCA_N() to avoidmatz
segmentation fault caused by (insanely) long decimal values. [ruby-dev:37189] fix #794 * ext/bigdecimal/bigdecimal.c (BigDecimal_dump, BigDecimal_to_i, BigDecimal_to_f, BigDecimal_to_s, BigDecimal_split, BigDecimal_inspect): ditto. * ext/bigdecimal/bigdecimal.c (VpToString): small performance improvement. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20359 b2dd03c8-39d4-4d8f-98ff-823fe69b080e