Sha256: a8a1ec62293896f8c27f88c680985ca2e8e58f1ea48d5a3666885094cf3ade32

Contents?: true

Size: 2 KB

Versions: 12

Compression:

Stored size: 2 KB

Contents

o:$YARD::CodeObjects::MethodObject:@scope:
instance:@visibility:public:
@pathI"
Fixnum#*:EF:@parameters[:@files[[I"numeric.c;T0:@current_file_has_commentsF:
@name:*:@source_type:c:
@tags[:@docstringIC:YARD::Docstring"‹Performs multiplication: the class of the resulting object depends on
the class of <code>numeric</code> and on the magnitude of the
result.;F:@objectIu:YARD::StubProxy
Fixnum#*;F:
@summary0:@ref_tags[;[o:YARD::Tags::OverloadTag
:@tag_nameI"
overload;F:
@text0;;:@types0:@signatureI"*(numeric);F;IC;";F;Iu;
Fixnum#*;F;0;[;[:	@allI";F;[[:numeric0;Iu;
Fixnum#*;F;I"¢Performs multiplication: the class of the resulting object depends on
the class of <code>numeric</code> and on the magnitude of the
result.


@overload *(numeric);F:@namespaceIu;Fixnum;F:@docstring_extra0:@sourceI"Œ/*
 * call-seq:
 *   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
 * result.
 */

static VALUE
fix_mul(VALUE x, VALUE y)
{
    if (FIXNUM_P(y)) {
#ifdef __HP_cc
/* avoids an optimization bug of HP aC++/ANSI C B3910B A.06.05 [Jul 25 2005] */
    volatile
#endif
    long a, b;
#if SIZEOF_LONG * 2 <= SIZEOF_LONG_LONG
    LONG_LONG d;
#else
    long c;
    VALUE r;
#endif

    a = FIX2LONG(x);
    b = FIX2LONG(y);

#if SIZEOF_LONG * 2 <= SIZEOF_LONG_LONG
    d = (LONG_LONG)a * b;
    if (FIXABLE(d)) return LONG2FIX(d);
    return rb_ll2inum(d);
#else
    if (FIT_SQRT_LONG(a) && FIT_SQRT_LONG(b))
        return LONG2FIX(a*b);
    c = a * b;
    r = LONG2FIX(c);

    if (a == 0) return x;
    if (FIX2LONG(r) != c || c/a != b) {
        r = rb_big_mul(rb_int2big(a), rb_int2big(b));
    }
    return r;
#endif
    }
    switch (TYPE(y)) {
      case T_BIGNUM:
    return rb_big_mul(y, x);
      case T_FLOAT:
    return DBL2NUM((double)FIX2LONG(x) * RFLOAT_VALUE(y));
      default:
    return rb_num_coerce_bin(x, y, '*');
    }
};F

Version data entries

12 entries across 12 versions & 2 rubygems

Version Path
pry-doc-0.4.4 lib/pry-doc/core_docs_19/objects/Fixnum/_2A_i.dat
pry-doc-0.4.3 lib/pry-doc/core_docs_19/objects/Fixnum/_2A_i.dat
pry-doc-0.4.2 lib/pry-doc/core_docs_19/objects/Fixnum/_2A_i.dat
pry-doc-0.4.1 lib/pry-doc/core_docs_19/objects/Fixnum/_2A_i.dat
pry-doc-0.4.0 lib/pry-doc/core_docs_19/objects/Fixnum/_2A_i.dat
pry-doc-0.3.0 lib/pry-doc/core_docs_19/objects/Fixnum/_2A_i.dat
pry-doc-0.2.4pre1 lib/pry-doc/core_docs_19/objects/Fixnum/_2A_i.dat
pry-doc-0.2.3pre1 lib/pry-doc/core_docs_19/objects/Fixnum/_2A_i.dat
pry-doc-0.2.1 lib/pry-doc/core_docs_19/objects/Fixnum/_2A_i.dat
pry-doc-0.2.0 lib/pry-doc/core_docs_19/objects/Fixnum/_2A_i.dat
pry-doc-0.1.5pre1 lib/pry-doc/core_docs_19/objects/Fixnum/_2A_i.dat
pry-0.6.9pre1-i386-mingw32 lib/pry/core_docs_19/objects/Fixnum/_2A_i.dat