Age | Commit message (Collapse) | Author |
|
* rational.c (read_num): `n` was used uninitialized when the
string started with a period.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (parse_rat): allow float as a denominator as well as
a numerator. [ruby-core:79104] [Bug #13134]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (read_num): use rb_int_parse_cstr to parse integer
parts, and make String#to_r consistent with #to_i and #to_f.
[ruby-core:80098] [Bug #13105]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57989 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (read_rat_nos): denominator cannot be 0, raise zero
division in that case.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (nurat_expt): return 0 due to overflow.
[ruby-core:79686] [Bug #13242]:
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57689 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (nurat_expt): return Infinity due to overflow.
[ruby-core:79686] [Bug #13242]:
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57688 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c: [DOC] fix wrong indentations and comment out some lines
in code examples to make them valid Ruby code and syntax highlighted
on the rendered page.
[ci skip] [ruby-core:79607] [Bug #13233]
Author: Marcus Stollsteimer <[email protected]>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (rb_rational_plus): [DOC] fix an example.
A patch by Trygve Flathen <at.ruby-lang AT flathen.net> in
[ruby-core:71755]. [Bug #11752]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57539 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (nurat_reduce): short circuit when arguments are ONE,
nothing is needed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (f_idiv): call rb_int_idiv directly if possible.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57298 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (rb_gcd_gmp): fix memory leak. patched by KISHIMOTO,
Makoto <ksmakoto AT dd.iij4u.or.jp> in [ruby-dev:49934].
[Bug #13089]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (read_num, read_rat_nos): refactor to curtail
creating Rational objects.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57233 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (read_num, read_rat_nos): dispatch by the type of numerator, for
mathn. [ruby-core:78893] [Bug #13084]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57232 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (canonicalization): define always regardless CANON,
and remove unnecessary ifdefs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* numeric.c (round_half_down, int_round_half_down): support
round-down mode.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56897 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* complex.c (f_gt_p): optimize f_gt_p for specific types of arguments.
* internal.h (rb_int_gt, rb_float_gt, rb_rational_cmp): exported.
* numeric.c (rb_float_gt): rename from flo_gt and be exported.
* numeric.c (rb_int_gt): rename from int_gt and be exported.
* rational.c (rb_rational_cmp): rename from nurat_cmp and be exported.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56872 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* complex.c (f_negate): optimize for special numeric types.
* complex.c (nucomp_expt): use rb_int_uminus instead of f_negate for
fixnum value.
* internal.h (rb_float_uminus, rb_rational_uminus): exported.
* numeric.c (rb_float_uminus): rename from flo_uminus.
* rational.c (rb_rational_uminus): rename from nurat_negate, and add
assertion for the parameter.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56830 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (nurat_s_new_bang, nurat_canonicalize): small optimization
by using rb_int_uminus instead of f_negate.
* rational.c (nurat_canonicalize): add assertions for parameters.
* rational.c (f_negate, id_negate): removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56828 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* internal.h (ROUND_FUNC, ROUND_CALL): macros wrapping round
functions.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* complex.c (numeric_polar): optimize for Integer, Float, and Rational.
* complex.c (numeric_arg): directly create the value of pi.
* complex.c (f_negative_p): optimize for Integer, Float, and Rational.
* rational.c (INT_NEGATIVE_P): move the definition into internal.h.
* internal.h (INT_NEGATIVE_P): ditto.
* numeric.c (rb_float_abs): rename from flo_abs and export to be used
from other source files..
* internal.h (rb_float_abs): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56809 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (rb_rational_abs): optimize Rational#abs with the
specialized implementation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56808 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (f_kind_of_p): rb_obj_is_kind_of returns Qtrue or
Qfalse always, and is safe to cast down to int.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56775 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (f_{eqeq,zero,one,minus_one}_p, nurat_eqeq_p): use
rb_equal. this function returns Qtrue or Qfalse always, so it
is safe to cast down to int.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56763 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c: use RB_INTEGER_TYPE_P, RB_FLOAT_TYPE_P, and FIXNUM_ZERO_P.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (f_negative_p): removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56760 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (f_div, f_mul, f_abs): optimize Integer#lcm
Author: Tadashi Saito <[email protected]>
* numeric.c (rb_int_abs): rename from int_abs to be exported.
* internal.h (rb_int_div, rb_int_abs): exported.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (nurat_rationalize): optimize (-rational).rationalize(some).
Author: Tadashi Saito <[email protected]>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (nurat_{negative,positive}_p): define Rational#negative?
and Rational#positive?, respectively.
Author: Tadashi Saito <[email protected]>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56756 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (id_expt, id_fdiv, f_expt, f_fdiv, f_positive_p): removed.
Author: Tadashi Saito <[email protected]>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56755 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (id_lshift, f_lshift): removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (rb_flt_rationalize{,_with_prec},float_rationalize):
optimize Float#rationalize.
Author: Tadashi Saito <[email protected]>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (rb_raize_zerodiv): replace by rb_num_zerodiv.
Author: Tadashi Saito <[email protected]>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56751 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (float_to_r): optimize Float#to_r.
* numeric.c (rb_int_lshift): exported.
* internal.h (rb_int_lshift): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (float_{numerator,denominator}): optimize
Float#{numerator,denominator}.
Author: Tadashi Saito <[email protected]>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (numeric_quo): optimize Numeric#quo.
Author: Tadashi Saito <[email protected]>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (id_cmp, id_trunate): removed.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56745 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (nurat_fdiv): optimize Rational#fdiv.
Author: Tadashi Saito <[email protected]>
* rational.c (f_to_f, id_to_f): removed.
* rational.c (f_expt): only used when FLT_RADIX is not 2.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56744 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (nurat_truncate): optimize Rational#to_i.
Author: Tadashi Saito <[email protected]>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (f_{expt10,round_common},nurat_{floor,ceil,round_half_{up,even}}):
optimize Rational#{floor,ceil,round,truncate}.
Author: Tadashi Saito <[email protected]>
* numeric.c (rb_int_divmod): rename from int_divmod to be exported.
* numeric.c (rb_int_and): rename from int_and to be exported.
* intern.h (rb_int_{divmod,and}): exported.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56742 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (nurat_coerce): optimize rational.coerce(float).
note that this makes `float [+-*/] rational` faster
Author: Tadashi Saito <[email protected]>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (nurat_{s_new_bang,canonicalize,f_rational,s_convert}):
optimize construction of Rational from numbers.
Author: Tadashi Saito <[email protected]>
* rational.c (read_{num,rat_nos}): optimize construction of Rational
from string.
Author: Tadashi Saito <[email protected]>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (f_cmp, nurat_expt): purge f_cmp.
Author: Tadashi Saito <[email protected]>
* rational.c (INT_POSITIVE_P): added.
* numeric.c (FIXNUM_POSITIVE_P): move the definition into internal.h.
* internal.h (FIXNUM_POSITIVE_P): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (nurat_negate): introduced to optimize Rational#-@.
Author: Tadashi Saito <[email protected]>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (nurat_eqeq_p): optimize Rational#==.
Author: Tadashi Saito <[email protected]>
* numeric.c (rb_int_equal): rename from int_equal and remove static
to be exported.
* internal.h (rb_int_equal): exported.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (nurat_cmp): optimize Rational#<=>.
Author: Tadashi Saito <[email protected]>
* numeric.c (rb_int_cmp): rename from int_cmp and remove static
to be exported.
* internal.h (rb_int_cmp): exported.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56733 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (nurat_expt): optimize Rational#**.
Author: Tadashi Saito <[email protected]>
* numeric.c (rb_float_pow): rename flo_pow() to rb_float_pow()
and remove static to be exporetd.
* internal.h (rb_int_pow, rb_float_pow): exported.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56725 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (f_muldiv): add assertions to check argument types
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (f_muldiv, nurat_div): optimize Rational#/.
Author: Tadashi Saito <[email protected]>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (nurat_to_double): introduce to convert rational to double
without object allocation.
* rational.c (rb_rational_plus, nurat_{sub,mul,to_f}): rewrite by using
nurat_to_double.
* bignum.c (rb_big_fdiv_double): introduce to calculate fdiv and return
the result as a double value.
* bignum.c (big_fdiv{,_int,_float}): change the return types for
implementing rb_big_fdiv_double.
* bignum.c (rb_big_fdiv): rewrite by using rb_big_fdiv_double.
* numeric.c (rb_int_fdiv_double): introduce to calculate fdiv and return
the result as a double value.
* numeric.c (fix_fdiv_double): rewrite from fix_fdiv to return the
result as a double value.
* numeric.c (rb_int_fdiv): rewrite by using rb_int_fdiv_double.
* internal.h (rb_{big,int}_fdiv_double): exported.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56719 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
|
* rational.c (f_muldiv, nurat_mul):
optimize rational * {float, huge rational, bignum}.
Author: Tadashi Saito <[email protected]>
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56712 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|