func sub16Generic(a, b *[Size]byte) {
	for i := 0; i < Size; i += 8 {
		v1 := binary.LittleEndian.Uint64((*b)[i:])
		v2 := binary.LittleEndian.Uint64((*a)[i:])

		v1a := v1 & mask16A
		v1b := v1 & mask16B
		v2a := v2 & mask16A
		v2b := v2 & mask16B
		v1 = (v1a + (mask16B - v2a)) & mask16A
		v2 = (v1b + (mask16A - v2b)) & mask16B

		binary.LittleEndian.PutUint64((*b)[i:], v1|v2)
	}
}
// sub16Generic computes diff of successive 16-byte
// little-endian unsigned integers of a and b and saves them into b.
sub16Generic computes diff of successive 16-byte
little-endian unsigned integers of a and b and saves them into b.
// sub16Generic computes diff of successive 16 - byte // little - endian unsigned integers of a and b and saves them into b .
func sub16Generic(a, b *[Size]byte) {
	for i := 0; i < Size; i += 8 {
		v1 := binary.LittleEndian.Uint64((*b)[i:])
		v2 := binary.LittleEndian.Uint64((*a)[i:])
		v1a := v1 & mask16A
		v1b := v1 & mask16B
		v2a := v2 & mask16A
		v2b := v2 & mask16B
		v1 = (v1a + (mask16B - v2a)) & mask16A
		v2 = (v1b + (mask16A - v2b)) & mask16B
		binary.LittleEndian.PutUint64((*b)[i:], v1|v2)
	}
}
func sub16Generic ( a , b * [ Size ] byte ) { for i := 0 ; i < Size ; i += 8 { v1 := binary . LittleEndian . Uint64 ( ( * b ) [ i : ] ) v2 := binary . LittleEndian . Uint64 ( ( * a ) [ i : ] ) v1a := v1 & mask16A v1b := v1 & mask16B v2a := v2 & mask16A v2b := v2 & mask16B v1 = ( v1a + ( mask16B - v2a ) ) & mask16A v2 = ( v1b + ( mask16A - v2b ) ) & mask16B binary . LittleEndian . PutUint64 ( ( * b ) [ i : ] , v1 | v2 ) } }
sub16Generic computes diff of successive 16-byte
little-endian unsigned integers of a and b and saves them into b.
sub16Generic computes diff of successive 16 - byte little - endian unsigned integers of a and b and saves them into b .