Sha256: 0569adc1a86b924192cfe6e4029909b323ff1260856107ebb25e6ce4a6e83883

Contents?: true

Size: 1.78 KB

Versions: 12

Compression:

Stored size: 1.78 KB

Contents

o:$YARD::CodeObjects::MethodObject:
@name:&:@docstringIC:YARD::Docstring"8Performs bitwise +and+ between _big_ and _numeric_.
:@objectu:YARD::StubProxy
Bignum#&:
@summary0:	@all"cPerforms bitwise +and+ between _big_ and _numeric_.


@overload &(numeric)
  @return [Integer]:@ref_tags[:
@tags[o:YARD::Tags::OverloadTag
;
u;
Bignum#&;;;IC;	"
;
u;
Bignum#&;0;
"@return [Integer];[;[o:YARD::Tags::Tag
;
0;0:@types["Integer:
@text":@tag_name"return;0:@parameters[[:numeric0;0:@signature"&(numeric);"
overload:@current_file_has_commentsF:@scope:
instance;[:@docstring_extra0:@files[["
bignum.c0:@namespaceu;Bignum:
@path"
Bignum#&;[:@visibility:public:@source"?/*
 * call-seq:
 *     big & numeric   =>  integer
 *
 * Performs bitwise +and+ between _big_ and _numeric_.
 */

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

    x = xx;
    y = rb_to_int(yy);
    if (FIXNUM_P(y)) {
    y = rb_int2big(FIX2LONG(y));
    }
    if (!RBIGNUM(y)->sign) {
    y = rb_big_clone(y);
    get2comp(y);
    }
    if (!RBIGNUM(x)->sign) {
    x = rb_big_clone(x);
    get2comp(x);
    }
    if (RBIGNUM(x)->len > RBIGNUM(y)->len) {
    l1 = RBIGNUM(y)->len;
    l2 = RBIGNUM(x)->len;
    ds1 = BDIGITS(y);
    ds2 = BDIGITS(x);
    sign = RBIGNUM(y)->sign;
    }
    else {
    l1 = RBIGNUM(x)->len;
    l2 = RBIGNUM(y)->len;
    ds1 = BDIGITS(x);
    ds2 = BDIGITS(y);
    sign = RBIGNUM(x)->sign;
    }
    z = bignew(l2, RBIGNUM(x)->sign || RBIGNUM(y)->sign);
    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(z)->sign) get2comp(z);
    return bignorm(z);
}:@source_type:c

Version data entries

12 entries across 12 versions & 2 rubygems

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