D[k] = sigma( A[i] * B[i^k] ) 꼴로 떨어지는걸 xor convolution 이라고 하는데요
잘 보시면
i^k 는 xor인데, 이걸 비트별로 바라보면
각 비트에서 xor은 Z2 에서의 덧셈이거든요
그래서 Z2 x Z2 x Z2 x ... x Z2 공간에서 이루어지는 multidimensional convolution 이 되고요
이제 multidimensional DFT 를 하면 되는데 그건 그냥 차원별로 평범하게 dft를 하면 돼요
https://en.wikipedia.org/wiki/...
그래서 그 코드를 삭삭 정리하면 코드2 꼴이 나와요.
cubelover 님의 블로그 글에도 설명이 있습니다 : http://cubelover.tistory.com/1...
h0ngjun7 5년 전 2