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

78 Коммитов

Автор SHA1 Сообщение Дата
usa 0cfe185f39 * math.c (math_atan2): you should know that M_PI is not the feature
of C90.
  fixed build failure caused by r29115.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-27 06:29:47 +00:00
mrkn 9be503f332 * math.c (math_atan2): change the behavior when x and y are zero.
* test/ruby/test_math.rb (test_atan2): add tests for the above
  changes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29115 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-08-27 03:51:56 +00:00
marcandre 7729de4d91 * array.c: Documentation: change => in call-seq to ->.
Harmonize "#=>" in examples. [ruby-core:30206]

* bignum.c: ditto

* class.c: ditto

* compar.c: ditto

* cont.c: ditto

* dir.c: ditto

* encoding.c: ditto

* enum.c: ditto

* enumerator.c: ditto

* error.c: ditto

* eval.c: ditto

* file.c: ditto

* gc.c: ditto

* io.c: ditto

* load.c: ditto

* marshal.c: ditto

* math.c: ditto

* numeric.c: ditto

* object.c: ditto

* pack.c: ditto

* proc.c: ditto

* process.c: ditto

* random.c: ditto

* range.c: ditto

* re.c: ditto

* ruby.c: ditto

* signal.c: ditto

* sprintf.c: ditto

* string.c: ditto

* struct.c: ditto

* thread.c: ditto

* time.c: ditto

* transcode.c: ditto

* variable.c: ditto

* vm_eval.c: ditto

* vm_method.c: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27865 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-17 21:07:33 +00:00
marcandre 1dee5e34a3 * error.c: RDoc for subclasses of Exception. [ruby-core:28394]
* cont.c: ditto

* enumerator.c: ditto

* io.c: ditto

* math.c: ditto

* numeric.c: ditto

* proc.c: ditto

* re.c: ditto

* thread.c: ditto

* transcode.c: ditto. Thanks to Run Paint for some of the documentation.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27671 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-08 04:50:09 +00:00
marcandre 63324cb36d * math.c: Math::DomainError < StandardException [ruby-core:29855]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-30 13:46:38 +00:00
muraken 5073155a17 * math.c (rb_eMathDomainError): new exception class for representing mathematical domain error instead of Errno::EDOM.
* math.c (domain_check, infinity_check): removed, no longer needed.
* math.c (math_atan2, math_acos, math_asin, math_acosh, math_atanh, math_log, math_log2, math_log10, math_sqrt, math_gamma, math_lgamma): mathematical domain errors are checked and raised before calling libm's functions.
* test/ruby/test_math.rb: updated for changes of maht.c.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-28 10:08:22 +00:00
mame 54380d99f8 * math.c (math_atanh): raise ERANGE without calling atanh if absolute
value is 1 to achieve platform-independent math.  [ruby-core:28219]

* math.c (math_lgamma): return [Infinity, 1] without calling lgamma_r
  if argument is infinity or -infinity.  [ruby-core:28219]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-18 13:39:11 +00:00
akr fcd2fb4e87 * math.c (math_lgamma): initialize sign because
lgamma(NaN) doesn't set the sign in OpenSolaris.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26608 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-02-06 18:02:59 +00:00
naruse 0fdbdfbbda * math.c (domain_check): ignore errno if y is inf.
r26335 is because NetBSD 5.0's asin and acos returns
  0.0 with errno EDOM. But it breaks Linux whose gamma returns inf
  with errno ERANGE on.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26397 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-25 02:51:16 +00:00
