simple9/encoding.go
func pack9(in []uint32) uint32 {
	return 2<<28 |
		in[0]<<1 |
		in[1]<<4 |
		in[2]<<7 |
		in[3]<<10 |
		in[4]<<13 |
		in[5]<<16 |
		in[6]<<19 |
		in[7]<<22 |
		in[8]<<25
}
func pack9(in []uint32) uint32 {
	return 2<<28 |
		in[0]<<1 |
		in[1]<<4 |
		in[2]<<7 |
		in[3]<<10 |
		in[4]<<13 |
		in[5]<<16 |
		in[6]<<19 |
		in[7]<<22 |
		in[8]<<25
}
func pack9 ( in [ ] uint32 ) uint32 { return 2 << 28 | in [ 0 ] << 1 | in [ 1 ] << 4 | in [ 2 ] << 7 | in [ 3 ] << 10 | in [ 4 ] << 13 | in [ 5 ] << 16 | in [ 6 ] << 19 | in [ 7 ] << 22 | in [ 8 ] << 25 }
// pack9 packs 9 values from in using 3 bits each
pack9 packs 9 values from in using 3 bits each