public static uint Compute(uint polynomial, uint seed, byte[] buffer)
 {
     return(~CRC.CalculateHash(CRC.InitializeTable(polynomial), seed, buffer, 0, buffer.Length));
 }
 public CRC(uint polynomial, uint seed)
 {
     this.table = CRC.InitializeTable(polynomial);
     this.hash  = seed;
     this.seed  = seed;
 }