func kronrod(a, b, c *[64]uint64) { const ( n = 4 p = 1 << n ) var ( table [p]uint64 shift = uint(0) ) for ; shift < 64; shift += n { var ( b = b[shift : shift+n] f = 1 ) for _, b := range b { for i, t := range table[:f] { table[f+i] = t ^ b } f <<= 1 } for r, a := range a { a >>= shift a &= p - 1 c[r] = table[a] } } }
To receive a hint, submit unfixed code.