// Licensed to the Apache Software Foundation (ASF) under one // or more contributor license agreements. See the NOTICE file // distributed with this work for additional information // regarding copyright ownership. The ASF licenses this file // to you under the Apache License, Version 2.0 (the // "License"); you may not use this file except in compliance // with the License. You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package utils import ( "encoding/binary" "io" ) var unpack32 func(io.Reader, []uint32, int) int = unpack32Default type unpackFunc func(in io.Reader, out []uint32) func unpack1_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) for idx := range out[:32] { out[idx] = (inl >> idx) & 1 } } func unpack2_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 2) out[1] = (inl >> 2) % (1 << 2) out[2] = (inl >> 4) % (1 << 2) out[3] = (inl >> 6) % (1 << 2) out[4] = (inl >> 8) % (1 << 2) out[5] = (inl >> 10) % (1 << 2) out[6] = (inl >> 12) % (1 << 2) out[7] = (inl >> 14) % (1 << 2) out[8] = (inl >> 16) % (1 << 2) out[9] = (inl >> 18) % (1 << 2) out[10] = (inl >> 20) % (1 << 2) out[11] = (inl >> 22) % (1 << 2) out[12] = (inl >> 24) % (1 << 2) out[13] = (inl >> 26) % (1 << 2) out[14] = (inl >> 28) % (1 << 2) out[15] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[16] = (inl >> 0) % (1 << 2) out[17] = (inl >> 2) % (1 << 2) out[18] = (inl >> 4) % (1 << 2) out[19] = (inl >> 6) % (1 << 2) out[20] = (inl >> 8) % (1 << 2) out[21] = (inl >> 10) % (1 << 2) out[22] = (inl >> 12) % (1 << 2) out[23] = (inl >> 14) % (1 << 2) out[24] = (inl >> 16) % (1 << 2) out[25] = (inl >> 18) % (1 << 2) out[26] = (inl >> 20) % (1 << 2) out[27] = (inl >> 22) % (1 << 2) out[28] = (inl >> 24) % (1 << 2) out[29] = (inl >> 26) % (1 << 2) out[30] = (inl >> 28) % (1 << 2) out[31] = (inl >> 30) } func unpack3_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 3) out[1] = (inl >> 3) % (1 << 3) out[2] = (inl >> 6) % (1 << 3) out[3] = (inl >> 9) % (1 << 3) out[4] = (inl >> 12) % (1 << 3) out[5] = (inl >> 15) % (1 << 3) out[6] = (inl >> 18) % (1 << 3) out[7] = (inl >> 21) % (1 << 3) out[8] = (inl >> 24) % (1 << 3) out[9] = (inl >> 27) % (1 << 3) out[10] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[10] |= (inl % (1 << 1)) << (3 - 1) out[11] = (inl >> 1) % (1 << 3) out[12] = (inl >> 4) % (1 << 3) out[13] = (inl >> 7) % (1 << 3) out[14] = (inl >> 10) % (1 << 3) out[15] = (inl >> 13) % (1 << 3) out[16] = (inl >> 16) % (1 << 3) out[17] = (inl >> 19) % (1 << 3) out[18] = (inl >> 22) % (1 << 3) out[19] = (inl >> 25) % (1 << 3) out[20] = (inl >> 28) % (1 << 3) out[21] = (inl >> 31) % (1 << 3) binary.Read(in, binary.LittleEndian, &inl) out[21] |= (inl % (1 << 2)) << (3 - 2) out[22] = (inl >> 2) % (1 << 3) out[23] = (inl >> 5) % (1 << 3) out[24] = (inl >> 8) % (1 << 3) out[25] = (inl >> 11) % (1 << 3) out[26] = (inl >> 14) % (1 << 3) out[27] = (inl >> 17) % (1 << 3) out[28] = (inl >> 20) % (1 << 3) out[29] = (inl >> 23) % (1 << 3) out[30] = (inl >> 26) % (1 << 3) out[31] = (inl >> 29) } func unpack4_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) for i := 0; i < 28; i += 4 { out[i/4] = (inl >> i) % (1 << 4) } out[7] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) for i := 0; i < 28; i += 4 { out[8+i/4] = (inl >> i) % (1 << 4) } out[15] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) for i := 0; i < 28; i += 4 { out[16+i/4] = (inl >> i) % (1 << 4) } out[23] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) for i := 0; i < 28; i += 4 { out[24+i/4] = (inl >> i) % (1 << 4) } out[31] = (inl >> 28) } func unpack5_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 5) out[1] = (inl >> 5) % (1 << 5) out[2] = (inl >> 10) % (1 << 5) out[3] = (inl >> 15) % (1 << 5) out[4] = (inl >> 20) % (1 << 5) out[5] = (inl >> 25) % (1 << 5) out[6] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[6] |= (inl % (1 << 3)) << (5 - 3) out[7] = (inl >> 3) % (1 << 5) out[8] = (inl >> 8) % (1 << 5) out[9] = (inl >> 13) % (1 << 5) out[10] = (inl >> 18) % (1 << 5) out[11] = (inl >> 23) % (1 << 5) out[12] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[12] |= (inl % (1 << 1)) << (5 - 1) out[13] = (inl >> 1) % (1 << 5) out[14] = (inl >> 6) % (1 << 5) out[15] = (inl >> 11) % (1 << 5) out[16] = (inl >> 16) % (1 << 5) out[17] = (inl >> 21) % (1 << 5) out[18] = (inl >> 26) % (1 << 5) out[19] = (inl >> 31) binary.Read(in, binary.LittleEndian, &inl) out[19] |= (inl % (1 << 4)) << (5 - 4) out[20] = (inl >> 4) % (1 << 5) out[21] = (inl >> 9) % (1 << 5) out[22] = (inl >> 14) % (1 << 5) out[23] = (inl >> 19) % (1 << 5) out[24] = (inl >> 24) % (1 << 5) out[25] = (inl >> 29) binary.Read(in, binary.LittleEndian, &inl) out[25] |= (inl % (1 << 2)) << (5 - 2) out[26] = (inl >> 2) % (1 << 5) out[27] = (inl >> 7) % (1 << 5) out[28] = (inl >> 12) % (1 << 5) out[29] = (inl >> 17) % (1 << 5) out[30] = (inl >> 22) % (1 << 5) out[31] = (inl >> 27) } func unpack6_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 6) out[1] = (inl >> 6) % (1 << 6) out[2] = (inl >> 12) % (1 << 6) out[3] = (inl >> 18) % (1 << 6) out[4] = (inl >> 24) % (1 << 6) out[5] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[5] |= (inl % (1 << 4)) << (6 - 4) out[6] = (inl >> 4) % (1 << 6) out[7] = (inl >> 10) % (1 << 6) out[8] = (inl >> 16) % (1 << 6) out[9] = (inl >> 22) % (1 << 6) out[10] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[10] |= (inl % (1 << 2)) << (6 - 2) out[11] = (inl >> 2) % (1 << 6) out[12] = (inl >> 8) % (1 << 6) out[13] = (inl >> 14) % (1 << 6) out[14] = (inl >> 20) % (1 << 6) out[15] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[16] = (inl >> 0) % (1 << 6) out[17] = (inl >> 6) % (1 << 6) out[18] = (inl >> 12) % (1 << 6) out[19] = (inl >> 18) % (1 << 6) out[20] = (inl >> 24) % (1 << 6) out[21] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[21] |= (inl % (1 << 4)) << (6 - 4) out[22] = (inl >> 4) % (1 << 6) out[23] = (inl >> 10) % (1 << 6) out[24] = (inl >> 16) % (1 << 6) out[25] = (inl >> 22) % (1 << 6) out[26] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[26] |= (inl % (1 << 2)) << (6 - 2) out[27] = (inl >> 2) % (1 << 6) out[28] = (inl >> 8) % (1 << 6) out[29] = (inl >> 14) % (1 << 6) out[30] = (inl >> 20) % (1 << 6) out[31] = (inl >> 26) } func unpack7_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 7) out[1] = (inl >> 7) % (1 << 7) out[2] = (inl >> 14) % (1 << 7) out[3] = (inl >> 21) % (1 << 7) out[4] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[4] |= (inl % (1 << 3)) << (7 - 3) out[5] = (inl >> 3) % (1 << 7) out[6] = (inl >> 10) % (1 << 7) out[7] = (inl >> 17) % (1 << 7) out[8] = (inl >> 24) % (1 << 7) out[9] = (inl >> 31) binary.Read(in, binary.LittleEndian, &inl) out[9] |= (inl % (1 << 6)) << (7 - 6) out[10] = (inl >> 6) % (1 << 7) out[11] = (inl >> 13) % (1 << 7) out[12] = (inl >> 20) % (1 << 7) out[13] = (inl >> 27) binary.Read(in, binary.LittleEndian, &inl) out[13] |= (inl % (1 << 2)) << (7 - 2) out[14] = (inl >> 2) % (1 << 7) out[15] = (inl >> 9) % (1 << 7) out[16] = (inl >> 16) % (1 << 7) out[17] = (inl >> 23) % (1 << 7) out[18] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[18] |= (inl % (1 << 5)) << (7 - 5) out[19] = (inl >> 5) % (1 << 7) out[20] = (inl >> 12) % (1 << 7) out[21] = (inl >> 19) % (1 << 7) out[22] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[22] |= (inl % (1 << 1)) << (7 - 1) out[23] = (inl >> 1) % (1 << 7) out[24] = (inl >> 8) % (1 << 7) out[25] = (inl >> 15) % (1 << 7) out[26] = (inl >> 22) % (1 << 7) out[27] = (inl >> 29) binary.Read(in, binary.LittleEndian, &inl) out[27] |= (inl % (1 << 4)) << (7 - 4) out[28] = (inl >> 4) % (1 << 7) out[29] = (inl >> 11) % (1 << 7) out[30] = (inl >> 18) % (1 << 7) out[31] = (inl >> 25) } func unpack8_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) for i := 0; i < 24; i += 8 { out[0+i/8] = (inl >> i) % (1 << 8) } out[3] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) for i := 0; i < 24; i += 8 { out[4+i/8] = (inl >> i) % (1 << 8) } out[7] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) for i := 0; i < 24; i += 8 { out[8+i/8] = (inl >> i) % (1 << 8) } out[11] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) for i := 0; i < 24; i += 8 { out[12+i/8] = (inl >> i) % (1 << 8) } out[15] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) for i := 0; i < 24; i += 8 { out[16+i/8] = (inl >> i) % (1 << 8) } out[19] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) for i := 0; i < 24; i += 8 { out[20+i/8] = (inl >> i) % (1 << 8) } out[23] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) for i := 0; i < 24; i += 8 { out[24+i/8] = (inl >> i) % (1 << 8) } out[27] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) for i := 0; i < 24; i += 8 { out[28+i/8] = (inl >> i) % (1 << 8) } out[31] = (inl >> 24) } func unpack9_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 9) out[1] = (inl >> 9) % (1 << 9) out[2] = (inl >> 18) % (1 << 9) out[3] = (inl >> 27) binary.Read(in, binary.LittleEndian, &inl) out[3] |= (inl % (1 << 4)) << (9 - 4) out[4] = (inl >> 4) % (1 << 9) out[5] = (inl >> 13) % (1 << 9) out[6] = (inl >> 22) % (1 << 9) out[7] = (inl >> 31) binary.Read(in, binary.LittleEndian, &inl) out[7] |= (inl % (1 << 8)) << (9 - 8) out[8] = (inl >> 8) % (1 << 9) out[9] = (inl >> 17) % (1 << 9) out[10] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[10] |= (inl % (1 << 3)) << (9 - 3) out[11] = (inl >> 3) % (1 << 9) out[12] = (inl >> 12) % (1 << 9) out[13] = (inl >> 21) % (1 << 9) out[14] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[14] |= (inl % (1 << 7)) << (9 - 7) out[15] = (inl >> 7) % (1 << 9) out[16] = (inl >> 16) % (1 << 9) out[17] = (inl >> 25) binary.Read(in, binary.LittleEndian, &inl) out[17] |= (inl % (1 << 2)) << (9 - 2) out[18] = (inl >> 2) % (1 << 9) out[19] = (inl >> 11) % (1 << 9) out[20] = (inl >> 20) % (1 << 9) out[21] = (inl >> 29) binary.Read(in, binary.LittleEndian, &inl) out[21] |= (inl % (1 << 6)) << (9 - 6) out[22] = (inl >> 6) % (1 << 9) out[23] = (inl >> 15) % (1 << 9) out[24] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[24] |= (inl % (1 << 1)) << (9 - 1) out[25] = (inl >> 1) % (1 << 9) out[26] = (inl >> 10) % (1 << 9) out[27] = (inl >> 19) % (1 << 9) out[28] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[28] |= (inl % (1 << 5)) << (9 - 5) out[29] = (inl >> 5) % (1 << 9) out[30] = (inl >> 14) % (1 << 9) out[31] = (inl >> 23) } func unpack10_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 10) out[1] = (inl >> 10) % (1 << 10) out[2] = (inl >> 20) % (1 << 10) out[3] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[3] |= (inl % (1 << 8)) << (10 - 8) out[4] = (inl >> 8) % (1 << 10) out[5] = (inl >> 18) % (1 << 10) out[6] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[6] |= (inl % (1 << 6)) << (10 - 6) out[7] = (inl >> 6) % (1 << 10) out[8] = (inl >> 16) % (1 << 10) out[9] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[9] |= (inl % (1 << 4)) << (10 - 4) out[10] = (inl >> 4) % (1 << 10) out[11] = (inl >> 14) % (1 << 10) out[12] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[12] |= (inl % (1 << 2)) << (10 - 2) out[13] = (inl >> 2) % (1 << 10) out[14] = (inl >> 12) % (1 << 10) out[15] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[16] = (inl >> 0) % (1 << 10) out[17] = (inl >> 10) % (1 << 10) out[18] = (inl >> 20) % (1 << 10) out[19] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[19] |= (inl % (1 << 8)) << (10 - 8) out[20] = (inl >> 8) % (1 << 10) out[21] = (inl >> 18) % (1 << 10) out[22] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[22] |= (inl % (1 << 6)) << (10 - 6) out[23] = (inl >> 6) % (1 << 10) out[24] = (inl >> 16) % (1 << 10) out[25] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[25] |= (inl % (1 << 4)) << (10 - 4) out[26] = (inl >> 4) % (1 << 10) out[27] = (inl >> 14) % (1 << 10) out[28] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[28] |= (inl % (1 << 2)) << (10 - 2) out[29] = (inl >> 2) % (1 << 10) out[30] = (inl >> 12) % (1 << 10) out[31] = (inl >> 22) } func unpack11_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 11) out[1] = (inl >> 11) % (1 << 11) out[2] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[2] |= (inl % (1 << 1)) << (11 - 1) out[3] = (inl >> 1) % (1 << 11) out[4] = (inl >> 12) % (1 << 11) out[5] = (inl >> 23) binary.Read(in, binary.LittleEndian, &inl) out[5] |= (inl % (1 << 2)) << (11 - 2) out[6] = (inl >> 2) % (1 << 11) out[7] = (inl >> 13) % (1 << 11) out[8] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[8] |= (inl % (1 << 3)) << (11 - 3) out[9] = (inl >> 3) % (1 << 11) out[10] = (inl >> 14) % (1 << 11) out[11] = (inl >> 25) binary.Read(in, binary.LittleEndian, &inl) out[11] |= (inl % (1 << 4)) << (11 - 4) out[12] = (inl >> 4) % (1 << 11) out[13] = (inl >> 15) % (1 << 11) out[14] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[14] |= (inl % (1 << 5)) << (11 - 5) out[15] = (inl >> 5) % (1 << 11) out[16] = (inl >> 16) % (1 << 11) out[17] = (inl >> 27) binary.Read(in, binary.LittleEndian, &inl) out[17] |= (inl % (1 << 6)) << (11 - 6) out[18] = (inl >> 6) % (1 << 11) out[19] = (inl >> 17) % (1 << 11) out[20] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[20] |= (inl % (1 << 7)) << (11 - 7) out[21] = (inl >> 7) % (1 << 11) out[22] = (inl >> 18) % (1 << 11) out[23] = (inl >> 29) binary.Read(in, binary.LittleEndian, &inl) out[23] |= (inl % (1 << 8)) << (11 - 8) out[24] = (inl >> 8) % (1 << 11) out[25] = (inl >> 19) % (1 << 11) out[26] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[26] |= (inl % (1 << 9)) << (11 - 9) out[27] = (inl >> 9) % (1 << 11) out[28] = (inl >> 20) % (1 << 11) out[29] = (inl >> 31) binary.Read(in, binary.LittleEndian, &inl) out[29] |= (inl % (1 << 10)) << (11 - 10) out[30] = (inl >> 10) % (1 << 11) out[31] = (inl >> 21) } func unpack12_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 12) out[1] = (inl >> 12) % (1 << 12) out[2] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[2] |= (inl % (1 << 4)) << (12 - 4) out[3] = (inl >> 4) % (1 << 12) out[4] = (inl >> 16) % (1 << 12) out[5] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[5] |= (inl % (1 << 8)) << (12 - 8) out[6] = (inl >> 8) % (1 << 12) out[7] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[8] = (inl >> 0) % (1 << 12) out[9] = (inl >> 12) % (1 << 12) out[10] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[10] |= (inl % (1 << 4)) << (12 - 4) out[11] = (inl >> 4) % (1 << 12) out[12] = (inl >> 16) % (1 << 12) out[13] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[13] |= (inl % (1 << 8)) << (12 - 8) out[14] = (inl >> 8) % (1 << 12) out[15] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[16] = (inl >> 0) % (1 << 12) out[17] = (inl >> 12) % (1 << 12) out[18] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[18] |= (inl % (1 << 4)) << (12 - 4) out[19] = (inl >> 4) % (1 << 12) out[20] = (inl >> 16) % (1 << 12) out[21] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[21] |= (inl % (1 << 8)) << (12 - 8) out[22] = (inl >> 8) % (1 << 12) out[23] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[24] = (inl >> 0) % (1 << 12) out[25] = (inl >> 12) % (1 << 12) out[26] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[26] |= (inl % (1 << 4)) << (12 - 4) out[27] = (inl >> 4) % (1 << 12) out[28] = (inl >> 16) % (1 << 12) out[29] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[29] |= (inl % (1 << 8)) << (12 - 8) out[30] = (inl >> 8) % (1 << 12) out[31] = (inl >> 20) } func unpack13_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 13) out[1] = (inl >> 13) % (1 << 13) out[2] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[2] |= (inl % (1 << 7)) << (13 - 7) out[3] = (inl >> 7) % (1 << 13) out[4] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[4] |= (inl % (1 << 1)) << (13 - 1) out[5] = (inl >> 1) % (1 << 13) out[6] = (inl >> 14) % (1 << 13) out[7] = (inl >> 27) binary.Read(in, binary.LittleEndian, &inl) out[7] |= (inl % (1 << 8)) << (13 - 8) out[8] = (inl >> 8) % (1 << 13) out[9] = (inl >> 21) binary.Read(in, binary.LittleEndian, &inl) out[9] |= (inl % (1 << 2)) << (13 - 2) out[10] = (inl >> 2) % (1 << 13) out[11] = (inl >> 15) % (1 << 13) out[12] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[12] |= (inl % (1 << 9)) << (13 - 9) out[13] = (inl >> 9) % (1 << 13) out[14] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[14] |= (inl % (1 << 3)) << (13 - 3) out[15] = (inl >> 3) % (1 << 13) out[16] = (inl >> 16) % (1 << 13) out[17] = (inl >> 29) binary.Read(in, binary.LittleEndian, &inl) out[17] |= (inl % (1 << 10)) << (13 - 10) out[18] = (inl >> 10) % (1 << 13) out[19] = (inl >> 23) binary.Read(in, binary.LittleEndian, &inl) out[19] |= (inl % (1 << 4)) << (13 - 4) out[20] = (inl >> 4) % (1 << 13) out[21] = (inl >> 17) % (1 << 13) out[22] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[22] |= (inl % (1 << 11)) << (13 - 11) out[23] = (inl >> 11) % (1 << 13) out[24] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[24] |= (inl % (1 << 5)) << (13 - 5) out[25] = (inl >> 5) % (1 << 13) out[26] = (inl >> 18) % (1 << 13) out[27] = (inl >> 31) binary.Read(in, binary.LittleEndian, &inl) out[27] |= (inl % (1 << 12)) << (13 - 12) out[28] = (inl >> 12) % (1 << 13) out[29] = (inl >> 25) binary.Read(in, binary.LittleEndian, &inl) out[29] |= (inl % (1 << 6)) << (13 - 6) out[30] = (inl >> 6) % (1 << 13) out[31] = (inl >> 19) } func unpack14_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 14) out[1] = (inl >> 14) % (1 << 14) out[2] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[2] |= (inl % (1 << 10)) << (14 - 10) out[3] = (inl >> 10) % (1 << 14) out[4] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[4] |= (inl % (1 << 6)) << (14 - 6) out[5] = (inl >> 6) % (1 << 14) out[6] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[6] |= (inl % (1 << 2)) << (14 - 2) out[7] = (inl >> 2) % (1 << 14) out[8] = (inl >> 16) % (1 << 14) out[9] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[9] |= (inl % (1 << 12)) << (14 - 12) out[10] = (inl >> 12) % (1 << 14) out[11] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[11] |= (inl % (1 << 8)) << (14 - 8) out[12] = (inl >> 8) % (1 << 14) out[13] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[13] |= (inl % (1 << 4)) << (14 - 4) out[14] = (inl >> 4) % (1 << 14) out[15] = (inl >> 18) binary.Read(in, binary.LittleEndian, &inl) out[16] = (inl >> 0) % (1 << 14) out[17] = (inl >> 14) % (1 << 14) out[18] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[18] |= (inl % (1 << 10)) << (14 - 10) out[19] = (inl >> 10) % (1 << 14) out[20] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[20] |= (inl % (1 << 6)) << (14 - 6) out[21] = (inl >> 6) % (1 << 14) out[22] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[22] |= (inl % (1 << 2)) << (14 - 2) out[23] = (inl >> 2) % (1 << 14) out[24] = (inl >> 16) % (1 << 14) out[25] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[25] |= (inl % (1 << 12)) << (14 - 12) out[26] = (inl >> 12) % (1 << 14) out[27] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[27] |= (inl % (1 << 8)) << (14 - 8) out[28] = (inl >> 8) % (1 << 14) out[29] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[29] |= (inl % (1 << 4)) << (14 - 4) out[30] = (inl >> 4) % (1 << 14) out[31] = (inl >> 18) } func unpack15_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 15) out[1] = (inl >> 15) % (1 << 15) out[2] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[2] |= (inl % (1 << 13)) << (15 - 13) out[3] = (inl >> 13) % (1 << 15) out[4] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[4] |= (inl % (1 << 11)) << (15 - 11) out[5] = (inl >> 11) % (1 << 15) out[6] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[6] |= (inl % (1 << 9)) << (15 - 9) out[7] = (inl >> 9) % (1 << 15) out[8] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[8] |= (inl % (1 << 7)) << (15 - 7) out[9] = (inl >> 7) % (1 << 15) out[10] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[10] |= (inl % (1 << 5)) << (15 - 5) out[11] = (inl >> 5) % (1 << 15) out[12] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[12] |= (inl % (1 << 3)) << (15 - 3) out[13] = (inl >> 3) % (1 << 15) out[14] = (inl >> 18) binary.Read(in, binary.LittleEndian, &inl) out[14] |= (inl % (1 << 1)) << (15 - 1) out[15] = (inl >> 1) % (1 << 15) out[16] = (inl >> 16) % (1 << 15) out[17] = (inl >> 31) binary.Read(in, binary.LittleEndian, &inl) out[17] |= (inl % (1 << 14)) << (15 - 14) out[18] = (inl >> 14) % (1 << 15) out[19] = (inl >> 29) binary.Read(in, binary.LittleEndian, &inl) out[19] |= (inl % (1 << 12)) << (15 - 12) out[20] = (inl >> 12) % (1 << 15) out[21] = (inl >> 27) binary.Read(in, binary.LittleEndian, &inl) out[21] |= (inl % (1 << 10)) << (15 - 10) out[22] = (inl >> 10) % (1 << 15) out[23] = (inl >> 25) binary.Read(in, binary.LittleEndian, &inl) out[23] |= (inl % (1 << 8)) << (15 - 8) out[24] = (inl >> 8) % (1 << 15) out[25] = (inl >> 23) binary.Read(in, binary.LittleEndian, &inl) out[25] |= (inl % (1 << 6)) << (15 - 6) out[26] = (inl >> 6) % (1 << 15) out[27] = (inl >> 21) binary.Read(in, binary.LittleEndian, &inl) out[27] |= (inl % (1 << 4)) << (15 - 4) out[28] = (inl >> 4) % (1 << 15) out[29] = (inl >> 19) binary.Read(in, binary.LittleEndian, &inl) out[29] |= (inl % (1 << 2)) << (15 - 2) out[30] = (inl >> 2) % (1 << 15) out[31] = (inl >> 17) } func unpack16_32(in io.Reader, out []uint32) { var inl uint32 for i := 0; i < 16; i++ { binary.Read(in, binary.LittleEndian, &inl) out[i*2] = (inl >> 0) % (1 << 16) out[(i*2)+1] = (inl >> 16) } } func unpack17_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 17) out[1] = (inl >> 17) binary.Read(in, binary.LittleEndian, &inl) out[1] |= (inl % (1 << 2)) << (17 - 2) out[2] = (inl >> 2) % (1 << 17) out[3] = (inl >> 19) binary.Read(in, binary.LittleEndian, &inl) out[3] |= (inl % (1 << 4)) << (17 - 4) out[4] = (inl >> 4) % (1 << 17) out[5] = (inl >> 21) binary.Read(in, binary.LittleEndian, &inl) out[5] |= (inl % (1 << 6)) << (17 - 6) out[6] = (inl >> 6) % (1 << 17) out[7] = (inl >> 23) binary.Read(in, binary.LittleEndian, &inl) out[7] |= (inl % (1 << 8)) << (17 - 8) out[8] = (inl >> 8) % (1 << 17) out[9] = (inl >> 25) binary.Read(in, binary.LittleEndian, &inl) out[9] |= (inl % (1 << 10)) << (17 - 10) out[10] = (inl >> 10) % (1 << 17) out[11] = (inl >> 27) binary.Read(in, binary.LittleEndian, &inl) out[11] |= (inl % (1 << 12)) << (17 - 12) out[12] = (inl >> 12) % (1 << 17) out[13] = (inl >> 29) binary.Read(in, binary.LittleEndian, &inl) out[13] |= (inl % (1 << 14)) << (17 - 14) out[14] = (inl >> 14) % (1 << 17) out[15] = (inl >> 31) binary.Read(in, binary.LittleEndian, &inl) out[15] |= (inl % (1 << 16)) << (17 - 16) out[16] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[16] |= (inl % (1 << 1)) << (17 - 1) out[17] = (inl >> 1) % (1 << 17) out[18] = (inl >> 18) binary.Read(in, binary.LittleEndian, &inl) out[18] |= (inl % (1 << 3)) << (17 - 3) out[19] = (inl >> 3) % (1 << 17) out[20] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[20] |= (inl % (1 << 5)) << (17 - 5) out[21] = (inl >> 5) % (1 << 17) out[22] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[22] |= (inl % (1 << 7)) << (17 - 7) out[23] = (inl >> 7) % (1 << 17) out[24] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[24] |= (inl % (1 << 9)) << (17 - 9) out[25] = (inl >> 9) % (1 << 17) out[26] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[26] |= (inl % (1 << 11)) << (17 - 11) out[27] = (inl >> 11) % (1 << 17) out[28] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[28] |= (inl % (1 << 13)) << (17 - 13) out[29] = (inl >> 13) % (1 << 17) out[30] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[30] |= (inl % (1 << 15)) << (17 - 15) out[31] = (inl >> 15) } func unpack18_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 18) out[1] = (inl >> 18) binary.Read(in, binary.LittleEndian, &inl) out[1] |= (inl % (1 << 4)) << (18 - 4) out[2] = (inl >> 4) % (1 << 18) out[3] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[3] |= (inl % (1 << 8)) << (18 - 8) out[4] = (inl >> 8) % (1 << 18) out[5] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[5] |= (inl % (1 << 12)) << (18 - 12) out[6] = (inl >> 12) % (1 << 18) out[7] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[7] |= (inl % (1 << 16)) << (18 - 16) out[8] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[8] |= (inl % (1 << 2)) << (18 - 2) out[9] = (inl >> 2) % (1 << 18) out[10] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[10] |= (inl % (1 << 6)) << (18 - 6) out[11] = (inl >> 6) % (1 << 18) out[12] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[12] |= (inl % (1 << 10)) << (18 - 10) out[13] = (inl >> 10) % (1 << 18) out[14] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[14] |= (inl % (1 << 14)) << (18 - 14) out[15] = (inl >> 14) binary.Read(in, binary.LittleEndian, &inl) out[16] = (inl >> 0) % (1 << 18) out[17] = (inl >> 18) binary.Read(in, binary.LittleEndian, &inl) out[17] |= (inl % (1 << 4)) << (18 - 4) out[18] = (inl >> 4) % (1 << 18) out[19] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[19] |= (inl % (1 << 8)) << (18 - 8) out[20] = (inl >> 8) % (1 << 18) out[21] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[21] |= (inl % (1 << 12)) << (18 - 12) out[22] = (inl >> 12) % (1 << 18) out[23] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[23] |= (inl % (1 << 16)) << (18 - 16) out[24] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[24] |= (inl % (1 << 2)) << (18 - 2) out[25] = (inl >> 2) % (1 << 18) out[26] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[26] |= (inl % (1 << 6)) << (18 - 6) out[27] = (inl >> 6) % (1 << 18) out[28] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[28] |= (inl % (1 << 10)) << (18 - 10) out[29] = (inl >> 10) % (1 << 18) out[30] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[30] |= (inl % (1 << 14)) << (18 - 14) out[31] = (inl >> 14) } func unpack19_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 19) out[1] = (inl >> 19) binary.Read(in, binary.LittleEndian, &inl) out[1] |= (inl % (1 << 6)) << (19 - 6) out[2] = (inl >> 6) % (1 << 19) out[3] = (inl >> 25) binary.Read(in, binary.LittleEndian, &inl) out[3] |= (inl % (1 << 12)) << (19 - 12) out[4] = (inl >> 12) % (1 << 19) out[5] = (inl >> 31) binary.Read(in, binary.LittleEndian, &inl) out[5] |= (inl % (1 << 18)) << (19 - 18) out[6] = (inl >> 18) binary.Read(in, binary.LittleEndian, &inl) out[6] |= (inl % (1 << 5)) << (19 - 5) out[7] = (inl >> 5) % (1 << 19) out[8] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[8] |= (inl % (1 << 11)) << (19 - 11) out[9] = (inl >> 11) % (1 << 19) out[10] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[10] |= (inl % (1 << 17)) << (19 - 17) out[11] = (inl >> 17) binary.Read(in, binary.LittleEndian, &inl) out[11] |= (inl % (1 << 4)) << (19 - 4) out[12] = (inl >> 4) % (1 << 19) out[13] = (inl >> 23) binary.Read(in, binary.LittleEndian, &inl) out[13] |= (inl % (1 << 10)) << (19 - 10) out[14] = (inl >> 10) % (1 << 19) out[15] = (inl >> 29) binary.Read(in, binary.LittleEndian, &inl) out[15] |= (inl % (1 << 16)) << (19 - 16) out[16] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[16] |= (inl % (1 << 3)) << (19 - 3) out[17] = (inl >> 3) % (1 << 19) out[18] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[18] |= (inl % (1 << 9)) << (19 - 9) out[19] = (inl >> 9) % (1 << 19) out[20] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[20] |= (inl % (1 << 15)) << (19 - 15) out[21] = (inl >> 15) binary.Read(in, binary.LittleEndian, &inl) out[21] |= (inl % (1 << 2)) << (19 - 2) out[22] = (inl >> 2) % (1 << 19) out[23] = (inl >> 21) binary.Read(in, binary.LittleEndian, &inl) out[23] |= (inl % (1 << 8)) << (19 - 8) out[24] = (inl >> 8) % (1 << 19) out[25] = (inl >> 27) binary.Read(in, binary.LittleEndian, &inl) out[25] |= (inl % (1 << 14)) << (19 - 14) out[26] = (inl >> 14) binary.Read(in, binary.LittleEndian, &inl) out[26] |= (inl % (1 << 1)) << (19 - 1) out[27] = (inl >> 1) % (1 << 19) out[28] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[28] |= (inl % (1 << 7)) << (19 - 7) out[29] = (inl >> 7) % (1 << 19) out[30] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[30] |= (inl % (1 << 13)) << (19 - 13) out[31] = (inl >> 13) } func unpack20_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 20) out[1] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[1] |= (inl % (1 << 8)) << (20 - 8) out[2] = (inl >> 8) % (1 << 20) out[3] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[3] |= (inl % (1 << 16)) << (20 - 16) out[4] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[4] |= (inl % (1 << 4)) << (20 - 4) out[5] = (inl >> 4) % (1 << 20) out[6] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[6] |= (inl % (1 << 12)) << (20 - 12) out[7] = (inl >> 12) binary.Read(in, binary.LittleEndian, &inl) out[8] = (inl >> 0) % (1 << 20) out[9] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[9] |= (inl % (1 << 8)) << (20 - 8) out[10] = (inl >> 8) % (1 << 20) out[11] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[11] |= (inl % (1 << 16)) << (20 - 16) out[12] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[12] |= (inl % (1 << 4)) << (20 - 4) out[13] = (inl >> 4) % (1 << 20) out[14] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[14] |= (inl % (1 << 12)) << (20 - 12) out[15] = (inl >> 12) binary.Read(in, binary.LittleEndian, &inl) out[16] = (inl >> 0) % (1 << 20) out[17] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[17] |= (inl % (1 << 8)) << (20 - 8) out[18] = (inl >> 8) % (1 << 20) out[19] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[19] |= (inl % (1 << 16)) << (20 - 16) out[20] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[20] |= (inl % (1 << 4)) << (20 - 4) out[21] = (inl >> 4) % (1 << 20) out[22] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[22] |= (inl % (1 << 12)) << (20 - 12) out[23] = (inl >> 12) binary.Read(in, binary.LittleEndian, &inl) out[24] = (inl >> 0) % (1 << 20) out[25] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[25] |= (inl % (1 << 8)) << (20 - 8) out[26] = (inl >> 8) % (1 << 20) out[27] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[27] |= (inl % (1 << 16)) << (20 - 16) out[28] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[28] |= (inl % (1 << 4)) << (20 - 4) out[29] = (inl >> 4) % (1 << 20) out[30] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[30] |= (inl % (1 << 12)) << (20 - 12) out[31] = (inl >> 12) } func unpack21_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 21) out[1] = (inl >> 21) binary.Read(in, binary.LittleEndian, &inl) out[1] |= (inl % (1 << 10)) << (21 - 10) out[2] = (inl >> 10) % (1 << 21) out[3] = (inl >> 31) binary.Read(in, binary.LittleEndian, &inl) out[3] |= (inl % (1 << 20)) << (21 - 20) out[4] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[4] |= (inl % (1 << 9)) << (21 - 9) out[5] = (inl >> 9) % (1 << 21) out[6] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[6] |= (inl % (1 << 19)) << (21 - 19) out[7] = (inl >> 19) binary.Read(in, binary.LittleEndian, &inl) out[7] |= (inl % (1 << 8)) << (21 - 8) out[8] = (inl >> 8) % (1 << 21) out[9] = (inl >> 29) binary.Read(in, binary.LittleEndian, &inl) out[9] |= (inl % (1 << 18)) << (21 - 18) out[10] = (inl >> 18) binary.Read(in, binary.LittleEndian, &inl) out[10] |= (inl % (1 << 7)) << (21 - 7) out[11] = (inl >> 7) % (1 << 21) out[12] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[12] |= (inl % (1 << 17)) << (21 - 17) out[13] = (inl >> 17) binary.Read(in, binary.LittleEndian, &inl) out[13] |= (inl % (1 << 6)) << (21 - 6) out[14] = (inl >> 6) % (1 << 21) out[15] = (inl >> 27) binary.Read(in, binary.LittleEndian, &inl) out[15] |= (inl % (1 << 16)) << (21 - 16) out[16] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[16] |= (inl % (1 << 5)) << (21 - 5) out[17] = (inl >> 5) % (1 << 21) out[18] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[18] |= (inl % (1 << 15)) << (21 - 15) out[19] = (inl >> 15) binary.Read(in, binary.LittleEndian, &inl) out[19] |= (inl % (1 << 4)) << (21 - 4) out[20] = (inl >> 4) % (1 << 21) out[21] = (inl >> 25) binary.Read(in, binary.LittleEndian, &inl) out[21] |= (inl % (1 << 14)) << (21 - 14) out[22] = (inl >> 14) binary.Read(in, binary.LittleEndian, &inl) out[22] |= (inl % (1 << 3)) << (21 - 3) out[23] = (inl >> 3) % (1 << 21) out[24] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[24] |= (inl % (1 << 13)) << (21 - 13) out[25] = (inl >> 13) binary.Read(in, binary.LittleEndian, &inl) out[25] |= (inl % (1 << 2)) << (21 - 2) out[26] = (inl >> 2) % (1 << 21) out[27] = (inl >> 23) binary.Read(in, binary.LittleEndian, &inl) out[27] |= (inl % (1 << 12)) << (21 - 12) out[28] = (inl >> 12) binary.Read(in, binary.LittleEndian, &inl) out[28] |= (inl % (1 << 1)) << (21 - 1) out[29] = (inl >> 1) % (1 << 21) out[30] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[30] |= (inl % (1 << 11)) << (21 - 11) out[31] = (inl >> 11) } func unpack22_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 22) out[1] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[1] |= (inl % (1 << 12)) << (22 - 12) out[2] = (inl >> 12) binary.Read(in, binary.LittleEndian, &inl) out[2] |= (inl % (1 << 2)) << (22 - 2) out[3] = (inl >> 2) % (1 << 22) out[4] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[4] |= (inl % (1 << 14)) << (22 - 14) out[5] = (inl >> 14) binary.Read(in, binary.LittleEndian, &inl) out[5] |= (inl % (1 << 4)) << (22 - 4) out[6] = (inl >> 4) % (1 << 22) out[7] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[7] |= (inl % (1 << 16)) << (22 - 16) out[8] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[8] |= (inl % (1 << 6)) << (22 - 6) out[9] = (inl >> 6) % (1 << 22) out[10] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[10] |= (inl % (1 << 18)) << (22 - 18) out[11] = (inl >> 18) binary.Read(in, binary.LittleEndian, &inl) out[11] |= (inl % (1 << 8)) << (22 - 8) out[12] = (inl >> 8) % (1 << 22) out[13] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[13] |= (inl % (1 << 20)) << (22 - 20) out[14] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[14] |= (inl % (1 << 10)) << (22 - 10) out[15] = (inl >> 10) binary.Read(in, binary.LittleEndian, &inl) out[16] = (inl >> 0) % (1 << 22) out[17] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[17] |= (inl % (1 << 12)) << (22 - 12) out[18] = (inl >> 12) binary.Read(in, binary.LittleEndian, &inl) out[18] |= (inl % (1 << 2)) << (22 - 2) out[19] = (inl >> 2) % (1 << 22) out[20] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[20] |= (inl % (1 << 14)) << (22 - 14) out[21] = (inl >> 14) binary.Read(in, binary.LittleEndian, &inl) out[21] |= (inl % (1 << 4)) << (22 - 4) out[22] = (inl >> 4) % (1 << 22) out[23] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[23] |= (inl % (1 << 16)) << (22 - 16) out[24] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[24] |= (inl % (1 << 6)) << (22 - 6) out[25] = (inl >> 6) % (1 << 22) out[26] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[26] |= (inl % (1 << 18)) << (22 - 18) out[27] = (inl >> 18) binary.Read(in, binary.LittleEndian, &inl) out[27] |= (inl % (1 << 8)) << (22 - 8) out[28] = (inl >> 8) % (1 << 22) out[29] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[29] |= (inl % (1 << 20)) << (22 - 20) out[30] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[30] |= (inl % (1 << 10)) << (22 - 10) out[31] = (inl >> 10) } func unpack23_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 23) out[1] = (inl >> 23) binary.Read(in, binary.LittleEndian, &inl) out[1] |= (inl % (1 << 14)) << (23 - 14) out[2] = (inl >> 14) binary.Read(in, binary.LittleEndian, &inl) out[2] |= (inl % (1 << 5)) << (23 - 5) out[3] = (inl >> 5) % (1 << 23) out[4] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[4] |= (inl % (1 << 19)) << (23 - 19) out[5] = (inl >> 19) binary.Read(in, binary.LittleEndian, &inl) out[5] |= (inl % (1 << 10)) << (23 - 10) out[6] = (inl >> 10) binary.Read(in, binary.LittleEndian, &inl) out[6] |= (inl % (1 << 1)) << (23 - 1) out[7] = (inl >> 1) % (1 << 23) out[8] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[8] |= (inl % (1 << 15)) << (23 - 15) out[9] = (inl >> 15) binary.Read(in, binary.LittleEndian, &inl) out[9] |= (inl % (1 << 6)) << (23 - 6) out[10] = (inl >> 6) % (1 << 23) out[11] = (inl >> 29) binary.Read(in, binary.LittleEndian, &inl) out[11] |= (inl % (1 << 20)) << (23 - 20) out[12] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[12] |= (inl % (1 << 11)) << (23 - 11) out[13] = (inl >> 11) binary.Read(in, binary.LittleEndian, &inl) out[13] |= (inl % (1 << 2)) << (23 - 2) out[14] = (inl >> 2) % (1 << 23) out[15] = (inl >> 25) binary.Read(in, binary.LittleEndian, &inl) out[15] |= (inl % (1 << 16)) << (23 - 16) out[16] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[16] |= (inl % (1 << 7)) << (23 - 7) out[17] = (inl >> 7) % (1 << 23) out[18] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[18] |= (inl % (1 << 21)) << (23 - 21) out[19] = (inl >> 21) binary.Read(in, binary.LittleEndian, &inl) out[19] |= (inl % (1 << 12)) << (23 - 12) out[20] = (inl >> 12) binary.Read(in, binary.LittleEndian, &inl) out[20] |= (inl % (1 << 3)) << (23 - 3) out[21] = (inl >> 3) % (1 << 23) out[22] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[22] |= (inl % (1 << 17)) << (23 - 17) out[23] = (inl >> 17) binary.Read(in, binary.LittleEndian, &inl) out[23] |= (inl % (1 << 8)) << (23 - 8) out[24] = (inl >> 8) % (1 << 23) out[25] = (inl >> 31) binary.Read(in, binary.LittleEndian, &inl) out[25] |= (inl % (1 << 22)) << (23 - 22) out[26] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[26] |= (inl % (1 << 13)) << (23 - 13) out[27] = (inl >> 13) binary.Read(in, binary.LittleEndian, &inl) out[27] |= (inl % (1 << 4)) << (23 - 4) out[28] = (inl >> 4) % (1 << 23) out[29] = (inl >> 27) binary.Read(in, binary.LittleEndian, &inl) out[29] |= (inl % (1 << 18)) << (23 - 18) out[30] = (inl >> 18) binary.Read(in, binary.LittleEndian, &inl) out[30] |= (inl % (1 << 9)) << (23 - 9) out[31] = (inl >> 9) } func unpack24_32(in io.Reader, out []uint32) { var inl uint32 for i := 0; i < 8; i++ { base := i * 4 binary.Read(in, binary.LittleEndian, &inl) out[base] = (inl >> 0) % (1 << 24) out[base+1] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[base+1] |= (inl % (1 << 16)) << (24 - 16) out[base+2] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[base+2] |= (inl % (1 << 8)) << (24 - 8) out[base+3] = (inl >> 8) } } func unpack25_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 25) out[1] = (inl >> 25) binary.Read(in, binary.LittleEndian, &inl) out[1] |= (inl % (1 << 18)) << (25 - 18) out[2] = (inl >> 18) binary.Read(in, binary.LittleEndian, &inl) out[2] |= (inl % (1 << 11)) << (25 - 11) out[3] = (inl >> 11) binary.Read(in, binary.LittleEndian, &inl) out[3] |= (inl % (1 << 4)) << (25 - 4) out[4] = (inl >> 4) % (1 << 25) out[5] = (inl >> 29) binary.Read(in, binary.LittleEndian, &inl) out[5] |= (inl % (1 << 22)) << (25 - 22) out[6] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[6] |= (inl % (1 << 15)) << (25 - 15) out[7] = (inl >> 15) binary.Read(in, binary.LittleEndian, &inl) out[7] |= (inl % (1 << 8)) << (25 - 8) out[8] = (inl >> 8) binary.Read(in, binary.LittleEndian, &inl) out[8] |= (inl % (1 << 1)) << (25 - 1) out[9] = (inl >> 1) % (1 << 25) out[10] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[10] |= (inl % (1 << 19)) << (25 - 19) out[11] = (inl >> 19) binary.Read(in, binary.LittleEndian, &inl) out[11] |= (inl % (1 << 12)) << (25 - 12) out[12] = (inl >> 12) binary.Read(in, binary.LittleEndian, &inl) out[12] |= (inl % (1 << 5)) << (25 - 5) out[13] = (inl >> 5) % (1 << 25) out[14] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[14] |= (inl % (1 << 23)) << (25 - 23) out[15] = (inl >> 23) binary.Read(in, binary.LittleEndian, &inl) out[15] |= (inl % (1 << 16)) << (25 - 16) out[16] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[16] |= (inl % (1 << 9)) << (25 - 9) out[17] = (inl >> 9) binary.Read(in, binary.LittleEndian, &inl) out[17] |= (inl % (1 << 2)) << (25 - 2) out[18] = (inl >> 2) % (1 << 25) out[19] = (inl >> 27) binary.Read(in, binary.LittleEndian, &inl) out[19] |= (inl % (1 << 20)) << (25 - 20) out[20] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[20] |= (inl % (1 << 13)) << (25 - 13) out[21] = (inl >> 13) binary.Read(in, binary.LittleEndian, &inl) out[21] |= (inl % (1 << 6)) << (25 - 6) out[22] = (inl >> 6) % (1 << 25) out[23] = (inl >> 31) binary.Read(in, binary.LittleEndian, &inl) out[23] |= (inl % (1 << 24)) << (25 - 24) out[24] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[24] |= (inl % (1 << 17)) << (25 - 17) out[25] = (inl >> 17) binary.Read(in, binary.LittleEndian, &inl) out[25] |= (inl % (1 << 10)) << (25 - 10) out[26] = (inl >> 10) binary.Read(in, binary.LittleEndian, &inl) out[26] |= (inl % (1 << 3)) << (25 - 3) out[27] = (inl >> 3) % (1 << 25) out[28] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[28] |= (inl % (1 << 21)) << (25 - 21) out[29] = (inl >> 21) binary.Read(in, binary.LittleEndian, &inl) out[29] |= (inl % (1 << 14)) << (25 - 14) out[30] = (inl >> 14) binary.Read(in, binary.LittleEndian, &inl) out[30] |= (inl % (1 << 7)) << (25 - 7) out[31] = (inl >> 7) } func unpack26_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 26) out[1] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[1] |= (inl % (1 << 20)) << (26 - 20) out[2] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[2] |= (inl % (1 << 14)) << (26 - 14) out[3] = (inl >> 14) binary.Read(in, binary.LittleEndian, &inl) out[3] |= (inl % (1 << 8)) << (26 - 8) out[4] = (inl >> 8) binary.Read(in, binary.LittleEndian, &inl) out[4] |= (inl % (1 << 2)) << (26 - 2) out[5] = (inl >> 2) % (1 << 26) out[6] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[6] |= (inl % (1 << 22)) << (26 - 22) out[7] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[7] |= (inl % (1 << 16)) << (26 - 16) out[8] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[8] |= (inl % (1 << 10)) << (26 - 10) out[9] = (inl >> 10) binary.Read(in, binary.LittleEndian, &inl) out[9] |= (inl % (1 << 4)) << (26 - 4) out[10] = (inl >> 4) % (1 << 26) out[11] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[11] |= (inl % (1 << 24)) << (26 - 24) out[12] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[12] |= (inl % (1 << 18)) << (26 - 18) out[13] = (inl >> 18) binary.Read(in, binary.LittleEndian, &inl) out[13] |= (inl % (1 << 12)) << (26 - 12) out[14] = (inl >> 12) binary.Read(in, binary.LittleEndian, &inl) out[14] |= (inl % (1 << 6)) << (26 - 6) out[15] = (inl >> 6) binary.Read(in, binary.LittleEndian, &inl) out[16] = (inl >> 0) % (1 << 26) out[17] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[17] |= (inl % (1 << 20)) << (26 - 20) out[18] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[18] |= (inl % (1 << 14)) << (26 - 14) out[19] = (inl >> 14) binary.Read(in, binary.LittleEndian, &inl) out[19] |= (inl % (1 << 8)) << (26 - 8) out[20] = (inl >> 8) binary.Read(in, binary.LittleEndian, &inl) out[20] |= (inl % (1 << 2)) << (26 - 2) out[21] = (inl >> 2) % (1 << 26) out[22] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[22] |= (inl % (1 << 22)) << (26 - 22) out[23] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[23] |= (inl % (1 << 16)) << (26 - 16) out[24] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[24] |= (inl % (1 << 10)) << (26 - 10) out[25] = (inl >> 10) binary.Read(in, binary.LittleEndian, &inl) out[25] |= (inl % (1 << 4)) << (26 - 4) out[26] = (inl >> 4) % (1 << 26) out[27] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[27] |= (inl % (1 << 24)) << (26 - 24) out[28] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[28] |= (inl % (1 << 18)) << (26 - 18) out[29] = (inl >> 18) binary.Read(in, binary.LittleEndian, &inl) out[29] |= (inl % (1 << 12)) << (26 - 12) out[30] = (inl >> 12) binary.Read(in, binary.LittleEndian, &inl) out[30] |= (inl % (1 << 6)) << (26 - 6) out[31] = (inl >> 6) } func unpack27_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 27) out[1] = (inl >> 27) binary.Read(in, binary.LittleEndian, &inl) out[1] |= (inl % (1 << 22)) << (27 - 22) out[2] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[2] |= (inl % (1 << 17)) << (27 - 17) out[3] = (inl >> 17) binary.Read(in, binary.LittleEndian, &inl) out[3] |= (inl % (1 << 12)) << (27 - 12) out[4] = (inl >> 12) binary.Read(in, binary.LittleEndian, &inl) out[4] |= (inl % (1 << 7)) << (27 - 7) out[5] = (inl >> 7) binary.Read(in, binary.LittleEndian, &inl) out[5] |= (inl % (1 << 2)) << (27 - 2) out[6] = (inl >> 2) % (1 << 27) out[7] = (inl >> 29) binary.Read(in, binary.LittleEndian, &inl) out[7] |= (inl % (1 << 24)) << (27 - 24) out[8] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[8] |= (inl % (1 << 19)) << (27 - 19) out[9] = (inl >> 19) binary.Read(in, binary.LittleEndian, &inl) out[9] |= (inl % (1 << 14)) << (27 - 14) out[10] = (inl >> 14) binary.Read(in, binary.LittleEndian, &inl) out[10] |= (inl % (1 << 9)) << (27 - 9) out[11] = (inl >> 9) binary.Read(in, binary.LittleEndian, &inl) out[11] |= (inl % (1 << 4)) << (27 - 4) out[12] = (inl >> 4) % (1 << 27) out[13] = (inl >> 31) binary.Read(in, binary.LittleEndian, &inl) out[13] |= (inl % (1 << 26)) << (27 - 26) out[14] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[14] |= (inl % (1 << 21)) << (27 - 21) out[15] = (inl >> 21) binary.Read(in, binary.LittleEndian, &inl) out[15] |= (inl % (1 << 16)) << (27 - 16) out[16] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[16] |= (inl % (1 << 11)) << (27 - 11) out[17] = (inl >> 11) binary.Read(in, binary.LittleEndian, &inl) out[17] |= (inl % (1 << 6)) << (27 - 6) out[18] = (inl >> 6) binary.Read(in, binary.LittleEndian, &inl) out[18] |= (inl % (1 << 1)) << (27 - 1) out[19] = (inl >> 1) % (1 << 27) out[20] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[20] |= (inl % (1 << 23)) << (27 - 23) out[21] = (inl >> 23) binary.Read(in, binary.LittleEndian, &inl) out[21] |= (inl % (1 << 18)) << (27 - 18) out[22] = (inl >> 18) binary.Read(in, binary.LittleEndian, &inl) out[22] |= (inl % (1 << 13)) << (27 - 13) out[23] = (inl >> 13) binary.Read(in, binary.LittleEndian, &inl) out[23] |= (inl % (1 << 8)) << (27 - 8) out[24] = (inl >> 8) binary.Read(in, binary.LittleEndian, &inl) out[24] |= (inl % (1 << 3)) << (27 - 3) out[25] = (inl >> 3) % (1 << 27) out[26] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[26] |= (inl % (1 << 25)) << (27 - 25) out[27] = (inl >> 25) binary.Read(in, binary.LittleEndian, &inl) out[27] |= (inl % (1 << 20)) << (27 - 20) out[28] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[28] |= (inl % (1 << 15)) << (27 - 15) out[29] = (inl >> 15) binary.Read(in, binary.LittleEndian, &inl) out[29] |= (inl % (1 << 10)) << (27 - 10) out[30] = (inl >> 10) binary.Read(in, binary.LittleEndian, &inl) out[30] |= (inl % (1 << 5)) << (27 - 5) out[31] = (inl >> 5) } func unpack28_32(in io.Reader, out []uint32) { var inl uint32 for i := 0; i < 4; i++ { base := i * 8 binary.Read(in, binary.LittleEndian, &inl) out[base] = (inl >> 0) % (1 << 28) out[base+1] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[base+1] |= (inl % (1 << 24)) << (28 - 24) out[base+2] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[base+2] |= (inl % (1 << 20)) << (28 - 20) out[base+3] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[base+3] |= (inl % (1 << 16)) << (28 - 16) out[base+4] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[base+4] |= (inl % (1 << 12)) << (28 - 12) out[base+5] = (inl >> 12) binary.Read(in, binary.LittleEndian, &inl) out[base+5] |= (inl % (1 << 8)) << (28 - 8) out[base+6] = (inl >> 8) binary.Read(in, binary.LittleEndian, &inl) out[base+6] |= (inl % (1 << 4)) << (28 - 4) out[base+7] = (inl >> 4) } } func unpack29_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 29) out[1] = (inl >> 29) binary.Read(in, binary.LittleEndian, &inl) out[1] |= (inl % (1 << 26)) << (29 - 26) out[2] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[2] |= (inl % (1 << 23)) << (29 - 23) out[3] = (inl >> 23) binary.Read(in, binary.LittleEndian, &inl) out[3] |= (inl % (1 << 20)) << (29 - 20) out[4] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[4] |= (inl % (1 << 17)) << (29 - 17) out[5] = (inl >> 17) binary.Read(in, binary.LittleEndian, &inl) out[5] |= (inl % (1 << 14)) << (29 - 14) out[6] = (inl >> 14) binary.Read(in, binary.LittleEndian, &inl) out[6] |= (inl % (1 << 11)) << (29 - 11) out[7] = (inl >> 11) binary.Read(in, binary.LittleEndian, &inl) out[7] |= (inl % (1 << 8)) << (29 - 8) out[8] = (inl >> 8) binary.Read(in, binary.LittleEndian, &inl) out[8] |= (inl % (1 << 5)) << (29 - 5) out[9] = (inl >> 5) binary.Read(in, binary.LittleEndian, &inl) out[9] |= (inl % (1 << 2)) << (29 - 2) out[10] = (inl >> 2) % (1 << 29) out[11] = (inl >> 31) binary.Read(in, binary.LittleEndian, &inl) out[11] |= (inl % (1 << 28)) << (29 - 28) out[12] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[12] |= (inl % (1 << 25)) << (29 - 25) out[13] = (inl >> 25) binary.Read(in, binary.LittleEndian, &inl) out[13] |= (inl % (1 << 22)) << (29 - 22) out[14] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[14] |= (inl % (1 << 19)) << (29 - 19) out[15] = (inl >> 19) binary.Read(in, binary.LittleEndian, &inl) out[15] |= (inl % (1 << 16)) << (29 - 16) out[16] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[16] |= (inl % (1 << 13)) << (29 - 13) out[17] = (inl >> 13) binary.Read(in, binary.LittleEndian, &inl) out[17] |= (inl % (1 << 10)) << (29 - 10) out[18] = (inl >> 10) binary.Read(in, binary.LittleEndian, &inl) out[18] |= (inl % (1 << 7)) << (29 - 7) out[19] = (inl >> 7) binary.Read(in, binary.LittleEndian, &inl) out[19] |= (inl % (1 << 4)) << (29 - 4) out[20] = (inl >> 4) binary.Read(in, binary.LittleEndian, &inl) out[20] |= (inl % (1 << 1)) << (29 - 1) out[21] = (inl >> 1) % (1 << 29) out[22] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[22] |= (inl % (1 << 27)) << (29 - 27) out[23] = (inl >> 27) binary.Read(in, binary.LittleEndian, &inl) out[23] |= (inl % (1 << 24)) << (29 - 24) out[24] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[24] |= (inl % (1 << 21)) << (29 - 21) out[25] = (inl >> 21) binary.Read(in, binary.LittleEndian, &inl) out[25] |= (inl % (1 << 18)) << (29 - 18) out[26] = (inl >> 18) binary.Read(in, binary.LittleEndian, &inl) out[26] |= (inl % (1 << 15)) << (29 - 15) out[27] = (inl >> 15) binary.Read(in, binary.LittleEndian, &inl) out[27] |= (inl % (1 << 12)) << (29 - 12) out[28] = (inl >> 12) binary.Read(in, binary.LittleEndian, &inl) out[28] |= (inl % (1 << 9)) << (29 - 9) out[29] = (inl >> 9) binary.Read(in, binary.LittleEndian, &inl) out[29] |= (inl % (1 << 6)) << (29 - 6) out[30] = (inl >> 6) binary.Read(in, binary.LittleEndian, &inl) out[30] |= (inl % (1 << 3)) << (29 - 3) out[31] = (inl >> 3) } func unpack30_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 30) out[1] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[1] |= (inl % (1 << 28)) << (30 - 28) out[2] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[2] |= (inl % (1 << 26)) << (30 - 26) out[3] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[3] |= (inl % (1 << 24)) << (30 - 24) out[4] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[4] |= (inl % (1 << 22)) << (30 - 22) out[5] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[5] |= (inl % (1 << 20)) << (30 - 20) out[6] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[6] |= (inl % (1 << 18)) << (30 - 18) out[7] = (inl >> 18) binary.Read(in, binary.LittleEndian, &inl) out[7] |= (inl % (1 << 16)) << (30 - 16) out[8] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[8] |= (inl % (1 << 14)) << (30 - 14) out[9] = (inl >> 14) binary.Read(in, binary.LittleEndian, &inl) out[9] |= (inl % (1 << 12)) << (30 - 12) out[10] = (inl >> 12) binary.Read(in, binary.LittleEndian, &inl) out[10] |= (inl % (1 << 10)) << (30 - 10) out[11] = (inl >> 10) binary.Read(in, binary.LittleEndian, &inl) out[11] |= (inl % (1 << 8)) << (30 - 8) out[12] = (inl >> 8) binary.Read(in, binary.LittleEndian, &inl) out[12] |= (inl % (1 << 6)) << (30 - 6) out[13] = (inl >> 6) binary.Read(in, binary.LittleEndian, &inl) out[13] |= (inl % (1 << 4)) << (30 - 4) out[14] = (inl >> 4) binary.Read(in, binary.LittleEndian, &inl) out[14] |= (inl % (1 << 2)) << (30 - 2) out[15] = (inl >> 2) binary.Read(in, binary.LittleEndian, &inl) out[16] = (inl >> 0) % (1 << 30) out[17] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[17] |= (inl % (1 << 28)) << (30 - 28) out[18] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[18] |= (inl % (1 << 26)) << (30 - 26) out[19] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[19] |= (inl % (1 << 24)) << (30 - 24) out[20] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[20] |= (inl % (1 << 22)) << (30 - 22) out[21] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[21] |= (inl % (1 << 20)) << (30 - 20) out[22] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[22] |= (inl % (1 << 18)) << (30 - 18) out[23] = (inl >> 18) binary.Read(in, binary.LittleEndian, &inl) out[23] |= (inl % (1 << 16)) << (30 - 16) out[24] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[24] |= (inl % (1 << 14)) << (30 - 14) out[25] = (inl >> 14) binary.Read(in, binary.LittleEndian, &inl) out[25] |= (inl % (1 << 12)) << (30 - 12) out[26] = (inl >> 12) binary.Read(in, binary.LittleEndian, &inl) out[26] |= (inl % (1 << 10)) << (30 - 10) out[27] = (inl >> 10) binary.Read(in, binary.LittleEndian, &inl) out[27] |= (inl % (1 << 8)) << (30 - 8) out[28] = (inl >> 8) binary.Read(in, binary.LittleEndian, &inl) out[28] |= (inl % (1 << 6)) << (30 - 6) out[29] = (inl >> 6) binary.Read(in, binary.LittleEndian, &inl) out[29] |= (inl % (1 << 4)) << (30 - 4) out[30] = (inl >> 4) binary.Read(in, binary.LittleEndian, &inl) out[30] |= (inl % (1 << 2)) << (30 - 2) out[31] = (inl >> 2) } func unpack31_32(in io.Reader, out []uint32) { var inl uint32 binary.Read(in, binary.LittleEndian, &inl) out[0] = (inl >> 0) % (1 << 31) out[1] = (inl >> 31) binary.Read(in, binary.LittleEndian, &inl) out[1] |= (inl % (1 << 30)) << (31 - 30) out[2] = (inl >> 30) binary.Read(in, binary.LittleEndian, &inl) out[2] |= (inl % (1 << 29)) << (31 - 29) out[3] = (inl >> 29) binary.Read(in, binary.LittleEndian, &inl) out[3] |= (inl % (1 << 28)) << (31 - 28) out[4] = (inl >> 28) binary.Read(in, binary.LittleEndian, &inl) out[4] |= (inl % (1 << 27)) << (31 - 27) out[5] = (inl >> 27) binary.Read(in, binary.LittleEndian, &inl) out[5] |= (inl % (1 << 26)) << (31 - 26) out[6] = (inl >> 26) binary.Read(in, binary.LittleEndian, &inl) out[6] |= (inl % (1 << 25)) << (31 - 25) out[7] = (inl >> 25) binary.Read(in, binary.LittleEndian, &inl) out[7] |= (inl % (1 << 24)) << (31 - 24) out[8] = (inl >> 24) binary.Read(in, binary.LittleEndian, &inl) out[8] |= (inl % (1 << 23)) << (31 - 23) out[9] = (inl >> 23) binary.Read(in, binary.LittleEndian, &inl) out[9] |= (inl % (1 << 22)) << (31 - 22) out[10] = (inl >> 22) binary.Read(in, binary.LittleEndian, &inl) out[10] |= (inl % (1 << 21)) << (31 - 21) out[11] = (inl >> 21) binary.Read(in, binary.LittleEndian, &inl) out[11] |= (inl % (1 << 20)) << (31 - 20) out[12] = (inl >> 20) binary.Read(in, binary.LittleEndian, &inl) out[12] |= (inl % (1 << 19)) << (31 - 19) out[13] = (inl >> 19) binary.Read(in, binary.LittleEndian, &inl) out[13] |= (inl % (1 << 18)) << (31 - 18) out[14] = (inl >> 18) binary.Read(in, binary.LittleEndian, &inl) out[14] |= (inl % (1 << 17)) << (31 - 17) out[15] = (inl >> 17) binary.Read(in, binary.LittleEndian, &inl) out[15] |= (inl % (1 << 16)) << (31 - 16) out[16] = (inl >> 16) binary.Read(in, binary.LittleEndian, &inl) out[16] |= (inl % (1 << 15)) << (31 - 15) out[17] = (inl >> 15) binary.Read(in, binary.LittleEndian, &inl) out[17] |= (inl % (1 << 14)) << (31 - 14) out[18] = (inl >> 14) binary.Read(in, binary.LittleEndian, &inl) out[18] |= (inl % (1 << 13)) << (31 - 13) out[19] = (inl >> 13) binary.Read(in, binary.LittleEndian, &inl) out[19] |= (inl % (1 << 12)) << (31 - 12) out[20] = (inl >> 12) binary.Read(in, binary.LittleEndian, &inl) out[20] |= (inl % (1 << 11)) << (31 - 11) out[21] = (inl >> 11) binary.Read(in, binary.LittleEndian, &inl) out[21] |= (inl % (1 << 10)) << (31 - 10) out[22] = (inl >> 10) binary.Read(in, binary.LittleEndian, &inl) out[22] |= (inl % (1 << 9)) << (31 - 9) out[23] = (inl >> 9) binary.Read(in, binary.LittleEndian, &inl) out[23] |= (inl % (1 << 8)) << (31 - 8) out[24] = (inl >> 8) binary.Read(in, binary.LittleEndian, &inl) out[24] |= (inl % (1 << 7)) << (31 - 7) out[25] = (inl >> 7) binary.Read(in, binary.LittleEndian, &inl) out[25] |= (inl % (1 << 6)) << (31 - 6) out[26] = (inl >> 6) binary.Read(in, binary.LittleEndian, &inl) out[26] |= (inl % (1 << 5)) << (31 - 5) out[27] = (inl >> 5) binary.Read(in, binary.LittleEndian, &inl) out[27] |= (inl % (1 << 4)) << (31 - 4) out[28] = (inl >> 4) binary.Read(in, binary.LittleEndian, &inl) out[28] |= (inl % (1 << 3)) << (31 - 3) out[29] = (inl >> 3) binary.Read(in, binary.LittleEndian, &inl) out[29] |= (inl % (1 << 2)) << (31 - 2) out[30] = (inl >> 2) binary.Read(in, binary.LittleEndian, &inl) out[30] |= (inl % (1 << 1)) << (31 - 1) out[31] = (inl >> 1) } func unpack32_32(in io.Reader, out []uint32) { for idx := range out[:32] { binary.Read(in, binary.LittleEndian, &out[idx]) } } func nullunpack32(_ io.Reader, out []uint32) { out[0] = 0 for i := 1; i < 32; i *= 2 { copy(out[i:], out[:i]) } } func unpack32Default(in io.Reader, out []uint32, nbits int) int { batch := len(out) / 32 * 32 nloops := batch / 32 var f unpackFunc switch nbits { case 0: f = nullunpack32 case 1: f = unpack1_32 case 2: f = unpack2_32 case 3: f = unpack3_32 case 4: f = unpack4_32 case 5: f = unpack5_32 case 6: f = unpack6_32 case 7: f = unpack7_32 case 8: f = unpack8_32 case 9: f = unpack9_32 case 10: f = unpack10_32 case 11: f = unpack11_32 case 12: f = unpack12_32 case 13: f = unpack13_32 case 14: f = unpack14_32 case 15: f = unpack15_32 case 16: f = unpack16_32 case 17: f = unpack17_32 case 18: f = unpack18_32 case 19: f = unpack19_32 case 20: f = unpack20_32 case 21: f = unpack21_32 case 22: f = unpack22_32 case 23: f = unpack23_32 case 24: f = unpack24_32 case 25: f = unpack25_32 case 26: f = unpack26_32 case 27: f = unpack27_32 case 28: f = unpack28_32 case 29: f = unpack29_32 case 30: f = unpack30_32 case 31: f = unpack31_32 case 32: f = unpack32_32 default: return 0 } for i := 0; i < nloops; i++ { f(in, out[i*32:]) } return batch }