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

257 Коммитов

Автор SHA1 Сообщение Дата
tadf cbae6d0911 * complex.c: added two macros.
* rational.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-21 12:21:32 +00:00
tadf a46544a4f9 * complex.c (nucomp_s_convert): checks argc.
* rational.c (nurat_s_convert): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-21 09:07:25 +00:00
tadf 72565402d9 * complex.c (nucomp_s_canonicalize_internal): checks exactness of
imag only.

	* rational.c (nurat_s_convert): accepts non real value
	  (Rational(a,b) as a/b).

	* complex.c (nucomp_s_convert): refined.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-21 01:30:25 +00:00
tadf 9467d7a024 * complex.c: an instance method image has been removed and
uses "imag" instead of "image".

	* complex.c: two instance method re and im are removed.

	* rational.c: follows the above changes.

	* include/ruby/ruby.h: ditto.

	* gc.c: ditto.

	* lib/cmath.rb: ditto.

	* lib/mathn.rb: ditto.

	* lib/complex.rb: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-20 22:49:56 +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
yugui 396650e0bd * prec.c: removed. Precision will be redesigned and be back again.
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: svn+ssh://ci.ruby-lang.org/ruby/trunk@19430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-19 13:10:54 +00:00
tadf d965e99b04 * complex.c (nucomp_s_convert): accepts complex
value (Complex(a,b) as a+bi).



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-17 11:00:09 +00:00
tadf 7c3b57b5d1 * complex.c (nucomp_marshal_{dump,load}): preserve instance
variables.

	* rational.c (nurat_marshal_{dump,load}): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19382 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-16 10:21:23 +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
tadf b140cda1d6 fixed the previous commit.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-15 05:04:09 +00:00
tadf 05ac51d225 * complex.c (nucomp_eql_p): new.
* complex.c (nucomp_hash): should use hash values of the elements.

	* rational.c (nurat_hash): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19355 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-15 04:20:46 +00:00
tadf 583400c15e * complex.c: trivial changes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19342 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-14 09:35:08 +00:00
tadf e4b3a81769 * complex.c (f_{add,mul,sub}): omitted some shortcuts for preserve
signed zero anyway.

	* complex.c (nucomp_negate): new.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-14 01:16:44 +00:00
tadf 5ac09d7627 * complex.c: refined.
* rational.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-13 01:55:56 +00:00
tadf 0de54d9aa6 * complex.c: some adjustments.
* rational.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-07 22:10:38 +00:00
tadf 249705229f * rational.c: removed unused code.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19224 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-07 15:59:12 +00:00
tadf 74f9ec7e4f * rational.c: added a static variable for nurat_to_f.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18953 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-30 13:25:48 +00:00
tadf 5185955f3f * complex.c ({nucomp,numeric}_rect): new.
* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@18925 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-29 13:41:41 +00:00
tadf 8f40b26581 * complex.c (nucomp_div): now behaves as quo.
* complex.c (nucomp_s_generic_p): has been removed.

	* complex.c (nucomp_to_s): adopts new form.

	* complex.c (nucomp_inspect): ditto.

	* complex.c (string_to_c_internal): ditto and supports polar form.

	* complex.c (rb_complex_polar): new.

	* rational.c (nurat_to_s): did not canonicalize.
	
	* rational.c (nurat_inspect): adopts new form.
	
	* rational.c (string_to_r_internal): ditto.

	* include/ruby/intern.h: added a declaration.

	* lib/complex.rb: added an obsolate class method.

	* lib/cmath.rb: use scalar? instead of generic?.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18778 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-22 12:27:54 +00:00
nobu 5f9c188d97 * include/ruby/ruby.h (rb_intern_const): tiny optimization.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18653 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-08-16 00:20:31 +00:00
mame 104e841390 * sprintf.c: include ieeefp.h to refer isinf.
* ext/bigdecimal/bigdecimal.c: ditto.

* ext/json/ext/generator/generator.c: ditto.

* rational.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-02 16:24:11 +00:00
tadf e0d427e855 * rational.c (nurat_equal_p): Rational(0,x) and 0 are equivalent,
anyway.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17151 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-13 12:59:22 +00:00
tadf c7f4ebc8b7 * complex.c (string_to_c, nucomp_s_convert): preserve the current
backref.

	* rational.c (string_to_r, nurat_s_convert): ditto.

	* include/ruby/intern.h (rb_match_busy): added a declaration.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-13 12:29:50 +00:00
