INNER CODE UNIT · Python

mulPre

herumi/mcl · misc/gen.py:3

def mulPre(N):
	print('void mulPre(uint64_t *z, const uint32_t *x, const uint32_t *y)')
	print('{')
	print('	uint64_t t, L = 0, H = 0;')
	for i in range(N*2-1):
		for j in range(N+1):
			if j < N and 0 <= i-j < N:
				print(f'	t = x[{j}] *% y[{i-j}];')
				print(f'	L = L + (t & 0xffffffff);')
				print(f'	H = H + (t >> 32);')
		print(f'	z[{i}] = L;')
		print(f'	L := H; H := 0;')
	print(f'	z[{N*2-1}] = L;')
	print('}')

# return x*x
def sqrPre(N):
	print(f'inline void sqrPre(uint32_t y[{N*2}], const uint32_t x[{N}])')

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…