def unique_id(self, space): if self.user_overridden_class: return W_Object.unique_id(self, space) from pypy.rlib.longlong2float import float2longlong from pypy.objspace.std.model import IDTAG_COMPLEX as tag real = space.float_w(space.getattr(self, space.wrap("real"))) imag = space.float_w(space.getattr(self, space.wrap("imag"))) real_b = rbigint.fromrarith_int(float2longlong(real)) imag_b = rbigint.fromrarith_int(float2longlong(imag)) val = real_b.lshift(64).or_(imag_b).lshift(3).or_(rbigint.fromint(tag)) return space.newlong_from_rbigint(val)
def immutable_unique_id(self, space): if self.user_overridden_class: return None from pypy.rlib.longlong2float import float2longlong from pypy.objspace.std.model import IDTAG_COMPLEX as tag real = space.float_w(space.getattr(self, space.wrap("real"))) imag = space.float_w(space.getattr(self, space.wrap("imag"))) real_b = rbigint.fromrarith_int(float2longlong(real)) imag_b = rbigint.fromrarith_int(float2longlong(imag)) val = real_b.lshift(64).or_(imag_b).lshift(3).or_(rbigint.fromint(tag)) return space.newlong_from_rbigint(val)
def test_args_from_int(self): BASE = 1 << SHIFT assert rbigint.fromrarith_int(0).eq(rbigint([0], 0)) assert rbigint.fromrarith_int(17).eq(rbigint([17], 1)) assert rbigint.fromrarith_int(BASE - 1).eq(rbigint([BASE - 1], 1)) assert rbigint.fromrarith_int(BASE).eq(rbigint([0, 1], 1)) assert rbigint.fromrarith_int(BASE**2).eq(rbigint([0, 0, 1], 1)) assert rbigint.fromrarith_int(-17).eq(rbigint([17], -1)) assert rbigint.fromrarith_int(-(BASE - 1)).eq(rbigint([BASE - 1], -1)) assert rbigint.fromrarith_int(-BASE).eq(rbigint([0, 1], -1)) assert rbigint.fromrarith_int(-(BASE**2)).eq(rbigint([0, 0, 1], -1))
def test_args_from_int(self): BASE = 1 << SHIFT assert rbigint.fromrarith_int(0).eq(rbigint([0], 0)) assert rbigint.fromrarith_int(17).eq(rbigint([17], 1)) assert rbigint.fromrarith_int(BASE-1).eq(rbigint([BASE-1], 1)) assert rbigint.fromrarith_int(BASE).eq(rbigint([0, 1], 1)) assert rbigint.fromrarith_int(BASE**2).eq(rbigint([0, 0, 1], 1)) assert rbigint.fromrarith_int(-17).eq(rbigint([17], -1)) assert rbigint.fromrarith_int(-(BASE-1)).eq(rbigint([BASE-1], -1)) assert rbigint.fromrarith_int(-BASE).eq(rbigint([0, 1], -1)) assert rbigint.fromrarith_int(-(BASE**2)).eq(rbigint([0, 0, 1], -1))
def test_args_from_int(self): BASE = 1 << SHIFT MAX = int(BASE-1) assert rbigint.fromrarith_int(0).eq(bigint([0], 0)) assert rbigint.fromrarith_int(17).eq(bigint([17], 1)) assert rbigint.fromrarith_int(MAX).eq(bigint([MAX], 1)) assert rbigint.fromrarith_int(r_longlong(BASE)).eq(bigint([0, 1], 1)) assert rbigint.fromrarith_int(r_longlong(BASE**2)).eq( bigint([0, 0, 1], 1)) assert rbigint.fromrarith_int(-17).eq(bigint([17], -1)) assert rbigint.fromrarith_int(-MAX).eq(bigint([MAX], -1)) assert rbigint.fromrarith_int(-MAX-1).eq(bigint([0, 1], -1)) assert rbigint.fromrarith_int(r_longlong(-(BASE**2))).eq( bigint([0, 0, 1], -1))
def unique_id(self, space): if self.user_overridden_class: return W_Object.unique_id(self, space) from pypy.rlib.longlong2float import float2longlong from pypy.objspace.std.model import IDTAG_FLOAT as tag val = float2longlong(space.float_w(self)) b = rbigint.fromrarith_int(val) b = b.lshift(3).or_(rbigint.fromint(tag)) return space.newlong_from_rbigint(b)
def immutable_unique_id(self, space): if self.user_overridden_class: return None from pypy.rlib.longlong2float import float2longlong from pypy.objspace.std.model import IDTAG_FLOAT as tag val = float2longlong(space.float_w(self)) b = rbigint.fromrarith_int(val) b = b.lshift(3).or_(rbigint.fromint(tag)) return space.newlong_from_rbigint(b)
def test_args_from_uint(self): BASE = 1 << SHIFT assert rbigint.fromrarith_int(r_uint(0)).eq(rbigint([0], 0)) assert rbigint.fromrarith_int(r_uint(17)).eq(rbigint([17], 1)) assert rbigint.fromrarith_int(r_uint(BASE-1)).eq(rbigint([BASE-1], 1)) assert rbigint.fromrarith_int(r_uint(BASE)).eq(rbigint([0, 1], 1)) assert rbigint.fromrarith_int(r_uint(BASE**2)).eq(rbigint([0, 0, 1], 1)) assert rbigint.fromrarith_int(r_uint(sys.maxint)).eq( rbigint.fromint(sys.maxint)) assert rbigint.fromrarith_int(r_uint(sys.maxint+1)).eq( rbigint.fromlong(sys.maxint+1)) assert rbigint.fromrarith_int(r_uint(2*sys.maxint+1)).eq( rbigint.fromlong(2*sys.maxint+1))
def fromrarith_int(i): return W_LongObject(rbigint.fromrarith_int(i))
def fn(): return (rbigint.fromrarith_int(0), rbigint.fromrarith_int(17), rbigint.fromrarith_int(-17), rbigint.fromrarith_int(r_uint(0)), rbigint.fromrarith_int(r_uint(17)))
def fn(i): n = rbigint.fromrarith_int(values[i]) return n.str()
def asbigint(w_self): return rbigint.fromrarith_int(w_self.longlong)
def fn(x): n1 = rbigint.fromrarith_int(x) n2 = rbigint.fromrarith_int(r_uint(x)) return '%s %s' % (n1.str(), n2.str())