wanabe 01d7152157 * rational.c (string_to_r_internal): save and restore backref. fixed [ruby-dev:34990]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17147 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-13 08:16:12 +00:00
tadf 2b66844f48 * complex.c: refactoring.
* rational.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17109 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-12 12:41:17 +00:00
matz 4fd154d05e * rational.c (nurat_s_convert): need not to initialize optional
argument for rb_scan_args().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-10 06:15:10 +00:00
tadf 4879ae65fd fixed
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-09 15:13:45 +00:00
tadf a20cf402cf * complex.c (nucomp_s_convert): can accept Complex('i').
[ruby-dev:34991]
	and some minor changes.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-09 12:02:29 +00:00
nobu 5a647a3f5f * include/ruby/ruby.h (CONST_ID): constant ID cache for non-gcc.
* *.c: no cache in init functions.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17053 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-09 09:25:32 +00:00
nobu e39b93b86e * complex.c (make_patterns): constified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17041 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-09 05:42:04 +00:00
nobu 85976cf893 * rational.c (make_patterns): constified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17040 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-09 05:39:57 +00:00
naruse ccb61351ea * rational.c (string_to_r_internal): use rb_isdigit.
* marshal.c (long_toobig): use %zd.

* ruby.c (set_arg0): move unused variable definition.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-01 18:23:10 +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
matz 78008d342e * test/ruby/test_parse.rb (TestParse::test_void_expr_stmts_value):
shut up warning.

* rational.c (nurat_to_f): 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@16252 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-01 12:47:07 +00:00
tadf 420a5c994c * rational (nurat_marshal_load): checks the given
denominator. [ruby-dev:34536]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-28 11:28:55 +00:00
tadf de999ae1fc * rational.c (nurat_expt): use f_rational_new2. [ruby-dev:34524]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16221 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-27 10:02:19 +00:00
nobu f80616b6d2 * complex.c, rational.c: fixed indent.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16154 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-22 13:17:04 +00:00
tadf c08b5dfb81 * lib/cmath.rb: new.
* lib/complex.rb: depends lib/cmath.rb.

	* lib/rational.rb: added rdiv.

	* complex.c: removed some math functions.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15906 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-05 14:25:40 +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
tadf 5d6602c44e * complex.c (nucomp_int_check): function for DRY real check.
* complex.c (nucomp_{add,sub,mul,div,expt}): use rb_num_coerce_bin().



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15896 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-03 12:55:27 +00:00
matz c3d2e4d381 * numeric.c (num_rdiv): should always return rational number.
* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@15887 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-02 14:13:53 +00:00
matz f67f196b1d * rational.c (nurat_int_check): function for DRY integer check.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15886 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-02 13:31:42 +00:00
matz ddf9b405ad * rational.c: need to include <float.h> just once.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15883 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-01 12:21:33 +00:00
tadf 597179bb95 adopted the ruby's style.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15868 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-31 16:42:24 +00:00
tadf 459aa9f1c5 revert.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15867 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-31 15:19:39 +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
tadf d4f5cb67d4 * complex.c (f_lcm): removed.
* rational.c (rb_lcm, rb_gcdlcm): added.

	* lib/complex.rb (gcd, lcm, gcdlcm): removed.

	* lib/rational.rb (gcd, lcm, gcdlcm): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-27 11:48:00 +00:00
tadf 76865ca0ec trivial changes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15834 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-24 13:34:13 +00:00
tadf 6e383d9fa2 fixed. [ruby-dev:34109]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-22 17:31:08 +00:00
tadf fa59ec2f68 rearrangement.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15818 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-20 23:30:34 +00:00
nobu 3aede677ba * rational.c (nurat_to_f): C99.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15817 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-20 21:45:01 +00:00
tadf 5723a8eeb5 improvements.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15812 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-20 12:26:58 +00:00
tadf a3c76eb0c7 added rb_gcd.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15807 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-19 13:29:04 +00:00
tadf 80aa946f91 revert.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15803 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-19 09:37:39 +00:00
nobu 3f5792a1c6 * complex.c (nucomp_to_s, nucomp_inspect): get rid of making
unnecessary intermediate objects.

* complex.c (make_patterns, string_to_c): do not treat successive
  underscores as a part of numeric like as literals.  [ruby-dev:34085]

* rational.c (make_patterns, string_to_r): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15800 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-19 05:53:11 +00:00
tadf 073ee17567 edited comments.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-03-16 00:51:11 +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