Sha256: 0e6a4325b2a04be72ce5681254d75a13d6454939905a9e0213dcca2a8c4f905c

Contents?: true

Size: 1.84 KB

Versions: 12

Compression:

Stored size: 1.84 KB

Contents

o:$YARD::CodeObjects::MethodObject:@scope:
instance:@visibility:public:
@pathI"
Bignum#&:EF:@parameters[:@files[[I"
bignum.c;T0:@current_file_has_commentsF:
@name:&:@source_type:c:
@tags[:@docstringIC:YARD::Docstring"8Performs bitwise +and+ between _big_ and _numeric_.;F:@objectIu:YARD::StubProxy
Bignum#&;F:
@summary0:@ref_tags[;[o:YARD::Tags::OverloadTag
:@tag_nameI"
overload;F:
@text0;;:@types0:@signatureI"&(numeric);F;IC;";F;Iu;
Bignum#&;F;0;[;[o:YARD::Tags::Tag
;I"return;F;I";F;0;[I"Integer;F;0:	@allI"@return [Integer];F;[[:numeric0;Iu;
Bignum#&;F; I"cPerforms bitwise +and+ between _big_ and _numeric_.


@overload &(numeric)
  @return [Integer];F:@namespaceIu;Bignum;F:@docstring_extra0:@sourceI"3/*
 * call-seq:
 *     big & numeric   ->  integer
 *
 * Performs bitwise +and+ between _big_ and _numeric_.
 */

VALUE
rb_big_and(VALUE xx, VALUE yy)
{
    volatile VALUE x, y, z;
    BDIGIT *ds1, *ds2, *zds;
    long i, l1, l2;
    char sign;

    x = xx;
    y = bit_coerce(yy);
    if (!RBIGNUM_SIGN(x)) {
    x = rb_big_clone(x);
    get2comp(x);
    }
    if (FIXNUM_P(y)) {
    return bigand_int(x, FIX2LONG(y));
    }
    if (!RBIGNUM_SIGN(y)) {
    y = rb_big_clone(y);
    get2comp(y);
    }
    if (RBIGNUM_LEN(x) > RBIGNUM_LEN(y)) {
    l1 = RBIGNUM_LEN(y);
    l2 = RBIGNUM_LEN(x);
    ds1 = BDIGITS(y);
    ds2 = BDIGITS(x);
    sign = RBIGNUM_SIGN(y);
    }
    else {
    l1 = RBIGNUM_LEN(x);
    l2 = RBIGNUM_LEN(y);
    ds1 = BDIGITS(x);
    ds2 = BDIGITS(y);
    sign = RBIGNUM_SIGN(x);
    }
    z = bignew(l2, RBIGNUM_SIGN(x) || RBIGNUM_SIGN(y));
    zds = BDIGITS(z);

    for (i=0; i<l1; i++) {
    zds[i] = ds1[i] & ds2[i];
    }
    for (; i<l2; i++) {
    zds[i] = sign?0:ds2[i];
    }
    if (!RBIGNUM_SIGN(z)) get2comp(z);
    return bignorm(z);
};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/Bignum/_26_i.dat
pry-doc-0.4.3 lib/pry-doc/core_docs_19/objects/Bignum/_26_i.dat
pry-doc-0.4.2 lib/pry-doc/core_docs_19/objects/Bignum/_26_i.dat
pry-doc-0.4.1 lib/pry-doc/core_docs_19/objects/Bignum/_26_i.dat
pry-doc-0.4.0 lib/pry-doc/core_docs_19/objects/Bignum/_26_i.dat
pry-doc-0.3.0 lib/pry-doc/core_docs_19/objects/Bignum/_26_i.dat
pry-doc-0.2.4pre1 lib/pry-doc/core_docs_19/objects/Bignum/_26_i.dat
pry-doc-0.2.3pre1 lib/pry-doc/core_docs_19/objects/Bignum/_26_i.dat
pry-doc-0.2.1 lib/pry-doc/core_docs_19/objects/Bignum/_26_i.dat
pry-doc-0.2.0 lib/pry-doc/core_docs_19/objects/Bignum/_26_i.dat
pry-doc-0.1.5pre1 lib/pry-doc/core_docs_19/objects/Bignum/_26_i.dat
pry-0.6.9pre1-i386-mingw32 lib/pry/core_docs_19/objects/Bignum/_26_i.dat