diff options
author | tadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-06-19 13:37:04 +0000 |
---|---|---|
committer | tadf <tadf@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-06-19 13:37:04 +0000 |
commit | f86ad72d2a2fe28004570c401f506a713e764fec (patch) | |
tree | bcde6140fe30a201ba36269818b4225405cbc202 /numeric.c | |
parent | cb699fc9306f499b38cbf03e767d8d481620a636 (diff) |
due to conflict
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'numeric.c')
-rw-r--r-- | numeric.c | 232 |
1 files changed, 119 insertions, 113 deletions
@@ -103,7 +103,7 @@ rb_num_zerodiv(void) /* * call-seq: - * num.coerce(numeric) => array + * num.coerce(numeric) => array * * If <i>aNumeric</i> is the same type as <i>num</i>, returns an array * containing <i>aNumeric</i> and <i>num</i>. Otherwise, returns an @@ -225,7 +225,7 @@ num_init_copy(VALUE x, VALUE y) /* * call-seq: - * +num => num + * +num => num * * Unary Plus---Returns the receiver's value. */ @@ -238,7 +238,7 @@ num_uplus(VALUE num) /* * call-seq: - * -num => numeric + * -num => numeric * * Unary Minus---Returns the receiver's value, negated. */ @@ -256,7 +256,7 @@ num_uminus(VALUE num) /* * call-seq: - * num.quo(numeric) => result + * num.quo(numeric) => result * * Returns most exact division (rational for integers, float for floats). */ @@ -270,7 +270,7 @@ num_quo(VALUE x, VALUE y) /* * call-seq: - * num.fdiv(numeric) => float + * num.fdiv(numeric) => float * * Returns float division. */ @@ -286,11 +286,16 @@ static VALUE num_floor(VALUE num); /* * call-seq: - * num.div(numeric) => integer + * num.div(numeric) => integer * * Uses <code>/</code> to perform division, then converts the result to - * an integer. <code>Numeric</code> does not define the <code>/</code> + * an integer. <code>numeric</code> does not define the <code>/</code> * operator; this is left to subclasses. + * + * Equivalent to + * <i>num</i>.<code>divmod(</code><i>aNumeric</i><code>)[0]</code>. + * + * See <code>Numeric#divmod</code>. */ static VALUE @@ -303,14 +308,14 @@ num_div(VALUE x, VALUE y) /* * call-seq: - * num.divmod( aNumeric ) -> anArray + * num.divmod(numeric) => array * * Returns an array containing the quotient and modulus obtained by - * dividing <i>num</i> by <i>aNumeric</i>. If <code>q, r = + * dividing <i>num</i> by <i>numeric</i>. If <code>q, r = * x.divmod(y)</code>, then * - * q = floor(float(x)/float(y)) - * x = q*y + r + * q = floor(x/y) + * x = q*y+r * * The quotient is rounded toward -infinity, as shown in the following table: * @@ -350,10 +355,14 @@ num_divmod(VALUE x, VALUE y) /* * call-seq: - * num.modulo(numeric) => result + * num.modulo(numeric) => result + * + * x.modulo(y) means x-y*(x/y).floor * * Equivalent to * <i>num</i>.<code>divmod(</code><i>aNumeric</i><code>)[1]</code>. + * + * See <code>Numeric#divmod</code>. */ static VALUE @@ -364,14 +373,11 @@ num_modulo(VALUE x, VALUE y) /* * call-seq: - * num.remainder(numeric) => result + * num.remainder(numeric) => result * - * If <i>num</i> and <i>numeric</i> have different signs, returns - * <em>mod</em>-<i>numeric</i>; otherwise, returns <em>mod</em>. In - * both cases <em>mod</em> is the value - * <i>num</i>.<code>modulo(</code><i>numeric</i><code>)</code>. The - * differences between <code>remainder</code> and modulo - * (<code>%</code>) are shown in the table under <code>Numeric#divmod</code>. + * x.remainder(y) means x-y*(x/y).truncate + * + * See <code>Numeric#divmod</code>. */ static VALUE @@ -391,7 +397,7 @@ num_remainder(VALUE x, VALUE y) /* * call-seq: - * num.real? -> true or false + * num.real? => true or false * * Returns <code>true</code> if <i>num</i> is a <code>Real</code> * (i.e. non <code>Complex</code>). @@ -405,7 +411,7 @@ num_real_p(VALUE num) /* * call-seq: - * num.integer? -> true or false + * num.integer? => true or false * * Returns <code>true</code> if <i>num</i> is an <code>Integer</code> * (including <code>Fixnum</code> and <code>Bignum</code>). @@ -419,7 +425,7 @@ num_int_p(VALUE num) /* * call-seq: - * num.abs => num or numeric + * num.abs => num or numeric * * Returns the absolute value of <i>num</i>. * @@ -440,7 +446,7 @@ num_abs(VALUE num) /* * call-seq: - * num.zero? => true or false + * num.zero? => true or false * * Returns <code>true</code> if <i>num</i> has a zero value. */ @@ -457,7 +463,7 @@ num_zero_p(VALUE num) /* * call-seq: - * num.nonzero? => num or nil + * num.nonzero? => num or nil * * Returns <i>num</i> if <i>num</i> is not zero, <code>nil</code> * otherwise. This behavior is useful when chaining comparisons: @@ -478,7 +484,7 @@ num_nonzero_p(VALUE num) /* * call-seq: - * num.to_int => integer + * num.to_int => integer * * Invokes the child class's <code>to_i</code> method to convert * <i>num</i> to an integer. @@ -511,7 +517,7 @@ rb_float_new(double d) /* * call-seq: - * flt.to_s => string + * flt.to_s => string * * Returns a string containing a representation of self. As well as a * fixed or exponential form of the number, the call may return @@ -565,7 +571,7 @@ flo_coerce(VALUE x, VALUE y) /* * call-seq: - * -float => float + * -float => float * * Returns float, negated. */ @@ -578,7 +584,7 @@ flo_uminus(VALUE flt) /* * call-seq: - * float + other => float + * float + other => float * * Returns a new float which is the sum of <code>float</code> * and <code>other</code>. @@ -601,7 +607,7 @@ flo_plus(VALUE x, VALUE y) /* * call-seq: - * float + other => float + * float + other => float * * Returns a new float which is the difference of <code>float</code> * and <code>other</code>. @@ -624,7 +630,7 @@ flo_minus(VALUE x, VALUE y) /* * call-seq: - * float * other => float + * float * other => float * * Returns a new float which is the product of <code>float</code> * and <code>other</code>. @@ -647,7 +653,7 @@ flo_mul(VALUE x, VALUE y) /* * call-seq: - * float / other => float + * float / other => float * * Returns a new float which is the result of dividing * <code>float</code> by <code>other</code>. @@ -710,8 +716,8 @@ flodivmod(double x, double y, double *divp, double *modp) /* * call-seq: - * flt % other => float - * flt.modulo(other) => float + * flt % other => float + * flt.modulo(other) => float * * Return the modulo after division of <code>flt</code> by <code>other</code>. * @@ -759,7 +765,7 @@ dbl2ival(double d) /* * call-seq: - * flt.divmod(numeric) => array + * flt.divmod(numeric) => array * * See <code>Numeric#divmod</code>. */ @@ -792,7 +798,7 @@ flo_divmod(VALUE x, VALUE y) /* * call-seq: * - * flt ** other => float + * flt ** other => float * * Raises <code>float</code> the <code>other</code> power. */ @@ -814,7 +820,7 @@ flo_pow(VALUE x, VALUE y) /* * call-seq: - * num.eql?(numeric) => true or false + * num.eql?(numeric) => true or false * * Returns <code>true</code> if <i>num</i> and <i>numeric</i> are the * same type and have equal values. @@ -834,7 +840,7 @@ num_eql(VALUE x, VALUE y) /* * call-seq: - * num <=> other -> 0 or nil + * num <=> other => 0 or nil * * Returns zero if <i>num</i> equals <i>other</i>, <code>nil</code> * otherwise. @@ -856,7 +862,7 @@ num_equal(VALUE x, VALUE y) /* * call-seq: - * flt == obj => true or false + * flt == obj => true or false * * Returns <code>true</code> only if <i>obj</i> has the same value * as <i>flt</i>. Contrast this with <code>Float#eql?</code>, which @@ -896,7 +902,7 @@ flo_eq(VALUE x, VALUE y) /* * call-seq: - * flt.hash => integer + * flt.hash => integer * * Returns a hash code for this float. */ @@ -924,7 +930,7 @@ rb_dbl_cmp(double a, double b) /* * call-seq: - * flt <=> numeric => -1, 0, +1 + * flt <=> numeric => -1, 0, +1 * * Returns -1, 0, or +1 depending on whether <i>flt</i> is less than, * equal to, or greater than <i>numeric</i>. This is the basis for the @@ -968,7 +974,7 @@ flo_cmp(VALUE x, VALUE y) /* * call-seq: - * flt > other => true or false + * flt > other => true or false * * <code>true</code> if <code>flt</code> is greater than <code>other</code>. */ @@ -1006,7 +1012,7 @@ flo_gt(VALUE x, VALUE y) /* * call-seq: - * flt >= other => true or false + * flt >= other => true or false * * <code>true</code> if <code>flt</code> is greater than * or equal to <code>other</code>. @@ -1045,7 +1051,7 @@ flo_ge(VALUE x, VALUE y) /* * call-seq: - * flt < other => true or false + * flt < other => true or false * * <code>true</code> if <code>flt</code> is less than <code>other</code>. */ @@ -1083,7 +1089,7 @@ flo_lt(VALUE x, VALUE y) /* * call-seq: - * flt <= other => true or false + * flt <= other => true or false * * <code>true</code> if <code>flt</code> is less than * or equal to <code>other</code>. @@ -1122,7 +1128,7 @@ flo_le(VALUE x, VALUE y) /* * call-seq: - * flt.eql?(obj) => true or false + * flt.eql?(obj) => true or false * * Returns <code>true</code> only if <i>obj</i> is a * <code>Float</code> with the same value as <i>flt</i>. Contrast this @@ -1148,7 +1154,7 @@ flo_eql(VALUE x, VALUE y) /* * call-seq: - * flt.to_f => flt + * flt.to_f => self * * As <code>flt</code> is already a float, returns <i>self</i>. */ @@ -1161,7 +1167,7 @@ flo_to_f(VALUE num) /* * call-seq: - * flt.abs => float + * flt.abs => float * * Returns the absolute value of <i>flt</i>. * @@ -1179,7 +1185,7 @@ flo_abs(VALUE flt) /* * call-seq: - * flt.zero? -> true or false + * flt.zero? => true or false * * Returns <code>true</code> if <i>flt</i> is 0.0. * @@ -1196,7 +1202,7 @@ flo_zero_p(VALUE num) /* * call-seq: - * flt.nan? -> true or false + * flt.nan? => true or false * * Returns <code>true</code> if <i>flt</i> is an invalid IEEE floating * point number. @@ -1217,7 +1223,7 @@ flo_is_nan_p(VALUE num) /* * call-seq: - * flt.infinite? -> nil, -1, +1 + * flt.infinite? => nil, -1, +1 * * Returns <code>nil</code>, -1, or +1 depending on whether <i>flt</i> * is finite, -infinity, or +infinity. @@ -1241,7 +1247,7 @@ flo_is_infinite_p(VALUE num) /* * call-seq: - * flt.finite? -> true or false + * flt.finite? => true or false * * Returns <code>true</code> if <i>flt</i> is a valid IEEE floating * point number (it is not infinite, and <code>nan?</code> is @@ -1267,7 +1273,7 @@ flo_is_finite_p(VALUE num) /* * call-seq: - * flt.floor => integer + * flt.floor => integer * * Returns the largest integer less than or equal to <i>flt</i>. * @@ -1292,7 +1298,7 @@ flo_floor(VALUE num) /* * call-seq: - * flt.ceil => integer + * flt.ceil => integer * * Returns the smallest <code>Integer</code> greater than or equal to * <i>flt</i>. @@ -1318,7 +1324,7 @@ flo_ceil(VALUE num) /* * call-seq: - * flt.round([ndigits]) => integer or float + * flt.round([ndigits]) => integer or float * * Rounds <i>flt</i> to a given precision in decimal digits (default 0 digits). * Precision may be negative. Returns a a floating point number when ndigits @@ -1367,9 +1373,9 @@ flo_round(int argc, VALUE *argv, VALUE num) /* * call-seq: - * flt.to_i => integer - * flt.to_int => integer - * flt.truncate => integer + * flt.to_i => integer + * flt.to_int => integer + * flt.truncate => integer * * Returns <i>flt</i> truncated to an <code>Integer</code>. */ @@ -1392,7 +1398,7 @@ flo_truncate(VALUE num) /* * call-seq: - * num.floor => integer + * num.floor => integer * * Returns the largest integer less than or equal to <i>num</i>. * <code>Numeric</code> implements this by converting <i>anInteger</i> @@ -1411,7 +1417,7 @@ num_floor(VALUE num) /* * call-seq: - * num.ceil => integer + * num.ceil => integer * * Returns the smallest <code>Integer</code> greater than or equal to * <i>num</i>. Class <code>Numeric</code> achieves this by converting @@ -1432,7 +1438,7 @@ num_ceil(VALUE num) /* * call-seq: - * num.round([ndigits]) => integer or float + * num.round([ndigits]) => integer or float * * Rounds <i>num</i> to a given precision in decimal digits (default 0 digits). * Precision may be negative. Returns a a floating point number when ndigits @@ -1448,7 +1454,7 @@ num_round(int argc, VALUE* argv, VALUE num) /* * call-seq: - * num.truncate => integer + * num.truncate => integer * * Returns <i>num</i> truncated to an integer. <code>Numeric</code> * implements this by converting its value to a float and invoking @@ -1492,7 +1498,7 @@ ruby_float_step(VALUE from, VALUE to, VALUE step, int excl) /* * call-seq: - * num.step(limit, step ) {|i| block } => num + * num.step(limit, step ) {|i| block } => self * * Invokes <em>block</em> with the sequence of numbers starting at * <i>num</i>, incremented by <i>step</i> on each call. The loop @@ -1788,12 +1794,12 @@ rb_num2ull(VALUE val) /* * call-seq: - * int.to_i => int - * int.to_int => int - * int.floor => int - * int.ceil => int - * int.round => int - * int.truncate => int + * int.to_i => int + * int.to_int => int + * int.floor => int + * int.ceil => int + * int.round => int + * int.truncate => int * * As <i>int</i> is already an <code>Integer</code>, all these * methods simply return the receiver. @@ -1807,7 +1813,7 @@ int_to_i(VALUE num) /* * call-seq: - * int.integer? -> true + * int.integer? => true * * Always returns <code>true</code>. */ @@ -1820,7 +1826,7 @@ int_int_p(VALUE num) /* * call-seq: - * int.odd? -> true or false + * int.odd? => true or false * * Returns <code>true</code> if <i>int</i> is an odd number. */ @@ -1836,7 +1842,7 @@ int_odd_p(VALUE num) /* * call-seq: - * int.even? -> true or false + * int.even? => true or false * * Returns <code>true</code> if <i>int</i> is an even number. */ @@ -1852,8 +1858,8 @@ int_even_p(VALUE num) /* * call-seq: - * fixnum.next => integer - * fixnum.succ => integer + * fixnum.next => integer + * fixnum.succ => integer * * Returns the <code>Integer</code> equal to <i>int</i> + 1. * @@ -1870,8 +1876,8 @@ fix_succ(VALUE num) /* * call-seq: - * int.next => integer - * int.succ => integer + * int.next => integer + * int.succ => integer * * Returns the <code>Integer</code> equal to <i>int</i> + 1. * @@ -1891,7 +1897,7 @@ int_succ(VALUE num) /* * call-seq: - * int.pred => integer + * int.pred => integer * * Returns the <code>Integer</code> equal to <i>int</i> - 1. * @@ -1911,7 +1917,7 @@ int_pred(VALUE num) /* * call-seq: - * int.chr([encoding]) => string + * int.chr([encoding]) => string * * Returns a string containing the character represented by the * receiver's value according to +encoding+. @@ -1962,7 +1968,7 @@ int_chr(int argc, VALUE *argv, VALUE num) /* * call-seq: - * int.ord => int + * int.ord => self * * Returns the int itself. * @@ -2001,7 +2007,7 @@ int_ord(num) /* * call-seq: - * -fix => integer + * -fix => integer * * Negates <code>fix</code> (which might return a Bignum). */ @@ -2043,7 +2049,7 @@ rb_fix2str(VALUE x, int base) /* * call-seq: - * fix.to_s( base=10 ) -> aString + * fix.to_s(base=10) => string * * Returns a string containing the representation of <i>fix</i> radix * <i>base</i> (between 2 and 36). @@ -2074,7 +2080,7 @@ fix_to_s(int argc, VALUE *argv, VALUE x) /* * call-seq: - * fix + numeric => numeric_result + * fix + numeric => numeric_result * * Performs addition: the class of the resulting object depends on * the class of <code>numeric</code> and on the magnitude of the @@ -2107,7 +2113,7 @@ fix_plus(VALUE x, VALUE y) /* * call-seq: - * fix - numeric => numeric_result + * fix - numeric => numeric_result * * Performs subtraction: the class of the resulting object depends on * the class of <code>numeric</code> and on the magnitude of the @@ -2145,7 +2151,7 @@ fix_minus(VALUE x, VALUE y) /* * call-seq: - * fix * numeric => numeric_result + * fix * numeric => numeric_result * * Performs multiplication: the class of the resulting object depends on * the class of <code>numeric</code> and on the magnitude of the @@ -2227,7 +2233,7 @@ fixdivmod(long x, long y, long *divp, long *modp) /* * call-seq: - * fix.fdiv(numeric) => float + * fix.fdiv(numeric) => float * * Returns the floating point result of dividing <i>fix</i> by * <i>numeric</i>. @@ -2289,7 +2295,7 @@ fix_divide(VALUE x, VALUE y, ID op) /* * call-seq: - * fix / numeric => numeric_result + * fix / numeric => numeric_result * * Performs division: the class of the resulting object depends on * the class of <code>numeric</code> and on the magnitude of the @@ -2304,7 +2310,7 @@ fix_div(VALUE x, VALUE y) /* * call-seq: - * fix.div(numeric) => numeric_result + * fix.div(numeric) => integer * * Performs integer division: returns integer value. */ @@ -2317,11 +2323,11 @@ fix_idiv(VALUE x, VALUE y) /* * call-seq: - * fix % other => Numeric - * fix.modulo(other) => Numeric + * fix % other => numeric + * fix.modulo(other) => numeric * * Returns <code>fix</code> modulo <code>other</code>. - * See <code>Numeric.divmod</code> for more information. + * See <code>numeric.divmod</code> for more information. */ static VALUE @@ -2351,7 +2357,7 @@ fix_mod(VALUE x, VALUE y) /* * call-seq: - * fix.divmod(numeric) => array + * fix.divmod(numeric) => array * * See <code>Numeric#divmod</code>. */ @@ -2424,7 +2430,7 @@ int_pow(long x, unsigned long y) /* * call-seq: - * fix ** other => Numeric + * fix ** other => numeric * * Raises <code>fix</code> to the <code>other</code> power, which may * be negative or fractional. @@ -2488,7 +2494,7 @@ fix_pow(VALUE x, VALUE y) /* * call-seq: - * fix == other + * fix == other => true or false * * Return <code>true</code> if <code>fix</code> equals <code>other</code> * numerically. @@ -2514,7 +2520,7 @@ fix_equal(VALUE x, VALUE y) /* * call-seq: - * fix <=> numeric => -1, 0, +1 + * fix <=> numeric => -1, 0, +1 * * Comparison---Returns -1, 0, or +1 depending on whether <i>fix</i> is * less than, equal to, or greater than <i>numeric</i>. This is the @@ -2541,7 +2547,7 @@ fix_cmp(VALUE x, VALUE y) /* * call-seq: - * fix > other => true or false + * fix > other => true or false * * Returns <code>true</code> if the value of <code>fix</code> is * greater than that of <code>other</code>. @@ -2566,7 +2572,7 @@ fix_gt(VALUE x, VALUE y) /* * call-seq: - * fix >= other => true or false + * fix >= other => true or false * * Returns <code>true</code> if the value of <code>fix</code> is * greater than or equal to that of <code>other</code>. @@ -2591,7 +2597,7 @@ fix_ge(VALUE x, VALUE y) /* * call-seq: - * fix < other => true or false + * fix < other => true or false * * Returns <code>true</code> if the value of <code>fix</code> is * less than that of <code>other</code>. @@ -2616,7 +2622,7 @@ fix_lt(VALUE x, VALUE y) /* * call-seq: - * fix <= other => true or false + * fix <= other => true or false * * Returns <code>true</code> if the value of <code>fix</code> is * less than or equal to that of <code>other</code>. @@ -2641,7 +2647,7 @@ fix_le(VALUE x, VALUE y) /* * call-seq: - * ~fix => integer + * ~fix => integer * * One's complement: returns a number where each bit is flipped. */ @@ -2669,7 +2675,7 @@ bit_coerce(VALUE x) /* * call-seq: - * fix & other => integer + * fix & other => integer * * Bitwise AND. */ @@ -2688,7 +2694,7 @@ fix_and(VALUE x, VALUE y) /* * call-seq: - * fix | other => integer + * fix | other => integer * * Bitwise OR. */ @@ -2707,7 +2713,7 @@ fix_or(VALUE x, VALUE y) /* * call-seq: - * fix ^ other => integer + * fix ^ other => integer * * Bitwise EXCLUSIVE OR. */ @@ -2729,7 +2735,7 @@ static VALUE fix_rshift(long, unsigned long); /* * call-seq: - * fix << count => integer + * fix << count => integer * * Shifts _fix_ left _count_ positions (right if _count_ is negative). */ @@ -2761,7 +2767,7 @@ fix_lshift(long val, unsigned long width) /* * call-seq: - * fix >> count => integer + * fix >> count => integer * * Shifts _fix_ right _count_ positions (left if _count_ is negative). */ @@ -2794,7 +2800,7 @@ fix_rshift(long val, unsigned long i) /* * call-seq: - * fix[n] => 0, 1 + * fix[n] => 0, 1 * * Bit Reference---Returns the <em>n</em>th bit in the binary * representation of <i>fix</i>, where <i>fix</i>[0] is the least @@ -2837,7 +2843,7 @@ fix_aref(VALUE fix, VALUE idx) /* * call-seq: - * fix.to_f -> float + * fix.to_f => float * * Converts <i>fix</i> to a <code>Float</code>. * @@ -2855,7 +2861,7 @@ fix_to_f(VALUE num) /* * call-seq: - * fix.abs -> aFixnum + * fix.abs => fix * * Returns the absolute value of <i>fix</i>. * @@ -2878,7 +2884,7 @@ fix_abs(VALUE fix) /* * call-seq: - * fix.size -> fixnum + * fix.size => fixnum * * Returns the number of <em>bytes</em> in the machine representation * of a <code>Fixnum</code>. @@ -2896,7 +2902,7 @@ fix_size(VALUE fix) /* * call-seq: - * int.upto(limit) {|i| block } => int + * int.upto(limit) {|i| block } => self * * Iterates <em>block</em>, passing in integer values from <i>int</i> * up to and including <i>limit</i>. @@ -2934,7 +2940,7 @@ int_upto(VALUE from, VALUE to) /* * call-seq: - * int.downto(limit) {|i| block } => int + * int.downto(limit) {|i| block } => self * * Iterates <em>block</em>, passing decreasing values from <i>int</i> * down to and including <i>limit</i>. @@ -2973,7 +2979,7 @@ int_downto(VALUE from, VALUE to) /* * call-seq: - * int.times {|i| block } => int + * int.times {|i| block } => self * * Iterates block <i>int</i> times, passing in values from zero to * <i>int</i> - 1. @@ -3051,7 +3057,7 @@ int_round(int argc, VALUE* argv, VALUE num) /* * call-seq: - * fix.zero? => true or false + * fix.zero? => true or false * * Returns <code>true</code> if <i>fix</i> is zero. * @@ -3068,7 +3074,7 @@ fix_zero_p(VALUE num) /* * call-seq: - * fix.odd? -> true or false + * fix.odd? => true or false * * Returns <code>true</code> if <i>fix</i> is an odd number. */ @@ -3084,7 +3090,7 @@ fix_odd_p(VALUE num) /* * call-seq: - * fix.even? -> true or false + * fix.even? => true or false * * Returns <code>true</code> if <i>fix</i> is an even number. */ |