nobu 441619b73c * math.c (domain_check): check errno first.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26335 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-17 10:24:27 +00:00
akr 4d4ed5640c rdoc update.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26183 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-27 01:37:23 +00:00
takano32 a1c4d60560 * math.c (math_gamma): fix incorrect comparison expression.
see also [ruby-dev:39709] [Bug #2381]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-18 03:06:32 +00:00
akr 10b7e0e4ad rdoc update.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-11-17 13:24:53 +00:00
yugui 6b7e6f08b0 * math.c (math_atanh): reverted r25279.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-10 11:38:47 +00:00
marcandre 243400fbed * math.c (math_atanh): Fix bug for Math.atanh(+/-1). It now returns +-Infinity. [ruby-core:26028]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@25279 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-10-10 05:56:07 +00:00
akr 78a54607b6 update comment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24756 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-05 00:40:13 +00:00
nobu 3fe5402dfa * math.c (math_gamma): get rid of direct comparison between too
big double and integer, with gcc on x86_64.  [ruby-core:25257]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24738 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-02 07:50:16 +00:00
nobu 274fa77e3f * math.c (domain_check): simplified.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-02 04:47:39 +00:00
nobu dc697b1905 * math.c (math_gamma): constified fact_table.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-09-02 04:32:18 +00:00
akr e7ba39350a rdoc update.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-13 10:36:52 +00:00
akr 91892b820e update rdoc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23352 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-06 09:30:04 +00:00
akr c36aeb5360 * math.c (math_gamma): use a table for positive small integers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23351 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-06 07:51:20 +00:00
matz 0b58675868 * math.c (Need_Float): call rb_to_float() only when it is really
needed.  small performance improvement.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22575 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-23 15:51:31 +00:00
nobu 12d2c8ba41 stripped trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22 14:23:33 +00:00
takano32 c4e79b640b * math.c: SEGV is caused by implicit rb_to_float declaration
test_complexrational.rb: [BUG] at IA-64 architecture


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-28 06:42:09 +00:00
matz 98454a6da8 * object.c (rb_to_float): replaced by to_flo definition from
math.c  [ruby-dev:37668]

* math.c (Need_Float): use rb_to_float().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@21214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-31 14:30:50 +00:00
matz 54a722bd42 * math.c (domain_check): should not raise EDOM exception for NaN
value if operand is also NaN.  affects acos, asin, acosh, atanh,
  log, log2, log10, sqrt, gamma, lgamma. [ruby-dev:37357]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20619 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-10 18:00:51 +00:00
tadf f019cd5b79 inserted a newline.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20007 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-28 15:19:53 +00:00
tadf 2d5a281c98 * math.c (rb_math_{atan2,cos,cosh,hypot,log,sin,sinh,sqrt}): added.
* complex.c: follows the above change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20005 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-28 15:10:40 +00:00
tadf bdf81563bf * math.c (math_log): should check argc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-21 12:53:40 +00:00
matz 31b6ea65bb * include/ruby/ruby.h (DBL2NUM): renamed from DOUBLE2NUM.
a patch from Tadashi Saito <shiba at mail2.accsnet.ne.jp>
  in [ruby-dev:36102].

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19160 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-05 18:24:21 +00:00
naruse 78b5fdd5a8 * math.c (math_atanh): raise EDOM on FreeBSD when atanh(1).
* math.c (math_log): ditto.

* math.c (math_log2): ditto.

* math.c (math_log10): ditto.

* test/ruby/test_math.rb: test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18252 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-28 17:42:32 +00:00
akr 2e35696bbe add an example to rdoc of sqrt and cbrt.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17163 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-15 02:13:16 +00:00
nobu 075530a685 * suppress warnings with -Wwrite-string.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16716 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-31 09:28:20 +00:00
matz f970ffedae * math.c (to_flo): rb_Float() accepts even strings for input.
* complex.c (nucomp_to_f): fix wrong message.

* complex.c (nucomp_to_r): ditto.

* object.c (rb_Float): do not check NaN for error.  NaN is a part
  of valid float values.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-16 04:17:45 +00:00
tadf 6d02a4857d * complex.c (nucomp_div): [ruby-dev:34357]
* complex.c (nucomp_abs): use hypot.

	* complex.c (nucomp_quo): do not force convertion.

	* test/ruby/test_complex.rb: omitted some meaningless tests.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16022 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-14 22:30:45 +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
akr b160d23c68 * math.c (math_cbrt): new method Math.cbrt.
* configure.in (cbrt): check for replacement functions.

* missing/cbrt.c: new file.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-09 09:36:03 +00:00
akr c8aa30a958 * math.c (math_gamma): add error check.
(math_lgamma): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-09 02:47:50 +00:00
akr f6d8188c54 fix lgamma doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15391 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-07 02:40:57 +00:00
akr 14373fc4db * math.c (math_gamma): new method Math.gamma.
(math_lgamma): new method Math.lgamma.

* include/ruby/missing.h (tgamma): declared unless HAVE_TGAMMA.
  (lgamma_r): declared unless HAVE_LGAMMA_R.

* configure.in (tgamma): check for replacement funtions.
  (lgamma_r): ditto.

* missing/tgamma.c: new file.  based on gamma.c from
  "C-gengo niyoru saishin algorithm jiten" (New Algorithm handbook
  in C language) (Gijyutsu hyouron sha, Tokyo, 1991)
  by Haruhiko Okumura.

* missing/lgamma_r.c: ditto.

* LEGAL (missing/tgamma.c): describe as public domain.
  (missing/lgamma_r.c): ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15388 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-07 01:43:43 +00:00
mame d4f83d2261 * sprintf.c: fix comment. [ruby-dev:33275]
* math.c: fix comment.  [ruby-dev:33276]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15191 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-23 14:55:39 +00:00
akr 6cdef2dc7e * $Date$ keyword removed to avoid inclusion of locale dependent
string.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-06 15:49:38 +00:00
naruse 0cf0b82418 * ext/json, lib/json, test/json: Update to JSON 1.1.2.
(RubyForge#15447)

* math.c: fix typo.
-- 

M    ChangeLog
M    math.c
M    ext/json/ext/generator/generator.c
M    ext/json/ext/parser/parser.rl
M    ext/json/ext/parser/parser.c
M    lib/json/version.rb
M    lib/json/editor.rb
M    lib/json/common.rb
M    lib/json/pure/parser.rb
M    test/json/test_json_unicode.rb
M    test/json/test_json_fixtures.rb
M    test/json/test_json_generate.rb
M    test/json/test_json_addition.rb
M    test/json/test_json.rb
M    test/json/runner.rb


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14044 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-28 09:22:57 +00:00
ko1 25c0cb981a * include/ruby/ruby.h: introduce 2 macros:
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: svn+ssh://ci.ruby-lang.org/ruby/trunk@13913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-13 16:00:53 +00:00
matz a25fbe3b3e * encoding.c: provide basic features for M17N.
* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@13261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-25 03:29:39 +00:00
nobu 2b592580bf * include/ruby: moved public headers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-10 03:06:15 +00:00
matz a9e13cc40c * math.c (math_log): update document to mention second optional
argument for logarithm base.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11761 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-16 11:12:11 +00:00
matz 749df1d0fd * dir.c (dir_s_glob): remove unused variable.
* math.c (math_log): ditto.

* re.c (rb_reg_regcomp): ditto.

* eval.c (break_jump): ditto.

* eval.c (rb_thread_yield_0): remove unused function.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10957 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-09-18 01:59:00 +00:00
matz f0dff3c677 * math.c (domain_check): ANSI style function arguments
* math.c (math_log): too few argument to domain_check().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@10628 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2006-07-27 15:29:30 +00:00