INNER CODE UNIT · Python
sqrPre
herumi/mcl · misc/gen.py:19
def sqrPre(N):
print(f'inline void sqrPre(uint32_t y[{N*2}], const uint32_t x[{N}])')
print('{')
print(' uint64_t t;')
print(f' uint64_t b[{N*2-2}];')
for i in range(1,N):
op = '=' if i == 1 else '+='
print()
for step in range(0,N-i):
print(f' t = x[{step}]; t *= x[{step+i}];')
print(f' b[{step*2+i-1}] {op} t & 0xffffffff;')
print(f' b[{step*2+i}] {op} t >> 32;')
print()
print(' t = x[0]; t *= t;')
print(' y[0] = uint32_t(t);')
print(' uint64_t H = 0;')
for i in range(1, N):