1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package utils
18
19 import (
20 "encoding/binary"
21 "io"
22 )
23
24 var unpack32 func(io.Reader, []uint32, int) int = unpack32Default
25
26 type unpackFunc func(in io.Reader, out []uint32)
27
28 func unpack1_32(in io.Reader, out []uint32) {
29 var inl uint32
30 binary.Read(in, binary.LittleEndian, &inl)
31 for idx := range out[:32] {
32 out[idx] = (inl >> idx) & 1
33 }
34 }
35
36 func unpack2_32(in io.Reader, out []uint32) {
37 var inl uint32
38 binary.Read(in, binary.LittleEndian, &inl)
39 out[0] = (inl >> 0) % (1 << 2)
40 out[1] = (inl >> 2) % (1 << 2)
41 out[2] = (inl >> 4) % (1 << 2)
42 out[3] = (inl >> 6) % (1 << 2)
43 out[4] = (inl >> 8) % (1 << 2)
44 out[5] = (inl >> 10) % (1 << 2)
45 out[6] = (inl >> 12) % (1 << 2)
46 out[7] = (inl >> 14) % (1 << 2)
47 out[8] = (inl >> 16) % (1 << 2)
48 out[9] = (inl >> 18) % (1 << 2)
49 out[10] = (inl >> 20) % (1 << 2)
50 out[11] = (inl >> 22) % (1 << 2)
51 out[12] = (inl >> 24) % (1 << 2)
52 out[13] = (inl >> 26) % (1 << 2)
53 out[14] = (inl >> 28) % (1 << 2)
54 out[15] = (inl >> 30)
55 binary.Read(in, binary.LittleEndian, &inl)
56 out[16] = (inl >> 0) % (1 << 2)
57 out[17] = (inl >> 2) % (1 << 2)
58 out[18] = (inl >> 4) % (1 << 2)
59 out[19] = (inl >> 6) % (1 << 2)
60 out[20] = (inl >> 8) % (1 << 2)
61 out[21] = (inl >> 10) % (1 << 2)
62 out[22] = (inl >> 12) % (1 << 2)
63 out[23] = (inl >> 14) % (1 << 2)
64 out[24] = (inl >> 16) % (1 << 2)
65 out[25] = (inl >> 18) % (1 << 2)
66 out[26] = (inl >> 20) % (1 << 2)
67 out[27] = (inl >> 22) % (1 << 2)
68 out[28] = (inl >> 24) % (1 << 2)
69 out[29] = (inl >> 26) % (1 << 2)
70 out[30] = (inl >> 28) % (1 << 2)
71 out[31] = (inl >> 30)
72 }
73
74 func unpack3_32(in io.Reader, out []uint32) {
75 var inl uint32
76 binary.Read(in, binary.LittleEndian, &inl)
77 out[0] = (inl >> 0) % (1 << 3)
78 out[1] = (inl >> 3) % (1 << 3)
79 out[2] = (inl >> 6) % (1 << 3)
80 out[3] = (inl >> 9) % (1 << 3)
81 out[4] = (inl >> 12) % (1 << 3)
82 out[5] = (inl >> 15) % (1 << 3)
83 out[6] = (inl >> 18) % (1 << 3)
84 out[7] = (inl >> 21) % (1 << 3)
85 out[8] = (inl >> 24) % (1 << 3)
86 out[9] = (inl >> 27) % (1 << 3)
87 out[10] = (inl >> 30)
88 binary.Read(in, binary.LittleEndian, &inl)
89 out[10] |= (inl % (1 << 1)) << (3 - 1)
90 out[11] = (inl >> 1) % (1 << 3)
91 out[12] = (inl >> 4) % (1 << 3)
92 out[13] = (inl >> 7) % (1 << 3)
93 out[14] = (inl >> 10) % (1 << 3)
94 out[15] = (inl >> 13) % (1 << 3)
95 out[16] = (inl >> 16) % (1 << 3)
96 out[17] = (inl >> 19) % (1 << 3)
97 out[18] = (inl >> 22) % (1 << 3)
98 out[19] = (inl >> 25) % (1 << 3)
99 out[20] = (inl >> 28) % (1 << 3)
100 out[21] = (inl >> 31) % (1 << 3)
101 binary.Read(in, binary.LittleEndian, &inl)
102 out[21] |= (inl % (1 << 2)) << (3 - 2)
103 out[22] = (inl >> 2) % (1 << 3)
104 out[23] = (inl >> 5) % (1 << 3)
105 out[24] = (inl >> 8) % (1 << 3)
106 out[25] = (inl >> 11) % (1 << 3)
107 out[26] = (inl >> 14) % (1 << 3)
108 out[27] = (inl >> 17) % (1 << 3)
109 out[28] = (inl >> 20) % (1 << 3)
110 out[29] = (inl >> 23) % (1 << 3)
111 out[30] = (inl >> 26) % (1 << 3)
112 out[31] = (inl >> 29)
113 }
114
115 func unpack4_32(in io.Reader, out []uint32) {
116 var inl uint32
117 binary.Read(in, binary.LittleEndian, &inl)
118 for i := 0; i < 28; i += 4 {
119 out[i/4] = (inl >> i) % (1 << 4)
120 }
121 out[7] = (inl >> 28)
122 binary.Read(in, binary.LittleEndian, &inl)
123 for i := 0; i < 28; i += 4 {
124 out[8+i/4] = (inl >> i) % (1 << 4)
125 }
126 out[15] = (inl >> 28)
127 binary.Read(in, binary.LittleEndian, &inl)
128 for i := 0; i < 28; i += 4 {
129 out[16+i/4] = (inl >> i) % (1 << 4)
130 }
131 out[23] = (inl >> 28)
132 binary.Read(in, binary.LittleEndian, &inl)
133 for i := 0; i < 28; i += 4 {
134 out[24+i/4] = (inl >> i) % (1 << 4)
135 }
136 out[31] = (inl >> 28)
137 }
138
139 func unpack5_32(in io.Reader, out []uint32) {
140 var inl uint32
141 binary.Read(in, binary.LittleEndian, &inl)
142 out[0] = (inl >> 0) % (1 << 5)
143 out[1] = (inl >> 5) % (1 << 5)
144 out[2] = (inl >> 10) % (1 << 5)
145 out[3] = (inl >> 15) % (1 << 5)
146 out[4] = (inl >> 20) % (1 << 5)
147 out[5] = (inl >> 25) % (1 << 5)
148 out[6] = (inl >> 30)
149 binary.Read(in, binary.LittleEndian, &inl)
150 out[6] |= (inl % (1 << 3)) << (5 - 3)
151 out[7] = (inl >> 3) % (1 << 5)
152 out[8] = (inl >> 8) % (1 << 5)
153 out[9] = (inl >> 13) % (1 << 5)
154 out[10] = (inl >> 18) % (1 << 5)
155 out[11] = (inl >> 23) % (1 << 5)
156 out[12] = (inl >> 28)
157 binary.Read(in, binary.LittleEndian, &inl)
158 out[12] |= (inl % (1 << 1)) << (5 - 1)
159 out[13] = (inl >> 1) % (1 << 5)
160 out[14] = (inl >> 6) % (1 << 5)
161 out[15] = (inl >> 11) % (1 << 5)
162 out[16] = (inl >> 16) % (1 << 5)
163 out[17] = (inl >> 21) % (1 << 5)
164 out[18] = (inl >> 26) % (1 << 5)
165 out[19] = (inl >> 31)
166 binary.Read(in, binary.LittleEndian, &inl)
167 out[19] |= (inl % (1 << 4)) << (5 - 4)
168 out[20] = (inl >> 4) % (1 << 5)
169 out[21] = (inl >> 9) % (1 << 5)
170 out[22] = (inl >> 14) % (1 << 5)
171 out[23] = (inl >> 19) % (1 << 5)
172 out[24] = (inl >> 24) % (1 << 5)
173 out[25] = (inl >> 29)
174 binary.Read(in, binary.LittleEndian, &inl)
175 out[25] |= (inl % (1 << 2)) << (5 - 2)
176 out[26] = (inl >> 2) % (1 << 5)
177 out[27] = (inl >> 7) % (1 << 5)
178 out[28] = (inl >> 12) % (1 << 5)
179 out[29] = (inl >> 17) % (1 << 5)
180 out[30] = (inl >> 22) % (1 << 5)
181 out[31] = (inl >> 27)
182 }
183
184 func unpack6_32(in io.Reader, out []uint32) {
185 var inl uint32
186 binary.Read(in, binary.LittleEndian, &inl)
187 out[0] = (inl >> 0) % (1 << 6)
188 out[1] = (inl >> 6) % (1 << 6)
189 out[2] = (inl >> 12) % (1 << 6)
190 out[3] = (inl >> 18) % (1 << 6)
191 out[4] = (inl >> 24) % (1 << 6)
192 out[5] = (inl >> 30)
193 binary.Read(in, binary.LittleEndian, &inl)
194 out[5] |= (inl % (1 << 4)) << (6 - 4)
195 out[6] = (inl >> 4) % (1 << 6)
196 out[7] = (inl >> 10) % (1 << 6)
197 out[8] = (inl >> 16) % (1 << 6)
198 out[9] = (inl >> 22) % (1 << 6)
199 out[10] = (inl >> 28)
200 binary.Read(in, binary.LittleEndian, &inl)
201 out[10] |= (inl % (1 << 2)) << (6 - 2)
202 out[11] = (inl >> 2) % (1 << 6)
203 out[12] = (inl >> 8) % (1 << 6)
204 out[13] = (inl >> 14) % (1 << 6)
205 out[14] = (inl >> 20) % (1 << 6)
206 out[15] = (inl >> 26)
207 binary.Read(in, binary.LittleEndian, &inl)
208 out[16] = (inl >> 0) % (1 << 6)
209 out[17] = (inl >> 6) % (1 << 6)
210 out[18] = (inl >> 12) % (1 << 6)
211 out[19] = (inl >> 18) % (1 << 6)
212 out[20] = (inl >> 24) % (1 << 6)
213 out[21] = (inl >> 30)
214 binary.Read(in, binary.LittleEndian, &inl)
215 out[21] |= (inl % (1 << 4)) << (6 - 4)
216 out[22] = (inl >> 4) % (1 << 6)
217 out[23] = (inl >> 10) % (1 << 6)
218 out[24] = (inl >> 16) % (1 << 6)
219 out[25] = (inl >> 22) % (1 << 6)
220 out[26] = (inl >> 28)
221 binary.Read(in, binary.LittleEndian, &inl)
222 out[26] |= (inl % (1 << 2)) << (6 - 2)
223 out[27] = (inl >> 2) % (1 << 6)
224 out[28] = (inl >> 8) % (1 << 6)
225 out[29] = (inl >> 14) % (1 << 6)
226 out[30] = (inl >> 20) % (1 << 6)
227 out[31] = (inl >> 26)
228 }
229
230 func unpack7_32(in io.Reader, out []uint32) {
231 var inl uint32
232 binary.Read(in, binary.LittleEndian, &inl)
233 out[0] = (inl >> 0) % (1 << 7)
234 out[1] = (inl >> 7) % (1 << 7)
235 out[2] = (inl >> 14) % (1 << 7)
236 out[3] = (inl >> 21) % (1 << 7)
237 out[4] = (inl >> 28)
238 binary.Read(in, binary.LittleEndian, &inl)
239 out[4] |= (inl % (1 << 3)) << (7 - 3)
240 out[5] = (inl >> 3) % (1 << 7)
241 out[6] = (inl >> 10) % (1 << 7)
242 out[7] = (inl >> 17) % (1 << 7)
243 out[8] = (inl >> 24) % (1 << 7)
244 out[9] = (inl >> 31)
245 binary.Read(in, binary.LittleEndian, &inl)
246 out[9] |= (inl % (1 << 6)) << (7 - 6)
247 out[10] = (inl >> 6) % (1 << 7)
248 out[11] = (inl >> 13) % (1 << 7)
249 out[12] = (inl >> 20) % (1 << 7)
250 out[13] = (inl >> 27)
251 binary.Read(in, binary.LittleEndian, &inl)
252 out[13] |= (inl % (1 << 2)) << (7 - 2)
253 out[14] = (inl >> 2) % (1 << 7)
254 out[15] = (inl >> 9) % (1 << 7)
255 out[16] = (inl >> 16) % (1 << 7)
256 out[17] = (inl >> 23) % (1 << 7)
257 out[18] = (inl >> 30)
258 binary.Read(in, binary.LittleEndian, &inl)
259 out[18] |= (inl % (1 << 5)) << (7 - 5)
260 out[19] = (inl >> 5) % (1 << 7)
261 out[20] = (inl >> 12) % (1 << 7)
262 out[21] = (inl >> 19) % (1 << 7)
263 out[22] = (inl >> 26)
264 binary.Read(in, binary.LittleEndian, &inl)
265 out[22] |= (inl % (1 << 1)) << (7 - 1)
266 out[23] = (inl >> 1) % (1 << 7)
267 out[24] = (inl >> 8) % (1 << 7)
268 out[25] = (inl >> 15) % (1 << 7)
269 out[26] = (inl >> 22) % (1 << 7)
270 out[27] = (inl >> 29)
271 binary.Read(in, binary.LittleEndian, &inl)
272 out[27] |= (inl % (1 << 4)) << (7 - 4)
273 out[28] = (inl >> 4) % (1 << 7)
274 out[29] = (inl >> 11) % (1 << 7)
275 out[30] = (inl >> 18) % (1 << 7)
276 out[31] = (inl >> 25)
277 }
278
279 func unpack8_32(in io.Reader, out []uint32) {
280 var inl uint32
281 binary.Read(in, binary.LittleEndian, &inl)
282 for i := 0; i < 24; i += 8 {
283 out[0+i/8] = (inl >> i) % (1 << 8)
284 }
285 out[3] = (inl >> 24)
286 binary.Read(in, binary.LittleEndian, &inl)
287 for i := 0; i < 24; i += 8 {
288 out[4+i/8] = (inl >> i) % (1 << 8)
289 }
290 out[7] = (inl >> 24)
291 binary.Read(in, binary.LittleEndian, &inl)
292 for i := 0; i < 24; i += 8 {
293 out[8+i/8] = (inl >> i) % (1 << 8)
294 }
295 out[11] = (inl >> 24)
296 binary.Read(in, binary.LittleEndian, &inl)
297 for i := 0; i < 24; i += 8 {
298 out[12+i/8] = (inl >> i) % (1 << 8)
299 }
300 out[15] = (inl >> 24)
301 binary.Read(in, binary.LittleEndian, &inl)
302 for i := 0; i < 24; i += 8 {
303 out[16+i/8] = (inl >> i) % (1 << 8)
304 }
305 out[19] = (inl >> 24)
306 binary.Read(in, binary.LittleEndian, &inl)
307 for i := 0; i < 24; i += 8 {
308 out[20+i/8] = (inl >> i) % (1 << 8)
309 }
310 out[23] = (inl >> 24)
311 binary.Read(in, binary.LittleEndian, &inl)
312 for i := 0; i < 24; i += 8 {
313 out[24+i/8] = (inl >> i) % (1 << 8)
314 }
315 out[27] = (inl >> 24)
316 binary.Read(in, binary.LittleEndian, &inl)
317 for i := 0; i < 24; i += 8 {
318 out[28+i/8] = (inl >> i) % (1 << 8)
319 }
320 out[31] = (inl >> 24)
321 }
322
323 func unpack9_32(in io.Reader, out []uint32) {
324 var inl uint32
325 binary.Read(in, binary.LittleEndian, &inl)
326 out[0] = (inl >> 0) % (1 << 9)
327 out[1] = (inl >> 9) % (1 << 9)
328 out[2] = (inl >> 18) % (1 << 9)
329 out[3] = (inl >> 27)
330 binary.Read(in, binary.LittleEndian, &inl)
331 out[3] |= (inl % (1 << 4)) << (9 - 4)
332 out[4] = (inl >> 4) % (1 << 9)
333 out[5] = (inl >> 13) % (1 << 9)
334 out[6] = (inl >> 22) % (1 << 9)
335 out[7] = (inl >> 31)
336 binary.Read(in, binary.LittleEndian, &inl)
337 out[7] |= (inl % (1 << 8)) << (9 - 8)
338 out[8] = (inl >> 8) % (1 << 9)
339 out[9] = (inl >> 17) % (1 << 9)
340 out[10] = (inl >> 26)
341 binary.Read(in, binary.LittleEndian, &inl)
342 out[10] |= (inl % (1 << 3)) << (9 - 3)
343 out[11] = (inl >> 3) % (1 << 9)
344 out[12] = (inl >> 12) % (1 << 9)
345 out[13] = (inl >> 21) % (1 << 9)
346 out[14] = (inl >> 30)
347 binary.Read(in, binary.LittleEndian, &inl)
348 out[14] |= (inl % (1 << 7)) << (9 - 7)
349 out[15] = (inl >> 7) % (1 << 9)
350 out[16] = (inl >> 16) % (1 << 9)
351 out[17] = (inl >> 25)
352 binary.Read(in, binary.LittleEndian, &inl)
353 out[17] |= (inl % (1 << 2)) << (9 - 2)
354 out[18] = (inl >> 2) % (1 << 9)
355 out[19] = (inl >> 11) % (1 << 9)
356 out[20] = (inl >> 20) % (1 << 9)
357 out[21] = (inl >> 29)
358 binary.Read(in, binary.LittleEndian, &inl)
359 out[21] |= (inl % (1 << 6)) << (9 - 6)
360 out[22] = (inl >> 6) % (1 << 9)
361 out[23] = (inl >> 15) % (1 << 9)
362 out[24] = (inl >> 24)
363 binary.Read(in, binary.LittleEndian, &inl)
364 out[24] |= (inl % (1 << 1)) << (9 - 1)
365 out[25] = (inl >> 1) % (1 << 9)
366 out[26] = (inl >> 10) % (1 << 9)
367 out[27] = (inl >> 19) % (1 << 9)
368 out[28] = (inl >> 28)
369 binary.Read(in, binary.LittleEndian, &inl)
370 out[28] |= (inl % (1 << 5)) << (9 - 5)
371 out[29] = (inl >> 5) % (1 << 9)
372 out[30] = (inl >> 14) % (1 << 9)
373 out[31] = (inl >> 23)
374 }
375
376 func unpack10_32(in io.Reader, out []uint32) {
377 var inl uint32
378 binary.Read(in, binary.LittleEndian, &inl)
379 out[0] = (inl >> 0) % (1 << 10)
380 out[1] = (inl >> 10) % (1 << 10)
381 out[2] = (inl >> 20) % (1 << 10)
382 out[3] = (inl >> 30)
383 binary.Read(in, binary.LittleEndian, &inl)
384 out[3] |= (inl % (1 << 8)) << (10 - 8)
385 out[4] = (inl >> 8) % (1 << 10)
386 out[5] = (inl >> 18) % (1 << 10)
387 out[6] = (inl >> 28)
388 binary.Read(in, binary.LittleEndian, &inl)
389 out[6] |= (inl % (1 << 6)) << (10 - 6)
390 out[7] = (inl >> 6) % (1 << 10)
391 out[8] = (inl >> 16) % (1 << 10)
392 out[9] = (inl >> 26)
393 binary.Read(in, binary.LittleEndian, &inl)
394 out[9] |= (inl % (1 << 4)) << (10 - 4)
395 out[10] = (inl >> 4) % (1 << 10)
396 out[11] = (inl >> 14) % (1 << 10)
397 out[12] = (inl >> 24)
398 binary.Read(in, binary.LittleEndian, &inl)
399 out[12] |= (inl % (1 << 2)) << (10 - 2)
400 out[13] = (inl >> 2) % (1 << 10)
401 out[14] = (inl >> 12) % (1 << 10)
402 out[15] = (inl >> 22)
403 binary.Read(in, binary.LittleEndian, &inl)
404 out[16] = (inl >> 0) % (1 << 10)
405 out[17] = (inl >> 10) % (1 << 10)
406 out[18] = (inl >> 20) % (1 << 10)
407 out[19] = (inl >> 30)
408 binary.Read(in, binary.LittleEndian, &inl)
409 out[19] |= (inl % (1 << 8)) << (10 - 8)
410 out[20] = (inl >> 8) % (1 << 10)
411 out[21] = (inl >> 18) % (1 << 10)
412 out[22] = (inl >> 28)
413 binary.Read(in, binary.LittleEndian, &inl)
414 out[22] |= (inl % (1 << 6)) << (10 - 6)
415 out[23] = (inl >> 6) % (1 << 10)
416 out[24] = (inl >> 16) % (1 << 10)
417 out[25] = (inl >> 26)
418 binary.Read(in, binary.LittleEndian, &inl)
419 out[25] |= (inl % (1 << 4)) << (10 - 4)
420 out[26] = (inl >> 4) % (1 << 10)
421 out[27] = (inl >> 14) % (1 << 10)
422 out[28] = (inl >> 24)
423 binary.Read(in, binary.LittleEndian, &inl)
424 out[28] |= (inl % (1 << 2)) << (10 - 2)
425 out[29] = (inl >> 2) % (1 << 10)
426 out[30] = (inl >> 12) % (1 << 10)
427 out[31] = (inl >> 22)
428 }
429
430 func unpack11_32(in io.Reader, out []uint32) {
431 var inl uint32
432 binary.Read(in, binary.LittleEndian, &inl)
433 out[0] = (inl >> 0) % (1 << 11)
434 out[1] = (inl >> 11) % (1 << 11)
435 out[2] = (inl >> 22)
436 binary.Read(in, binary.LittleEndian, &inl)
437 out[2] |= (inl % (1 << 1)) << (11 - 1)
438 out[3] = (inl >> 1) % (1 << 11)
439 out[4] = (inl >> 12) % (1 << 11)
440 out[5] = (inl >> 23)
441 binary.Read(in, binary.LittleEndian, &inl)
442 out[5] |= (inl % (1 << 2)) << (11 - 2)
443 out[6] = (inl >> 2) % (1 << 11)
444 out[7] = (inl >> 13) % (1 << 11)
445 out[8] = (inl >> 24)
446 binary.Read(in, binary.LittleEndian, &inl)
447 out[8] |= (inl % (1 << 3)) << (11 - 3)
448 out[9] = (inl >> 3) % (1 << 11)
449 out[10] = (inl >> 14) % (1 << 11)
450 out[11] = (inl >> 25)
451 binary.Read(in, binary.LittleEndian, &inl)
452 out[11] |= (inl % (1 << 4)) << (11 - 4)
453 out[12] = (inl >> 4) % (1 << 11)
454 out[13] = (inl >> 15) % (1 << 11)
455 out[14] = (inl >> 26)
456 binary.Read(in, binary.LittleEndian, &inl)
457 out[14] |= (inl % (1 << 5)) << (11 - 5)
458 out[15] = (inl >> 5) % (1 << 11)
459 out[16] = (inl >> 16) % (1 << 11)
460 out[17] = (inl >> 27)
461 binary.Read(in, binary.LittleEndian, &inl)
462 out[17] |= (inl % (1 << 6)) << (11 - 6)
463 out[18] = (inl >> 6) % (1 << 11)
464 out[19] = (inl >> 17) % (1 << 11)
465 out[20] = (inl >> 28)
466 binary.Read(in, binary.LittleEndian, &inl)
467 out[20] |= (inl % (1 << 7)) << (11 - 7)
468 out[21] = (inl >> 7) % (1 << 11)
469 out[22] = (inl >> 18) % (1 << 11)
470 out[23] = (inl >> 29)
471 binary.Read(in, binary.LittleEndian, &inl)
472 out[23] |= (inl % (1 << 8)) << (11 - 8)
473 out[24] = (inl >> 8) % (1 << 11)
474 out[25] = (inl >> 19) % (1 << 11)
475 out[26] = (inl >> 30)
476 binary.Read(in, binary.LittleEndian, &inl)
477 out[26] |= (inl % (1 << 9)) << (11 - 9)
478 out[27] = (inl >> 9) % (1 << 11)
479 out[28] = (inl >> 20) % (1 << 11)
480 out[29] = (inl >> 31)
481 binary.Read(in, binary.LittleEndian, &inl)
482 out[29] |= (inl % (1 << 10)) << (11 - 10)
483 out[30] = (inl >> 10) % (1 << 11)
484 out[31] = (inl >> 21)
485 }
486
487 func unpack12_32(in io.Reader, out []uint32) {
488 var inl uint32
489 binary.Read(in, binary.LittleEndian, &inl)
490 out[0] = (inl >> 0) % (1 << 12)
491 out[1] = (inl >> 12) % (1 << 12)
492 out[2] = (inl >> 24)
493 binary.Read(in, binary.LittleEndian, &inl)
494 out[2] |= (inl % (1 << 4)) << (12 - 4)
495 out[3] = (inl >> 4) % (1 << 12)
496 out[4] = (inl >> 16) % (1 << 12)
497 out[5] = (inl >> 28)
498 binary.Read(in, binary.LittleEndian, &inl)
499 out[5] |= (inl % (1 << 8)) << (12 - 8)
500 out[6] = (inl >> 8) % (1 << 12)
501 out[7] = (inl >> 20)
502 binary.Read(in, binary.LittleEndian, &inl)
503 out[8] = (inl >> 0) % (1 << 12)
504 out[9] = (inl >> 12) % (1 << 12)
505 out[10] = (inl >> 24)
506 binary.Read(in, binary.LittleEndian, &inl)
507 out[10] |= (inl % (1 << 4)) << (12 - 4)
508 out[11] = (inl >> 4) % (1 << 12)
509 out[12] = (inl >> 16) % (1 << 12)
510 out[13] = (inl >> 28)
511 binary.Read(in, binary.LittleEndian, &inl)
512 out[13] |= (inl % (1 << 8)) << (12 - 8)
513 out[14] = (inl >> 8) % (1 << 12)
514 out[15] = (inl >> 20)
515 binary.Read(in, binary.LittleEndian, &inl)
516 out[16] = (inl >> 0) % (1 << 12)
517 out[17] = (inl >> 12) % (1 << 12)
518 out[18] = (inl >> 24)
519 binary.Read(in, binary.LittleEndian, &inl)
520 out[18] |= (inl % (1 << 4)) << (12 - 4)
521 out[19] = (inl >> 4) % (1 << 12)
522 out[20] = (inl >> 16) % (1 << 12)
523 out[21] = (inl >> 28)
524 binary.Read(in, binary.LittleEndian, &inl)
525 out[21] |= (inl % (1 << 8)) << (12 - 8)
526 out[22] = (inl >> 8) % (1 << 12)
527 out[23] = (inl >> 20)
528 binary.Read(in, binary.LittleEndian, &inl)
529 out[24] = (inl >> 0) % (1 << 12)
530 out[25] = (inl >> 12) % (1 << 12)
531 out[26] = (inl >> 24)
532 binary.Read(in, binary.LittleEndian, &inl)
533 out[26] |= (inl % (1 << 4)) << (12 - 4)
534 out[27] = (inl >> 4) % (1 << 12)
535 out[28] = (inl >> 16) % (1 << 12)
536 out[29] = (inl >> 28)
537 binary.Read(in, binary.LittleEndian, &inl)
538 out[29] |= (inl % (1 << 8)) << (12 - 8)
539 out[30] = (inl >> 8) % (1 << 12)
540 out[31] = (inl >> 20)
541 }
542
543 func unpack13_32(in io.Reader, out []uint32) {
544 var inl uint32
545 binary.Read(in, binary.LittleEndian, &inl)
546 out[0] = (inl >> 0) % (1 << 13)
547 out[1] = (inl >> 13) % (1 << 13)
548 out[2] = (inl >> 26)
549 binary.Read(in, binary.LittleEndian, &inl)
550 out[2] |= (inl % (1 << 7)) << (13 - 7)
551 out[3] = (inl >> 7) % (1 << 13)
552 out[4] = (inl >> 20)
553 binary.Read(in, binary.LittleEndian, &inl)
554 out[4] |= (inl % (1 << 1)) << (13 - 1)
555 out[5] = (inl >> 1) % (1 << 13)
556 out[6] = (inl >> 14) % (1 << 13)
557 out[7] = (inl >> 27)
558 binary.Read(in, binary.LittleEndian, &inl)
559 out[7] |= (inl % (1 << 8)) << (13 - 8)
560 out[8] = (inl >> 8) % (1 << 13)
561 out[9] = (inl >> 21)
562 binary.Read(in, binary.LittleEndian, &inl)
563 out[9] |= (inl % (1 << 2)) << (13 - 2)
564 out[10] = (inl >> 2) % (1 << 13)
565 out[11] = (inl >> 15) % (1 << 13)
566 out[12] = (inl >> 28)
567 binary.Read(in, binary.LittleEndian, &inl)
568 out[12] |= (inl % (1 << 9)) << (13 - 9)
569 out[13] = (inl >> 9) % (1 << 13)
570 out[14] = (inl >> 22)
571 binary.Read(in, binary.LittleEndian, &inl)
572 out[14] |= (inl % (1 << 3)) << (13 - 3)
573 out[15] = (inl >> 3) % (1 << 13)
574 out[16] = (inl >> 16) % (1 << 13)
575 out[17] = (inl >> 29)
576 binary.Read(in, binary.LittleEndian, &inl)
577 out[17] |= (inl % (1 << 10)) << (13 - 10)
578 out[18] = (inl >> 10) % (1 << 13)
579 out[19] = (inl >> 23)
580 binary.Read(in, binary.LittleEndian, &inl)
581 out[19] |= (inl % (1 << 4)) << (13 - 4)
582 out[20] = (inl >> 4) % (1 << 13)
583 out[21] = (inl >> 17) % (1 << 13)
584 out[22] = (inl >> 30)
585 binary.Read(in, binary.LittleEndian, &inl)
586 out[22] |= (inl % (1 << 11)) << (13 - 11)
587 out[23] = (inl >> 11) % (1 << 13)
588 out[24] = (inl >> 24)
589 binary.Read(in, binary.LittleEndian, &inl)
590 out[24] |= (inl % (1 << 5)) << (13 - 5)
591 out[25] = (inl >> 5) % (1 << 13)
592 out[26] = (inl >> 18) % (1 << 13)
593 out[27] = (inl >> 31)
594 binary.Read(in, binary.LittleEndian, &inl)
595 out[27] |= (inl % (1 << 12)) << (13 - 12)
596 out[28] = (inl >> 12) % (1 << 13)
597 out[29] = (inl >> 25)
598 binary.Read(in, binary.LittleEndian, &inl)
599 out[29] |= (inl % (1 << 6)) << (13 - 6)
600 out[30] = (inl >> 6) % (1 << 13)
601 out[31] = (inl >> 19)
602 }
603
604 func unpack14_32(in io.Reader, out []uint32) {
605 var inl uint32
606 binary.Read(in, binary.LittleEndian, &inl)
607 out[0] = (inl >> 0) % (1 << 14)
608 out[1] = (inl >> 14) % (1 << 14)
609 out[2] = (inl >> 28)
610 binary.Read(in, binary.LittleEndian, &inl)
611 out[2] |= (inl % (1 << 10)) << (14 - 10)
612 out[3] = (inl >> 10) % (1 << 14)
613 out[4] = (inl >> 24)
614 binary.Read(in, binary.LittleEndian, &inl)
615 out[4] |= (inl % (1 << 6)) << (14 - 6)
616 out[5] = (inl >> 6) % (1 << 14)
617 out[6] = (inl >> 20)
618 binary.Read(in, binary.LittleEndian, &inl)
619 out[6] |= (inl % (1 << 2)) << (14 - 2)
620 out[7] = (inl >> 2) % (1 << 14)
621 out[8] = (inl >> 16) % (1 << 14)
622 out[9] = (inl >> 30)
623 binary.Read(in, binary.LittleEndian, &inl)
624 out[9] |= (inl % (1 << 12)) << (14 - 12)
625 out[10] = (inl >> 12) % (1 << 14)
626 out[11] = (inl >> 26)
627 binary.Read(in, binary.LittleEndian, &inl)
628 out[11] |= (inl % (1 << 8)) << (14 - 8)
629 out[12] = (inl >> 8) % (1 << 14)
630 out[13] = (inl >> 22)
631 binary.Read(in, binary.LittleEndian, &inl)
632 out[13] |= (inl % (1 << 4)) << (14 - 4)
633 out[14] = (inl >> 4) % (1 << 14)
634 out[15] = (inl >> 18)
635 binary.Read(in, binary.LittleEndian, &inl)
636 out[16] = (inl >> 0) % (1 << 14)
637 out[17] = (inl >> 14) % (1 << 14)
638 out[18] = (inl >> 28)
639 binary.Read(in, binary.LittleEndian, &inl)
640 out[18] |= (inl % (1 << 10)) << (14 - 10)
641 out[19] = (inl >> 10) % (1 << 14)
642 out[20] = (inl >> 24)
643 binary.Read(in, binary.LittleEndian, &inl)
644 out[20] |= (inl % (1 << 6)) << (14 - 6)
645 out[21] = (inl >> 6) % (1 << 14)
646 out[22] = (inl >> 20)
647 binary.Read(in, binary.LittleEndian, &inl)
648 out[22] |= (inl % (1 << 2)) << (14 - 2)
649 out[23] = (inl >> 2) % (1 << 14)
650 out[24] = (inl >> 16) % (1 << 14)
651 out[25] = (inl >> 30)
652 binary.Read(in, binary.LittleEndian, &inl)
653 out[25] |= (inl % (1 << 12)) << (14 - 12)
654 out[26] = (inl >> 12) % (1 << 14)
655 out[27] = (inl >> 26)
656 binary.Read(in, binary.LittleEndian, &inl)
657 out[27] |= (inl % (1 << 8)) << (14 - 8)
658 out[28] = (inl >> 8) % (1 << 14)
659 out[29] = (inl >> 22)
660 binary.Read(in, binary.LittleEndian, &inl)
661 out[29] |= (inl % (1 << 4)) << (14 - 4)
662 out[30] = (inl >> 4) % (1 << 14)
663 out[31] = (inl >> 18)
664 }
665
666 func unpack15_32(in io.Reader, out []uint32) {
667 var inl uint32
668 binary.Read(in, binary.LittleEndian, &inl)
669 out[0] = (inl >> 0) % (1 << 15)
670 out[1] = (inl >> 15) % (1 << 15)
671 out[2] = (inl >> 30)
672 binary.Read(in, binary.LittleEndian, &inl)
673 out[2] |= (inl % (1 << 13)) << (15 - 13)
674 out[3] = (inl >> 13) % (1 << 15)
675 out[4] = (inl >> 28)
676 binary.Read(in, binary.LittleEndian, &inl)
677 out[4] |= (inl % (1 << 11)) << (15 - 11)
678 out[5] = (inl >> 11) % (1 << 15)
679 out[6] = (inl >> 26)
680 binary.Read(in, binary.LittleEndian, &inl)
681 out[6] |= (inl % (1 << 9)) << (15 - 9)
682 out[7] = (inl >> 9) % (1 << 15)
683 out[8] = (inl >> 24)
684 binary.Read(in, binary.LittleEndian, &inl)
685 out[8] |= (inl % (1 << 7)) << (15 - 7)
686 out[9] = (inl >> 7) % (1 << 15)
687 out[10] = (inl >> 22)
688 binary.Read(in, binary.LittleEndian, &inl)
689 out[10] |= (inl % (1 << 5)) << (15 - 5)
690 out[11] = (inl >> 5) % (1 << 15)
691 out[12] = (inl >> 20)
692 binary.Read(in, binary.LittleEndian, &inl)
693 out[12] |= (inl % (1 << 3)) << (15 - 3)
694 out[13] = (inl >> 3) % (1 << 15)
695 out[14] = (inl >> 18)
696 binary.Read(in, binary.LittleEndian, &inl)
697 out[14] |= (inl % (1 << 1)) << (15 - 1)
698 out[15] = (inl >> 1) % (1 << 15)
699 out[16] = (inl >> 16) % (1 << 15)
700 out[17] = (inl >> 31)
701 binary.Read(in, binary.LittleEndian, &inl)
702 out[17] |= (inl % (1 << 14)) << (15 - 14)
703 out[18] = (inl >> 14) % (1 << 15)
704 out[19] = (inl >> 29)
705 binary.Read(in, binary.LittleEndian, &inl)
706 out[19] |= (inl % (1 << 12)) << (15 - 12)
707 out[20] = (inl >> 12) % (1 << 15)
708 out[21] = (inl >> 27)
709 binary.Read(in, binary.LittleEndian, &inl)
710 out[21] |= (inl % (1 << 10)) << (15 - 10)
711 out[22] = (inl >> 10) % (1 << 15)
712 out[23] = (inl >> 25)
713 binary.Read(in, binary.LittleEndian, &inl)
714 out[23] |= (inl % (1 << 8)) << (15 - 8)
715 out[24] = (inl >> 8) % (1 << 15)
716 out[25] = (inl >> 23)
717 binary.Read(in, binary.LittleEndian, &inl)
718 out[25] |= (inl % (1 << 6)) << (15 - 6)
719 out[26] = (inl >> 6) % (1 << 15)
720 out[27] = (inl >> 21)
721 binary.Read(in, binary.LittleEndian, &inl)
722 out[27] |= (inl % (1 << 4)) << (15 - 4)
723 out[28] = (inl >> 4) % (1 << 15)
724 out[29] = (inl >> 19)
725 binary.Read(in, binary.LittleEndian, &inl)
726 out[29] |= (inl % (1 << 2)) << (15 - 2)
727 out[30] = (inl >> 2) % (1 << 15)
728 out[31] = (inl >> 17)
729 }
730
731 func unpack16_32(in io.Reader, out []uint32) {
732 var inl uint32
733 for i := 0; i < 16; i++ {
734 binary.Read(in, binary.LittleEndian, &inl)
735 out[i*2] = (inl >> 0) % (1 << 16)
736 out[(i*2)+1] = (inl >> 16)
737 }
738 }
739
740 func unpack17_32(in io.Reader, out []uint32) {
741 var inl uint32
742 binary.Read(in, binary.LittleEndian, &inl)
743 out[0] = (inl >> 0) % (1 << 17)
744 out[1] = (inl >> 17)
745 binary.Read(in, binary.LittleEndian, &inl)
746 out[1] |= (inl % (1 << 2)) << (17 - 2)
747 out[2] = (inl >> 2) % (1 << 17)
748 out[3] = (inl >> 19)
749 binary.Read(in, binary.LittleEndian, &inl)
750 out[3] |= (inl % (1 << 4)) << (17 - 4)
751 out[4] = (inl >> 4) % (1 << 17)
752 out[5] = (inl >> 21)
753 binary.Read(in, binary.LittleEndian, &inl)
754 out[5] |= (inl % (1 << 6)) << (17 - 6)
755 out[6] = (inl >> 6) % (1 << 17)
756 out[7] = (inl >> 23)
757 binary.Read(in, binary.LittleEndian, &inl)
758 out[7] |= (inl % (1 << 8)) << (17 - 8)
759 out[8] = (inl >> 8) % (1 << 17)
760 out[9] = (inl >> 25)
761 binary.Read(in, binary.LittleEndian, &inl)
762 out[9] |= (inl % (1 << 10)) << (17 - 10)
763 out[10] = (inl >> 10) % (1 << 17)
764 out[11] = (inl >> 27)
765 binary.Read(in, binary.LittleEndian, &inl)
766 out[11] |= (inl % (1 << 12)) << (17 - 12)
767 out[12] = (inl >> 12) % (1 << 17)
768 out[13] = (inl >> 29)
769 binary.Read(in, binary.LittleEndian, &inl)
770 out[13] |= (inl % (1 << 14)) << (17 - 14)
771 out[14] = (inl >> 14) % (1 << 17)
772 out[15] = (inl >> 31)
773 binary.Read(in, binary.LittleEndian, &inl)
774 out[15] |= (inl % (1 << 16)) << (17 - 16)
775 out[16] = (inl >> 16)
776 binary.Read(in, binary.LittleEndian, &inl)
777 out[16] |= (inl % (1 << 1)) << (17 - 1)
778 out[17] = (inl >> 1) % (1 << 17)
779 out[18] = (inl >> 18)
780 binary.Read(in, binary.LittleEndian, &inl)
781 out[18] |= (inl % (1 << 3)) << (17 - 3)
782 out[19] = (inl >> 3) % (1 << 17)
783 out[20] = (inl >> 20)
784 binary.Read(in, binary.LittleEndian, &inl)
785 out[20] |= (inl % (1 << 5)) << (17 - 5)
786 out[21] = (inl >> 5) % (1 << 17)
787 out[22] = (inl >> 22)
788 binary.Read(in, binary.LittleEndian, &inl)
789 out[22] |= (inl % (1 << 7)) << (17 - 7)
790 out[23] = (inl >> 7) % (1 << 17)
791 out[24] = (inl >> 24)
792 binary.Read(in, binary.LittleEndian, &inl)
793 out[24] |= (inl % (1 << 9)) << (17 - 9)
794 out[25] = (inl >> 9) % (1 << 17)
795 out[26] = (inl >> 26)
796 binary.Read(in, binary.LittleEndian, &inl)
797 out[26] |= (inl % (1 << 11)) << (17 - 11)
798 out[27] = (inl >> 11) % (1 << 17)
799 out[28] = (inl >> 28)
800 binary.Read(in, binary.LittleEndian, &inl)
801 out[28] |= (inl % (1 << 13)) << (17 - 13)
802 out[29] = (inl >> 13) % (1 << 17)
803 out[30] = (inl >> 30)
804 binary.Read(in, binary.LittleEndian, &inl)
805 out[30] |= (inl % (1 << 15)) << (17 - 15)
806 out[31] = (inl >> 15)
807 }
808
809 func unpack18_32(in io.Reader, out []uint32) {
810 var inl uint32
811 binary.Read(in, binary.LittleEndian, &inl)
812 out[0] = (inl >> 0) % (1 << 18)
813 out[1] = (inl >> 18)
814 binary.Read(in, binary.LittleEndian, &inl)
815 out[1] |= (inl % (1 << 4)) << (18 - 4)
816 out[2] = (inl >> 4) % (1 << 18)
817 out[3] = (inl >> 22)
818 binary.Read(in, binary.LittleEndian, &inl)
819 out[3] |= (inl % (1 << 8)) << (18 - 8)
820 out[4] = (inl >> 8) % (1 << 18)
821 out[5] = (inl >> 26)
822 binary.Read(in, binary.LittleEndian, &inl)
823 out[5] |= (inl % (1 << 12)) << (18 - 12)
824 out[6] = (inl >> 12) % (1 << 18)
825 out[7] = (inl >> 30)
826 binary.Read(in, binary.LittleEndian, &inl)
827 out[7] |= (inl % (1 << 16)) << (18 - 16)
828 out[8] = (inl >> 16)
829 binary.Read(in, binary.LittleEndian, &inl)
830 out[8] |= (inl % (1 << 2)) << (18 - 2)
831 out[9] = (inl >> 2) % (1 << 18)
832 out[10] = (inl >> 20)
833 binary.Read(in, binary.LittleEndian, &inl)
834 out[10] |= (inl % (1 << 6)) << (18 - 6)
835 out[11] = (inl >> 6) % (1 << 18)
836 out[12] = (inl >> 24)
837 binary.Read(in, binary.LittleEndian, &inl)
838 out[12] |= (inl % (1 << 10)) << (18 - 10)
839 out[13] = (inl >> 10) % (1 << 18)
840 out[14] = (inl >> 28)
841 binary.Read(in, binary.LittleEndian, &inl)
842 out[14] |= (inl % (1 << 14)) << (18 - 14)
843 out[15] = (inl >> 14)
844 binary.Read(in, binary.LittleEndian, &inl)
845 out[16] = (inl >> 0) % (1 << 18)
846 out[17] = (inl >> 18)
847 binary.Read(in, binary.LittleEndian, &inl)
848 out[17] |= (inl % (1 << 4)) << (18 - 4)
849 out[18] = (inl >> 4) % (1 << 18)
850 out[19] = (inl >> 22)
851 binary.Read(in, binary.LittleEndian, &inl)
852 out[19] |= (inl % (1 << 8)) << (18 - 8)
853 out[20] = (inl >> 8) % (1 << 18)
854 out[21] = (inl >> 26)
855 binary.Read(in, binary.LittleEndian, &inl)
856 out[21] |= (inl % (1 << 12)) << (18 - 12)
857 out[22] = (inl >> 12) % (1 << 18)
858 out[23] = (inl >> 30)
859 binary.Read(in, binary.LittleEndian, &inl)
860 out[23] |= (inl % (1 << 16)) << (18 - 16)
861 out[24] = (inl >> 16)
862 binary.Read(in, binary.LittleEndian, &inl)
863 out[24] |= (inl % (1 << 2)) << (18 - 2)
864 out[25] = (inl >> 2) % (1 << 18)
865 out[26] = (inl >> 20)
866 binary.Read(in, binary.LittleEndian, &inl)
867 out[26] |= (inl % (1 << 6)) << (18 - 6)
868 out[27] = (inl >> 6) % (1 << 18)
869 out[28] = (inl >> 24)
870 binary.Read(in, binary.LittleEndian, &inl)
871 out[28] |= (inl % (1 << 10)) << (18 - 10)
872 out[29] = (inl >> 10) % (1 << 18)
873 out[30] = (inl >> 28)
874 binary.Read(in, binary.LittleEndian, &inl)
875 out[30] |= (inl % (1 << 14)) << (18 - 14)
876 out[31] = (inl >> 14)
877 }
878
879 func unpack19_32(in io.Reader, out []uint32) {
880 var inl uint32
881 binary.Read(in, binary.LittleEndian, &inl)
882 out[0] = (inl >> 0) % (1 << 19)
883 out[1] = (inl >> 19)
884 binary.Read(in, binary.LittleEndian, &inl)
885 out[1] |= (inl % (1 << 6)) << (19 - 6)
886 out[2] = (inl >> 6) % (1 << 19)
887 out[3] = (inl >> 25)
888 binary.Read(in, binary.LittleEndian, &inl)
889 out[3] |= (inl % (1 << 12)) << (19 - 12)
890 out[4] = (inl >> 12) % (1 << 19)
891 out[5] = (inl >> 31)
892 binary.Read(in, binary.LittleEndian, &inl)
893 out[5] |= (inl % (1 << 18)) << (19 - 18)
894 out[6] = (inl >> 18)
895 binary.Read(in, binary.LittleEndian, &inl)
896 out[6] |= (inl % (1 << 5)) << (19 - 5)
897 out[7] = (inl >> 5) % (1 << 19)
898 out[8] = (inl >> 24)
899 binary.Read(in, binary.LittleEndian, &inl)
900 out[8] |= (inl % (1 << 11)) << (19 - 11)
901 out[9] = (inl >> 11) % (1 << 19)
902 out[10] = (inl >> 30)
903 binary.Read(in, binary.LittleEndian, &inl)
904 out[10] |= (inl % (1 << 17)) << (19 - 17)
905 out[11] = (inl >> 17)
906 binary.Read(in, binary.LittleEndian, &inl)
907 out[11] |= (inl % (1 << 4)) << (19 - 4)
908 out[12] = (inl >> 4) % (1 << 19)
909 out[13] = (inl >> 23)
910 binary.Read(in, binary.LittleEndian, &inl)
911 out[13] |= (inl % (1 << 10)) << (19 - 10)
912 out[14] = (inl >> 10) % (1 << 19)
913 out[15] = (inl >> 29)
914 binary.Read(in, binary.LittleEndian, &inl)
915 out[15] |= (inl % (1 << 16)) << (19 - 16)
916 out[16] = (inl >> 16)
917 binary.Read(in, binary.LittleEndian, &inl)
918 out[16] |= (inl % (1 << 3)) << (19 - 3)
919 out[17] = (inl >> 3) % (1 << 19)
920 out[18] = (inl >> 22)
921 binary.Read(in, binary.LittleEndian, &inl)
922 out[18] |= (inl % (1 << 9)) << (19 - 9)
923 out[19] = (inl >> 9) % (1 << 19)
924 out[20] = (inl >> 28)
925 binary.Read(in, binary.LittleEndian, &inl)
926 out[20] |= (inl % (1 << 15)) << (19 - 15)
927 out[21] = (inl >> 15)
928 binary.Read(in, binary.LittleEndian, &inl)
929 out[21] |= (inl % (1 << 2)) << (19 - 2)
930 out[22] = (inl >> 2) % (1 << 19)
931 out[23] = (inl >> 21)
932 binary.Read(in, binary.LittleEndian, &inl)
933 out[23] |= (inl % (1 << 8)) << (19 - 8)
934 out[24] = (inl >> 8) % (1 << 19)
935 out[25] = (inl >> 27)
936 binary.Read(in, binary.LittleEndian, &inl)
937 out[25] |= (inl % (1 << 14)) << (19 - 14)
938 out[26] = (inl >> 14)
939 binary.Read(in, binary.LittleEndian, &inl)
940 out[26] |= (inl % (1 << 1)) << (19 - 1)
941 out[27] = (inl >> 1) % (1 << 19)
942 out[28] = (inl >> 20)
943 binary.Read(in, binary.LittleEndian, &inl)
944 out[28] |= (inl % (1 << 7)) << (19 - 7)
945 out[29] = (inl >> 7) % (1 << 19)
946 out[30] = (inl >> 26)
947 binary.Read(in, binary.LittleEndian, &inl)
948 out[30] |= (inl % (1 << 13)) << (19 - 13)
949 out[31] = (inl >> 13)
950 }
951
952 func unpack20_32(in io.Reader, out []uint32) {
953 var inl uint32
954 binary.Read(in, binary.LittleEndian, &inl)
955 out[0] = (inl >> 0) % (1 << 20)
956 out[1] = (inl >> 20)
957 binary.Read(in, binary.LittleEndian, &inl)
958 out[1] |= (inl % (1 << 8)) << (20 - 8)
959 out[2] = (inl >> 8) % (1 << 20)
960 out[3] = (inl >> 28)
961 binary.Read(in, binary.LittleEndian, &inl)
962 out[3] |= (inl % (1 << 16)) << (20 - 16)
963 out[4] = (inl >> 16)
964 binary.Read(in, binary.LittleEndian, &inl)
965 out[4] |= (inl % (1 << 4)) << (20 - 4)
966 out[5] = (inl >> 4) % (1 << 20)
967 out[6] = (inl >> 24)
968 binary.Read(in, binary.LittleEndian, &inl)
969 out[6] |= (inl % (1 << 12)) << (20 - 12)
970 out[7] = (inl >> 12)
971 binary.Read(in, binary.LittleEndian, &inl)
972 out[8] = (inl >> 0) % (1 << 20)
973 out[9] = (inl >> 20)
974 binary.Read(in, binary.LittleEndian, &inl)
975 out[9] |= (inl % (1 << 8)) << (20 - 8)
976 out[10] = (inl >> 8) % (1 << 20)
977 out[11] = (inl >> 28)
978 binary.Read(in, binary.LittleEndian, &inl)
979 out[11] |= (inl % (1 << 16)) << (20 - 16)
980 out[12] = (inl >> 16)
981 binary.Read(in, binary.LittleEndian, &inl)
982 out[12] |= (inl % (1 << 4)) << (20 - 4)
983 out[13] = (inl >> 4) % (1 << 20)
984 out[14] = (inl >> 24)
985 binary.Read(in, binary.LittleEndian, &inl)
986 out[14] |= (inl % (1 << 12)) << (20 - 12)
987 out[15] = (inl >> 12)
988 binary.Read(in, binary.LittleEndian, &inl)
989 out[16] = (inl >> 0) % (1 << 20)
990 out[17] = (inl >> 20)
991 binary.Read(in, binary.LittleEndian, &inl)
992 out[17] |= (inl % (1 << 8)) << (20 - 8)
993 out[18] = (inl >> 8) % (1 << 20)
994 out[19] = (inl >> 28)
995 binary.Read(in, binary.LittleEndian, &inl)
996 out[19] |= (inl % (1 << 16)) << (20 - 16)
997 out[20] = (inl >> 16)
998 binary.Read(in, binary.LittleEndian, &inl)
999 out[20] |= (inl % (1 << 4)) << (20 - 4)
1000 out[21] = (inl >> 4) % (1 << 20)
1001 out[22] = (inl >> 24)
1002 binary.Read(in, binary.LittleEndian, &inl)
1003 out[22] |= (inl % (1 << 12)) << (20 - 12)
1004 out[23] = (inl >> 12)
1005 binary.Read(in, binary.LittleEndian, &inl)
1006 out[24] = (inl >> 0) % (1 << 20)
1007 out[25] = (inl >> 20)
1008 binary.Read(in, binary.LittleEndian, &inl)
1009 out[25] |= (inl % (1 << 8)) << (20 - 8)
1010 out[26] = (inl >> 8) % (1 << 20)
1011 out[27] = (inl >> 28)
1012 binary.Read(in, binary.LittleEndian, &inl)
1013 out[27] |= (inl % (1 << 16)) << (20 - 16)
1014 out[28] = (inl >> 16)
1015 binary.Read(in, binary.LittleEndian, &inl)
1016 out[28] |= (inl % (1 << 4)) << (20 - 4)
1017 out[29] = (inl >> 4) % (1 << 20)
1018 out[30] = (inl >> 24)
1019 binary.Read(in, binary.LittleEndian, &inl)
1020 out[30] |= (inl % (1 << 12)) << (20 - 12)
1021 out[31] = (inl >> 12)
1022 }
1023
1024 func unpack21_32(in io.Reader, out []uint32) {
1025 var inl uint32
1026 binary.Read(in, binary.LittleEndian, &inl)
1027 out[0] = (inl >> 0) % (1 << 21)
1028 out[1] = (inl >> 21)
1029 binary.Read(in, binary.LittleEndian, &inl)
1030 out[1] |= (inl % (1 << 10)) << (21 - 10)
1031 out[2] = (inl >> 10) % (1 << 21)
1032 out[3] = (inl >> 31)
1033 binary.Read(in, binary.LittleEndian, &inl)
1034 out[3] |= (inl % (1 << 20)) << (21 - 20)
1035 out[4] = (inl >> 20)
1036 binary.Read(in, binary.LittleEndian, &inl)
1037 out[4] |= (inl % (1 << 9)) << (21 - 9)
1038 out[5] = (inl >> 9) % (1 << 21)
1039 out[6] = (inl >> 30)
1040 binary.Read(in, binary.LittleEndian, &inl)
1041 out[6] |= (inl % (1 << 19)) << (21 - 19)
1042 out[7] = (inl >> 19)
1043 binary.Read(in, binary.LittleEndian, &inl)
1044 out[7] |= (inl % (1 << 8)) << (21 - 8)
1045 out[8] = (inl >> 8) % (1 << 21)
1046 out[9] = (inl >> 29)
1047 binary.Read(in, binary.LittleEndian, &inl)
1048 out[9] |= (inl % (1 << 18)) << (21 - 18)
1049 out[10] = (inl >> 18)
1050 binary.Read(in, binary.LittleEndian, &inl)
1051 out[10] |= (inl % (1 << 7)) << (21 - 7)
1052 out[11] = (inl >> 7) % (1 << 21)
1053 out[12] = (inl >> 28)
1054 binary.Read(in, binary.LittleEndian, &inl)
1055 out[12] |= (inl % (1 << 17)) << (21 - 17)
1056 out[13] = (inl >> 17)
1057 binary.Read(in, binary.LittleEndian, &inl)
1058 out[13] |= (inl % (1 << 6)) << (21 - 6)
1059 out[14] = (inl >> 6) % (1 << 21)
1060 out[15] = (inl >> 27)
1061 binary.Read(in, binary.LittleEndian, &inl)
1062 out[15] |= (inl % (1 << 16)) << (21 - 16)
1063 out[16] = (inl >> 16)
1064 binary.Read(in, binary.LittleEndian, &inl)
1065 out[16] |= (inl % (1 << 5)) << (21 - 5)
1066 out[17] = (inl >> 5) % (1 << 21)
1067 out[18] = (inl >> 26)
1068 binary.Read(in, binary.LittleEndian, &inl)
1069 out[18] |= (inl % (1 << 15)) << (21 - 15)
1070 out[19] = (inl >> 15)
1071 binary.Read(in, binary.LittleEndian, &inl)
1072 out[19] |= (inl % (1 << 4)) << (21 - 4)
1073 out[20] = (inl >> 4) % (1 << 21)
1074 out[21] = (inl >> 25)
1075 binary.Read(in, binary.LittleEndian, &inl)
1076 out[21] |= (inl % (1 << 14)) << (21 - 14)
1077 out[22] = (inl >> 14)
1078 binary.Read(in, binary.LittleEndian, &inl)
1079 out[22] |= (inl % (1 << 3)) << (21 - 3)
1080 out[23] = (inl >> 3) % (1 << 21)
1081 out[24] = (inl >> 24)
1082 binary.Read(in, binary.LittleEndian, &inl)
1083 out[24] |= (inl % (1 << 13)) << (21 - 13)
1084 out[25] = (inl >> 13)
1085 binary.Read(in, binary.LittleEndian, &inl)
1086 out[25] |= (inl % (1 << 2)) << (21 - 2)
1087 out[26] = (inl >> 2) % (1 << 21)
1088 out[27] = (inl >> 23)
1089 binary.Read(in, binary.LittleEndian, &inl)
1090 out[27] |= (inl % (1 << 12)) << (21 - 12)
1091 out[28] = (inl >> 12)
1092 binary.Read(in, binary.LittleEndian, &inl)
1093 out[28] |= (inl % (1 << 1)) << (21 - 1)
1094 out[29] = (inl >> 1) % (1 << 21)
1095 out[30] = (inl >> 22)
1096 binary.Read(in, binary.LittleEndian, &inl)
1097 out[30] |= (inl % (1 << 11)) << (21 - 11)
1098 out[31] = (inl >> 11)
1099 }
1100
1101 func unpack22_32(in io.Reader, out []uint32) {
1102 var inl uint32
1103 binary.Read(in, binary.LittleEndian, &inl)
1104 out[0] = (inl >> 0) % (1 << 22)
1105 out[1] = (inl >> 22)
1106 binary.Read(in, binary.LittleEndian, &inl)
1107 out[1] |= (inl % (1 << 12)) << (22 - 12)
1108 out[2] = (inl >> 12)
1109 binary.Read(in, binary.LittleEndian, &inl)
1110 out[2] |= (inl % (1 << 2)) << (22 - 2)
1111 out[3] = (inl >> 2) % (1 << 22)
1112 out[4] = (inl >> 24)
1113 binary.Read(in, binary.LittleEndian, &inl)
1114 out[4] |= (inl % (1 << 14)) << (22 - 14)
1115 out[5] = (inl >> 14)
1116 binary.Read(in, binary.LittleEndian, &inl)
1117 out[5] |= (inl % (1 << 4)) << (22 - 4)
1118 out[6] = (inl >> 4) % (1 << 22)
1119 out[7] = (inl >> 26)
1120 binary.Read(in, binary.LittleEndian, &inl)
1121 out[7] |= (inl % (1 << 16)) << (22 - 16)
1122 out[8] = (inl >> 16)
1123 binary.Read(in, binary.LittleEndian, &inl)
1124 out[8] |= (inl % (1 << 6)) << (22 - 6)
1125 out[9] = (inl >> 6) % (1 << 22)
1126 out[10] = (inl >> 28)
1127 binary.Read(in, binary.LittleEndian, &inl)
1128 out[10] |= (inl % (1 << 18)) << (22 - 18)
1129 out[11] = (inl >> 18)
1130 binary.Read(in, binary.LittleEndian, &inl)
1131 out[11] |= (inl % (1 << 8)) << (22 - 8)
1132 out[12] = (inl >> 8) % (1 << 22)
1133 out[13] = (inl >> 30)
1134 binary.Read(in, binary.LittleEndian, &inl)
1135 out[13] |= (inl % (1 << 20)) << (22 - 20)
1136 out[14] = (inl >> 20)
1137 binary.Read(in, binary.LittleEndian, &inl)
1138 out[14] |= (inl % (1 << 10)) << (22 - 10)
1139 out[15] = (inl >> 10)
1140 binary.Read(in, binary.LittleEndian, &inl)
1141 out[16] = (inl >> 0) % (1 << 22)
1142 out[17] = (inl >> 22)
1143 binary.Read(in, binary.LittleEndian, &inl)
1144 out[17] |= (inl % (1 << 12)) << (22 - 12)
1145 out[18] = (inl >> 12)
1146 binary.Read(in, binary.LittleEndian, &inl)
1147 out[18] |= (inl % (1 << 2)) << (22 - 2)
1148 out[19] = (inl >> 2) % (1 << 22)
1149 out[20] = (inl >> 24)
1150 binary.Read(in, binary.LittleEndian, &inl)
1151 out[20] |= (inl % (1 << 14)) << (22 - 14)
1152 out[21] = (inl >> 14)
1153 binary.Read(in, binary.LittleEndian, &inl)
1154 out[21] |= (inl % (1 << 4)) << (22 - 4)
1155 out[22] = (inl >> 4) % (1 << 22)
1156 out[23] = (inl >> 26)
1157 binary.Read(in, binary.LittleEndian, &inl)
1158 out[23] |= (inl % (1 << 16)) << (22 - 16)
1159 out[24] = (inl >> 16)
1160 binary.Read(in, binary.LittleEndian, &inl)
1161 out[24] |= (inl % (1 << 6)) << (22 - 6)
1162 out[25] = (inl >> 6) % (1 << 22)
1163 out[26] = (inl >> 28)
1164 binary.Read(in, binary.LittleEndian, &inl)
1165 out[26] |= (inl % (1 << 18)) << (22 - 18)
1166 out[27] = (inl >> 18)
1167 binary.Read(in, binary.LittleEndian, &inl)
1168 out[27] |= (inl % (1 << 8)) << (22 - 8)
1169 out[28] = (inl >> 8) % (1 << 22)
1170 out[29] = (inl >> 30)
1171 binary.Read(in, binary.LittleEndian, &inl)
1172 out[29] |= (inl % (1 << 20)) << (22 - 20)
1173 out[30] = (inl >> 20)
1174 binary.Read(in, binary.LittleEndian, &inl)
1175 out[30] |= (inl % (1 << 10)) << (22 - 10)
1176 out[31] = (inl >> 10)
1177 }
1178
1179 func unpack23_32(in io.Reader, out []uint32) {
1180 var inl uint32
1181 binary.Read(in, binary.LittleEndian, &inl)
1182 out[0] = (inl >> 0) % (1 << 23)
1183 out[1] = (inl >> 23)
1184 binary.Read(in, binary.LittleEndian, &inl)
1185 out[1] |= (inl % (1 << 14)) << (23 - 14)
1186 out[2] = (inl >> 14)
1187 binary.Read(in, binary.LittleEndian, &inl)
1188 out[2] |= (inl % (1 << 5)) << (23 - 5)
1189 out[3] = (inl >> 5) % (1 << 23)
1190 out[4] = (inl >> 28)
1191 binary.Read(in, binary.LittleEndian, &inl)
1192 out[4] |= (inl % (1 << 19)) << (23 - 19)
1193 out[5] = (inl >> 19)
1194 binary.Read(in, binary.LittleEndian, &inl)
1195 out[5] |= (inl % (1 << 10)) << (23 - 10)
1196 out[6] = (inl >> 10)
1197 binary.Read(in, binary.LittleEndian, &inl)
1198 out[6] |= (inl % (1 << 1)) << (23 - 1)
1199 out[7] = (inl >> 1) % (1 << 23)
1200 out[8] = (inl >> 24)
1201 binary.Read(in, binary.LittleEndian, &inl)
1202 out[8] |= (inl % (1 << 15)) << (23 - 15)
1203 out[9] = (inl >> 15)
1204 binary.Read(in, binary.LittleEndian, &inl)
1205 out[9] |= (inl % (1 << 6)) << (23 - 6)
1206 out[10] = (inl >> 6) % (1 << 23)
1207 out[11] = (inl >> 29)
1208 binary.Read(in, binary.LittleEndian, &inl)
1209 out[11] |= (inl % (1 << 20)) << (23 - 20)
1210 out[12] = (inl >> 20)
1211 binary.Read(in, binary.LittleEndian, &inl)
1212 out[12] |= (inl % (1 << 11)) << (23 - 11)
1213 out[13] = (inl >> 11)
1214 binary.Read(in, binary.LittleEndian, &inl)
1215 out[13] |= (inl % (1 << 2)) << (23 - 2)
1216 out[14] = (inl >> 2) % (1 << 23)
1217 out[15] = (inl >> 25)
1218 binary.Read(in, binary.LittleEndian, &inl)
1219 out[15] |= (inl % (1 << 16)) << (23 - 16)
1220 out[16] = (inl >> 16)
1221 binary.Read(in, binary.LittleEndian, &inl)
1222 out[16] |= (inl % (1 << 7)) << (23 - 7)
1223 out[17] = (inl >> 7) % (1 << 23)
1224 out[18] = (inl >> 30)
1225 binary.Read(in, binary.LittleEndian, &inl)
1226 out[18] |= (inl % (1 << 21)) << (23 - 21)
1227 out[19] = (inl >> 21)
1228 binary.Read(in, binary.LittleEndian, &inl)
1229 out[19] |= (inl % (1 << 12)) << (23 - 12)
1230 out[20] = (inl >> 12)
1231 binary.Read(in, binary.LittleEndian, &inl)
1232 out[20] |= (inl % (1 << 3)) << (23 - 3)
1233 out[21] = (inl >> 3) % (1 << 23)
1234 out[22] = (inl >> 26)
1235 binary.Read(in, binary.LittleEndian, &inl)
1236 out[22] |= (inl % (1 << 17)) << (23 - 17)
1237 out[23] = (inl >> 17)
1238 binary.Read(in, binary.LittleEndian, &inl)
1239 out[23] |= (inl % (1 << 8)) << (23 - 8)
1240 out[24] = (inl >> 8) % (1 << 23)
1241 out[25] = (inl >> 31)
1242 binary.Read(in, binary.LittleEndian, &inl)
1243 out[25] |= (inl % (1 << 22)) << (23 - 22)
1244 out[26] = (inl >> 22)
1245 binary.Read(in, binary.LittleEndian, &inl)
1246 out[26] |= (inl % (1 << 13)) << (23 - 13)
1247 out[27] = (inl >> 13)
1248 binary.Read(in, binary.LittleEndian, &inl)
1249 out[27] |= (inl % (1 << 4)) << (23 - 4)
1250 out[28] = (inl >> 4) % (1 << 23)
1251 out[29] = (inl >> 27)
1252 binary.Read(in, binary.LittleEndian, &inl)
1253 out[29] |= (inl % (1 << 18)) << (23 - 18)
1254 out[30] = (inl >> 18)
1255 binary.Read(in, binary.LittleEndian, &inl)
1256 out[30] |= (inl % (1 << 9)) << (23 - 9)
1257 out[31] = (inl >> 9)
1258 }
1259
1260 func unpack24_32(in io.Reader, out []uint32) {
1261 var inl uint32
1262 for i := 0; i < 8; i++ {
1263 base := i * 4
1264
1265 binary.Read(in, binary.LittleEndian, &inl)
1266 out[base] = (inl >> 0) % (1 << 24)
1267 out[base+1] = (inl >> 24)
1268 binary.Read(in, binary.LittleEndian, &inl)
1269 out[base+1] |= (inl % (1 << 16)) << (24 - 16)
1270 out[base+2] = (inl >> 16)
1271 binary.Read(in, binary.LittleEndian, &inl)
1272 out[base+2] |= (inl % (1 << 8)) << (24 - 8)
1273 out[base+3] = (inl >> 8)
1274 }
1275 }
1276
1277 func unpack25_32(in io.Reader, out []uint32) {
1278 var inl uint32
1279 binary.Read(in, binary.LittleEndian, &inl)
1280 out[0] = (inl >> 0) % (1 << 25)
1281 out[1] = (inl >> 25)
1282 binary.Read(in, binary.LittleEndian, &inl)
1283 out[1] |= (inl % (1 << 18)) << (25 - 18)
1284 out[2] = (inl >> 18)
1285 binary.Read(in, binary.LittleEndian, &inl)
1286 out[2] |= (inl % (1 << 11)) << (25 - 11)
1287 out[3] = (inl >> 11)
1288 binary.Read(in, binary.LittleEndian, &inl)
1289 out[3] |= (inl % (1 << 4)) << (25 - 4)
1290 out[4] = (inl >> 4) % (1 << 25)
1291 out[5] = (inl >> 29)
1292 binary.Read(in, binary.LittleEndian, &inl)
1293 out[5] |= (inl % (1 << 22)) << (25 - 22)
1294 out[6] = (inl >> 22)
1295 binary.Read(in, binary.LittleEndian, &inl)
1296 out[6] |= (inl % (1 << 15)) << (25 - 15)
1297 out[7] = (inl >> 15)
1298 binary.Read(in, binary.LittleEndian, &inl)
1299 out[7] |= (inl % (1 << 8)) << (25 - 8)
1300 out[8] = (inl >> 8)
1301 binary.Read(in, binary.LittleEndian, &inl)
1302 out[8] |= (inl % (1 << 1)) << (25 - 1)
1303 out[9] = (inl >> 1) % (1 << 25)
1304 out[10] = (inl >> 26)
1305 binary.Read(in, binary.LittleEndian, &inl)
1306 out[10] |= (inl % (1 << 19)) << (25 - 19)
1307 out[11] = (inl >> 19)
1308 binary.Read(in, binary.LittleEndian, &inl)
1309 out[11] |= (inl % (1 << 12)) << (25 - 12)
1310 out[12] = (inl >> 12)
1311 binary.Read(in, binary.LittleEndian, &inl)
1312 out[12] |= (inl % (1 << 5)) << (25 - 5)
1313 out[13] = (inl >> 5) % (1 << 25)
1314 out[14] = (inl >> 30)
1315 binary.Read(in, binary.LittleEndian, &inl)
1316 out[14] |= (inl % (1 << 23)) << (25 - 23)
1317 out[15] = (inl >> 23)
1318 binary.Read(in, binary.LittleEndian, &inl)
1319 out[15] |= (inl % (1 << 16)) << (25 - 16)
1320 out[16] = (inl >> 16)
1321 binary.Read(in, binary.LittleEndian, &inl)
1322 out[16] |= (inl % (1 << 9)) << (25 - 9)
1323 out[17] = (inl >> 9)
1324 binary.Read(in, binary.LittleEndian, &inl)
1325 out[17] |= (inl % (1 << 2)) << (25 - 2)
1326 out[18] = (inl >> 2) % (1 << 25)
1327 out[19] = (inl >> 27)
1328 binary.Read(in, binary.LittleEndian, &inl)
1329 out[19] |= (inl % (1 << 20)) << (25 - 20)
1330 out[20] = (inl >> 20)
1331 binary.Read(in, binary.LittleEndian, &inl)
1332 out[20] |= (inl % (1 << 13)) << (25 - 13)
1333 out[21] = (inl >> 13)
1334 binary.Read(in, binary.LittleEndian, &inl)
1335 out[21] |= (inl % (1 << 6)) << (25 - 6)
1336 out[22] = (inl >> 6) % (1 << 25)
1337 out[23] = (inl >> 31)
1338 binary.Read(in, binary.LittleEndian, &inl)
1339 out[23] |= (inl % (1 << 24)) << (25 - 24)
1340 out[24] = (inl >> 24)
1341 binary.Read(in, binary.LittleEndian, &inl)
1342 out[24] |= (inl % (1 << 17)) << (25 - 17)
1343 out[25] = (inl >> 17)
1344 binary.Read(in, binary.LittleEndian, &inl)
1345 out[25] |= (inl % (1 << 10)) << (25 - 10)
1346 out[26] = (inl >> 10)
1347 binary.Read(in, binary.LittleEndian, &inl)
1348 out[26] |= (inl % (1 << 3)) << (25 - 3)
1349 out[27] = (inl >> 3) % (1 << 25)
1350 out[28] = (inl >> 28)
1351 binary.Read(in, binary.LittleEndian, &inl)
1352 out[28] |= (inl % (1 << 21)) << (25 - 21)
1353 out[29] = (inl >> 21)
1354 binary.Read(in, binary.LittleEndian, &inl)
1355 out[29] |= (inl % (1 << 14)) << (25 - 14)
1356 out[30] = (inl >> 14)
1357 binary.Read(in, binary.LittleEndian, &inl)
1358 out[30] |= (inl % (1 << 7)) << (25 - 7)
1359 out[31] = (inl >> 7)
1360 }
1361
1362 func unpack26_32(in io.Reader, out []uint32) {
1363 var inl uint32
1364 binary.Read(in, binary.LittleEndian, &inl)
1365 out[0] = (inl >> 0) % (1 << 26)
1366 out[1] = (inl >> 26)
1367 binary.Read(in, binary.LittleEndian, &inl)
1368 out[1] |= (inl % (1 << 20)) << (26 - 20)
1369 out[2] = (inl >> 20)
1370 binary.Read(in, binary.LittleEndian, &inl)
1371 out[2] |= (inl % (1 << 14)) << (26 - 14)
1372 out[3] = (inl >> 14)
1373 binary.Read(in, binary.LittleEndian, &inl)
1374 out[3] |= (inl % (1 << 8)) << (26 - 8)
1375 out[4] = (inl >> 8)
1376 binary.Read(in, binary.LittleEndian, &inl)
1377 out[4] |= (inl % (1 << 2)) << (26 - 2)
1378 out[5] = (inl >> 2) % (1 << 26)
1379 out[6] = (inl >> 28)
1380 binary.Read(in, binary.LittleEndian, &inl)
1381 out[6] |= (inl % (1 << 22)) << (26 - 22)
1382 out[7] = (inl >> 22)
1383 binary.Read(in, binary.LittleEndian, &inl)
1384 out[7] |= (inl % (1 << 16)) << (26 - 16)
1385 out[8] = (inl >> 16)
1386 binary.Read(in, binary.LittleEndian, &inl)
1387 out[8] |= (inl % (1 << 10)) << (26 - 10)
1388 out[9] = (inl >> 10)
1389 binary.Read(in, binary.LittleEndian, &inl)
1390 out[9] |= (inl % (1 << 4)) << (26 - 4)
1391 out[10] = (inl >> 4) % (1 << 26)
1392 out[11] = (inl >> 30)
1393 binary.Read(in, binary.LittleEndian, &inl)
1394 out[11] |= (inl % (1 << 24)) << (26 - 24)
1395 out[12] = (inl >> 24)
1396 binary.Read(in, binary.LittleEndian, &inl)
1397 out[12] |= (inl % (1 << 18)) << (26 - 18)
1398 out[13] = (inl >> 18)
1399 binary.Read(in, binary.LittleEndian, &inl)
1400 out[13] |= (inl % (1 << 12)) << (26 - 12)
1401 out[14] = (inl >> 12)
1402 binary.Read(in, binary.LittleEndian, &inl)
1403 out[14] |= (inl % (1 << 6)) << (26 - 6)
1404 out[15] = (inl >> 6)
1405 binary.Read(in, binary.LittleEndian, &inl)
1406 out[16] = (inl >> 0) % (1 << 26)
1407 out[17] = (inl >> 26)
1408 binary.Read(in, binary.LittleEndian, &inl)
1409 out[17] |= (inl % (1 << 20)) << (26 - 20)
1410 out[18] = (inl >> 20)
1411 binary.Read(in, binary.LittleEndian, &inl)
1412 out[18] |= (inl % (1 << 14)) << (26 - 14)
1413 out[19] = (inl >> 14)
1414 binary.Read(in, binary.LittleEndian, &inl)
1415 out[19] |= (inl % (1 << 8)) << (26 - 8)
1416 out[20] = (inl >> 8)
1417 binary.Read(in, binary.LittleEndian, &inl)
1418 out[20] |= (inl % (1 << 2)) << (26 - 2)
1419 out[21] = (inl >> 2) % (1 << 26)
1420 out[22] = (inl >> 28)
1421 binary.Read(in, binary.LittleEndian, &inl)
1422 out[22] |= (inl % (1 << 22)) << (26 - 22)
1423 out[23] = (inl >> 22)
1424 binary.Read(in, binary.LittleEndian, &inl)
1425 out[23] |= (inl % (1 << 16)) << (26 - 16)
1426 out[24] = (inl >> 16)
1427 binary.Read(in, binary.LittleEndian, &inl)
1428 out[24] |= (inl % (1 << 10)) << (26 - 10)
1429 out[25] = (inl >> 10)
1430 binary.Read(in, binary.LittleEndian, &inl)
1431 out[25] |= (inl % (1 << 4)) << (26 - 4)
1432 out[26] = (inl >> 4) % (1 << 26)
1433 out[27] = (inl >> 30)
1434 binary.Read(in, binary.LittleEndian, &inl)
1435 out[27] |= (inl % (1 << 24)) << (26 - 24)
1436 out[28] = (inl >> 24)
1437 binary.Read(in, binary.LittleEndian, &inl)
1438 out[28] |= (inl % (1 << 18)) << (26 - 18)
1439 out[29] = (inl >> 18)
1440 binary.Read(in, binary.LittleEndian, &inl)
1441 out[29] |= (inl % (1 << 12)) << (26 - 12)
1442 out[30] = (inl >> 12)
1443 binary.Read(in, binary.LittleEndian, &inl)
1444 out[30] |= (inl % (1 << 6)) << (26 - 6)
1445 out[31] = (inl >> 6)
1446 }
1447
1448 func unpack27_32(in io.Reader, out []uint32) {
1449 var inl uint32
1450 binary.Read(in, binary.LittleEndian, &inl)
1451 out[0] = (inl >> 0) % (1 << 27)
1452 out[1] = (inl >> 27)
1453 binary.Read(in, binary.LittleEndian, &inl)
1454 out[1] |= (inl % (1 << 22)) << (27 - 22)
1455 out[2] = (inl >> 22)
1456 binary.Read(in, binary.LittleEndian, &inl)
1457 out[2] |= (inl % (1 << 17)) << (27 - 17)
1458 out[3] = (inl >> 17)
1459 binary.Read(in, binary.LittleEndian, &inl)
1460 out[3] |= (inl % (1 << 12)) << (27 - 12)
1461 out[4] = (inl >> 12)
1462 binary.Read(in, binary.LittleEndian, &inl)
1463 out[4] |= (inl % (1 << 7)) << (27 - 7)
1464 out[5] = (inl >> 7)
1465 binary.Read(in, binary.LittleEndian, &inl)
1466 out[5] |= (inl % (1 << 2)) << (27 - 2)
1467 out[6] = (inl >> 2) % (1 << 27)
1468 out[7] = (inl >> 29)
1469 binary.Read(in, binary.LittleEndian, &inl)
1470 out[7] |= (inl % (1 << 24)) << (27 - 24)
1471 out[8] = (inl >> 24)
1472 binary.Read(in, binary.LittleEndian, &inl)
1473 out[8] |= (inl % (1 << 19)) << (27 - 19)
1474 out[9] = (inl >> 19)
1475 binary.Read(in, binary.LittleEndian, &inl)
1476 out[9] |= (inl % (1 << 14)) << (27 - 14)
1477 out[10] = (inl >> 14)
1478 binary.Read(in, binary.LittleEndian, &inl)
1479 out[10] |= (inl % (1 << 9)) << (27 - 9)
1480 out[11] = (inl >> 9)
1481 binary.Read(in, binary.LittleEndian, &inl)
1482 out[11] |= (inl % (1 << 4)) << (27 - 4)
1483 out[12] = (inl >> 4) % (1 << 27)
1484 out[13] = (inl >> 31)
1485 binary.Read(in, binary.LittleEndian, &inl)
1486 out[13] |= (inl % (1 << 26)) << (27 - 26)
1487 out[14] = (inl >> 26)
1488 binary.Read(in, binary.LittleEndian, &inl)
1489 out[14] |= (inl % (1 << 21)) << (27 - 21)
1490 out[15] = (inl >> 21)
1491 binary.Read(in, binary.LittleEndian, &inl)
1492 out[15] |= (inl % (1 << 16)) << (27 - 16)
1493 out[16] = (inl >> 16)
1494 binary.Read(in, binary.LittleEndian, &inl)
1495 out[16] |= (inl % (1 << 11)) << (27 - 11)
1496 out[17] = (inl >> 11)
1497 binary.Read(in, binary.LittleEndian, &inl)
1498 out[17] |= (inl % (1 << 6)) << (27 - 6)
1499 out[18] = (inl >> 6)
1500 binary.Read(in, binary.LittleEndian, &inl)
1501 out[18] |= (inl % (1 << 1)) << (27 - 1)
1502 out[19] = (inl >> 1) % (1 << 27)
1503 out[20] = (inl >> 28)
1504 binary.Read(in, binary.LittleEndian, &inl)
1505 out[20] |= (inl % (1 << 23)) << (27 - 23)
1506 out[21] = (inl >> 23)
1507 binary.Read(in, binary.LittleEndian, &inl)
1508 out[21] |= (inl % (1 << 18)) << (27 - 18)
1509 out[22] = (inl >> 18)
1510 binary.Read(in, binary.LittleEndian, &inl)
1511 out[22] |= (inl % (1 << 13)) << (27 - 13)
1512 out[23] = (inl >> 13)
1513 binary.Read(in, binary.LittleEndian, &inl)
1514 out[23] |= (inl % (1 << 8)) << (27 - 8)
1515 out[24] = (inl >> 8)
1516 binary.Read(in, binary.LittleEndian, &inl)
1517 out[24] |= (inl % (1 << 3)) << (27 - 3)
1518 out[25] = (inl >> 3) % (1 << 27)
1519 out[26] = (inl >> 30)
1520 binary.Read(in, binary.LittleEndian, &inl)
1521 out[26] |= (inl % (1 << 25)) << (27 - 25)
1522 out[27] = (inl >> 25)
1523 binary.Read(in, binary.LittleEndian, &inl)
1524 out[27] |= (inl % (1 << 20)) << (27 - 20)
1525 out[28] = (inl >> 20)
1526 binary.Read(in, binary.LittleEndian, &inl)
1527 out[28] |= (inl % (1 << 15)) << (27 - 15)
1528 out[29] = (inl >> 15)
1529 binary.Read(in, binary.LittleEndian, &inl)
1530 out[29] |= (inl % (1 << 10)) << (27 - 10)
1531 out[30] = (inl >> 10)
1532 binary.Read(in, binary.LittleEndian, &inl)
1533 out[30] |= (inl % (1 << 5)) << (27 - 5)
1534 out[31] = (inl >> 5)
1535 }
1536
1537 func unpack28_32(in io.Reader, out []uint32) {
1538 var inl uint32
1539 for i := 0; i < 4; i++ {
1540 base := i * 8
1541
1542 binary.Read(in, binary.LittleEndian, &inl)
1543 out[base] = (inl >> 0) % (1 << 28)
1544 out[base+1] = (inl >> 28)
1545 binary.Read(in, binary.LittleEndian, &inl)
1546 out[base+1] |= (inl % (1 << 24)) << (28 - 24)
1547 out[base+2] = (inl >> 24)
1548 binary.Read(in, binary.LittleEndian, &inl)
1549 out[base+2] |= (inl % (1 << 20)) << (28 - 20)
1550 out[base+3] = (inl >> 20)
1551 binary.Read(in, binary.LittleEndian, &inl)
1552 out[base+3] |= (inl % (1 << 16)) << (28 - 16)
1553 out[base+4] = (inl >> 16)
1554 binary.Read(in, binary.LittleEndian, &inl)
1555 out[base+4] |= (inl % (1 << 12)) << (28 - 12)
1556 out[base+5] = (inl >> 12)
1557 binary.Read(in, binary.LittleEndian, &inl)
1558 out[base+5] |= (inl % (1 << 8)) << (28 - 8)
1559 out[base+6] = (inl >> 8)
1560 binary.Read(in, binary.LittleEndian, &inl)
1561 out[base+6] |= (inl % (1 << 4)) << (28 - 4)
1562 out[base+7] = (inl >> 4)
1563 }
1564 }
1565
1566 func unpack29_32(in io.Reader, out []uint32) {
1567 var inl uint32
1568 binary.Read(in, binary.LittleEndian, &inl)
1569 out[0] = (inl >> 0) % (1 << 29)
1570 out[1] = (inl >> 29)
1571 binary.Read(in, binary.LittleEndian, &inl)
1572 out[1] |= (inl % (1 << 26)) << (29 - 26)
1573 out[2] = (inl >> 26)
1574 binary.Read(in, binary.LittleEndian, &inl)
1575 out[2] |= (inl % (1 << 23)) << (29 - 23)
1576 out[3] = (inl >> 23)
1577 binary.Read(in, binary.LittleEndian, &inl)
1578 out[3] |= (inl % (1 << 20)) << (29 - 20)
1579 out[4] = (inl >> 20)
1580 binary.Read(in, binary.LittleEndian, &inl)
1581 out[4] |= (inl % (1 << 17)) << (29 - 17)
1582 out[5] = (inl >> 17)
1583 binary.Read(in, binary.LittleEndian, &inl)
1584 out[5] |= (inl % (1 << 14)) << (29 - 14)
1585 out[6] = (inl >> 14)
1586 binary.Read(in, binary.LittleEndian, &inl)
1587 out[6] |= (inl % (1 << 11)) << (29 - 11)
1588 out[7] = (inl >> 11)
1589 binary.Read(in, binary.LittleEndian, &inl)
1590 out[7] |= (inl % (1 << 8)) << (29 - 8)
1591 out[8] = (inl >> 8)
1592 binary.Read(in, binary.LittleEndian, &inl)
1593 out[8] |= (inl % (1 << 5)) << (29 - 5)
1594 out[9] = (inl >> 5)
1595 binary.Read(in, binary.LittleEndian, &inl)
1596 out[9] |= (inl % (1 << 2)) << (29 - 2)
1597 out[10] = (inl >> 2) % (1 << 29)
1598 out[11] = (inl >> 31)
1599 binary.Read(in, binary.LittleEndian, &inl)
1600 out[11] |= (inl % (1 << 28)) << (29 - 28)
1601 out[12] = (inl >> 28)
1602 binary.Read(in, binary.LittleEndian, &inl)
1603 out[12] |= (inl % (1 << 25)) << (29 - 25)
1604 out[13] = (inl >> 25)
1605 binary.Read(in, binary.LittleEndian, &inl)
1606 out[13] |= (inl % (1 << 22)) << (29 - 22)
1607 out[14] = (inl >> 22)
1608 binary.Read(in, binary.LittleEndian, &inl)
1609 out[14] |= (inl % (1 << 19)) << (29 - 19)
1610 out[15] = (inl >> 19)
1611 binary.Read(in, binary.LittleEndian, &inl)
1612 out[15] |= (inl % (1 << 16)) << (29 - 16)
1613 out[16] = (inl >> 16)
1614 binary.Read(in, binary.LittleEndian, &inl)
1615 out[16] |= (inl % (1 << 13)) << (29 - 13)
1616 out[17] = (inl >> 13)
1617 binary.Read(in, binary.LittleEndian, &inl)
1618 out[17] |= (inl % (1 << 10)) << (29 - 10)
1619 out[18] = (inl >> 10)
1620 binary.Read(in, binary.LittleEndian, &inl)
1621 out[18] |= (inl % (1 << 7)) << (29 - 7)
1622 out[19] = (inl >> 7)
1623 binary.Read(in, binary.LittleEndian, &inl)
1624 out[19] |= (inl % (1 << 4)) << (29 - 4)
1625 out[20] = (inl >> 4)
1626 binary.Read(in, binary.LittleEndian, &inl)
1627 out[20] |= (inl % (1 << 1)) << (29 - 1)
1628 out[21] = (inl >> 1) % (1 << 29)
1629 out[22] = (inl >> 30)
1630 binary.Read(in, binary.LittleEndian, &inl)
1631 out[22] |= (inl % (1 << 27)) << (29 - 27)
1632 out[23] = (inl >> 27)
1633 binary.Read(in, binary.LittleEndian, &inl)
1634 out[23] |= (inl % (1 << 24)) << (29 - 24)
1635 out[24] = (inl >> 24)
1636 binary.Read(in, binary.LittleEndian, &inl)
1637 out[24] |= (inl % (1 << 21)) << (29 - 21)
1638 out[25] = (inl >> 21)
1639 binary.Read(in, binary.LittleEndian, &inl)
1640 out[25] |= (inl % (1 << 18)) << (29 - 18)
1641 out[26] = (inl >> 18)
1642 binary.Read(in, binary.LittleEndian, &inl)
1643 out[26] |= (inl % (1 << 15)) << (29 - 15)
1644 out[27] = (inl >> 15)
1645 binary.Read(in, binary.LittleEndian, &inl)
1646 out[27] |= (inl % (1 << 12)) << (29 - 12)
1647 out[28] = (inl >> 12)
1648 binary.Read(in, binary.LittleEndian, &inl)
1649 out[28] |= (inl % (1 << 9)) << (29 - 9)
1650 out[29] = (inl >> 9)
1651 binary.Read(in, binary.LittleEndian, &inl)
1652 out[29] |= (inl % (1 << 6)) << (29 - 6)
1653 out[30] = (inl >> 6)
1654 binary.Read(in, binary.LittleEndian, &inl)
1655 out[30] |= (inl % (1 << 3)) << (29 - 3)
1656 out[31] = (inl >> 3)
1657 }
1658
1659 func unpack30_32(in io.Reader, out []uint32) {
1660 var inl uint32
1661 binary.Read(in, binary.LittleEndian, &inl)
1662 out[0] = (inl >> 0) % (1 << 30)
1663 out[1] = (inl >> 30)
1664 binary.Read(in, binary.LittleEndian, &inl)
1665 out[1] |= (inl % (1 << 28)) << (30 - 28)
1666 out[2] = (inl >> 28)
1667 binary.Read(in, binary.LittleEndian, &inl)
1668 out[2] |= (inl % (1 << 26)) << (30 - 26)
1669 out[3] = (inl >> 26)
1670 binary.Read(in, binary.LittleEndian, &inl)
1671 out[3] |= (inl % (1 << 24)) << (30 - 24)
1672 out[4] = (inl >> 24)
1673 binary.Read(in, binary.LittleEndian, &inl)
1674 out[4] |= (inl % (1 << 22)) << (30 - 22)
1675 out[5] = (inl >> 22)
1676 binary.Read(in, binary.LittleEndian, &inl)
1677 out[5] |= (inl % (1 << 20)) << (30 - 20)
1678 out[6] = (inl >> 20)
1679 binary.Read(in, binary.LittleEndian, &inl)
1680 out[6] |= (inl % (1 << 18)) << (30 - 18)
1681 out[7] = (inl >> 18)
1682 binary.Read(in, binary.LittleEndian, &inl)
1683 out[7] |= (inl % (1 << 16)) << (30 - 16)
1684 out[8] = (inl >> 16)
1685 binary.Read(in, binary.LittleEndian, &inl)
1686 out[8] |= (inl % (1 << 14)) << (30 - 14)
1687 out[9] = (inl >> 14)
1688 binary.Read(in, binary.LittleEndian, &inl)
1689 out[9] |= (inl % (1 << 12)) << (30 - 12)
1690 out[10] = (inl >> 12)
1691 binary.Read(in, binary.LittleEndian, &inl)
1692 out[10] |= (inl % (1 << 10)) << (30 - 10)
1693 out[11] = (inl >> 10)
1694 binary.Read(in, binary.LittleEndian, &inl)
1695 out[11] |= (inl % (1 << 8)) << (30 - 8)
1696 out[12] = (inl >> 8)
1697 binary.Read(in, binary.LittleEndian, &inl)
1698 out[12] |= (inl % (1 << 6)) << (30 - 6)
1699 out[13] = (inl >> 6)
1700 binary.Read(in, binary.LittleEndian, &inl)
1701 out[13] |= (inl % (1 << 4)) << (30 - 4)
1702 out[14] = (inl >> 4)
1703 binary.Read(in, binary.LittleEndian, &inl)
1704 out[14] |= (inl % (1 << 2)) << (30 - 2)
1705 out[15] = (inl >> 2)
1706 binary.Read(in, binary.LittleEndian, &inl)
1707 out[16] = (inl >> 0) % (1 << 30)
1708 out[17] = (inl >> 30)
1709 binary.Read(in, binary.LittleEndian, &inl)
1710 out[17] |= (inl % (1 << 28)) << (30 - 28)
1711 out[18] = (inl >> 28)
1712 binary.Read(in, binary.LittleEndian, &inl)
1713 out[18] |= (inl % (1 << 26)) << (30 - 26)
1714 out[19] = (inl >> 26)
1715 binary.Read(in, binary.LittleEndian, &inl)
1716 out[19] |= (inl % (1 << 24)) << (30 - 24)
1717 out[20] = (inl >> 24)
1718 binary.Read(in, binary.LittleEndian, &inl)
1719 out[20] |= (inl % (1 << 22)) << (30 - 22)
1720 out[21] = (inl >> 22)
1721 binary.Read(in, binary.LittleEndian, &inl)
1722 out[21] |= (inl % (1 << 20)) << (30 - 20)
1723 out[22] = (inl >> 20)
1724 binary.Read(in, binary.LittleEndian, &inl)
1725 out[22] |= (inl % (1 << 18)) << (30 - 18)
1726 out[23] = (inl >> 18)
1727 binary.Read(in, binary.LittleEndian, &inl)
1728 out[23] |= (inl % (1 << 16)) << (30 - 16)
1729 out[24] = (inl >> 16)
1730 binary.Read(in, binary.LittleEndian, &inl)
1731 out[24] |= (inl % (1 << 14)) << (30 - 14)
1732 out[25] = (inl >> 14)
1733 binary.Read(in, binary.LittleEndian, &inl)
1734 out[25] |= (inl % (1 << 12)) << (30 - 12)
1735 out[26] = (inl >> 12)
1736 binary.Read(in, binary.LittleEndian, &inl)
1737 out[26] |= (inl % (1 << 10)) << (30 - 10)
1738 out[27] = (inl >> 10)
1739 binary.Read(in, binary.LittleEndian, &inl)
1740 out[27] |= (inl % (1 << 8)) << (30 - 8)
1741 out[28] = (inl >> 8)
1742 binary.Read(in, binary.LittleEndian, &inl)
1743 out[28] |= (inl % (1 << 6)) << (30 - 6)
1744 out[29] = (inl >> 6)
1745 binary.Read(in, binary.LittleEndian, &inl)
1746 out[29] |= (inl % (1 << 4)) << (30 - 4)
1747 out[30] = (inl >> 4)
1748 binary.Read(in, binary.LittleEndian, &inl)
1749 out[30] |= (inl % (1 << 2)) << (30 - 2)
1750 out[31] = (inl >> 2)
1751 }
1752
1753 func unpack31_32(in io.Reader, out []uint32) {
1754 var inl uint32
1755 binary.Read(in, binary.LittleEndian, &inl)
1756 out[0] = (inl >> 0) % (1 << 31)
1757 out[1] = (inl >> 31)
1758 binary.Read(in, binary.LittleEndian, &inl)
1759 out[1] |= (inl % (1 << 30)) << (31 - 30)
1760 out[2] = (inl >> 30)
1761 binary.Read(in, binary.LittleEndian, &inl)
1762 out[2] |= (inl % (1 << 29)) << (31 - 29)
1763 out[3] = (inl >> 29)
1764 binary.Read(in, binary.LittleEndian, &inl)
1765 out[3] |= (inl % (1 << 28)) << (31 - 28)
1766 out[4] = (inl >> 28)
1767 binary.Read(in, binary.LittleEndian, &inl)
1768 out[4] |= (inl % (1 << 27)) << (31 - 27)
1769 out[5] = (inl >> 27)
1770 binary.Read(in, binary.LittleEndian, &inl)
1771 out[5] |= (inl % (1 << 26)) << (31 - 26)
1772 out[6] = (inl >> 26)
1773 binary.Read(in, binary.LittleEndian, &inl)
1774 out[6] |= (inl % (1 << 25)) << (31 - 25)
1775 out[7] = (inl >> 25)
1776 binary.Read(in, binary.LittleEndian, &inl)
1777 out[7] |= (inl % (1 << 24)) << (31 - 24)
1778 out[8] = (inl >> 24)
1779 binary.Read(in, binary.LittleEndian, &inl)
1780 out[8] |= (inl % (1 << 23)) << (31 - 23)
1781 out[9] = (inl >> 23)
1782 binary.Read(in, binary.LittleEndian, &inl)
1783 out[9] |= (inl % (1 << 22)) << (31 - 22)
1784 out[10] = (inl >> 22)
1785 binary.Read(in, binary.LittleEndian, &inl)
1786 out[10] |= (inl % (1 << 21)) << (31 - 21)
1787 out[11] = (inl >> 21)
1788 binary.Read(in, binary.LittleEndian, &inl)
1789 out[11] |= (inl % (1 << 20)) << (31 - 20)
1790 out[12] = (inl >> 20)
1791 binary.Read(in, binary.LittleEndian, &inl)
1792 out[12] |= (inl % (1 << 19)) << (31 - 19)
1793 out[13] = (inl >> 19)
1794 binary.Read(in, binary.LittleEndian, &inl)
1795 out[13] |= (inl % (1 << 18)) << (31 - 18)
1796 out[14] = (inl >> 18)
1797 binary.Read(in, binary.LittleEndian, &inl)
1798 out[14] |= (inl % (1 << 17)) << (31 - 17)
1799 out[15] = (inl >> 17)
1800 binary.Read(in, binary.LittleEndian, &inl)
1801 out[15] |= (inl % (1 << 16)) << (31 - 16)
1802 out[16] = (inl >> 16)
1803 binary.Read(in, binary.LittleEndian, &inl)
1804 out[16] |= (inl % (1 << 15)) << (31 - 15)
1805 out[17] = (inl >> 15)
1806 binary.Read(in, binary.LittleEndian, &inl)
1807 out[17] |= (inl % (1 << 14)) << (31 - 14)
1808 out[18] = (inl >> 14)
1809 binary.Read(in, binary.LittleEndian, &inl)
1810 out[18] |= (inl % (1 << 13)) << (31 - 13)
1811 out[19] = (inl >> 13)
1812 binary.Read(in, binary.LittleEndian, &inl)
1813 out[19] |= (inl % (1 << 12)) << (31 - 12)
1814 out[20] = (inl >> 12)
1815 binary.Read(in, binary.LittleEndian, &inl)
1816 out[20] |= (inl % (1 << 11)) << (31 - 11)
1817 out[21] = (inl >> 11)
1818 binary.Read(in, binary.LittleEndian, &inl)
1819 out[21] |= (inl % (1 << 10)) << (31 - 10)
1820 out[22] = (inl >> 10)
1821 binary.Read(in, binary.LittleEndian, &inl)
1822 out[22] |= (inl % (1 << 9)) << (31 - 9)
1823 out[23] = (inl >> 9)
1824 binary.Read(in, binary.LittleEndian, &inl)
1825 out[23] |= (inl % (1 << 8)) << (31 - 8)
1826 out[24] = (inl >> 8)
1827 binary.Read(in, binary.LittleEndian, &inl)
1828 out[24] |= (inl % (1 << 7)) << (31 - 7)
1829 out[25] = (inl >> 7)
1830 binary.Read(in, binary.LittleEndian, &inl)
1831 out[25] |= (inl % (1 << 6)) << (31 - 6)
1832 out[26] = (inl >> 6)
1833 binary.Read(in, binary.LittleEndian, &inl)
1834 out[26] |= (inl % (1 << 5)) << (31 - 5)
1835 out[27] = (inl >> 5)
1836 binary.Read(in, binary.LittleEndian, &inl)
1837 out[27] |= (inl % (1 << 4)) << (31 - 4)
1838 out[28] = (inl >> 4)
1839 binary.Read(in, binary.LittleEndian, &inl)
1840 out[28] |= (inl % (1 << 3)) << (31 - 3)
1841 out[29] = (inl >> 3)
1842 binary.Read(in, binary.LittleEndian, &inl)
1843 out[29] |= (inl % (1 << 2)) << (31 - 2)
1844 out[30] = (inl >> 2)
1845 binary.Read(in, binary.LittleEndian, &inl)
1846 out[30] |= (inl % (1 << 1)) << (31 - 1)
1847 out[31] = (inl >> 1)
1848 }
1849
1850 func unpack32_32(in io.Reader, out []uint32) {
1851 for idx := range out[:32] {
1852 binary.Read(in, binary.LittleEndian, &out[idx])
1853 }
1854 }
1855
1856 func nullunpack32(_ io.Reader, out []uint32) {
1857 out[0] = 0
1858 for i := 1; i < 32; i *= 2 {
1859 copy(out[i:], out[:i])
1860 }
1861 }
1862
1863 func unpack32Default(in io.Reader, out []uint32, nbits int) int {
1864 batch := len(out) / 32 * 32
1865 nloops := batch / 32
1866
1867 var f unpackFunc
1868 switch nbits {
1869 case 0:
1870 f = nullunpack32
1871 case 1:
1872 f = unpack1_32
1873 case 2:
1874 f = unpack2_32
1875 case 3:
1876 f = unpack3_32
1877 case 4:
1878 f = unpack4_32
1879 case 5:
1880 f = unpack5_32
1881 case 6:
1882 f = unpack6_32
1883 case 7:
1884 f = unpack7_32
1885 case 8:
1886 f = unpack8_32
1887 case 9:
1888 f = unpack9_32
1889 case 10:
1890 f = unpack10_32
1891 case 11:
1892 f = unpack11_32
1893 case 12:
1894 f = unpack12_32
1895 case 13:
1896 f = unpack13_32
1897 case 14:
1898 f = unpack14_32
1899 case 15:
1900 f = unpack15_32
1901 case 16:
1902 f = unpack16_32
1903 case 17:
1904 f = unpack17_32
1905 case 18:
1906 f = unpack18_32
1907 case 19:
1908 f = unpack19_32
1909 case 20:
1910 f = unpack20_32
1911 case 21:
1912 f = unpack21_32
1913 case 22:
1914 f = unpack22_32
1915 case 23:
1916 f = unpack23_32
1917 case 24:
1918 f = unpack24_32
1919 case 25:
1920 f = unpack25_32
1921 case 26:
1922 f = unpack26_32
1923 case 27:
1924 f = unpack27_32
1925 case 28:
1926 f = unpack28_32
1927 case 29:
1928 f = unpack29_32
1929 case 30:
1930 f = unpack30_32
1931 case 31:
1932 f = unpack31_32
1933 case 32:
1934 f = unpack32_32
1935 default:
1936 return 0
1937 }
1938
1939 for i := 0; i < nloops; i++ {
1940 f(in, out[i*32:])
1941 }
1942 return batch
1943 }
1944
View as plain text