import sys as SYS
import random as R
+if SYS.version_info >= (3,): xrange = range
+
NVEC = 64
WD = 64
LIMIT = 1 << WD
else: SEED = int(seed, 0)
R.seed(SEED)
-print '### Test vectors for 64-bit arithmetic macros'
-print '### [generated; seed = 0x%08x]' % SEED
+print('### Test vectors for 64-bit arithmetic macros')
+print('### [generated; seed = 0x%08x]' % SEED)
def rol(x, n): return ((x << n) | (x >> (WD - n))) & MASK
def ror(x, n): return ((x >> n) | (x << (WD - n))) & MASK
-def put(x): return '%0*x' % (WD/4, x)
+def put(x): return '%0*x' % (WD//4, x)
for name, func in [('lsl', lambda x, n: x << n),
('lsr', lambda x, n: x >> n),
('rol', rol),
('ror', ror)]:
- print '\n%s64 {' % name
+ print('\n%s64 {' % name)
for i in xrange(NVEC):
x = R.randrange(LIMIT)
sh = R.randrange(0, 70) & 63
- print ' %s %2d %s;' % (put(x), sh, put(func(x, sh) & MASK))
+ print(' %s %2d %s;' % (put(x), sh, put(func(x, sh) & MASK)))
for i in xrange(4):
x = R.randrange(LIMIT)
sh = 32
- print ' %s %2d %s;' % (put(x), sh, put(func(x, sh) & MASK))
- print '}'
+ print(' %s %2d %s;' % (put(x), sh, put(func(x, sh) & MASK)))
+ print('}')
for name, func in [('add', lambda x, y: x + y),
('sub', lambda x, y: x - y)]:
- print '\n%s64 {' % name
+ print('\n%s64 {' % name)
for i in xrange(NVEC):
x = R.randrange(LIMIT)
y = R.randrange(LIMIT)
- print ' %s %s %s;' % (put(x), put(y), put(func(x, y) & MASK))
- print '}'
+ print(' %s %s %s;' % (put(x), put(y), put(func(x, y) & MASK)))
+ print('}')