GENIE
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
DeviceBitPackingHelpers.cu
Go to the documentation of this file.
2 
3 namespace genie
4 {
5 namespace compression
6 {
7 
8 void __device__ __host__ __fastunpack0(const uint32_t *, uint32_t * out) {
9  for (uint32_t i = 0; i < 32; ++i)
10  *(out++) = 0;
11 }
12 void __fastpack0(const uint32_t *, uint32_t *) {}
13 void __fastpackwithoutmask0(const uint32_t *,
14  uint32_t *) {}
15 
16 void __device__ __host__ __fastunpack32(const uint32_t * in,
17  uint32_t * out) {
18  for (int k = 0; k < 32; ++k)
19  out[k] = in[k];
20 }
21 void __fastpack32(const uint32_t * in, uint32_t * out) {
22  for (int k = 0; k < 32; ++k)
23  out[k] = in[k];
24 }
25 
26 void __fastpackwithoutmask32(const uint32_t * in,
27  uint32_t * out) {
28  for (int k = 0; k < 32; ++k)
29  out[k] = in[k];
30 }
31 
32 void __device__ __host__ __fastunpack1(const uint32_t * in,
33  uint32_t * out) {
34  *out = ((*in) >> 0) & 1;
35  out++;
36  *out = ((*in) >> 1) & 1;
37  out++;
38  *out = ((*in) >> 2) & 1;
39  out++;
40  *out = ((*in) >> 3) & 1;
41  out++;
42  *out = ((*in) >> 4) & 1;
43  out++;
44  *out = ((*in) >> 5) & 1;
45  out++;
46  *out = ((*in) >> 6) & 1;
47  out++;
48  *out = ((*in) >> 7) & 1;
49  out++;
50  *out = ((*in) >> 8) & 1;
51  out++;
52  *out = ((*in) >> 9) & 1;
53  out++;
54  *out = ((*in) >> 10) & 1;
55  out++;
56  *out = ((*in) >> 11) & 1;
57  out++;
58  *out = ((*in) >> 12) & 1;
59  out++;
60  *out = ((*in) >> 13) & 1;
61  out++;
62  *out = ((*in) >> 14) & 1;
63  out++;
64  *out = ((*in) >> 15) & 1;
65  out++;
66  *out = ((*in) >> 16) & 1;
67  out++;
68  *out = ((*in) >> 17) & 1;
69  out++;
70  *out = ((*in) >> 18) & 1;
71  out++;
72  *out = ((*in) >> 19) & 1;
73  out++;
74  *out = ((*in) >> 20) & 1;
75  out++;
76  *out = ((*in) >> 21) & 1;
77  out++;
78  *out = ((*in) >> 22) & 1;
79  out++;
80  *out = ((*in) >> 23) & 1;
81  out++;
82  *out = ((*in) >> 24) & 1;
83  out++;
84  *out = ((*in) >> 25) & 1;
85  out++;
86  *out = ((*in) >> 26) & 1;
87  out++;
88  *out = ((*in) >> 27) & 1;
89  out++;
90  *out = ((*in) >> 28) & 1;
91  out++;
92  *out = ((*in) >> 29) & 1;
93  out++;
94  *out = ((*in) >> 30) & 1;
95  out++;
96  *out = ((*in) >> 31);
97 }
98 
99 void __device__ __host__ __fastunpack2(const uint32_t * in,
100  uint32_t * out) {
101  *out = ((*in) >> 0) % (1U << 2);
102  out++;
103  *out = ((*in) >> 2) % (1U << 2);
104  out++;
105  *out = ((*in) >> 4) % (1U << 2);
106  out++;
107  *out = ((*in) >> 6) % (1U << 2);
108  out++;
109  *out = ((*in) >> 8) % (1U << 2);
110  out++;
111  *out = ((*in) >> 10) % (1U << 2);
112  out++;
113  *out = ((*in) >> 12) % (1U << 2);
114  out++;
115  *out = ((*in) >> 14) % (1U << 2);
116  out++;
117  *out = ((*in) >> 16) % (1U << 2);
118  out++;
119  *out = ((*in) >> 18) % (1U << 2);
120  out++;
121  *out = ((*in) >> 20) % (1U << 2);
122  out++;
123  *out = ((*in) >> 22) % (1U << 2);
124  out++;
125  *out = ((*in) >> 24) % (1U << 2);
126  out++;
127  *out = ((*in) >> 26) % (1U << 2);
128  out++;
129  *out = ((*in) >> 28) % (1U << 2);
130  out++;
131  *out = ((*in) >> 30);
132  ++in;
133  out++;
134  *out = ((*in) >> 0) % (1U << 2);
135  out++;
136  *out = ((*in) >> 2) % (1U << 2);
137  out++;
138  *out = ((*in) >> 4) % (1U << 2);
139  out++;
140  *out = ((*in) >> 6) % (1U << 2);
141  out++;
142  *out = ((*in) >> 8) % (1U << 2);
143  out++;
144  *out = ((*in) >> 10) % (1U << 2);
145  out++;
146  *out = ((*in) >> 12) % (1U << 2);
147  out++;
148  *out = ((*in) >> 14) % (1U << 2);
149  out++;
150  *out = ((*in) >> 16) % (1U << 2);
151  out++;
152  *out = ((*in) >> 18) % (1U << 2);
153  out++;
154  *out = ((*in) >> 20) % (1U << 2);
155  out++;
156  *out = ((*in) >> 22) % (1U << 2);
157  out++;
158  *out = ((*in) >> 24) % (1U << 2);
159  out++;
160  *out = ((*in) >> 26) % (1U << 2);
161  out++;
162  *out = ((*in) >> 28) % (1U << 2);
163  out++;
164  *out = ((*in) >> 30);
165 }
166 
167 void __device__ __host__ __fastunpack3(const uint32_t * in,
168  uint32_t * out) {
169  *out = ((*in) >> 0) % (1U << 3);
170  out++;
171  *out = ((*in) >> 3) % (1U << 3);
172  out++;
173  *out = ((*in) >> 6) % (1U << 3);
174  out++;
175  *out = ((*in) >> 9) % (1U << 3);
176  out++;
177  *out = ((*in) >> 12) % (1U << 3);
178  out++;
179  *out = ((*in) >> 15) % (1U << 3);
180  out++;
181  *out = ((*in) >> 18) % (1U << 3);
182  out++;
183  *out = ((*in) >> 21) % (1U << 3);
184  out++;
185  *out = ((*in) >> 24) % (1U << 3);
186  out++;
187  *out = ((*in) >> 27) % (1U << 3);
188  out++;
189  *out = ((*in) >> 30);
190  ++in;
191  *out |= ((*in) % (1U << 1)) << (3 - 1);
192  out++;
193  *out = ((*in) >> 1) % (1U << 3);
194  out++;
195  *out = ((*in) >> 4) % (1U << 3);
196  out++;
197  *out = ((*in) >> 7) % (1U << 3);
198  out++;
199  *out = ((*in) >> 10) % (1U << 3);
200  out++;
201  *out = ((*in) >> 13) % (1U << 3);
202  out++;
203  *out = ((*in) >> 16) % (1U << 3);
204  out++;
205  *out = ((*in) >> 19) % (1U << 3);
206  out++;
207  *out = ((*in) >> 22) % (1U << 3);
208  out++;
209  *out = ((*in) >> 25) % (1U << 3);
210  out++;
211  *out = ((*in) >> 28) % (1U << 3);
212  out++;
213  *out = ((*in) >> 31);
214  ++in;
215  *out |= ((*in) % (1U << 2)) << (3 - 2);
216  out++;
217  *out = ((*in) >> 2) % (1U << 3);
218  out++;
219  *out = ((*in) >> 5) % (1U << 3);
220  out++;
221  *out = ((*in) >> 8) % (1U << 3);
222  out++;
223  *out = ((*in) >> 11) % (1U << 3);
224  out++;
225  *out = ((*in) >> 14) % (1U << 3);
226  out++;
227  *out = ((*in) >> 17) % (1U << 3);
228  out++;
229  *out = ((*in) >> 20) % (1U << 3);
230  out++;
231  *out = ((*in) >> 23) % (1U << 3);
232  out++;
233  *out = ((*in) >> 26) % (1U << 3);
234  out++;
235  *out = ((*in) >> 29);
236 }
237 
238 void __device__ __host__ __fastunpack5(const uint32_t * in,
239  uint32_t * out) {
240  *out = ((*in) >> 0) % (1U << 5);
241  out++;
242  *out = ((*in) >> 5) % (1U << 5);
243  out++;
244  *out = ((*in) >> 10) % (1U << 5);
245  out++;
246  *out = ((*in) >> 15) % (1U << 5);
247  out++;
248  *out = ((*in) >> 20) % (1U << 5);
249  out++;
250  *out = ((*in) >> 25) % (1U << 5);
251  out++;
252  *out = ((*in) >> 30);
253  ++in;
254  *out |= ((*in) % (1U << 3)) << (5 - 3);
255  out++;
256  *out = ((*in) >> 3) % (1U << 5);
257  out++;
258  *out = ((*in) >> 8) % (1U << 5);
259  out++;
260  *out = ((*in) >> 13) % (1U << 5);
261  out++;
262  *out = ((*in) >> 18) % (1U << 5);
263  out++;
264  *out = ((*in) >> 23) % (1U << 5);
265  out++;
266  *out = ((*in) >> 28);
267  ++in;
268  *out |= ((*in) % (1U << 1)) << (5 - 1);
269  out++;
270  *out = ((*in) >> 1) % (1U << 5);
271  out++;
272  *out = ((*in) >> 6) % (1U << 5);
273  out++;
274  *out = ((*in) >> 11) % (1U << 5);
275  out++;
276  *out = ((*in) >> 16) % (1U << 5);
277  out++;
278  *out = ((*in) >> 21) % (1U << 5);
279  out++;
280  *out = ((*in) >> 26) % (1U << 5);
281  out++;
282  *out = ((*in) >> 31);
283  ++in;
284  *out |= ((*in) % (1U << 4)) << (5 - 4);
285  out++;
286  *out = ((*in) >> 4) % (1U << 5);
287  out++;
288  *out = ((*in) >> 9) % (1U << 5);
289  out++;
290  *out = ((*in) >> 14) % (1U << 5);
291  out++;
292  *out = ((*in) >> 19) % (1U << 5);
293  out++;
294  *out = ((*in) >> 24) % (1U << 5);
295  out++;
296  *out = ((*in) >> 29);
297  ++in;
298  *out |= ((*in) % (1U << 2)) << (5 - 2);
299  out++;
300  *out = ((*in) >> 2) % (1U << 5);
301  out++;
302  *out = ((*in) >> 7) % (1U << 5);
303  out++;
304  *out = ((*in) >> 12) % (1U << 5);
305  out++;
306  *out = ((*in) >> 17) % (1U << 5);
307  out++;
308  *out = ((*in) >> 22) % (1U << 5);
309  out++;
310  *out = ((*in) >> 27);
311 }
312 
313 void __device__ __host__ __fastunpack6(const uint32_t * in,
314  uint32_t * out) {
315  *out = ((*in) >> 0) % (1U << 6);
316  out++;
317  *out = ((*in) >> 6) % (1U << 6);
318  out++;
319  *out = ((*in) >> 12) % (1U << 6);
320  out++;
321  *out = ((*in) >> 18) % (1U << 6);
322  out++;
323  *out = ((*in) >> 24) % (1U << 6);
324  out++;
325  *out = ((*in) >> 30);
326  ++in;
327  *out |= ((*in) % (1U << 4)) << (6 - 4);
328  out++;
329  *out = ((*in) >> 4) % (1U << 6);
330  out++;
331  *out = ((*in) >> 10) % (1U << 6);
332  out++;
333  *out = ((*in) >> 16) % (1U << 6);
334  out++;
335  *out = ((*in) >> 22) % (1U << 6);
336  out++;
337  *out = ((*in) >> 28);
338  ++in;
339  *out |= ((*in) % (1U << 2)) << (6 - 2);
340  out++;
341  *out = ((*in) >> 2) % (1U << 6);
342  out++;
343  *out = ((*in) >> 8) % (1U << 6);
344  out++;
345  *out = ((*in) >> 14) % (1U << 6);
346  out++;
347  *out = ((*in) >> 20) % (1U << 6);
348  out++;
349  *out = ((*in) >> 26);
350  ++in;
351  out++;
352  *out = ((*in) >> 0) % (1U << 6);
353  out++;
354  *out = ((*in) >> 6) % (1U << 6);
355  out++;
356  *out = ((*in) >> 12) % (1U << 6);
357  out++;
358  *out = ((*in) >> 18) % (1U << 6);
359  out++;
360  *out = ((*in) >> 24) % (1U << 6);
361  out++;
362  *out = ((*in) >> 30);
363  ++in;
364  *out |= ((*in) % (1U << 4)) << (6 - 4);
365  out++;
366  *out = ((*in) >> 4) % (1U << 6);
367  out++;
368  *out = ((*in) >> 10) % (1U << 6);
369  out++;
370  *out = ((*in) >> 16) % (1U << 6);
371  out++;
372  *out = ((*in) >> 22) % (1U << 6);
373  out++;
374  *out = ((*in) >> 28);
375  ++in;
376  *out |= ((*in) % (1U << 2)) << (6 - 2);
377  out++;
378  *out = ((*in) >> 2) % (1U << 6);
379  out++;
380  *out = ((*in) >> 8) % (1U << 6);
381  out++;
382  *out = ((*in) >> 14) % (1U << 6);
383  out++;
384  *out = ((*in) >> 20) % (1U << 6);
385  out++;
386  *out = ((*in) >> 26);
387 }
388 
389 void __device__ __host__ __fastunpack7(const uint32_t * in,
390  uint32_t * out) {
391  *out = ((*in) >> 0) % (1U << 7);
392  out++;
393  *out = ((*in) >> 7) % (1U << 7);
394  out++;
395  *out = ((*in) >> 14) % (1U << 7);
396  out++;
397  *out = ((*in) >> 21) % (1U << 7);
398  out++;
399  *out = ((*in) >> 28);
400  ++in;
401  *out |= ((*in) % (1U << 3)) << (7 - 3);
402  out++;
403  *out = ((*in) >> 3) % (1U << 7);
404  out++;
405  *out = ((*in) >> 10) % (1U << 7);
406  out++;
407  *out = ((*in) >> 17) % (1U << 7);
408  out++;
409  *out = ((*in) >> 24) % (1U << 7);
410  out++;
411  *out = ((*in) >> 31);
412  ++in;
413  *out |= ((*in) % (1U << 6)) << (7 - 6);
414  out++;
415  *out = ((*in) >> 6) % (1U << 7);
416  out++;
417  *out = ((*in) >> 13) % (1U << 7);
418  out++;
419  *out = ((*in) >> 20) % (1U << 7);
420  out++;
421  *out = ((*in) >> 27);
422  ++in;
423  *out |= ((*in) % (1U << 2)) << (7 - 2);
424  out++;
425  *out = ((*in) >> 2) % (1U << 7);
426  out++;
427  *out = ((*in) >> 9) % (1U << 7);
428  out++;
429  *out = ((*in) >> 16) % (1U << 7);
430  out++;
431  *out = ((*in) >> 23) % (1U << 7);
432  out++;
433  *out = ((*in) >> 30);
434  ++in;
435  *out |= ((*in) % (1U << 5)) << (7 - 5);
436  out++;
437  *out = ((*in) >> 5) % (1U << 7);
438  out++;
439  *out = ((*in) >> 12) % (1U << 7);
440  out++;
441  *out = ((*in) >> 19) % (1U << 7);
442  out++;
443  *out = ((*in) >> 26);
444  ++in;
445  *out |= ((*in) % (1U << 1)) << (7 - 1);
446  out++;
447  *out = ((*in) >> 1) % (1U << 7);
448  out++;
449  *out = ((*in) >> 8) % (1U << 7);
450  out++;
451  *out = ((*in) >> 15) % (1U << 7);
452  out++;
453  *out = ((*in) >> 22) % (1U << 7);
454  out++;
455  *out = ((*in) >> 29);
456  ++in;
457  *out |= ((*in) % (1U << 4)) << (7 - 4);
458  out++;
459  *out = ((*in) >> 4) % (1U << 7);
460  out++;
461  *out = ((*in) >> 11) % (1U << 7);
462  out++;
463  *out = ((*in) >> 18) % (1U << 7);
464  out++;
465  *out = ((*in) >> 25);
466 }
467 
468 void __device__ __host__ __fastunpack9(const uint32_t * in,
469  uint32_t * out) {
470  *out = ((*in) >> 0) % (1U << 9);
471  out++;
472  *out = ((*in) >> 9) % (1U << 9);
473  out++;
474  *out = ((*in) >> 18) % (1U << 9);
475  out++;
476  *out = ((*in) >> 27);
477  ++in;
478  *out |= ((*in) % (1U << 4)) << (9 - 4);
479  out++;
480  *out = ((*in) >> 4) % (1U << 9);
481  out++;
482  *out = ((*in) >> 13) % (1U << 9);
483  out++;
484  *out = ((*in) >> 22) % (1U << 9);
485  out++;
486  *out = ((*in) >> 31);
487  ++in;
488  *out |= ((*in) % (1U << 8)) << (9 - 8);
489  out++;
490  *out = ((*in) >> 8) % (1U << 9);
491  out++;
492  *out = ((*in) >> 17) % (1U << 9);
493  out++;
494  *out = ((*in) >> 26);
495  ++in;
496  *out |= ((*in) % (1U << 3)) << (9 - 3);
497  out++;
498  *out = ((*in) >> 3) % (1U << 9);
499  out++;
500  *out = ((*in) >> 12) % (1U << 9);
501  out++;
502  *out = ((*in) >> 21) % (1U << 9);
503  out++;
504  *out = ((*in) >> 30);
505  ++in;
506  *out |= ((*in) % (1U << 7)) << (9 - 7);
507  out++;
508  *out = ((*in) >> 7) % (1U << 9);
509  out++;
510  *out = ((*in) >> 16) % (1U << 9);
511  out++;
512  *out = ((*in) >> 25);
513  ++in;
514  *out |= ((*in) % (1U << 2)) << (9 - 2);
515  out++;
516  *out = ((*in) >> 2) % (1U << 9);
517  out++;
518  *out = ((*in) >> 11) % (1U << 9);
519  out++;
520  *out = ((*in) >> 20) % (1U << 9);
521  out++;
522  *out = ((*in) >> 29);
523  ++in;
524  *out |= ((*in) % (1U << 6)) << (9 - 6);
525  out++;
526  *out = ((*in) >> 6) % (1U << 9);
527  out++;
528  *out = ((*in) >> 15) % (1U << 9);
529  out++;
530  *out = ((*in) >> 24);
531  ++in;
532  *out |= ((*in) % (1U << 1)) << (9 - 1);
533  out++;
534  *out = ((*in) >> 1) % (1U << 9);
535  out++;
536  *out = ((*in) >> 10) % (1U << 9);
537  out++;
538  *out = ((*in) >> 19) % (1U << 9);
539  out++;
540  *out = ((*in) >> 28);
541  ++in;
542  *out |= ((*in) % (1U << 5)) << (9 - 5);
543  out++;
544  *out = ((*in) >> 5) % (1U << 9);
545  out++;
546  *out = ((*in) >> 14) % (1U << 9);
547  out++;
548  *out = ((*in) >> 23);
549 }
550 
551 void __device__ __host__ __fastunpack10(const uint32_t * in,
552  uint32_t * out) {
553  *out = ((*in) >> 0) % (1U << 10);
554  out++;
555  *out = ((*in) >> 10) % (1U << 10);
556  out++;
557  *out = ((*in) >> 20) % (1U << 10);
558  out++;
559  *out = ((*in) >> 30);
560  ++in;
561  *out |= ((*in) % (1U << 8)) << (10 - 8);
562  out++;
563  *out = ((*in) >> 8) % (1U << 10);
564  out++;
565  *out = ((*in) >> 18) % (1U << 10);
566  out++;
567  *out = ((*in) >> 28);
568  ++in;
569  *out |= ((*in) % (1U << 6)) << (10 - 6);
570  out++;
571  *out = ((*in) >> 6) % (1U << 10);
572  out++;
573  *out = ((*in) >> 16) % (1U << 10);
574  out++;
575  *out = ((*in) >> 26);
576  ++in;
577  *out |= ((*in) % (1U << 4)) << (10 - 4);
578  out++;
579  *out = ((*in) >> 4) % (1U << 10);
580  out++;
581  *out = ((*in) >> 14) % (1U << 10);
582  out++;
583  *out = ((*in) >> 24);
584  ++in;
585  *out |= ((*in) % (1U << 2)) << (10 - 2);
586  out++;
587  *out = ((*in) >> 2) % (1U << 10);
588  out++;
589  *out = ((*in) >> 12) % (1U << 10);
590  out++;
591  *out = ((*in) >> 22);
592  ++in;
593  out++;
594  *out = ((*in) >> 0) % (1U << 10);
595  out++;
596  *out = ((*in) >> 10) % (1U << 10);
597  out++;
598  *out = ((*in) >> 20) % (1U << 10);
599  out++;
600  *out = ((*in) >> 30);
601  ++in;
602  *out |= ((*in) % (1U << 8)) << (10 - 8);
603  out++;
604  *out = ((*in) >> 8) % (1U << 10);
605  out++;
606  *out = ((*in) >> 18) % (1U << 10);
607  out++;
608  *out = ((*in) >> 28);
609  ++in;
610  *out |= ((*in) % (1U << 6)) << (10 - 6);
611  out++;
612  *out = ((*in) >> 6) % (1U << 10);
613  out++;
614  *out = ((*in) >> 16) % (1U << 10);
615  out++;
616  *out = ((*in) >> 26);
617  ++in;
618  *out |= ((*in) % (1U << 4)) << (10 - 4);
619  out++;
620  *out = ((*in) >> 4) % (1U << 10);
621  out++;
622  *out = ((*in) >> 14) % (1U << 10);
623  out++;
624  *out = ((*in) >> 24);
625  ++in;
626  *out |= ((*in) % (1U << 2)) << (10 - 2);
627  out++;
628  *out = ((*in) >> 2) % (1U << 10);
629  out++;
630  *out = ((*in) >> 12) % (1U << 10);
631  out++;
632  *out = ((*in) >> 22);
633 }
634 
635 void __device__ __host__ __fastunpack11(const uint32_t * in,
636  uint32_t * out) {
637  *out = ((*in) >> 0) % (1U << 11);
638  out++;
639  *out = ((*in) >> 11) % (1U << 11);
640  out++;
641  *out = ((*in) >> 22);
642  ++in;
643  *out |= ((*in) % (1U << 1)) << (11 - 1);
644  out++;
645  *out = ((*in) >> 1) % (1U << 11);
646  out++;
647  *out = ((*in) >> 12) % (1U << 11);
648  out++;
649  *out = ((*in) >> 23);
650  ++in;
651  *out |= ((*in) % (1U << 2)) << (11 - 2);
652  out++;
653  *out = ((*in) >> 2) % (1U << 11);
654  out++;
655  *out = ((*in) >> 13) % (1U << 11);
656  out++;
657  *out = ((*in) >> 24);
658  ++in;
659  *out |= ((*in) % (1U << 3)) << (11 - 3);
660  out++;
661  *out = ((*in) >> 3) % (1U << 11);
662  out++;
663  *out = ((*in) >> 14) % (1U << 11);
664  out++;
665  *out = ((*in) >> 25);
666  ++in;
667  *out |= ((*in) % (1U << 4)) << (11 - 4);
668  out++;
669  *out = ((*in) >> 4) % (1U << 11);
670  out++;
671  *out = ((*in) >> 15) % (1U << 11);
672  out++;
673  *out = ((*in) >> 26);
674  ++in;
675  *out |= ((*in) % (1U << 5)) << (11 - 5);
676  out++;
677  *out = ((*in) >> 5) % (1U << 11);
678  out++;
679  *out = ((*in) >> 16) % (1U << 11);
680  out++;
681  *out = ((*in) >> 27);
682  ++in;
683  *out |= ((*in) % (1U << 6)) << (11 - 6);
684  out++;
685  *out = ((*in) >> 6) % (1U << 11);
686  out++;
687  *out = ((*in) >> 17) % (1U << 11);
688  out++;
689  *out = ((*in) >> 28);
690  ++in;
691  *out |= ((*in) % (1U << 7)) << (11 - 7);
692  out++;
693  *out = ((*in) >> 7) % (1U << 11);
694  out++;
695  *out = ((*in) >> 18) % (1U << 11);
696  out++;
697  *out = ((*in) >> 29);
698  ++in;
699  *out |= ((*in) % (1U << 8)) << (11 - 8);
700  out++;
701  *out = ((*in) >> 8) % (1U << 11);
702  out++;
703  *out = ((*in) >> 19) % (1U << 11);
704  out++;
705  *out = ((*in) >> 30);
706  ++in;
707  *out |= ((*in) % (1U << 9)) << (11 - 9);
708  out++;
709  *out = ((*in) >> 9) % (1U << 11);
710  out++;
711  *out = ((*in) >> 20) % (1U << 11);
712  out++;
713  *out = ((*in) >> 31);
714  ++in;
715  *out |= ((*in) % (1U << 10)) << (11 - 10);
716  out++;
717  *out = ((*in) >> 10) % (1U << 11);
718  out++;
719  *out = ((*in) >> 21);
720 }
721 
722 void __device__ __host__ __fastunpack12(const uint32_t * in,
723  uint32_t * out) {
724  *out = ((*in) >> 0) % (1U << 12);
725  out++;
726  *out = ((*in) >> 12) % (1U << 12);
727  out++;
728  *out = ((*in) >> 24);
729  ++in;
730  *out |= ((*in) % (1U << 4)) << (12 - 4);
731  out++;
732  *out = ((*in) >> 4) % (1U << 12);
733  out++;
734  *out = ((*in) >> 16) % (1U << 12);
735  out++;
736  *out = ((*in) >> 28);
737  ++in;
738  *out |= ((*in) % (1U << 8)) << (12 - 8);
739  out++;
740  *out = ((*in) >> 8) % (1U << 12);
741  out++;
742  *out = ((*in) >> 20);
743  ++in;
744  out++;
745  *out = ((*in) >> 0) % (1U << 12);
746  out++;
747  *out = ((*in) >> 12) % (1U << 12);
748  out++;
749  *out = ((*in) >> 24);
750  ++in;
751  *out |= ((*in) % (1U << 4)) << (12 - 4);
752  out++;
753  *out = ((*in) >> 4) % (1U << 12);
754  out++;
755  *out = ((*in) >> 16) % (1U << 12);
756  out++;
757  *out = ((*in) >> 28);
758  ++in;
759  *out |= ((*in) % (1U << 8)) << (12 - 8);
760  out++;
761  *out = ((*in) >> 8) % (1U << 12);
762  out++;
763  *out = ((*in) >> 20);
764  ++in;
765  out++;
766  *out = ((*in) >> 0) % (1U << 12);
767  out++;
768  *out = ((*in) >> 12) % (1U << 12);
769  out++;
770  *out = ((*in) >> 24);
771  ++in;
772  *out |= ((*in) % (1U << 4)) << (12 - 4);
773  out++;
774  *out = ((*in) >> 4) % (1U << 12);
775  out++;
776  *out = ((*in) >> 16) % (1U << 12);
777  out++;
778  *out = ((*in) >> 28);
779  ++in;
780  *out |= ((*in) % (1U << 8)) << (12 - 8);
781  out++;
782  *out = ((*in) >> 8) % (1U << 12);
783  out++;
784  *out = ((*in) >> 20);
785  ++in;
786  out++;
787  *out = ((*in) >> 0) % (1U << 12);
788  out++;
789  *out = ((*in) >> 12) % (1U << 12);
790  out++;
791  *out = ((*in) >> 24);
792  ++in;
793  *out |= ((*in) % (1U << 4)) << (12 - 4);
794  out++;
795  *out = ((*in) >> 4) % (1U << 12);
796  out++;
797  *out = ((*in) >> 16) % (1U << 12);
798  out++;
799  *out = ((*in) >> 28);
800  ++in;
801  *out |= ((*in) % (1U << 8)) << (12 - 8);
802  out++;
803  *out = ((*in) >> 8) % (1U << 12);
804  out++;
805  *out = ((*in) >> 20);
806 }
807 
808 void __device__ __host__ __fastunpack13(const uint32_t * in,
809  uint32_t * out) {
810  *out = ((*in) >> 0) % (1U << 13);
811  out++;
812  *out = ((*in) >> 13) % (1U << 13);
813  out++;
814  *out = ((*in) >> 26);
815  ++in;
816  *out |= ((*in) % (1U << 7)) << (13 - 7);
817  out++;
818  *out = ((*in) >> 7) % (1U << 13);
819  out++;
820  *out = ((*in) >> 20);
821  ++in;
822  *out |= ((*in) % (1U << 1)) << (13 - 1);
823  out++;
824  *out = ((*in) >> 1) % (1U << 13);
825  out++;
826  *out = ((*in) >> 14) % (1U << 13);
827  out++;
828  *out = ((*in) >> 27);
829  ++in;
830  *out |= ((*in) % (1U << 8)) << (13 - 8);
831  out++;
832  *out = ((*in) >> 8) % (1U << 13);
833  out++;
834  *out = ((*in) >> 21);
835  ++in;
836  *out |= ((*in) % (1U << 2)) << (13 - 2);
837  out++;
838  *out = ((*in) >> 2) % (1U << 13);
839  out++;
840  *out = ((*in) >> 15) % (1U << 13);
841  out++;
842  *out = ((*in) >> 28);
843  ++in;
844  *out |= ((*in) % (1U << 9)) << (13 - 9);
845  out++;
846  *out = ((*in) >> 9) % (1U << 13);
847  out++;
848  *out = ((*in) >> 22);
849  ++in;
850  *out |= ((*in) % (1U << 3)) << (13 - 3);
851  out++;
852  *out = ((*in) >> 3) % (1U << 13);
853  out++;
854  *out = ((*in) >> 16) % (1U << 13);
855  out++;
856  *out = ((*in) >> 29);
857  ++in;
858  *out |= ((*in) % (1U << 10)) << (13 - 10);
859  out++;
860  *out = ((*in) >> 10) % (1U << 13);
861  out++;
862  *out = ((*in) >> 23);
863  ++in;
864  *out |= ((*in) % (1U << 4)) << (13 - 4);
865  out++;
866  *out = ((*in) >> 4) % (1U << 13);
867  out++;
868  *out = ((*in) >> 17) % (1U << 13);
869  out++;
870  *out = ((*in) >> 30);
871  ++in;
872  *out |= ((*in) % (1U << 11)) << (13 - 11);
873  out++;
874  *out = ((*in) >> 11) % (1U << 13);
875  out++;
876  *out = ((*in) >> 24);
877  ++in;
878  *out |= ((*in) % (1U << 5)) << (13 - 5);
879  out++;
880  *out = ((*in) >> 5) % (1U << 13);
881  out++;
882  *out = ((*in) >> 18) % (1U << 13);
883  out++;
884  *out = ((*in) >> 31);
885  ++in;
886  *out |= ((*in) % (1U << 12)) << (13 - 12);
887  out++;
888  *out = ((*in) >> 12) % (1U << 13);
889  out++;
890  *out = ((*in) >> 25);
891  ++in;
892  *out |= ((*in) % (1U << 6)) << (13 - 6);
893  out++;
894  *out = ((*in) >> 6) % (1U << 13);
895  out++;
896  *out = ((*in) >> 19);
897 }
898 
899 void __device__ __host__ __fastunpack14(const uint32_t * in,
900  uint32_t * out) {
901  *out = ((*in) >> 0) % (1U << 14);
902  out++;
903  *out = ((*in) >> 14) % (1U << 14);
904  out++;
905  *out = ((*in) >> 28);
906  ++in;
907  *out |= ((*in) % (1U << 10)) << (14 - 10);
908  out++;
909  *out = ((*in) >> 10) % (1U << 14);
910  out++;
911  *out = ((*in) >> 24);
912  ++in;
913  *out |= ((*in) % (1U << 6)) << (14 - 6);
914  out++;
915  *out = ((*in) >> 6) % (1U << 14);
916  out++;
917  *out = ((*in) >> 20);
918  ++in;
919  *out |= ((*in) % (1U << 2)) << (14 - 2);
920  out++;
921  *out = ((*in) >> 2) % (1U << 14);
922  out++;
923  *out = ((*in) >> 16) % (1U << 14);
924  out++;
925  *out = ((*in) >> 30);
926  ++in;
927  *out |= ((*in) % (1U << 12)) << (14 - 12);
928  out++;
929  *out = ((*in) >> 12) % (1U << 14);
930  out++;
931  *out = ((*in) >> 26);
932  ++in;
933  *out |= ((*in) % (1U << 8)) << (14 - 8);
934  out++;
935  *out = ((*in) >> 8) % (1U << 14);
936  out++;
937  *out = ((*in) >> 22);
938  ++in;
939  *out |= ((*in) % (1U << 4)) << (14 - 4);
940  out++;
941  *out = ((*in) >> 4) % (1U << 14);
942  out++;
943  *out = ((*in) >> 18);
944  ++in;
945  out++;
946  *out = ((*in) >> 0) % (1U << 14);
947  out++;
948  *out = ((*in) >> 14) % (1U << 14);
949  out++;
950  *out = ((*in) >> 28);
951  ++in;
952  *out |= ((*in) % (1U << 10)) << (14 - 10);
953  out++;
954  *out = ((*in) >> 10) % (1U << 14);
955  out++;
956  *out = ((*in) >> 24);
957  ++in;
958  *out |= ((*in) % (1U << 6)) << (14 - 6);
959  out++;
960  *out = ((*in) >> 6) % (1U << 14);
961  out++;
962  *out = ((*in) >> 20);
963  ++in;
964  *out |= ((*in) % (1U << 2)) << (14 - 2);
965  out++;
966  *out = ((*in) >> 2) % (1U << 14);
967  out++;
968  *out = ((*in) >> 16) % (1U << 14);
969  out++;
970  *out = ((*in) >> 30);
971  ++in;
972  *out |= ((*in) % (1U << 12)) << (14 - 12);
973  out++;
974  *out = ((*in) >> 12) % (1U << 14);
975  out++;
976  *out = ((*in) >> 26);
977  ++in;
978  *out |= ((*in) % (1U << 8)) << (14 - 8);
979  out++;
980  *out = ((*in) >> 8) % (1U << 14);
981  out++;
982  *out = ((*in) >> 22);
983  ++in;
984  *out |= ((*in) % (1U << 4)) << (14 - 4);
985  out++;
986  *out = ((*in) >> 4) % (1U << 14);
987  out++;
988  *out = ((*in) >> 18);
989 }
990 
991 void __device__ __host__ __fastunpack15(const uint32_t * in,
992  uint32_t * out) {
993  *out = ((*in) >> 0) % (1U << 15);
994  out++;
995  *out = ((*in) >> 15) % (1U << 15);
996  out++;
997  *out = ((*in) >> 30);
998  ++in;
999  *out |= ((*in) % (1U << 13)) << (15 - 13);
1000  out++;
1001  *out = ((*in) >> 13) % (1U << 15);
1002  out++;
1003  *out = ((*in) >> 28);
1004  ++in;
1005  *out |= ((*in) % (1U << 11)) << (15 - 11);
1006  out++;
1007  *out = ((*in) >> 11) % (1U << 15);
1008  out++;
1009  *out = ((*in) >> 26);
1010  ++in;
1011  *out |= ((*in) % (1U << 9)) << (15 - 9);
1012  out++;
1013  *out = ((*in) >> 9) % (1U << 15);
1014  out++;
1015  *out = ((*in) >> 24);
1016  ++in;
1017  *out |= ((*in) % (1U << 7)) << (15 - 7);
1018  out++;
1019  *out = ((*in) >> 7) % (1U << 15);
1020  out++;
1021  *out = ((*in) >> 22);
1022  ++in;
1023  *out |= ((*in) % (1U << 5)) << (15 - 5);
1024  out++;
1025  *out = ((*in) >> 5) % (1U << 15);
1026  out++;
1027  *out = ((*in) >> 20);
1028  ++in;
1029  *out |= ((*in) % (1U << 3)) << (15 - 3);
1030  out++;
1031  *out = ((*in) >> 3) % (1U << 15);
1032  out++;
1033  *out = ((*in) >> 18);
1034  ++in;
1035  *out |= ((*in) % (1U << 1)) << (15 - 1);
1036  out++;
1037  *out = ((*in) >> 1) % (1U << 15);
1038  out++;
1039  *out = ((*in) >> 16) % (1U << 15);
1040  out++;
1041  *out = ((*in) >> 31);
1042  ++in;
1043  *out |= ((*in) % (1U << 14)) << (15 - 14);
1044  out++;
1045  *out = ((*in) >> 14) % (1U << 15);
1046  out++;
1047  *out = ((*in) >> 29);
1048  ++in;
1049  *out |= ((*in) % (1U << 12)) << (15 - 12);
1050  out++;
1051  *out = ((*in) >> 12) % (1U << 15);
1052  out++;
1053  *out = ((*in) >> 27);
1054  ++in;
1055  *out |= ((*in) % (1U << 10)) << (15 - 10);
1056  out++;
1057  *out = ((*in) >> 10) % (1U << 15);
1058  out++;
1059  *out = ((*in) >> 25);
1060  ++in;
1061  *out |= ((*in) % (1U << 8)) << (15 - 8);
1062  out++;
1063  *out = ((*in) >> 8) % (1U << 15);
1064  out++;
1065  *out = ((*in) >> 23);
1066  ++in;
1067  *out |= ((*in) % (1U << 6)) << (15 - 6);
1068  out++;
1069  *out = ((*in) >> 6) % (1U << 15);
1070  out++;
1071  *out = ((*in) >> 21);
1072  ++in;
1073  *out |= ((*in) % (1U << 4)) << (15 - 4);
1074  out++;
1075  *out = ((*in) >> 4) % (1U << 15);
1076  out++;
1077  *out = ((*in) >> 19);
1078  ++in;
1079  *out |= ((*in) % (1U << 2)) << (15 - 2);
1080  out++;
1081  *out = ((*in) >> 2) % (1U << 15);
1082  out++;
1083  *out = ((*in) >> 17);
1084 }
1085 
1086 void __device__ __host__ __fastunpack17(const uint32_t * in,
1087  uint32_t * out) {
1088  *out = ((*in) >> 0) % (1U << 17);
1089  out++;
1090  *out = ((*in) >> 17);
1091  ++in;
1092  *out |= ((*in) % (1U << 2)) << (17 - 2);
1093  out++;
1094  *out = ((*in) >> 2) % (1U << 17);
1095  out++;
1096  *out = ((*in) >> 19);
1097  ++in;
1098  *out |= ((*in) % (1U << 4)) << (17 - 4);
1099  out++;
1100  *out = ((*in) >> 4) % (1U << 17);
1101  out++;
1102  *out = ((*in) >> 21);
1103  ++in;
1104  *out |= ((*in) % (1U << 6)) << (17 - 6);
1105  out++;
1106  *out = ((*in) >> 6) % (1U << 17);
1107  out++;
1108  *out = ((*in) >> 23);
1109  ++in;
1110  *out |= ((*in) % (1U << 8)) << (17 - 8);
1111  out++;
1112  *out = ((*in) >> 8) % (1U << 17);
1113  out++;
1114  *out = ((*in) >> 25);
1115  ++in;
1116  *out |= ((*in) % (1U << 10)) << (17 - 10);
1117  out++;
1118  *out = ((*in) >> 10) % (1U << 17);
1119  out++;
1120  *out = ((*in) >> 27);
1121  ++in;
1122  *out |= ((*in) % (1U << 12)) << (17 - 12);
1123  out++;
1124  *out = ((*in) >> 12) % (1U << 17);
1125  out++;
1126  *out = ((*in) >> 29);
1127  ++in;
1128  *out |= ((*in) % (1U << 14)) << (17 - 14);
1129  out++;
1130  *out = ((*in) >> 14) % (1U << 17);
1131  out++;
1132  *out = ((*in) >> 31);
1133  ++in;
1134  *out |= ((*in) % (1U << 16)) << (17 - 16);
1135  out++;
1136  *out = ((*in) >> 16);
1137  ++in;
1138  *out |= ((*in) % (1U << 1)) << (17 - 1);
1139  out++;
1140  *out = ((*in) >> 1) % (1U << 17);
1141  out++;
1142  *out = ((*in) >> 18);
1143  ++in;
1144  *out |= ((*in) % (1U << 3)) << (17 - 3);
1145  out++;
1146  *out = ((*in) >> 3) % (1U << 17);
1147  out++;
1148  *out = ((*in) >> 20);
1149  ++in;
1150  *out |= ((*in) % (1U << 5)) << (17 - 5);
1151  out++;
1152  *out = ((*in) >> 5) % (1U << 17);
1153  out++;
1154  *out = ((*in) >> 22);
1155  ++in;
1156  *out |= ((*in) % (1U << 7)) << (17 - 7);
1157  out++;
1158  *out = ((*in) >> 7) % (1U << 17);
1159  out++;
1160  *out = ((*in) >> 24);
1161  ++in;
1162  *out |= ((*in) % (1U << 9)) << (17 - 9);
1163  out++;
1164  *out = ((*in) >> 9) % (1U << 17);
1165  out++;
1166  *out = ((*in) >> 26);
1167  ++in;
1168  *out |= ((*in) % (1U << 11)) << (17 - 11);
1169  out++;
1170  *out = ((*in) >> 11) % (1U << 17);
1171  out++;
1172  *out = ((*in) >> 28);
1173  ++in;
1174  *out |= ((*in) % (1U << 13)) << (17 - 13);
1175  out++;
1176  *out = ((*in) >> 13) % (1U << 17);
1177  out++;
1178  *out = ((*in) >> 30);
1179  ++in;
1180  *out |= ((*in) % (1U << 15)) << (17 - 15);
1181  out++;
1182  *out = ((*in) >> 15);
1183 }
1184 
1185 void __device__ __host__ __fastunpack18(const uint32_t * in,
1186  uint32_t * out) {
1187  *out = ((*in) >> 0) % (1U << 18);
1188  out++;
1189  *out = ((*in) >> 18);
1190  ++in;
1191  *out |= ((*in) % (1U << 4)) << (18 - 4);
1192  out++;
1193  *out = ((*in) >> 4) % (1U << 18);
1194  out++;
1195  *out = ((*in) >> 22);
1196  ++in;
1197  *out |= ((*in) % (1U << 8)) << (18 - 8);
1198  out++;
1199  *out = ((*in) >> 8) % (1U << 18);
1200  out++;
1201  *out = ((*in) >> 26);
1202  ++in;
1203  *out |= ((*in) % (1U << 12)) << (18 - 12);
1204  out++;
1205  *out = ((*in) >> 12) % (1U << 18);
1206  out++;
1207  *out = ((*in) >> 30);
1208  ++in;
1209  *out |= ((*in) % (1U << 16)) << (18 - 16);
1210  out++;
1211  *out = ((*in) >> 16);
1212  ++in;
1213  *out |= ((*in) % (1U << 2)) << (18 - 2);
1214  out++;
1215  *out = ((*in) >> 2) % (1U << 18);
1216  out++;
1217  *out = ((*in) >> 20);
1218  ++in;
1219  *out |= ((*in) % (1U << 6)) << (18 - 6);
1220  out++;
1221  *out = ((*in) >> 6) % (1U << 18);
1222  out++;
1223  *out = ((*in) >> 24);
1224  ++in;
1225  *out |= ((*in) % (1U << 10)) << (18 - 10);
1226  out++;
1227  *out = ((*in) >> 10) % (1U << 18);
1228  out++;
1229  *out = ((*in) >> 28);
1230  ++in;
1231  *out |= ((*in) % (1U << 14)) << (18 - 14);
1232  out++;
1233  *out = ((*in) >> 14);
1234  ++in;
1235  out++;
1236  *out = ((*in) >> 0) % (1U << 18);
1237  out++;
1238  *out = ((*in) >> 18);
1239  ++in;
1240  *out |= ((*in) % (1U << 4)) << (18 - 4);
1241  out++;
1242  *out = ((*in) >> 4) % (1U << 18);
1243  out++;
1244  *out = ((*in) >> 22);
1245  ++in;
1246  *out |= ((*in) % (1U << 8)) << (18 - 8);
1247  out++;
1248  *out = ((*in) >> 8) % (1U << 18);
1249  out++;
1250  *out = ((*in) >> 26);
1251  ++in;
1252  *out |= ((*in) % (1U << 12)) << (18 - 12);
1253  out++;
1254  *out = ((*in) >> 12) % (1U << 18);
1255  out++;
1256  *out = ((*in) >> 30);
1257  ++in;
1258  *out |= ((*in) % (1U << 16)) << (18 - 16);
1259  out++;
1260  *out = ((*in) >> 16);
1261  ++in;
1262  *out |= ((*in) % (1U << 2)) << (18 - 2);
1263  out++;
1264  *out = ((*in) >> 2) % (1U << 18);
1265  out++;
1266  *out = ((*in) >> 20);
1267  ++in;
1268  *out |= ((*in) % (1U << 6)) << (18 - 6);
1269  out++;
1270  *out = ((*in) >> 6) % (1U << 18);
1271  out++;
1272  *out = ((*in) >> 24);
1273  ++in;
1274  *out |= ((*in) % (1U << 10)) << (18 - 10);
1275  out++;
1276  *out = ((*in) >> 10) % (1U << 18);
1277  out++;
1278  *out = ((*in) >> 28);
1279  ++in;
1280  *out |= ((*in) % (1U << 14)) << (18 - 14);
1281  out++;
1282  *out = ((*in) >> 14);
1283 }
1284 
1285 void __device__ __host__ __fastunpack19(const uint32_t * in,
1286  uint32_t * out) {
1287  *out = ((*in) >> 0) % (1U << 19);
1288  out++;
1289  *out = ((*in) >> 19);
1290  ++in;
1291  *out |= ((*in) % (1U << 6)) << (19 - 6);
1292  out++;
1293  *out = ((*in) >> 6) % (1U << 19);
1294  out++;
1295  *out = ((*in) >> 25);
1296  ++in;
1297  *out |= ((*in) % (1U << 12)) << (19 - 12);
1298  out++;
1299  *out = ((*in) >> 12) % (1U << 19);
1300  out++;
1301  *out = ((*in) >> 31);
1302  ++in;
1303  *out |= ((*in) % (1U << 18)) << (19 - 18);
1304  out++;
1305  *out = ((*in) >> 18);
1306  ++in;
1307  *out |= ((*in) % (1U << 5)) << (19 - 5);
1308  out++;
1309  *out = ((*in) >> 5) % (1U << 19);
1310  out++;
1311  *out = ((*in) >> 24);
1312  ++in;
1313  *out |= ((*in) % (1U << 11)) << (19 - 11);
1314  out++;
1315  *out = ((*in) >> 11) % (1U << 19);
1316  out++;
1317  *out = ((*in) >> 30);
1318  ++in;
1319  *out |= ((*in) % (1U << 17)) << (19 - 17);
1320  out++;
1321  *out = ((*in) >> 17);
1322  ++in;
1323  *out |= ((*in) % (1U << 4)) << (19 - 4);
1324  out++;
1325  *out = ((*in) >> 4) % (1U << 19);
1326  out++;
1327  *out = ((*in) >> 23);
1328  ++in;
1329  *out |= ((*in) % (1U << 10)) << (19 - 10);
1330  out++;
1331  *out = ((*in) >> 10) % (1U << 19);
1332  out++;
1333  *out = ((*in) >> 29);
1334  ++in;
1335  *out |= ((*in) % (1U << 16)) << (19 - 16);
1336  out++;
1337  *out = ((*in) >> 16);
1338  ++in;
1339  *out |= ((*in) % (1U << 3)) << (19 - 3);
1340  out++;
1341  *out = ((*in) >> 3) % (1U << 19);
1342  out++;
1343  *out = ((*in) >> 22);
1344  ++in;
1345  *out |= ((*in) % (1U << 9)) << (19 - 9);
1346  out++;
1347  *out = ((*in) >> 9) % (1U << 19);
1348  out++;
1349  *out = ((*in) >> 28);
1350  ++in;
1351  *out |= ((*in) % (1U << 15)) << (19 - 15);
1352  out++;
1353  *out = ((*in) >> 15);
1354  ++in;
1355  *out |= ((*in) % (1U << 2)) << (19 - 2);
1356  out++;
1357  *out = ((*in) >> 2) % (1U << 19);
1358  out++;
1359  *out = ((*in) >> 21);
1360  ++in;
1361  *out |= ((*in) % (1U << 8)) << (19 - 8);
1362  out++;
1363  *out = ((*in) >> 8) % (1U << 19);
1364  out++;
1365  *out = ((*in) >> 27);
1366  ++in;
1367  *out |= ((*in) % (1U << 14)) << (19 - 14);
1368  out++;
1369  *out = ((*in) >> 14);
1370  ++in;
1371  *out |= ((*in) % (1U << 1)) << (19 - 1);
1372  out++;
1373  *out = ((*in) >> 1) % (1U << 19);
1374  out++;
1375  *out = ((*in) >> 20);
1376  ++in;
1377  *out |= ((*in) % (1U << 7)) << (19 - 7);
1378  out++;
1379  *out = ((*in) >> 7) % (1U << 19);
1380  out++;
1381  *out = ((*in) >> 26);
1382  ++in;
1383  *out |= ((*in) % (1U << 13)) << (19 - 13);
1384  out++;
1385  *out = ((*in) >> 13);
1386 }
1387 
1388 void __device__ __host__ __fastunpack20(const uint32_t * in,
1389  uint32_t * out) {
1390  *out = ((*in) >> 0) % (1U << 20);
1391  out++;
1392  *out = ((*in) >> 20);
1393  ++in;
1394  *out |= ((*in) % (1U << 8)) << (20 - 8);
1395  out++;
1396  *out = ((*in) >> 8) % (1U << 20);
1397  out++;
1398  *out = ((*in) >> 28);
1399  ++in;
1400  *out |= ((*in) % (1U << 16)) << (20 - 16);
1401  out++;
1402  *out = ((*in) >> 16);
1403  ++in;
1404  *out |= ((*in) % (1U << 4)) << (20 - 4);
1405  out++;
1406  *out = ((*in) >> 4) % (1U << 20);
1407  out++;
1408  *out = ((*in) >> 24);
1409  ++in;
1410  *out |= ((*in) % (1U << 12)) << (20 - 12);
1411  out++;
1412  *out = ((*in) >> 12);
1413  ++in;
1414  out++;
1415  *out = ((*in) >> 0) % (1U << 20);
1416  out++;
1417  *out = ((*in) >> 20);
1418  ++in;
1419  *out |= ((*in) % (1U << 8)) << (20 - 8);
1420  out++;
1421  *out = ((*in) >> 8) % (1U << 20);
1422  out++;
1423  *out = ((*in) >> 28);
1424  ++in;
1425  *out |= ((*in) % (1U << 16)) << (20 - 16);
1426  out++;
1427  *out = ((*in) >> 16);
1428  ++in;
1429  *out |= ((*in) % (1U << 4)) << (20 - 4);
1430  out++;
1431  *out = ((*in) >> 4) % (1U << 20);
1432  out++;
1433  *out = ((*in) >> 24);
1434  ++in;
1435  *out |= ((*in) % (1U << 12)) << (20 - 12);
1436  out++;
1437  *out = ((*in) >> 12);
1438  ++in;
1439  out++;
1440  *out = ((*in) >> 0) % (1U << 20);
1441  out++;
1442  *out = ((*in) >> 20);
1443  ++in;
1444  *out |= ((*in) % (1U << 8)) << (20 - 8);
1445  out++;
1446  *out = ((*in) >> 8) % (1U << 20);
1447  out++;
1448  *out = ((*in) >> 28);
1449  ++in;
1450  *out |= ((*in) % (1U << 16)) << (20 - 16);
1451  out++;
1452  *out = ((*in) >> 16);
1453  ++in;
1454  *out |= ((*in) % (1U << 4)) << (20 - 4);
1455  out++;
1456  *out = ((*in) >> 4) % (1U << 20);
1457  out++;
1458  *out = ((*in) >> 24);
1459  ++in;
1460  *out |= ((*in) % (1U << 12)) << (20 - 12);
1461  out++;
1462  *out = ((*in) >> 12);
1463  ++in;
1464  out++;
1465  *out = ((*in) >> 0) % (1U << 20);
1466  out++;
1467  *out = ((*in) >> 20);
1468  ++in;
1469  *out |= ((*in) % (1U << 8)) << (20 - 8);
1470  out++;
1471  *out = ((*in) >> 8) % (1U << 20);
1472  out++;
1473  *out = ((*in) >> 28);
1474  ++in;
1475  *out |= ((*in) % (1U << 16)) << (20 - 16);
1476  out++;
1477  *out = ((*in) >> 16);
1478  ++in;
1479  *out |= ((*in) % (1U << 4)) << (20 - 4);
1480  out++;
1481  *out = ((*in) >> 4) % (1U << 20);
1482  out++;
1483  *out = ((*in) >> 24);
1484  ++in;
1485  *out |= ((*in) % (1U << 12)) << (20 - 12);
1486  out++;
1487  *out = ((*in) >> 12);
1488 }
1489 
1490 void __device__ __host__ __fastunpack21(const uint32_t * in,
1491  uint32_t * out) {
1492  *out = ((*in) >> 0) % (1U << 21);
1493  out++;
1494  *out = ((*in) >> 21);
1495  ++in;
1496  *out |= ((*in) % (1U << 10)) << (21 - 10);
1497  out++;
1498  *out = ((*in) >> 10) % (1U << 21);
1499  out++;
1500  *out = ((*in) >> 31);
1501  ++in;
1502  *out |= ((*in) % (1U << 20)) << (21 - 20);
1503  out++;
1504  *out = ((*in) >> 20);
1505  ++in;
1506  *out |= ((*in) % (1U << 9)) << (21 - 9);
1507  out++;
1508  *out = ((*in) >> 9) % (1U << 21);
1509  out++;
1510  *out = ((*in) >> 30);
1511  ++in;
1512  *out |= ((*in) % (1U << 19)) << (21 - 19);
1513  out++;
1514  *out = ((*in) >> 19);
1515  ++in;
1516  *out |= ((*in) % (1U << 8)) << (21 - 8);
1517  out++;
1518  *out = ((*in) >> 8) % (1U << 21);
1519  out++;
1520  *out = ((*in) >> 29);
1521  ++in;
1522  *out |= ((*in) % (1U << 18)) << (21 - 18);
1523  out++;
1524  *out = ((*in) >> 18);
1525  ++in;
1526  *out |= ((*in) % (1U << 7)) << (21 - 7);
1527  out++;
1528  *out = ((*in) >> 7) % (1U << 21);
1529  out++;
1530  *out = ((*in) >> 28);
1531  ++in;
1532  *out |= ((*in) % (1U << 17)) << (21 - 17);
1533  out++;
1534  *out = ((*in) >> 17);
1535  ++in;
1536  *out |= ((*in) % (1U << 6)) << (21 - 6);
1537  out++;
1538  *out = ((*in) >> 6) % (1U << 21);
1539  out++;
1540  *out = ((*in) >> 27);
1541  ++in;
1542  *out |= ((*in) % (1U << 16)) << (21 - 16);
1543  out++;
1544  *out = ((*in) >> 16);
1545  ++in;
1546  *out |= ((*in) % (1U << 5)) << (21 - 5);
1547  out++;
1548  *out = ((*in) >> 5) % (1U << 21);
1549  out++;
1550  *out = ((*in) >> 26);
1551  ++in;
1552  *out |= ((*in) % (1U << 15)) << (21 - 15);
1553  out++;
1554  *out = ((*in) >> 15);
1555  ++in;
1556  *out |= ((*in) % (1U << 4)) << (21 - 4);
1557  out++;
1558  *out = ((*in) >> 4) % (1U << 21);
1559  out++;
1560  *out = ((*in) >> 25);
1561  ++in;
1562  *out |= ((*in) % (1U << 14)) << (21 - 14);
1563  out++;
1564  *out = ((*in) >> 14);
1565  ++in;
1566  *out |= ((*in) % (1U << 3)) << (21 - 3);
1567  out++;
1568  *out = ((*in) >> 3) % (1U << 21);
1569  out++;
1570  *out = ((*in) >> 24);
1571  ++in;
1572  *out |= ((*in) % (1U << 13)) << (21 - 13);
1573  out++;
1574  *out = ((*in) >> 13);
1575  ++in;
1576  *out |= ((*in) % (1U << 2)) << (21 - 2);
1577  out++;
1578  *out = ((*in) >> 2) % (1U << 21);
1579  out++;
1580  *out = ((*in) >> 23);
1581  ++in;
1582  *out |= ((*in) % (1U << 12)) << (21 - 12);
1583  out++;
1584  *out = ((*in) >> 12);
1585  ++in;
1586  *out |= ((*in) % (1U << 1)) << (21 - 1);
1587  out++;
1588  *out = ((*in) >> 1) % (1U << 21);
1589  out++;
1590  *out = ((*in) >> 22);
1591  ++in;
1592  *out |= ((*in) % (1U << 11)) << (21 - 11);
1593  out++;
1594  *out = ((*in) >> 11);
1595 }
1596 
1597 void __device__ __host__ __fastunpack22(const uint32_t * in,
1598  uint32_t * out) {
1599  *out = ((*in) >> 0) % (1U << 22);
1600  out++;
1601  *out = ((*in) >> 22);
1602  ++in;
1603  *out |= ((*in) % (1U << 12)) << (22 - 12);
1604  out++;
1605  *out = ((*in) >> 12);
1606  ++in;
1607  *out |= ((*in) % (1U << 2)) << (22 - 2);
1608  out++;
1609  *out = ((*in) >> 2) % (1U << 22);
1610  out++;
1611  *out = ((*in) >> 24);
1612  ++in;
1613  *out |= ((*in) % (1U << 14)) << (22 - 14);
1614  out++;
1615  *out = ((*in) >> 14);
1616  ++in;
1617  *out |= ((*in) % (1U << 4)) << (22 - 4);
1618  out++;
1619  *out = ((*in) >> 4) % (1U << 22);
1620  out++;
1621  *out = ((*in) >> 26);
1622  ++in;
1623  *out |= ((*in) % (1U << 16)) << (22 - 16);
1624  out++;
1625  *out = ((*in) >> 16);
1626  ++in;
1627  *out |= ((*in) % (1U << 6)) << (22 - 6);
1628  out++;
1629  *out = ((*in) >> 6) % (1U << 22);
1630  out++;
1631  *out = ((*in) >> 28);
1632  ++in;
1633  *out |= ((*in) % (1U << 18)) << (22 - 18);
1634  out++;
1635  *out = ((*in) >> 18);
1636  ++in;
1637  *out |= ((*in) % (1U << 8)) << (22 - 8);
1638  out++;
1639  *out = ((*in) >> 8) % (1U << 22);
1640  out++;
1641  *out = ((*in) >> 30);
1642  ++in;
1643  *out |= ((*in) % (1U << 20)) << (22 - 20);
1644  out++;
1645  *out = ((*in) >> 20);
1646  ++in;
1647  *out |= ((*in) % (1U << 10)) << (22 - 10);
1648  out++;
1649  *out = ((*in) >> 10);
1650  ++in;
1651  out++;
1652  *out = ((*in) >> 0) % (1U << 22);
1653  out++;
1654  *out = ((*in) >> 22);
1655  ++in;
1656  *out |= ((*in) % (1U << 12)) << (22 - 12);
1657  out++;
1658  *out = ((*in) >> 12);
1659  ++in;
1660  *out |= ((*in) % (1U << 2)) << (22 - 2);
1661  out++;
1662  *out = ((*in) >> 2) % (1U << 22);
1663  out++;
1664  *out = ((*in) >> 24);
1665  ++in;
1666  *out |= ((*in) % (1U << 14)) << (22 - 14);
1667  out++;
1668  *out = ((*in) >> 14);
1669  ++in;
1670  *out |= ((*in) % (1U << 4)) << (22 - 4);
1671  out++;
1672  *out = ((*in) >> 4) % (1U << 22);
1673  out++;
1674  *out = ((*in) >> 26);
1675  ++in;
1676  *out |= ((*in) % (1U << 16)) << (22 - 16);
1677  out++;
1678  *out = ((*in) >> 16);
1679  ++in;
1680  *out |= ((*in) % (1U << 6)) << (22 - 6);
1681  out++;
1682  *out = ((*in) >> 6) % (1U << 22);
1683  out++;
1684  *out = ((*in) >> 28);
1685  ++in;
1686  *out |= ((*in) % (1U << 18)) << (22 - 18);
1687  out++;
1688  *out = ((*in) >> 18);
1689  ++in;
1690  *out |= ((*in) % (1U << 8)) << (22 - 8);
1691  out++;
1692  *out = ((*in) >> 8) % (1U << 22);
1693  out++;
1694  *out = ((*in) >> 30);
1695  ++in;
1696  *out |= ((*in) % (1U << 20)) << (22 - 20);
1697  out++;
1698  *out = ((*in) >> 20);
1699  ++in;
1700  *out |= ((*in) % (1U << 10)) << (22 - 10);
1701  out++;
1702  *out = ((*in) >> 10);
1703 }
1704 
1705 void __device__ __host__ __fastunpack23(const uint32_t * in,
1706  uint32_t * out) {
1707  *out = ((*in) >> 0) % (1U << 23);
1708  out++;
1709  *out = ((*in) >> 23);
1710  ++in;
1711  *out |= ((*in) % (1U << 14)) << (23 - 14);
1712  out++;
1713  *out = ((*in) >> 14);
1714  ++in;
1715  *out |= ((*in) % (1U << 5)) << (23 - 5);
1716  out++;
1717  *out = ((*in) >> 5) % (1U << 23);
1718  out++;
1719  *out = ((*in) >> 28);
1720  ++in;
1721  *out |= ((*in) % (1U << 19)) << (23 - 19);
1722  out++;
1723  *out = ((*in) >> 19);
1724  ++in;
1725  *out |= ((*in) % (1U << 10)) << (23 - 10);
1726  out++;
1727  *out = ((*in) >> 10);
1728  ++in;
1729  *out |= ((*in) % (1U << 1)) << (23 - 1);
1730  out++;
1731  *out = ((*in) >> 1) % (1U << 23);
1732  out++;
1733  *out = ((*in) >> 24);
1734  ++in;
1735  *out |= ((*in) % (1U << 15)) << (23 - 15);
1736  out++;
1737  *out = ((*in) >> 15);
1738  ++in;
1739  *out |= ((*in) % (1U << 6)) << (23 - 6);
1740  out++;
1741  *out = ((*in) >> 6) % (1U << 23);
1742  out++;
1743  *out = ((*in) >> 29);
1744  ++in;
1745  *out |= ((*in) % (1U << 20)) << (23 - 20);
1746  out++;
1747  *out = ((*in) >> 20);
1748  ++in;
1749  *out |= ((*in) % (1U << 11)) << (23 - 11);
1750  out++;
1751  *out = ((*in) >> 11);
1752  ++in;
1753  *out |= ((*in) % (1U << 2)) << (23 - 2);
1754  out++;
1755  *out = ((*in) >> 2) % (1U << 23);
1756  out++;
1757  *out = ((*in) >> 25);
1758  ++in;
1759  *out |= ((*in) % (1U << 16)) << (23 - 16);
1760  out++;
1761  *out = ((*in) >> 16);
1762  ++in;
1763  *out |= ((*in) % (1U << 7)) << (23 - 7);
1764  out++;
1765  *out = ((*in) >> 7) % (1U << 23);
1766  out++;
1767  *out = ((*in) >> 30);
1768  ++in;
1769  *out |= ((*in) % (1U << 21)) << (23 - 21);
1770  out++;
1771  *out = ((*in) >> 21);
1772  ++in;
1773  *out |= ((*in) % (1U << 12)) << (23 - 12);
1774  out++;
1775  *out = ((*in) >> 12);
1776  ++in;
1777  *out |= ((*in) % (1U << 3)) << (23 - 3);
1778  out++;
1779  *out = ((*in) >> 3) % (1U << 23);
1780  out++;
1781  *out = ((*in) >> 26);
1782  ++in;
1783  *out |= ((*in) % (1U << 17)) << (23 - 17);
1784  out++;
1785  *out = ((*in) >> 17);
1786  ++in;
1787  *out |= ((*in) % (1U << 8)) << (23 - 8);
1788  out++;
1789  *out = ((*in) >> 8) % (1U << 23);
1790  out++;
1791  *out = ((*in) >> 31);
1792  ++in;
1793  *out |= ((*in) % (1U << 22)) << (23 - 22);
1794  out++;
1795  *out = ((*in) >> 22);
1796  ++in;
1797  *out |= ((*in) % (1U << 13)) << (23 - 13);
1798  out++;
1799  *out = ((*in) >> 13);
1800  ++in;
1801  *out |= ((*in) % (1U << 4)) << (23 - 4);
1802  out++;
1803  *out = ((*in) >> 4) % (1U << 23);
1804  out++;
1805  *out = ((*in) >> 27);
1806  ++in;
1807  *out |= ((*in) % (1U << 18)) << (23 - 18);
1808  out++;
1809  *out = ((*in) >> 18);
1810  ++in;
1811  *out |= ((*in) % (1U << 9)) << (23 - 9);
1812  out++;
1813  *out = ((*in) >> 9);
1814 }
1815 
1816 void __device__ __host__ __fastunpack24(const uint32_t * in,
1817  uint32_t * out) {
1818  *out = ((*in) >> 0) % (1U << 24);
1819  out++;
1820  *out = ((*in) >> 24);
1821  ++in;
1822  *out |= ((*in) % (1U << 16)) << (24 - 16);
1823  out++;
1824  *out = ((*in) >> 16);
1825  ++in;
1826  *out |= ((*in) % (1U << 8)) << (24 - 8);
1827  out++;
1828  *out = ((*in) >> 8);
1829  ++in;
1830  out++;
1831  *out = ((*in) >> 0) % (1U << 24);
1832  out++;
1833  *out = ((*in) >> 24);
1834  ++in;
1835  *out |= ((*in) % (1U << 16)) << (24 - 16);
1836  out++;
1837  *out = ((*in) >> 16);
1838  ++in;
1839  *out |= ((*in) % (1U << 8)) << (24 - 8);
1840  out++;
1841  *out = ((*in) >> 8);
1842  ++in;
1843  out++;
1844  *out = ((*in) >> 0) % (1U << 24);
1845  out++;
1846  *out = ((*in) >> 24);
1847  ++in;
1848  *out |= ((*in) % (1U << 16)) << (24 - 16);
1849  out++;
1850  *out = ((*in) >> 16);
1851  ++in;
1852  *out |= ((*in) % (1U << 8)) << (24 - 8);
1853  out++;
1854  *out = ((*in) >> 8);
1855  ++in;
1856  out++;
1857  *out = ((*in) >> 0) % (1U << 24);
1858  out++;
1859  *out = ((*in) >> 24);
1860  ++in;
1861  *out |= ((*in) % (1U << 16)) << (24 - 16);
1862  out++;
1863  *out = ((*in) >> 16);
1864  ++in;
1865  *out |= ((*in) % (1U << 8)) << (24 - 8);
1866  out++;
1867  *out = ((*in) >> 8);
1868  ++in;
1869  out++;
1870  *out = ((*in) >> 0) % (1U << 24);
1871  out++;
1872  *out = ((*in) >> 24);
1873  ++in;
1874  *out |= ((*in) % (1U << 16)) << (24 - 16);
1875  out++;
1876  *out = ((*in) >> 16);
1877  ++in;
1878  *out |= ((*in) % (1U << 8)) << (24 - 8);
1879  out++;
1880  *out = ((*in) >> 8);
1881  ++in;
1882  out++;
1883  *out = ((*in) >> 0) % (1U << 24);
1884  out++;
1885  *out = ((*in) >> 24);
1886  ++in;
1887  *out |= ((*in) % (1U << 16)) << (24 - 16);
1888  out++;
1889  *out = ((*in) >> 16);
1890  ++in;
1891  *out |= ((*in) % (1U << 8)) << (24 - 8);
1892  out++;
1893  *out = ((*in) >> 8);
1894  ++in;
1895  out++;
1896  *out = ((*in) >> 0) % (1U << 24);
1897  out++;
1898  *out = ((*in) >> 24);
1899  ++in;
1900  *out |= ((*in) % (1U << 16)) << (24 - 16);
1901  out++;
1902  *out = ((*in) >> 16);
1903  ++in;
1904  *out |= ((*in) % (1U << 8)) << (24 - 8);
1905  out++;
1906  *out = ((*in) >> 8);
1907  ++in;
1908  out++;
1909  *out = ((*in) >> 0) % (1U << 24);
1910  out++;
1911  *out = ((*in) >> 24);
1912  ++in;
1913  *out |= ((*in) % (1U << 16)) << (24 - 16);
1914  out++;
1915  *out = ((*in) >> 16);
1916  ++in;
1917  *out |= ((*in) % (1U << 8)) << (24 - 8);
1918  out++;
1919  *out = ((*in) >> 8);
1920 }
1921 
1922 void __device__ __host__ __fastunpack25(const uint32_t * in,
1923  uint32_t * out) {
1924  *out = ((*in) >> 0) % (1U << 25);
1925  out++;
1926  *out = ((*in) >> 25);
1927  ++in;
1928  *out |= ((*in) % (1U << 18)) << (25 - 18);
1929  out++;
1930  *out = ((*in) >> 18);
1931  ++in;
1932  *out |= ((*in) % (1U << 11)) << (25 - 11);
1933  out++;
1934  *out = ((*in) >> 11);
1935  ++in;
1936  *out |= ((*in) % (1U << 4)) << (25 - 4);
1937  out++;
1938  *out = ((*in) >> 4) % (1U << 25);
1939  out++;
1940  *out = ((*in) >> 29);
1941  ++in;
1942  *out |= ((*in) % (1U << 22)) << (25 - 22);
1943  out++;
1944  *out = ((*in) >> 22);
1945  ++in;
1946  *out |= ((*in) % (1U << 15)) << (25 - 15);
1947  out++;
1948  *out = ((*in) >> 15);
1949  ++in;
1950  *out |= ((*in) % (1U << 8)) << (25 - 8);
1951  out++;
1952  *out = ((*in) >> 8);
1953  ++in;
1954  *out |= ((*in) % (1U << 1)) << (25 - 1);
1955  out++;
1956  *out = ((*in) >> 1) % (1U << 25);
1957  out++;
1958  *out = ((*in) >> 26);
1959  ++in;
1960  *out |= ((*in) % (1U << 19)) << (25 - 19);
1961  out++;
1962  *out = ((*in) >> 19);
1963  ++in;
1964  *out |= ((*in) % (1U << 12)) << (25 - 12);
1965  out++;
1966  *out = ((*in) >> 12);
1967  ++in;
1968  *out |= ((*in) % (1U << 5)) << (25 - 5);
1969  out++;
1970  *out = ((*in) >> 5) % (1U << 25);
1971  out++;
1972  *out = ((*in) >> 30);
1973  ++in;
1974  *out |= ((*in) % (1U << 23)) << (25 - 23);
1975  out++;
1976  *out = ((*in) >> 23);
1977  ++in;
1978  *out |= ((*in) % (1U << 16)) << (25 - 16);
1979  out++;
1980  *out = ((*in) >> 16);
1981  ++in;
1982  *out |= ((*in) % (1U << 9)) << (25 - 9);
1983  out++;
1984  *out = ((*in) >> 9);
1985  ++in;
1986  *out |= ((*in) % (1U << 2)) << (25 - 2);
1987  out++;
1988  *out = ((*in) >> 2) % (1U << 25);
1989  out++;
1990  *out = ((*in) >> 27);
1991  ++in;
1992  *out |= ((*in) % (1U << 20)) << (25 - 20);
1993  out++;
1994  *out = ((*in) >> 20);
1995  ++in;
1996  *out |= ((*in) % (1U << 13)) << (25 - 13);
1997  out++;
1998  *out = ((*in) >> 13);
1999  ++in;
2000  *out |= ((*in) % (1U << 6)) << (25 - 6);
2001  out++;
2002  *out = ((*in) >> 6) % (1U << 25);
2003  out++;
2004  *out = ((*in) >> 31);
2005  ++in;
2006  *out |= ((*in) % (1U << 24)) << (25 - 24);
2007  out++;
2008  *out = ((*in) >> 24);
2009  ++in;
2010  *out |= ((*in) % (1U << 17)) << (25 - 17);
2011  out++;
2012  *out = ((*in) >> 17);
2013  ++in;
2014  *out |= ((*in) % (1U << 10)) << (25 - 10);
2015  out++;
2016  *out = ((*in) >> 10);
2017  ++in;
2018  *out |= ((*in) % (1U << 3)) << (25 - 3);
2019  out++;
2020  *out = ((*in) >> 3) % (1U << 25);
2021  out++;
2022  *out = ((*in) >> 28);
2023  ++in;
2024  *out |= ((*in) % (1U << 21)) << (25 - 21);
2025  out++;
2026  *out = ((*in) >> 21);
2027  ++in;
2028  *out |= ((*in) % (1U << 14)) << (25 - 14);
2029  out++;
2030  *out = ((*in) >> 14);
2031  ++in;
2032  *out |= ((*in) % (1U << 7)) << (25 - 7);
2033  out++;
2034  *out = ((*in) >> 7);
2035 }
2036 
2037 void __device__ __host__ __fastunpack26(const uint32_t * in,
2038  uint32_t * out) {
2039  *out = ((*in) >> 0) % (1U << 26);
2040  out++;
2041  *out = ((*in) >> 26);
2042  ++in;
2043  *out |= ((*in) % (1U << 20)) << (26 - 20);
2044  out++;
2045  *out = ((*in) >> 20);
2046  ++in;
2047  *out |= ((*in) % (1U << 14)) << (26 - 14);
2048  out++;
2049  *out = ((*in) >> 14);
2050  ++in;
2051  *out |= ((*in) % (1U << 8)) << (26 - 8);
2052  out++;
2053  *out = ((*in) >> 8);
2054  ++in;
2055  *out |= ((*in) % (1U << 2)) << (26 - 2);
2056  out++;
2057  *out = ((*in) >> 2) % (1U << 26);
2058  out++;
2059  *out = ((*in) >> 28);
2060  ++in;
2061  *out |= ((*in) % (1U << 22)) << (26 - 22);
2062  out++;
2063  *out = ((*in) >> 22);
2064  ++in;
2065  *out |= ((*in) % (1U << 16)) << (26 - 16);
2066  out++;
2067  *out = ((*in) >> 16);
2068  ++in;
2069  *out |= ((*in) % (1U << 10)) << (26 - 10);
2070  out++;
2071  *out = ((*in) >> 10);
2072  ++in;
2073  *out |= ((*in) % (1U << 4)) << (26 - 4);
2074  out++;
2075  *out = ((*in) >> 4) % (1U << 26);
2076  out++;
2077  *out = ((*in) >> 30);
2078  ++in;
2079  *out |= ((*in) % (1U << 24)) << (26 - 24);
2080  out++;
2081  *out = ((*in) >> 24);
2082  ++in;
2083  *out |= ((*in) % (1U << 18)) << (26 - 18);
2084  out++;
2085  *out = ((*in) >> 18);
2086  ++in;
2087  *out |= ((*in) % (1U << 12)) << (26 - 12);
2088  out++;
2089  *out = ((*in) >> 12);
2090  ++in;
2091  *out |= ((*in) % (1U << 6)) << (26 - 6);
2092  out++;
2093  *out = ((*in) >> 6);
2094  ++in;
2095  out++;
2096  *out = ((*in) >> 0) % (1U << 26);
2097  out++;
2098  *out = ((*in) >> 26);
2099  ++in;
2100  *out |= ((*in) % (1U << 20)) << (26 - 20);
2101  out++;
2102  *out = ((*in) >> 20);
2103  ++in;
2104  *out |= ((*in) % (1U << 14)) << (26 - 14);
2105  out++;
2106  *out = ((*in) >> 14);
2107  ++in;
2108  *out |= ((*in) % (1U << 8)) << (26 - 8);
2109  out++;
2110  *out = ((*in) >> 8);
2111  ++in;
2112  *out |= ((*in) % (1U << 2)) << (26 - 2);
2113  out++;
2114  *out = ((*in) >> 2) % (1U << 26);
2115  out++;
2116  *out = ((*in) >> 28);
2117  ++in;
2118  *out |= ((*in) % (1U << 22)) << (26 - 22);
2119  out++;
2120  *out = ((*in) >> 22);
2121  ++in;
2122  *out |= ((*in) % (1U << 16)) << (26 - 16);
2123  out++;
2124  *out = ((*in) >> 16);
2125  ++in;
2126  *out |= ((*in) % (1U << 10)) << (26 - 10);
2127  out++;
2128  *out = ((*in) >> 10);
2129  ++in;
2130  *out |= ((*in) % (1U << 4)) << (26 - 4);
2131  out++;
2132  *out = ((*in) >> 4) % (1U << 26);
2133  out++;
2134  *out = ((*in) >> 30);
2135  ++in;
2136  *out |= ((*in) % (1U << 24)) << (26 - 24);
2137  out++;
2138  *out = ((*in) >> 24);
2139  ++in;
2140  *out |= ((*in) % (1U << 18)) << (26 - 18);
2141  out++;
2142  *out = ((*in) >> 18);
2143  ++in;
2144  *out |= ((*in) % (1U << 12)) << (26 - 12);
2145  out++;
2146  *out = ((*in) >> 12);
2147  ++in;
2148  *out |= ((*in) % (1U << 6)) << (26 - 6);
2149  out++;
2150  *out = ((*in) >> 6);
2151 }
2152 
2153 void __device__ __host__ __fastunpack27(const uint32_t * in,
2154  uint32_t * out) {
2155  *out = ((*in) >> 0) % (1U << 27);
2156  out++;
2157  *out = ((*in) >> 27);
2158  ++in;
2159  *out |= ((*in) % (1U << 22)) << (27 - 22);
2160  out++;
2161  *out = ((*in) >> 22);
2162  ++in;
2163  *out |= ((*in) % (1U << 17)) << (27 - 17);
2164  out++;
2165  *out = ((*in) >> 17);
2166  ++in;
2167  *out |= ((*in) % (1U << 12)) << (27 - 12);
2168  out++;
2169  *out = ((*in) >> 12);
2170  ++in;
2171  *out |= ((*in) % (1U << 7)) << (27 - 7);
2172  out++;
2173  *out = ((*in) >> 7);
2174  ++in;
2175  *out |= ((*in) % (1U << 2)) << (27 - 2);
2176  out++;
2177  *out = ((*in) >> 2) % (1U << 27);
2178  out++;
2179  *out = ((*in) >> 29);
2180  ++in;
2181  *out |= ((*in) % (1U << 24)) << (27 - 24);
2182  out++;
2183  *out = ((*in) >> 24);
2184  ++in;
2185  *out |= ((*in) % (1U << 19)) << (27 - 19);
2186  out++;
2187  *out = ((*in) >> 19);
2188  ++in;
2189  *out |= ((*in) % (1U << 14)) << (27 - 14);
2190  out++;
2191  *out = ((*in) >> 14);
2192  ++in;
2193  *out |= ((*in) % (1U << 9)) << (27 - 9);
2194  out++;
2195  *out = ((*in) >> 9);
2196  ++in;
2197  *out |= ((*in) % (1U << 4)) << (27 - 4);
2198  out++;
2199  *out = ((*in) >> 4) % (1U << 27);
2200  out++;
2201  *out = ((*in) >> 31);
2202  ++in;
2203  *out |= ((*in) % (1U << 26)) << (27 - 26);
2204  out++;
2205  *out = ((*in) >> 26);
2206  ++in;
2207  *out |= ((*in) % (1U << 21)) << (27 - 21);
2208  out++;
2209  *out = ((*in) >> 21);
2210  ++in;
2211  *out |= ((*in) % (1U << 16)) << (27 - 16);
2212  out++;
2213  *out = ((*in) >> 16);
2214  ++in;
2215  *out |= ((*in) % (1U << 11)) << (27 - 11);
2216  out++;
2217  *out = ((*in) >> 11);
2218  ++in;
2219  *out |= ((*in) % (1U << 6)) << (27 - 6);
2220  out++;
2221  *out = ((*in) >> 6);
2222  ++in;
2223  *out |= ((*in) % (1U << 1)) << (27 - 1);
2224  out++;
2225  *out = ((*in) >> 1) % (1U << 27);
2226  out++;
2227  *out = ((*in) >> 28);
2228  ++in;
2229  *out |= ((*in) % (1U << 23)) << (27 - 23);
2230  out++;
2231  *out = ((*in) >> 23);
2232  ++in;
2233  *out |= ((*in) % (1U << 18)) << (27 - 18);
2234  out++;
2235  *out = ((*in) >> 18);
2236  ++in;
2237  *out |= ((*in) % (1U << 13)) << (27 - 13);
2238  out++;
2239  *out = ((*in) >> 13);
2240  ++in;
2241  *out |= ((*in) % (1U << 8)) << (27 - 8);
2242  out++;
2243  *out = ((*in) >> 8);
2244  ++in;
2245  *out |= ((*in) % (1U << 3)) << (27 - 3);
2246  out++;
2247  *out = ((*in) >> 3) % (1U << 27);
2248  out++;
2249  *out = ((*in) >> 30);
2250  ++in;
2251  *out |= ((*in) % (1U << 25)) << (27 - 25);
2252  out++;
2253  *out = ((*in) >> 25);
2254  ++in;
2255  *out |= ((*in) % (1U << 20)) << (27 - 20);
2256  out++;
2257  *out = ((*in) >> 20);
2258  ++in;
2259  *out |= ((*in) % (1U << 15)) << (27 - 15);
2260  out++;
2261  *out = ((*in) >> 15);
2262  ++in;
2263  *out |= ((*in) % (1U << 10)) << (27 - 10);
2264  out++;
2265  *out = ((*in) >> 10);
2266  ++in;
2267  *out |= ((*in) % (1U << 5)) << (27 - 5);
2268  out++;
2269  *out = ((*in) >> 5);
2270 }
2271 
2272 void __device__ __host__ __fastunpack28(const uint32_t * in,
2273  uint32_t * out) {
2274  *out = ((*in) >> 0) % (1U << 28);
2275  out++;
2276  *out = ((*in) >> 28);
2277  ++in;
2278  *out |= ((*in) % (1U << 24)) << (28 - 24);
2279  out++;
2280  *out = ((*in) >> 24);
2281  ++in;
2282  *out |= ((*in) % (1U << 20)) << (28 - 20);
2283  out++;
2284  *out = ((*in) >> 20);
2285  ++in;
2286  *out |= ((*in) % (1U << 16)) << (28 - 16);
2287  out++;
2288  *out = ((*in) >> 16);
2289  ++in;
2290  *out |= ((*in) % (1U << 12)) << (28 - 12);
2291  out++;
2292  *out = ((*in) >> 12);
2293  ++in;
2294  *out |= ((*in) % (1U << 8)) << (28 - 8);
2295  out++;
2296  *out = ((*in) >> 8);
2297  ++in;
2298  *out |= ((*in) % (1U << 4)) << (28 - 4);
2299  out++;
2300  *out = ((*in) >> 4);
2301  ++in;
2302  out++;
2303  *out = ((*in) >> 0) % (1U << 28);
2304  out++;
2305  *out = ((*in) >> 28);
2306  ++in;
2307  *out |= ((*in) % (1U << 24)) << (28 - 24);
2308  out++;
2309  *out = ((*in) >> 24);
2310  ++in;
2311  *out |= ((*in) % (1U << 20)) << (28 - 20);
2312  out++;
2313  *out = ((*in) >> 20);
2314  ++in;
2315  *out |= ((*in) % (1U << 16)) << (28 - 16);
2316  out++;
2317  *out = ((*in) >> 16);
2318  ++in;
2319  *out |= ((*in) % (1U << 12)) << (28 - 12);
2320  out++;
2321  *out = ((*in) >> 12);
2322  ++in;
2323  *out |= ((*in) % (1U << 8)) << (28 - 8);
2324  out++;
2325  *out = ((*in) >> 8);
2326  ++in;
2327  *out |= ((*in) % (1U << 4)) << (28 - 4);
2328  out++;
2329  *out = ((*in) >> 4);
2330  ++in;
2331  out++;
2332  *out = ((*in) >> 0) % (1U << 28);
2333  out++;
2334  *out = ((*in) >> 28);
2335  ++in;
2336  *out |= ((*in) % (1U << 24)) << (28 - 24);
2337  out++;
2338  *out = ((*in) >> 24);
2339  ++in;
2340  *out |= ((*in) % (1U << 20)) << (28 - 20);
2341  out++;
2342  *out = ((*in) >> 20);
2343  ++in;
2344  *out |= ((*in) % (1U << 16)) << (28 - 16);
2345  out++;
2346  *out = ((*in) >> 16);
2347  ++in;
2348  *out |= ((*in) % (1U << 12)) << (28 - 12);
2349  out++;
2350  *out = ((*in) >> 12);
2351  ++in;
2352  *out |= ((*in) % (1U << 8)) << (28 - 8);
2353  out++;
2354  *out = ((*in) >> 8);
2355  ++in;
2356  *out |= ((*in) % (1U << 4)) << (28 - 4);
2357  out++;
2358  *out = ((*in) >> 4);
2359  ++in;
2360  out++;
2361  *out = ((*in) >> 0) % (1U << 28);
2362  out++;
2363  *out = ((*in) >> 28);
2364  ++in;
2365  *out |= ((*in) % (1U << 24)) << (28 - 24);
2366  out++;
2367  *out = ((*in) >> 24);
2368  ++in;
2369  *out |= ((*in) % (1U << 20)) << (28 - 20);
2370  out++;
2371  *out = ((*in) >> 20);
2372  ++in;
2373  *out |= ((*in) % (1U << 16)) << (28 - 16);
2374  out++;
2375  *out = ((*in) >> 16);
2376  ++in;
2377  *out |= ((*in) % (1U << 12)) << (28 - 12);
2378  out++;
2379  *out = ((*in) >> 12);
2380  ++in;
2381  *out |= ((*in) % (1U << 8)) << (28 - 8);
2382  out++;
2383  *out = ((*in) >> 8);
2384  ++in;
2385  *out |= ((*in) % (1U << 4)) << (28 - 4);
2386  out++;
2387  *out = ((*in) >> 4);
2388 }
2389 
2390 void __device__ __host__ __fastunpack29(const uint32_t * in,
2391  uint32_t * out) {
2392  *out = ((*in) >> 0) % (1U << 29);
2393  out++;
2394  *out = ((*in) >> 29);
2395  ++in;
2396  *out |= ((*in) % (1U << 26)) << (29 - 26);
2397  out++;
2398  *out = ((*in) >> 26);
2399  ++in;
2400  *out |= ((*in) % (1U << 23)) << (29 - 23);
2401  out++;
2402  *out = ((*in) >> 23);
2403  ++in;
2404  *out |= ((*in) % (1U << 20)) << (29 - 20);
2405  out++;
2406  *out = ((*in) >> 20);
2407  ++in;
2408  *out |= ((*in) % (1U << 17)) << (29 - 17);
2409  out++;
2410  *out = ((*in) >> 17);
2411  ++in;
2412  *out |= ((*in) % (1U << 14)) << (29 - 14);
2413  out++;
2414  *out = ((*in) >> 14);
2415  ++in;
2416  *out |= ((*in) % (1U << 11)) << (29 - 11);
2417  out++;
2418  *out = ((*in) >> 11);
2419  ++in;
2420  *out |= ((*in) % (1U << 8)) << (29 - 8);
2421  out++;
2422  *out = ((*in) >> 8);
2423  ++in;
2424  *out |= ((*in) % (1U << 5)) << (29 - 5);
2425  out++;
2426  *out = ((*in) >> 5);
2427  ++in;
2428  *out |= ((*in) % (1U << 2)) << (29 - 2);
2429  out++;
2430  *out = ((*in) >> 2) % (1U << 29);
2431  out++;
2432  *out = ((*in) >> 31);
2433  ++in;
2434  *out |= ((*in) % (1U << 28)) << (29 - 28);
2435  out++;
2436  *out = ((*in) >> 28);
2437  ++in;
2438  *out |= ((*in) % (1U << 25)) << (29 - 25);
2439  out++;
2440  *out = ((*in) >> 25);
2441  ++in;
2442  *out |= ((*in) % (1U << 22)) << (29 - 22);
2443  out++;
2444  *out = ((*in) >> 22);
2445  ++in;
2446  *out |= ((*in) % (1U << 19)) << (29 - 19);
2447  out++;
2448  *out = ((*in) >> 19);
2449  ++in;
2450  *out |= ((*in) % (1U << 16)) << (29 - 16);
2451  out++;
2452  *out = ((*in) >> 16);
2453  ++in;
2454  *out |= ((*in) % (1U << 13)) << (29 - 13);
2455  out++;
2456  *out = ((*in) >> 13);
2457  ++in;
2458  *out |= ((*in) % (1U << 10)) << (29 - 10);
2459  out++;
2460  *out = ((*in) >> 10);
2461  ++in;
2462  *out |= ((*in) % (1U << 7)) << (29 - 7);
2463  out++;
2464  *out = ((*in) >> 7);
2465  ++in;
2466  *out |= ((*in) % (1U << 4)) << (29 - 4);
2467  out++;
2468  *out = ((*in) >> 4);
2469  ++in;
2470  *out |= ((*in) % (1U << 1)) << (29 - 1);
2471  out++;
2472  *out = ((*in) >> 1) % (1U << 29);
2473  out++;
2474  *out = ((*in) >> 30);
2475  ++in;
2476  *out |= ((*in) % (1U << 27)) << (29 - 27);
2477  out++;
2478  *out = ((*in) >> 27);
2479  ++in;
2480  *out |= ((*in) % (1U << 24)) << (29 - 24);
2481  out++;
2482  *out = ((*in) >> 24);
2483  ++in;
2484  *out |= ((*in) % (1U << 21)) << (29 - 21);
2485  out++;
2486  *out = ((*in) >> 21);
2487  ++in;
2488  *out |= ((*in) % (1U << 18)) << (29 - 18);
2489  out++;
2490  *out = ((*in) >> 18);
2491  ++in;
2492  *out |= ((*in) % (1U << 15)) << (29 - 15);
2493  out++;
2494  *out = ((*in) >> 15);
2495  ++in;
2496  *out |= ((*in) % (1U << 12)) << (29 - 12);
2497  out++;
2498  *out = ((*in) >> 12);
2499  ++in;
2500  *out |= ((*in) % (1U << 9)) << (29 - 9);
2501  out++;
2502  *out = ((*in) >> 9);
2503  ++in;
2504  *out |= ((*in) % (1U << 6)) << (29 - 6);
2505  out++;
2506  *out = ((*in) >> 6);
2507  ++in;
2508  *out |= ((*in) % (1U << 3)) << (29 - 3);
2509  out++;
2510  *out = ((*in) >> 3);
2511 }
2512 
2513 void __device__ __host__ __fastunpack30(const uint32_t * in,
2514  uint32_t * out) {
2515  *out = ((*in) >> 0) % (1U << 30);
2516  out++;
2517  *out = ((*in) >> 30);
2518  ++in;
2519  *out |= ((*in) % (1U << 28)) << (30 - 28);
2520  out++;
2521  *out = ((*in) >> 28);
2522  ++in;
2523  *out |= ((*in) % (1U << 26)) << (30 - 26);
2524  out++;
2525  *out = ((*in) >> 26);
2526  ++in;
2527  *out |= ((*in) % (1U << 24)) << (30 - 24);
2528  out++;
2529  *out = ((*in) >> 24);
2530  ++in;
2531  *out |= ((*in) % (1U << 22)) << (30 - 22);
2532  out++;
2533  *out = ((*in) >> 22);
2534  ++in;
2535  *out |= ((*in) % (1U << 20)) << (30 - 20);
2536  out++;
2537  *out = ((*in) >> 20);
2538  ++in;
2539  *out |= ((*in) % (1U << 18)) << (30 - 18);
2540  out++;
2541  *out = ((*in) >> 18);
2542  ++in;
2543  *out |= ((*in) % (1U << 16)) << (30 - 16);
2544  out++;
2545  *out = ((*in) >> 16);
2546  ++in;
2547  *out |= ((*in) % (1U << 14)) << (30 - 14);
2548  out++;
2549  *out = ((*in) >> 14);
2550  ++in;
2551  *out |= ((*in) % (1U << 12)) << (30 - 12);
2552  out++;
2553  *out = ((*in) >> 12);
2554  ++in;
2555  *out |= ((*in) % (1U << 10)) << (30 - 10);
2556  out++;
2557  *out = ((*in) >> 10);
2558  ++in;
2559  *out |= ((*in) % (1U << 8)) << (30 - 8);
2560  out++;
2561  *out = ((*in) >> 8);
2562  ++in;
2563  *out |= ((*in) % (1U << 6)) << (30 - 6);
2564  out++;
2565  *out = ((*in) >> 6);
2566  ++in;
2567  *out |= ((*in) % (1U << 4)) << (30 - 4);
2568  out++;
2569  *out = ((*in) >> 4);
2570  ++in;
2571  *out |= ((*in) % (1U << 2)) << (30 - 2);
2572  out++;
2573  *out = ((*in) >> 2);
2574  ++in;
2575  out++;
2576  *out = ((*in) >> 0) % (1U << 30);
2577  out++;
2578  *out = ((*in) >> 30);
2579  ++in;
2580  *out |= ((*in) % (1U << 28)) << (30 - 28);
2581  out++;
2582  *out = ((*in) >> 28);
2583  ++in;
2584  *out |= ((*in) % (1U << 26)) << (30 - 26);
2585  out++;
2586  *out = ((*in) >> 26);
2587  ++in;
2588  *out |= ((*in) % (1U << 24)) << (30 - 24);
2589  out++;
2590  *out = ((*in) >> 24);
2591  ++in;
2592  *out |= ((*in) % (1U << 22)) << (30 - 22);
2593  out++;
2594  *out = ((*in) >> 22);
2595  ++in;
2596  *out |= ((*in) % (1U << 20)) << (30 - 20);
2597  out++;
2598  *out = ((*in) >> 20);
2599  ++in;
2600  *out |= ((*in) % (1U << 18)) << (30 - 18);
2601  out++;
2602  *out = ((*in) >> 18);
2603  ++in;
2604  *out |= ((*in) % (1U << 16)) << (30 - 16);
2605  out++;
2606  *out = ((*in) >> 16);
2607  ++in;
2608  *out |= ((*in) % (1U << 14)) << (30 - 14);
2609  out++;
2610  *out = ((*in) >> 14);
2611  ++in;
2612  *out |= ((*in) % (1U << 12)) << (30 - 12);
2613  out++;
2614  *out = ((*in) >> 12);
2615  ++in;
2616  *out |= ((*in) % (1U << 10)) << (30 - 10);
2617  out++;
2618  *out = ((*in) >> 10);
2619  ++in;
2620  *out |= ((*in) % (1U << 8)) << (30 - 8);
2621  out++;
2622  *out = ((*in) >> 8);
2623  ++in;
2624  *out |= ((*in) % (1U << 6)) << (30 - 6);
2625  out++;
2626  *out = ((*in) >> 6);
2627  ++in;
2628  *out |= ((*in) % (1U << 4)) << (30 - 4);
2629  out++;
2630  *out = ((*in) >> 4);
2631  ++in;
2632  *out |= ((*in) % (1U << 2)) << (30 - 2);
2633  out++;
2634  *out = ((*in) >> 2);
2635 }
2636 
2637 void __device__ __host__ __fastunpack31(const uint32_t * in,
2638  uint32_t * out) {
2639  *out = ((*in) >> 0) % (1U << 31);
2640  out++;
2641  *out = ((*in) >> 31);
2642  ++in;
2643  *out |= ((*in) % (1U << 30)) << (31 - 30);
2644  out++;
2645  *out = ((*in) >> 30);
2646  ++in;
2647  *out |= ((*in) % (1U << 29)) << (31 - 29);
2648  out++;
2649  *out = ((*in) >> 29);
2650  ++in;
2651  *out |= ((*in) % (1U << 28)) << (31 - 28);
2652  out++;
2653  *out = ((*in) >> 28);
2654  ++in;
2655  *out |= ((*in) % (1U << 27)) << (31 - 27);
2656  out++;
2657  *out = ((*in) >> 27);
2658  ++in;
2659  *out |= ((*in) % (1U << 26)) << (31 - 26);
2660  out++;
2661  *out = ((*in) >> 26);
2662  ++in;
2663  *out |= ((*in) % (1U << 25)) << (31 - 25);
2664  out++;
2665  *out = ((*in) >> 25);
2666  ++in;
2667  *out |= ((*in) % (1U << 24)) << (31 - 24);
2668  out++;
2669  *out = ((*in) >> 24);
2670  ++in;
2671  *out |= ((*in) % (1U << 23)) << (31 - 23);
2672  out++;
2673  *out = ((*in) >> 23);
2674  ++in;
2675  *out |= ((*in) % (1U << 22)) << (31 - 22);
2676  out++;
2677  *out = ((*in) >> 22);
2678  ++in;
2679  *out |= ((*in) % (1U << 21)) << (31 - 21);
2680  out++;
2681  *out = ((*in) >> 21);
2682  ++in;
2683  *out |= ((*in) % (1U << 20)) << (31 - 20);
2684  out++;
2685  *out = ((*in) >> 20);
2686  ++in;
2687  *out |= ((*in) % (1U << 19)) << (31 - 19);
2688  out++;
2689  *out = ((*in) >> 19);
2690  ++in;
2691  *out |= ((*in) % (1U << 18)) << (31 - 18);
2692  out++;
2693  *out = ((*in) >> 18);
2694  ++in;
2695  *out |= ((*in) % (1U << 17)) << (31 - 17);
2696  out++;
2697  *out = ((*in) >> 17);
2698  ++in;
2699  *out |= ((*in) % (1U << 16)) << (31 - 16);
2700  out++;
2701  *out = ((*in) >> 16);
2702  ++in;
2703  *out |= ((*in) % (1U << 15)) << (31 - 15);
2704  out++;
2705  *out = ((*in) >> 15);
2706  ++in;
2707  *out |= ((*in) % (1U << 14)) << (31 - 14);
2708  out++;
2709  *out = ((*in) >> 14);
2710  ++in;
2711  *out |= ((*in) % (1U << 13)) << (31 - 13);
2712  out++;
2713  *out = ((*in) >> 13);
2714  ++in;
2715  *out |= ((*in) % (1U << 12)) << (31 - 12);
2716  out++;
2717  *out = ((*in) >> 12);
2718  ++in;
2719  *out |= ((*in) % (1U << 11)) << (31 - 11);
2720  out++;
2721  *out = ((*in) >> 11);
2722  ++in;
2723  *out |= ((*in) % (1U << 10)) << (31 - 10);
2724  out++;
2725  *out = ((*in) >> 10);
2726  ++in;
2727  *out |= ((*in) % (1U << 9)) << (31 - 9);
2728  out++;
2729  *out = ((*in) >> 9);
2730  ++in;
2731  *out |= ((*in) % (1U << 8)) << (31 - 8);
2732  out++;
2733  *out = ((*in) >> 8);
2734  ++in;
2735  *out |= ((*in) % (1U << 7)) << (31 - 7);
2736  out++;
2737  *out = ((*in) >> 7);
2738  ++in;
2739  *out |= ((*in) % (1U << 6)) << (31 - 6);
2740  out++;
2741  *out = ((*in) >> 6);
2742  ++in;
2743  *out |= ((*in) % (1U << 5)) << (31 - 5);
2744  out++;
2745  *out = ((*in) >> 5);
2746  ++in;
2747  *out |= ((*in) % (1U << 4)) << (31 - 4);
2748  out++;
2749  *out = ((*in) >> 4);
2750  ++in;
2751  *out |= ((*in) % (1U << 3)) << (31 - 3);
2752  out++;
2753  *out = ((*in) >> 3);
2754  ++in;
2755  *out |= ((*in) % (1U << 2)) << (31 - 2);
2756  out++;
2757  *out = ((*in) >> 2);
2758  ++in;
2759  *out |= ((*in) % (1U << 1)) << (31 - 1);
2760  out++;
2761  *out = ((*in) >> 1);
2762 }
2763 
2764 void __device__ __host__ __fastunpack4(const uint32_t * in,
2765  uint32_t * out) {
2766  for (uint32_t outer = 0; outer < 4; ++outer) {
2767  for (uint32_t inwordpointer = 0; inwordpointer < 32; inwordpointer += 4)
2768  * (out++) = ((*in) >> inwordpointer) % (1U << 4);
2769  ++in;
2770  }
2771 }
2772 
2773 void __device__ __host__ __fastunpack8(const uint32_t * in,
2774  uint32_t * out) {
2775  for (uint32_t outer = 0; outer < 8; ++outer) {
2776  for (uint32_t inwordpointer = 0; inwordpointer < 32; inwordpointer += 8)
2777  * (out++) = ((*in) >> inwordpointer) % (1U << 8);
2778  ++in;
2779  }
2780 }
2781 
2782 void __device__ __host__ __fastunpack16(const uint32_t * in,
2783  uint32_t * out) {
2784  for (uint32_t outer = 0; outer < 16; ++outer) {
2785  for (uint32_t inwordpointer = 0; inwordpointer < 32; inwordpointer += 16)
2786  * (out++) = ((*in) >> inwordpointer) % (1U << 16);
2787  ++in;
2788  }
2789 }
2790 
2791 void __fastpack1(const uint32_t * in, uint32_t * out) {
2792  *out = (*in) & 1;
2793  ++in;
2794  *out |= ((*in) & 1) << 1;
2795  ++in;
2796  *out |= ((*in) & 1) << 2;
2797  ++in;
2798  *out |= ((*in) & 1) << 3;
2799  ++in;
2800  *out |= ((*in) & 1) << 4;
2801  ++in;
2802  *out |= ((*in) & 1) << 5;
2803  ++in;
2804  *out |= ((*in) & 1) << 6;
2805  ++in;
2806  *out |= ((*in) & 1) << 7;
2807  ++in;
2808  *out |= ((*in) & 1) << 8;
2809  ++in;
2810  *out |= ((*in) & 1) << 9;
2811  ++in;
2812  *out |= ((*in) & 1) << 10;
2813  ++in;
2814  *out |= ((*in) & 1) << 11;
2815  ++in;
2816  *out |= ((*in) & 1) << 12;
2817  ++in;
2818  *out |= ((*in) & 1) << 13;
2819  ++in;
2820  *out |= ((*in) & 1) << 14;
2821  ++in;
2822  *out |= ((*in) & 1) << 15;
2823  ++in;
2824  *out |= ((*in) & 1) << 16;
2825  ++in;
2826  *out |= ((*in) & 1) << 17;
2827  ++in;
2828  *out |= ((*in) & 1) << 18;
2829  ++in;
2830  *out |= ((*in) & 1) << 19;
2831  ++in;
2832  *out |= ((*in) & 1) << 20;
2833  ++in;
2834  *out |= ((*in) & 1) << 21;
2835  ++in;
2836  *out |= ((*in) & 1) << 22;
2837  ++in;
2838  *out |= ((*in) & 1) << 23;
2839  ++in;
2840  *out |= ((*in) & 1) << 24;
2841  ++in;
2842  *out |= ((*in) & 1) << 25;
2843  ++in;
2844  *out |= ((*in) & 1) << 26;
2845  ++in;
2846  *out |= ((*in) & 1) << 27;
2847  ++in;
2848  *out |= ((*in) & 1) << 28;
2849  ++in;
2850  *out |= ((*in) & 1) << 29;
2851  ++in;
2852  *out |= ((*in) & 1) << 30;
2853  ++in;
2854  *out |= ((*in)) << 31;
2855 }
2856 
2857 void __fastpack2(const uint32_t * in, uint32_t * out) {
2858  *out = (*in) % (1U << 2);
2859  ++in;
2860  *out |= ((*in) % (1U << 2)) << 2;
2861  ++in;
2862  *out |= ((*in) % (1U << 2)) << 4;
2863  ++in;
2864  *out |= ((*in) % (1U << 2)) << 6;
2865  ++in;
2866  *out |= ((*in) % (1U << 2)) << 8;
2867  ++in;
2868  *out |= ((*in) % (1U << 2)) << 10;
2869  ++in;
2870  *out |= ((*in) % (1U << 2)) << 12;
2871  ++in;
2872  *out |= ((*in) % (1U << 2)) << 14;
2873  ++in;
2874  *out |= ((*in) % (1U << 2)) << 16;
2875  ++in;
2876  *out |= ((*in) % (1U << 2)) << 18;
2877  ++in;
2878  *out |= ((*in) % (1U << 2)) << 20;
2879  ++in;
2880  *out |= ((*in) % (1U << 2)) << 22;
2881  ++in;
2882  *out |= ((*in) % (1U << 2)) << 24;
2883  ++in;
2884  *out |= ((*in) % (1U << 2)) << 26;
2885  ++in;
2886  *out |= ((*in) % (1U << 2)) << 28;
2887  ++in;
2888  *out |= ((*in)) << 30;
2889  ++out;
2890  ++in;
2891  *out = (*in) % (1U << 2);
2892  ++in;
2893  *out |= ((*in) % (1U << 2)) << 2;
2894  ++in;
2895  *out |= ((*in) % (1U << 2)) << 4;
2896  ++in;
2897  *out |= ((*in) % (1U << 2)) << 6;
2898  ++in;
2899  *out |= ((*in) % (1U << 2)) << 8;
2900  ++in;
2901  *out |= ((*in) % (1U << 2)) << 10;
2902  ++in;
2903  *out |= ((*in) % (1U << 2)) << 12;
2904  ++in;
2905  *out |= ((*in) % (1U << 2)) << 14;
2906  ++in;
2907  *out |= ((*in) % (1U << 2)) << 16;
2908  ++in;
2909  *out |= ((*in) % (1U << 2)) << 18;
2910  ++in;
2911  *out |= ((*in) % (1U << 2)) << 20;
2912  ++in;
2913  *out |= ((*in) % (1U << 2)) << 22;
2914  ++in;
2915  *out |= ((*in) % (1U << 2)) << 24;
2916  ++in;
2917  *out |= ((*in) % (1U << 2)) << 26;
2918  ++in;
2919  *out |= ((*in) % (1U << 2)) << 28;
2920  ++in;
2921  *out |= ((*in)) << 30;
2922 }
2923 
2924 void __fastpack3(const uint32_t * in, uint32_t * out) {
2925  *out = (*in) % (1U << 3);
2926  ++in;
2927  *out |= ((*in) % (1U << 3)) << 3;
2928  ++in;
2929  *out |= ((*in) % (1U << 3)) << 6;
2930  ++in;
2931  *out |= ((*in) % (1U << 3)) << 9;
2932  ++in;
2933  *out |= ((*in) % (1U << 3)) << 12;
2934  ++in;
2935  *out |= ((*in) % (1U << 3)) << 15;
2936  ++in;
2937  *out |= ((*in) % (1U << 3)) << 18;
2938  ++in;
2939  *out |= ((*in) % (1U << 3)) << 21;
2940  ++in;
2941  *out |= ((*in) % (1U << 3)) << 24;
2942  ++in;
2943  *out |= ((*in) % (1U << 3)) << 27;
2944  ++in;
2945  *out |= ((*in)) << 30;
2946  ++out;
2947  *out = ((*in) % (1U << 3)) >> (3 - 1);
2948  ++in;
2949  *out |= ((*in) % (1U << 3)) << 1;
2950  ++in;
2951  *out |= ((*in) % (1U << 3)) << 4;
2952  ++in;
2953  *out |= ((*in) % (1U << 3)) << 7;
2954  ++in;
2955  *out |= ((*in) % (1U << 3)) << 10;
2956  ++in;
2957  *out |= ((*in) % (1U << 3)) << 13;
2958  ++in;
2959  *out |= ((*in) % (1U << 3)) << 16;
2960  ++in;
2961  *out |= ((*in) % (1U << 3)) << 19;
2962  ++in;
2963  *out |= ((*in) % (1U << 3)) << 22;
2964  ++in;
2965  *out |= ((*in) % (1U << 3)) << 25;
2966  ++in;
2967  *out |= ((*in) % (1U << 3)) << 28;
2968  ++in;
2969  *out |= ((*in)) << 31;
2970  ++out;
2971  *out = ((*in) % (1U << 3)) >> (3 - 2);
2972  ++in;
2973  *out |= ((*in) % (1U << 3)) << 2;
2974  ++in;
2975  *out |= ((*in) % (1U << 3)) << 5;
2976  ++in;
2977  *out |= ((*in) % (1U << 3)) << 8;
2978  ++in;
2979  *out |= ((*in) % (1U << 3)) << 11;
2980  ++in;
2981  *out |= ((*in) % (1U << 3)) << 14;
2982  ++in;
2983  *out |= ((*in) % (1U << 3)) << 17;
2984  ++in;
2985  *out |= ((*in) % (1U << 3)) << 20;
2986  ++in;
2987  *out |= ((*in) % (1U << 3)) << 23;
2988  ++in;
2989  *out |= ((*in) % (1U << 3)) << 26;
2990  ++in;
2991  *out |= ((*in)) << 29;
2992 }
2993 
2994 void __fastpack4(const uint32_t * in, uint32_t * out) {
2995  *out = (*in) % (1U << 4);
2996  ++in;
2997  *out |= ((*in) % (1U << 4)) << 4;
2998  ++in;
2999  *out |= ((*in) % (1U << 4)) << 8;
3000  ++in;
3001  *out |= ((*in) % (1U << 4)) << 12;
3002  ++in;
3003  *out |= ((*in) % (1U << 4)) << 16;
3004  ++in;
3005  *out |= ((*in) % (1U << 4)) << 20;
3006  ++in;
3007  *out |= ((*in) % (1U << 4)) << 24;
3008  ++in;
3009  *out |= ((*in)) << 28;
3010  ++out;
3011  ++in;
3012  *out = (*in) % (1U << 4);
3013  ++in;
3014  *out |= ((*in) % (1U << 4)) << 4;
3015  ++in;
3016  *out |= ((*in) % (1U << 4)) << 8;
3017  ++in;
3018  *out |= ((*in) % (1U << 4)) << 12;
3019  ++in;
3020  *out |= ((*in) % (1U << 4)) << 16;
3021  ++in;
3022  *out |= ((*in) % (1U << 4)) << 20;
3023  ++in;
3024  *out |= ((*in) % (1U << 4)) << 24;
3025  ++in;
3026  *out |= ((*in)) << 28;
3027  ++out;
3028  ++in;
3029  *out = (*in) % (1U << 4);
3030  ++in;
3031  *out |= ((*in) % (1U << 4)) << 4;
3032  ++in;
3033  *out |= ((*in) % (1U << 4)) << 8;
3034  ++in;
3035  *out |= ((*in) % (1U << 4)) << 12;
3036  ++in;
3037  *out |= ((*in) % (1U << 4)) << 16;
3038  ++in;
3039  *out |= ((*in) % (1U << 4)) << 20;
3040  ++in;
3041  *out |= ((*in) % (1U << 4)) << 24;
3042  ++in;
3043  *out |= ((*in)) << 28;
3044  ++out;
3045  ++in;
3046  *out = (*in) % (1U << 4);
3047  ++in;
3048  *out |= ((*in) % (1U << 4)) << 4;
3049  ++in;
3050  *out |= ((*in) % (1U << 4)) << 8;
3051  ++in;
3052  *out |= ((*in) % (1U << 4)) << 12;
3053  ++in;
3054  *out |= ((*in) % (1U << 4)) << 16;
3055  ++in;
3056  *out |= ((*in) % (1U << 4)) << 20;
3057  ++in;
3058  *out |= ((*in) % (1U << 4)) << 24;
3059  ++in;
3060  *out |= ((*in)) << 28;
3061 }
3062 
3063 void __fastpack5(const uint32_t * in, uint32_t * out) {
3064  *out = (*in) % (1U << 5);
3065  ++in;
3066  *out |= ((*in) % (1U << 5)) << 5;
3067  ++in;
3068  *out |= ((*in) % (1U << 5)) << 10;
3069  ++in;
3070  *out |= ((*in) % (1U << 5)) << 15;
3071  ++in;
3072  *out |= ((*in) % (1U << 5)) << 20;
3073  ++in;
3074  *out |= ((*in) % (1U << 5)) << 25;
3075  ++in;
3076  *out |= ((*in)) << 30;
3077  ++out;
3078  *out = ((*in) % (1U << 5)) >> (5 - 3);
3079  ++in;
3080  *out |= ((*in) % (1U << 5)) << 3;
3081  ++in;
3082  *out |= ((*in) % (1U << 5)) << 8;
3083  ++in;
3084  *out |= ((*in) % (1U << 5)) << 13;
3085  ++in;
3086  *out |= ((*in) % (1U << 5)) << 18;
3087  ++in;
3088  *out |= ((*in) % (1U << 5)) << 23;
3089  ++in;
3090  *out |= ((*in)) << 28;
3091  ++out;
3092  *out = ((*in) % (1U << 5)) >> (5 - 1);
3093  ++in;
3094  *out |= ((*in) % (1U << 5)) << 1;
3095  ++in;
3096  *out |= ((*in) % (1U << 5)) << 6;
3097  ++in;
3098  *out |= ((*in) % (1U << 5)) << 11;
3099  ++in;
3100  *out |= ((*in) % (1U << 5)) << 16;
3101  ++in;
3102  *out |= ((*in) % (1U << 5)) << 21;
3103  ++in;
3104  *out |= ((*in) % (1U << 5)) << 26;
3105  ++in;
3106  *out |= ((*in)) << 31;
3107  ++out;
3108  *out = ((*in) % (1U << 5)) >> (5 - 4);
3109  ++in;
3110  *out |= ((*in) % (1U << 5)) << 4;
3111  ++in;
3112  *out |= ((*in) % (1U << 5)) << 9;
3113  ++in;
3114  *out |= ((*in) % (1U << 5)) << 14;
3115  ++in;
3116  *out |= ((*in) % (1U << 5)) << 19;
3117  ++in;
3118  *out |= ((*in) % (1U << 5)) << 24;
3119  ++in;
3120  *out |= ((*in)) << 29;
3121  ++out;
3122  *out = ((*in) % (1U << 5)) >> (5 - 2);
3123  ++in;
3124  *out |= ((*in) % (1U << 5)) << 2;
3125  ++in;
3126  *out |= ((*in) % (1U << 5)) << 7;
3127  ++in;
3128  *out |= ((*in) % (1U << 5)) << 12;
3129  ++in;
3130  *out |= ((*in) % (1U << 5)) << 17;
3131  ++in;
3132  *out |= ((*in) % (1U << 5)) << 22;
3133  ++in;
3134  *out |= ((*in)) << 27;
3135 }
3136 
3137 void __fastpack6(const uint32_t * in, uint32_t * out) {
3138  *out = (*in) % (1U << 6);
3139  ++in;
3140  *out |= ((*in) % (1U << 6)) << 6;
3141  ++in;
3142  *out |= ((*in) % (1U << 6)) << 12;
3143  ++in;
3144  *out |= ((*in) % (1U << 6)) << 18;
3145  ++in;
3146  *out |= ((*in) % (1U << 6)) << 24;
3147  ++in;
3148  *out |= ((*in)) << 30;
3149  ++out;
3150  *out = ((*in) % (1U << 6)) >> (6 - 4);
3151  ++in;
3152  *out |= ((*in) % (1U << 6)) << 4;
3153  ++in;
3154  *out |= ((*in) % (1U << 6)) << 10;
3155  ++in;
3156  *out |= ((*in) % (1U << 6)) << 16;
3157  ++in;
3158  *out |= ((*in) % (1U << 6)) << 22;
3159  ++in;
3160  *out |= ((*in)) << 28;
3161  ++out;
3162  *out = ((*in) % (1U << 6)) >> (6 - 2);
3163  ++in;
3164  *out |= ((*in) % (1U << 6)) << 2;
3165  ++in;
3166  *out |= ((*in) % (1U << 6)) << 8;
3167  ++in;
3168  *out |= ((*in) % (1U << 6)) << 14;
3169  ++in;
3170  *out |= ((*in) % (1U << 6)) << 20;
3171  ++in;
3172  *out |= ((*in)) << 26;
3173  ++out;
3174  ++in;
3175  *out = (*in) % (1U << 6);
3176  ++in;
3177  *out |= ((*in) % (1U << 6)) << 6;
3178  ++in;
3179  *out |= ((*in) % (1U << 6)) << 12;
3180  ++in;
3181  *out |= ((*in) % (1U << 6)) << 18;
3182  ++in;
3183  *out |= ((*in) % (1U << 6)) << 24;
3184  ++in;
3185  *out |= ((*in)) << 30;
3186  ++out;
3187  *out = ((*in) % (1U << 6)) >> (6 - 4);
3188  ++in;
3189  *out |= ((*in) % (1U << 6)) << 4;
3190  ++in;
3191  *out |= ((*in) % (1U << 6)) << 10;
3192  ++in;
3193  *out |= ((*in) % (1U << 6)) << 16;
3194  ++in;
3195  *out |= ((*in) % (1U << 6)) << 22;
3196  ++in;
3197  *out |= ((*in)) << 28;
3198  ++out;
3199  *out = ((*in) % (1U << 6)) >> (6 - 2);
3200  ++in;
3201  *out |= ((*in) % (1U << 6)) << 2;
3202  ++in;
3203  *out |= ((*in) % (1U << 6)) << 8;
3204  ++in;
3205  *out |= ((*in) % (1U << 6)) << 14;
3206  ++in;
3207  *out |= ((*in) % (1U << 6)) << 20;
3208  ++in;
3209  *out |= ((*in)) << 26;
3210 }
3211 
3212 void __fastpack7(const uint32_t * in, uint32_t * out) {
3213  *out = (*in) % (1U << 7);
3214  ++in;
3215  *out |= ((*in) % (1U << 7)) << 7;
3216  ++in;
3217  *out |= ((*in) % (1U << 7)) << 14;
3218  ++in;
3219  *out |= ((*in) % (1U << 7)) << 21;
3220  ++in;
3221  *out |= ((*in)) << 28;
3222  ++out;
3223  *out = ((*in) % (1U << 7)) >> (7 - 3);
3224  ++in;
3225  *out |= ((*in) % (1U << 7)) << 3;
3226  ++in;
3227  *out |= ((*in) % (1U << 7)) << 10;
3228  ++in;
3229  *out |= ((*in) % (1U << 7)) << 17;
3230  ++in;
3231  *out |= ((*in) % (1U << 7)) << 24;
3232  ++in;
3233  *out |= ((*in)) << 31;
3234  ++out;
3235  *out = ((*in) % (1U << 7)) >> (7 - 6);
3236  ++in;
3237  *out |= ((*in) % (1U << 7)) << 6;
3238  ++in;
3239  *out |= ((*in) % (1U << 7)) << 13;
3240  ++in;
3241  *out |= ((*in) % (1U << 7)) << 20;
3242  ++in;
3243  *out |= ((*in)) << 27;
3244  ++out;
3245  *out = ((*in) % (1U << 7)) >> (7 - 2);
3246  ++in;
3247  *out |= ((*in) % (1U << 7)) << 2;
3248  ++in;
3249  *out |= ((*in) % (1U << 7)) << 9;
3250  ++in;
3251  *out |= ((*in) % (1U << 7)) << 16;
3252  ++in;
3253  *out |= ((*in) % (1U << 7)) << 23;
3254  ++in;
3255  *out |= ((*in)) << 30;
3256  ++out;
3257  *out = ((*in) % (1U << 7)) >> (7 - 5);
3258  ++in;
3259  *out |= ((*in) % (1U << 7)) << 5;
3260  ++in;
3261  *out |= ((*in) % (1U << 7)) << 12;
3262  ++in;
3263  *out |= ((*in) % (1U << 7)) << 19;
3264  ++in;
3265  *out |= ((*in)) << 26;
3266  ++out;
3267  *out = ((*in) % (1U << 7)) >> (7 - 1);
3268  ++in;
3269  *out |= ((*in) % (1U << 7)) << 1;
3270  ++in;
3271  *out |= ((*in) % (1U << 7)) << 8;
3272  ++in;
3273  *out |= ((*in) % (1U << 7)) << 15;
3274  ++in;
3275  *out |= ((*in) % (1U << 7)) << 22;
3276  ++in;
3277  *out |= ((*in)) << 29;
3278  ++out;
3279  *out = ((*in) % (1U << 7)) >> (7 - 4);
3280  ++in;
3281  *out |= ((*in) % (1U << 7)) << 4;
3282  ++in;
3283  *out |= ((*in) % (1U << 7)) << 11;
3284  ++in;
3285  *out |= ((*in) % (1U << 7)) << 18;
3286  ++in;
3287  *out |= ((*in)) << 25;
3288 }
3289 
3290 void __fastpack8(const uint32_t * in, uint32_t * out) {
3291  *out = (*in) % (1U << 8);
3292  ++in;
3293  *out |= ((*in) % (1U << 8)) << 8;
3294  ++in;
3295  *out |= ((*in) % (1U << 8)) << 16;
3296  ++in;
3297  *out |= ((*in)) << 24;
3298  ++out;
3299  ++in;
3300  *out = (*in) % (1U << 8);
3301  ++in;
3302  *out |= ((*in) % (1U << 8)) << 8;
3303  ++in;
3304  *out |= ((*in) % (1U << 8)) << 16;
3305  ++in;
3306  *out |= ((*in)) << 24;
3307  ++out;
3308  ++in;
3309  *out = (*in) % (1U << 8);
3310  ++in;
3311  *out |= ((*in) % (1U << 8)) << 8;
3312  ++in;
3313  *out |= ((*in) % (1U << 8)) << 16;
3314  ++in;
3315  *out |= ((*in)) << 24;
3316  ++out;
3317  ++in;
3318  *out = (*in) % (1U << 8);
3319  ++in;
3320  *out |= ((*in) % (1U << 8)) << 8;
3321  ++in;
3322  *out |= ((*in) % (1U << 8)) << 16;
3323  ++in;
3324  *out |= ((*in)) << 24;
3325  ++out;
3326  ++in;
3327  *out = (*in) % (1U << 8);
3328  ++in;
3329  *out |= ((*in) % (1U << 8)) << 8;
3330  ++in;
3331  *out |= ((*in) % (1U << 8)) << 16;
3332  ++in;
3333  *out |= ((*in)) << 24;
3334  ++out;
3335  ++in;
3336  *out = (*in) % (1U << 8);
3337  ++in;
3338  *out |= ((*in) % (1U << 8)) << 8;
3339  ++in;
3340  *out |= ((*in) % (1U << 8)) << 16;
3341  ++in;
3342  *out |= ((*in)) << 24;
3343  ++out;
3344  ++in;
3345  *out = (*in) % (1U << 8);
3346  ++in;
3347  *out |= ((*in) % (1U << 8)) << 8;
3348  ++in;
3349  *out |= ((*in) % (1U << 8)) << 16;
3350  ++in;
3351  *out |= ((*in)) << 24;
3352  ++out;
3353  ++in;
3354  *out = (*in) % (1U << 8);
3355  ++in;
3356  *out |= ((*in) % (1U << 8)) << 8;
3357  ++in;
3358  *out |= ((*in) % (1U << 8)) << 16;
3359  ++in;
3360  *out |= ((*in)) << 24;
3361 }
3362 
3363 void __fastpack9(const uint32_t * in, uint32_t * out) {
3364  *out = (*in) % (1U << 9);
3365  ++in;
3366  *out |= ((*in) % (1U << 9)) << 9;
3367  ++in;
3368  *out |= ((*in) % (1U << 9)) << 18;
3369  ++in;
3370  *out |= ((*in)) << 27;
3371  ++out;
3372  *out = ((*in) % (1U << 9)) >> (9 - 4);
3373  ++in;
3374  *out |= ((*in) % (1U << 9)) << 4;
3375  ++in;
3376  *out |= ((*in) % (1U << 9)) << 13;
3377  ++in;
3378  *out |= ((*in) % (1U << 9)) << 22;
3379  ++in;
3380  *out |= ((*in)) << 31;
3381  ++out;
3382  *out = ((*in) % (1U << 9)) >> (9 - 8);
3383  ++in;
3384  *out |= ((*in) % (1U << 9)) << 8;
3385  ++in;
3386  *out |= ((*in) % (1U << 9)) << 17;
3387  ++in;
3388  *out |= ((*in)) << 26;
3389  ++out;
3390  *out = ((*in) % (1U << 9)) >> (9 - 3);
3391  ++in;
3392  *out |= ((*in) % (1U << 9)) << 3;
3393  ++in;
3394  *out |= ((*in) % (1U << 9)) << 12;
3395  ++in;
3396  *out |= ((*in) % (1U << 9)) << 21;
3397  ++in;
3398  *out |= ((*in)) << 30;
3399  ++out;
3400  *out = ((*in) % (1U << 9)) >> (9 - 7);
3401  ++in;
3402  *out |= ((*in) % (1U << 9)) << 7;
3403  ++in;
3404  *out |= ((*in) % (1U << 9)) << 16;
3405  ++in;
3406  *out |= ((*in)) << 25;
3407  ++out;
3408  *out = ((*in) % (1U << 9)) >> (9 - 2);
3409  ++in;
3410  *out |= ((*in) % (1U << 9)) << 2;
3411  ++in;
3412  *out |= ((*in) % (1U << 9)) << 11;
3413  ++in;
3414  *out |= ((*in) % (1U << 9)) << 20;
3415  ++in;
3416  *out |= ((*in)) << 29;
3417  ++out;
3418  *out = ((*in) % (1U << 9)) >> (9 - 6);
3419  ++in;
3420  *out |= ((*in) % (1U << 9)) << 6;
3421  ++in;
3422  *out |= ((*in) % (1U << 9)) << 15;
3423  ++in;
3424  *out |= ((*in)) << 24;
3425  ++out;
3426  *out = ((*in) % (1U << 9)) >> (9 - 1);
3427  ++in;
3428  *out |= ((*in) % (1U << 9)) << 1;
3429  ++in;
3430  *out |= ((*in) % (1U << 9)) << 10;
3431  ++in;
3432  *out |= ((*in) % (1U << 9)) << 19;
3433  ++in;
3434  *out |= ((*in)) << 28;
3435  ++out;
3436  *out = ((*in) % (1U << 9)) >> (9 - 5);
3437  ++in;
3438  *out |= ((*in) % (1U << 9)) << 5;
3439  ++in;
3440  *out |= ((*in) % (1U << 9)) << 14;
3441  ++in;
3442  *out |= ((*in)) << 23;
3443 }
3444 
3445 void __fastpack10(const uint32_t * in, uint32_t * out) {
3446  *out = (*in) % (1U << 10);
3447  ++in;
3448  *out |= ((*in) % (1U << 10)) << 10;
3449  ++in;
3450  *out |= ((*in) % (1U << 10)) << 20;
3451  ++in;
3452  *out |= ((*in)) << 30;
3453  ++out;
3454  *out = ((*in) % (1U << 10)) >> (10 - 8);
3455  ++in;
3456  *out |= ((*in) % (1U << 10)) << 8;
3457  ++in;
3458  *out |= ((*in) % (1U << 10)) << 18;
3459  ++in;
3460  *out |= ((*in)) << 28;
3461  ++out;
3462  *out = ((*in) % (1U << 10)) >> (10 - 6);
3463  ++in;
3464  *out |= ((*in) % (1U << 10)) << 6;
3465  ++in;
3466  *out |= ((*in) % (1U << 10)) << 16;
3467  ++in;
3468  *out |= ((*in)) << 26;
3469  ++out;
3470  *out = ((*in) % (1U << 10)) >> (10 - 4);
3471  ++in;
3472  *out |= ((*in) % (1U << 10)) << 4;
3473  ++in;
3474  *out |= ((*in) % (1U << 10)) << 14;
3475  ++in;
3476  *out |= ((*in)) << 24;
3477  ++out;
3478  *out = ((*in) % (1U << 10)) >> (10 - 2);
3479  ++in;
3480  *out |= ((*in) % (1U << 10)) << 2;
3481  ++in;
3482  *out |= ((*in) % (1U << 10)) << 12;
3483  ++in;
3484  *out |= ((*in)) << 22;
3485  ++out;
3486  ++in;
3487  *out = (*in) % (1U << 10);
3488  ++in;
3489  *out |= ((*in) % (1U << 10)) << 10;
3490  ++in;
3491  *out |= ((*in) % (1U << 10)) << 20;
3492  ++in;
3493  *out |= ((*in)) << 30;
3494  ++out;
3495  *out = ((*in) % (1U << 10)) >> (10 - 8);
3496  ++in;
3497  *out |= ((*in) % (1U << 10)) << 8;
3498  ++in;
3499  *out |= ((*in) % (1U << 10)) << 18;
3500  ++in;
3501  *out |= ((*in)) << 28;
3502  ++out;
3503  *out = ((*in) % (1U << 10)) >> (10 - 6);
3504  ++in;
3505  *out |= ((*in) % (1U << 10)) << 6;
3506  ++in;
3507  *out |= ((*in) % (1U << 10)) << 16;
3508  ++in;
3509  *out |= ((*in)) << 26;
3510  ++out;
3511  *out = ((*in) % (1U << 10)) >> (10 - 4);
3512  ++in;
3513  *out |= ((*in) % (1U << 10)) << 4;
3514  ++in;
3515  *out |= ((*in) % (1U << 10)) << 14;
3516  ++in;
3517  *out |= ((*in)) << 24;
3518  ++out;
3519  *out = ((*in) % (1U << 10)) >> (10 - 2);
3520  ++in;
3521  *out |= ((*in) % (1U << 10)) << 2;
3522  ++in;
3523  *out |= ((*in) % (1U << 10)) << 12;
3524  ++in;
3525  *out |= ((*in)) << 22;
3526 }
3527 
3528 void __fastpack11(const uint32_t * in, uint32_t * out) {
3529  *out = (*in) % (1U << 11);
3530  ++in;
3531  *out |= ((*in) % (1U << 11)) << 11;
3532  ++in;
3533  *out |= ((*in)) << 22;
3534  ++out;
3535  *out = ((*in) % (1U << 11)) >> (11 - 1);
3536  ++in;
3537  *out |= ((*in) % (1U << 11)) << 1;
3538  ++in;
3539  *out |= ((*in) % (1U << 11)) << 12;
3540  ++in;
3541  *out |= ((*in)) << 23;
3542  ++out;
3543  *out = ((*in) % (1U << 11)) >> (11 - 2);
3544  ++in;
3545  *out |= ((*in) % (1U << 11)) << 2;
3546  ++in;
3547  *out |= ((*in) % (1U << 11)) << 13;
3548  ++in;
3549  *out |= ((*in)) << 24;
3550  ++out;
3551  *out = ((*in) % (1U << 11)) >> (11 - 3);
3552  ++in;
3553  *out |= ((*in) % (1U << 11)) << 3;
3554  ++in;
3555  *out |= ((*in) % (1U << 11)) << 14;
3556  ++in;
3557  *out |= ((*in)) << 25;
3558  ++out;
3559  *out = ((*in) % (1U << 11)) >> (11 - 4);
3560  ++in;
3561  *out |= ((*in) % (1U << 11)) << 4;
3562  ++in;
3563  *out |= ((*in) % (1U << 11)) << 15;
3564  ++in;
3565  *out |= ((*in)) << 26;
3566  ++out;
3567  *out = ((*in) % (1U << 11)) >> (11 - 5);
3568  ++in;
3569  *out |= ((*in) % (1U << 11)) << 5;
3570  ++in;
3571  *out |= ((*in) % (1U << 11)) << 16;
3572  ++in;
3573  *out |= ((*in)) << 27;
3574  ++out;
3575  *out = ((*in) % (1U << 11)) >> (11 - 6);
3576  ++in;
3577  *out |= ((*in) % (1U << 11)) << 6;
3578  ++in;
3579  *out |= ((*in) % (1U << 11)) << 17;
3580  ++in;
3581  *out |= ((*in)) << 28;
3582  ++out;
3583  *out = ((*in) % (1U << 11)) >> (11 - 7);
3584  ++in;
3585  *out |= ((*in) % (1U << 11)) << 7;
3586  ++in;
3587  *out |= ((*in) % (1U << 11)) << 18;
3588  ++in;
3589  *out |= ((*in)) << 29;
3590  ++out;
3591  *out = ((*in) % (1U << 11)) >> (11 - 8);
3592  ++in;
3593  *out |= ((*in) % (1U << 11)) << 8;
3594  ++in;
3595  *out |= ((*in) % (1U << 11)) << 19;
3596  ++in;
3597  *out |= ((*in)) << 30;
3598  ++out;
3599  *out = ((*in) % (1U << 11)) >> (11 - 9);
3600  ++in;
3601  *out |= ((*in) % (1U << 11)) << 9;
3602  ++in;
3603  *out |= ((*in) % (1U << 11)) << 20;
3604  ++in;
3605  *out |= ((*in)) << 31;
3606  ++out;
3607  *out = ((*in) % (1U << 11)) >> (11 - 10);
3608  ++in;
3609  *out |= ((*in) % (1U << 11)) << 10;
3610  ++in;
3611  *out |= ((*in)) << 21;
3612 }
3613 
3614 void __fastpack12(const uint32_t * in, uint32_t * out) {
3615  *out = (*in) % (1U << 12);
3616  ++in;
3617  *out |= ((*in) % (1U << 12)) << 12;
3618  ++in;
3619  *out |= ((*in)) << 24;
3620  ++out;
3621  *out = ((*in) % (1U << 12)) >> (12 - 4);
3622  ++in;
3623  *out |= ((*in) % (1U << 12)) << 4;
3624  ++in;
3625  *out |= ((*in) % (1U << 12)) << 16;
3626  ++in;
3627  *out |= ((*in)) << 28;
3628  ++out;
3629  *out = ((*in) % (1U << 12)) >> (12 - 8);
3630  ++in;
3631  *out |= ((*in) % (1U << 12)) << 8;
3632  ++in;
3633  *out |= ((*in)) << 20;
3634  ++out;
3635  ++in;
3636  *out = (*in) % (1U << 12);
3637  ++in;
3638  *out |= ((*in) % (1U << 12)) << 12;
3639  ++in;
3640  *out |= ((*in)) << 24;
3641  ++out;
3642  *out = ((*in) % (1U << 12)) >> (12 - 4);
3643  ++in;
3644  *out |= ((*in) % (1U << 12)) << 4;
3645  ++in;
3646  *out |= ((*in) % (1U << 12)) << 16;
3647  ++in;
3648  *out |= ((*in)) << 28;
3649  ++out;
3650  *out = ((*in) % (1U << 12)) >> (12 - 8);
3651  ++in;
3652  *out |= ((*in) % (1U << 12)) << 8;
3653  ++in;
3654  *out |= ((*in)) << 20;
3655  ++out;
3656  ++in;
3657  *out = (*in) % (1U << 12);
3658  ++in;
3659  *out |= ((*in) % (1U << 12)) << 12;
3660  ++in;
3661  *out |= ((*in)) << 24;
3662  ++out;
3663  *out = ((*in) % (1U << 12)) >> (12 - 4);
3664  ++in;
3665  *out |= ((*in) % (1U << 12)) << 4;
3666  ++in;
3667  *out |= ((*in) % (1U << 12)) << 16;
3668  ++in;
3669  *out |= ((*in)) << 28;
3670  ++out;
3671  *out = ((*in) % (1U << 12)) >> (12 - 8);
3672  ++in;
3673  *out |= ((*in) % (1U << 12)) << 8;
3674  ++in;
3675  *out |= ((*in)) << 20;
3676  ++out;
3677  ++in;
3678  *out = (*in) % (1U << 12);
3679  ++in;
3680  *out |= ((*in) % (1U << 12)) << 12;
3681  ++in;
3682  *out |= ((*in)) << 24;
3683  ++out;
3684  *out = ((*in) % (1U << 12)) >> (12 - 4);
3685  ++in;
3686  *out |= ((*in) % (1U << 12)) << 4;
3687  ++in;
3688  *out |= ((*in) % (1U << 12)) << 16;
3689  ++in;
3690  *out |= ((*in)) << 28;
3691  ++out;
3692  *out = ((*in) % (1U << 12)) >> (12 - 8);
3693  ++in;
3694  *out |= ((*in) % (1U << 12)) << 8;
3695  ++in;
3696  *out |= ((*in)) << 20;
3697 }
3698 
3699 void __fastpack13(const uint32_t * in, uint32_t * out) {
3700  *out = (*in) % (1U << 13);
3701  ++in;
3702  *out |= ((*in) % (1U << 13)) << 13;
3703  ++in;
3704  *out |= ((*in)) << 26;
3705  ++out;
3706  *out = ((*in) % (1U << 13)) >> (13 - 7);
3707  ++in;
3708  *out |= ((*in) % (1U << 13)) << 7;
3709  ++in;
3710  *out |= ((*in)) << 20;
3711  ++out;
3712  *out = ((*in) % (1U << 13)) >> (13 - 1);
3713  ++in;
3714  *out |= ((*in) % (1U << 13)) << 1;
3715  ++in;
3716  *out |= ((*in) % (1U << 13)) << 14;
3717  ++in;
3718  *out |= ((*in)) << 27;
3719  ++out;
3720  *out = ((*in) % (1U << 13)) >> (13 - 8);
3721  ++in;
3722  *out |= ((*in) % (1U << 13)) << 8;
3723  ++in;
3724  *out |= ((*in)) << 21;
3725  ++out;
3726  *out = ((*in) % (1U << 13)) >> (13 - 2);
3727  ++in;
3728  *out |= ((*in) % (1U << 13)) << 2;
3729  ++in;
3730  *out |= ((*in) % (1U << 13)) << 15;
3731  ++in;
3732  *out |= ((*in)) << 28;
3733  ++out;
3734  *out = ((*in) % (1U << 13)) >> (13 - 9);
3735  ++in;
3736  *out |= ((*in) % (1U << 13)) << 9;
3737  ++in;
3738  *out |= ((*in)) << 22;
3739  ++out;
3740  *out = ((*in) % (1U << 13)) >> (13 - 3);
3741  ++in;
3742  *out |= ((*in) % (1U << 13)) << 3;
3743  ++in;
3744  *out |= ((*in) % (1U << 13)) << 16;
3745  ++in;
3746  *out |= ((*in)) << 29;
3747  ++out;
3748  *out = ((*in) % (1U << 13)) >> (13 - 10);
3749  ++in;
3750  *out |= ((*in) % (1U << 13)) << 10;
3751  ++in;
3752  *out |= ((*in)) << 23;
3753  ++out;
3754  *out = ((*in) % (1U << 13)) >> (13 - 4);
3755  ++in;
3756  *out |= ((*in) % (1U << 13)) << 4;
3757  ++in;
3758  *out |= ((*in) % (1U << 13)) << 17;
3759  ++in;
3760  *out |= ((*in)) << 30;
3761  ++out;
3762  *out = ((*in) % (1U << 13)) >> (13 - 11);
3763  ++in;
3764  *out |= ((*in) % (1U << 13)) << 11;
3765  ++in;
3766  *out |= ((*in)) << 24;
3767  ++out;
3768  *out = ((*in) % (1U << 13)) >> (13 - 5);
3769  ++in;
3770  *out |= ((*in) % (1U << 13)) << 5;
3771  ++in;
3772  *out |= ((*in) % (1U << 13)) << 18;
3773  ++in;
3774  *out |= ((*in)) << 31;
3775  ++out;
3776  *out = ((*in) % (1U << 13)) >> (13 - 12);
3777  ++in;
3778  *out |= ((*in) % (1U << 13)) << 12;
3779  ++in;
3780  *out |= ((*in)) << 25;
3781  ++out;
3782  *out = ((*in) % (1U << 13)) >> (13 - 6);
3783  ++in;
3784  *out |= ((*in) % (1U << 13)) << 6;
3785  ++in;
3786  *out |= ((*in)) << 19;
3787 }
3788 
3789 void __fastpack14(const uint32_t * in, uint32_t * out) {
3790  *out = (*in) % (1U << 14);
3791  ++in;
3792  *out |= ((*in) % (1U << 14)) << 14;
3793  ++in;
3794  *out |= ((*in)) << 28;
3795  ++out;
3796  *out = ((*in) % (1U << 14)) >> (14 - 10);
3797  ++in;
3798  *out |= ((*in) % (1U << 14)) << 10;
3799  ++in;
3800  *out |= ((*in)) << 24;
3801  ++out;
3802  *out = ((*in) % (1U << 14)) >> (14 - 6);
3803  ++in;
3804  *out |= ((*in) % (1U << 14)) << 6;
3805  ++in;
3806  *out |= ((*in)) << 20;
3807  ++out;
3808  *out = ((*in) % (1U << 14)) >> (14 - 2);
3809  ++in;
3810  *out |= ((*in) % (1U << 14)) << 2;
3811  ++in;
3812  *out |= ((*in) % (1U << 14)) << 16;
3813  ++in;
3814  *out |= ((*in)) << 30;
3815  ++out;
3816  *out = ((*in) % (1U << 14)) >> (14 - 12);
3817  ++in;
3818  *out |= ((*in) % (1U << 14)) << 12;
3819  ++in;
3820  *out |= ((*in)) << 26;
3821  ++out;
3822  *out = ((*in) % (1U << 14)) >> (14 - 8);
3823  ++in;
3824  *out |= ((*in) % (1U << 14)) << 8;
3825  ++in;
3826  *out |= ((*in)) << 22;
3827  ++out;
3828  *out = ((*in) % (1U << 14)) >> (14 - 4);
3829  ++in;
3830  *out |= ((*in) % (1U << 14)) << 4;
3831  ++in;
3832  *out |= ((*in)) << 18;
3833  ++out;
3834  ++in;
3835  *out = (*in) % (1U << 14);
3836  ++in;
3837  *out |= ((*in) % (1U << 14)) << 14;
3838  ++in;
3839  *out |= ((*in)) << 28;
3840  ++out;
3841  *out = ((*in) % (1U << 14)) >> (14 - 10);
3842  ++in;
3843  *out |= ((*in) % (1U << 14)) << 10;
3844  ++in;
3845  *out |= ((*in)) << 24;
3846  ++out;
3847  *out = ((*in) % (1U << 14)) >> (14 - 6);
3848  ++in;
3849  *out |= ((*in) % (1U << 14)) << 6;
3850  ++in;
3851  *out |= ((*in)) << 20;
3852  ++out;
3853  *out = ((*in) % (1U << 14)) >> (14 - 2);
3854  ++in;
3855  *out |= ((*in) % (1U << 14)) << 2;
3856  ++in;
3857  *out |= ((*in) % (1U << 14)) << 16;
3858  ++in;
3859  *out |= ((*in)) << 30;
3860  ++out;
3861  *out = ((*in) % (1U << 14)) >> (14 - 12);
3862  ++in;
3863  *out |= ((*in) % (1U << 14)) << 12;
3864  ++in;
3865  *out |= ((*in)) << 26;
3866  ++out;
3867  *out = ((*in) % (1U << 14)) >> (14 - 8);
3868  ++in;
3869  *out |= ((*in) % (1U << 14)) << 8;
3870  ++in;
3871  *out |= ((*in)) << 22;
3872  ++out;
3873  *out = ((*in) % (1U << 14)) >> (14 - 4);
3874  ++in;
3875  *out |= ((*in) % (1U << 14)) << 4;
3876  ++in;
3877  *out |= ((*in)) << 18;
3878 }
3879 
3880 void __fastpack15(const uint32_t * in, uint32_t * out) {
3881  *out = (*in) % (1U << 15);
3882  ++in;
3883  *out |= ((*in) % (1U << 15)) << 15;
3884  ++in;
3885  *out |= ((*in)) << 30;
3886  ++out;
3887  *out = ((*in) % (1U << 15)) >> (15 - 13);
3888  ++in;
3889  *out |= ((*in) % (1U << 15)) << 13;
3890  ++in;
3891  *out |= ((*in)) << 28;
3892  ++out;
3893  *out = ((*in) % (1U << 15)) >> (15 - 11);
3894  ++in;
3895  *out |= ((*in) % (1U << 15)) << 11;
3896  ++in;
3897  *out |= ((*in)) << 26;
3898  ++out;
3899  *out = ((*in) % (1U << 15)) >> (15 - 9);
3900  ++in;
3901  *out |= ((*in) % (1U << 15)) << 9;
3902  ++in;
3903  *out |= ((*in)) << 24;
3904  ++out;
3905  *out = ((*in) % (1U << 15)) >> (15 - 7);
3906  ++in;
3907  *out |= ((*in) % (1U << 15)) << 7;
3908  ++in;
3909  *out |= ((*in)) << 22;
3910  ++out;
3911  *out = ((*in) % (1U << 15)) >> (15 - 5);
3912  ++in;
3913  *out |= ((*in) % (1U << 15)) << 5;
3914  ++in;
3915  *out |= ((*in)) << 20;
3916  ++out;
3917  *out = ((*in) % (1U << 15)) >> (15 - 3);
3918  ++in;
3919  *out |= ((*in) % (1U << 15)) << 3;
3920  ++in;
3921  *out |= ((*in)) << 18;
3922  ++out;
3923  *out = ((*in) % (1U << 15)) >> (15 - 1);
3924  ++in;
3925  *out |= ((*in) % (1U << 15)) << 1;
3926  ++in;
3927  *out |= ((*in) % (1U << 15)) << 16;
3928  ++in;
3929  *out |= ((*in)) << 31;
3930  ++out;
3931  *out = ((*in) % (1U << 15)) >> (15 - 14);
3932  ++in;
3933  *out |= ((*in) % (1U << 15)) << 14;
3934  ++in;
3935  *out |= ((*in)) << 29;
3936  ++out;
3937  *out = ((*in) % (1U << 15)) >> (15 - 12);
3938  ++in;
3939  *out |= ((*in) % (1U << 15)) << 12;
3940  ++in;
3941  *out |= ((*in)) << 27;
3942  ++out;
3943  *out = ((*in) % (1U << 15)) >> (15 - 10);
3944  ++in;
3945  *out |= ((*in) % (1U << 15)) << 10;
3946  ++in;
3947  *out |= ((*in)) << 25;
3948  ++out;
3949  *out = ((*in) % (1U << 15)) >> (15 - 8);
3950  ++in;
3951  *out |= ((*in) % (1U << 15)) << 8;
3952  ++in;
3953  *out |= ((*in)) << 23;
3954  ++out;
3955  *out = ((*in) % (1U << 15)) >> (15 - 6);
3956  ++in;
3957  *out |= ((*in) % (1U << 15)) << 6;
3958  ++in;
3959  *out |= ((*in)) << 21;
3960  ++out;
3961  *out = ((*in) % (1U << 15)) >> (15 - 4);
3962  ++in;
3963  *out |= ((*in) % (1U << 15)) << 4;
3964  ++in;
3965  *out |= ((*in)) << 19;
3966  ++out;
3967  *out = ((*in) % (1U << 15)) >> (15 - 2);
3968  ++in;
3969  *out |= ((*in) % (1U << 15)) << 2;
3970  ++in;
3971  *out |= ((*in)) << 17;
3972 }
3973 
3974 void __fastpack16(const uint32_t * in, uint32_t * out) {
3975  *out = (*in) % (1U << 16);
3976  ++in;
3977  *out |= ((*in)) << 16;
3978  ++out;
3979  ++in;
3980  *out = (*in) % (1U << 16);
3981  ++in;
3982  *out |= ((*in)) << 16;
3983  ++out;
3984  ++in;
3985  *out = (*in) % (1U << 16);
3986  ++in;
3987  *out |= ((*in)) << 16;
3988  ++out;
3989  ++in;
3990  *out = (*in) % (1U << 16);
3991  ++in;
3992  *out |= ((*in)) << 16;
3993  ++out;
3994  ++in;
3995  *out = (*in) % (1U << 16);
3996  ++in;
3997  *out |= ((*in)) << 16;
3998  ++out;
3999  ++in;
4000  *out = (*in) % (1U << 16);
4001  ++in;
4002  *out |= ((*in)) << 16;
4003  ++out;
4004  ++in;
4005  *out = (*in) % (1U << 16);
4006  ++in;
4007  *out |= ((*in)) << 16;
4008  ++out;
4009  ++in;
4010  *out = (*in) % (1U << 16);
4011  ++in;
4012  *out |= ((*in)) << 16;
4013  ++out;
4014  ++in;
4015  *out = (*in) % (1U << 16);
4016  ++in;
4017  *out |= ((*in)) << 16;
4018  ++out;
4019  ++in;
4020  *out = (*in) % (1U << 16);
4021  ++in;
4022  *out |= ((*in)) << 16;
4023  ++out;
4024  ++in;
4025  *out = (*in) % (1U << 16);
4026  ++in;
4027  *out |= ((*in)) << 16;
4028  ++out;
4029  ++in;
4030  *out = (*in) % (1U << 16);
4031  ++in;
4032  *out |= ((*in)) << 16;
4033  ++out;
4034  ++in;
4035  *out = (*in) % (1U << 16);
4036  ++in;
4037  *out |= ((*in)) << 16;
4038  ++out;
4039  ++in;
4040  *out = (*in) % (1U << 16);
4041  ++in;
4042  *out |= ((*in)) << 16;
4043  ++out;
4044  ++in;
4045  *out = (*in) % (1U << 16);
4046  ++in;
4047  *out |= ((*in)) << 16;
4048  ++out;
4049  ++in;
4050  *out = (*in) % (1U << 16);
4051  ++in;
4052  *out |= ((*in)) << 16;
4053 }
4054 
4055 void __fastpack17(const uint32_t * in, uint32_t * out) {
4056  *out = (*in) % (1U << 17);
4057  ++in;
4058  *out |= ((*in)) << 17;
4059  ++out;
4060  *out = ((*in) % (1U << 17)) >> (17 - 2);
4061  ++in;
4062  *out |= ((*in) % (1U << 17)) << 2;
4063  ++in;
4064  *out |= ((*in)) << 19;
4065  ++out;
4066  *out = ((*in) % (1U << 17)) >> (17 - 4);
4067  ++in;
4068  *out |= ((*in) % (1U << 17)) << 4;
4069  ++in;
4070  *out |= ((*in)) << 21;
4071  ++out;
4072  *out = ((*in) % (1U << 17)) >> (17 - 6);
4073  ++in;
4074  *out |= ((*in) % (1U << 17)) << 6;
4075  ++in;
4076  *out |= ((*in)) << 23;
4077  ++out;
4078  *out = ((*in) % (1U << 17)) >> (17 - 8);
4079  ++in;
4080  *out |= ((*in) % (1U << 17)) << 8;
4081  ++in;
4082  *out |= ((*in)) << 25;
4083  ++out;
4084  *out = ((*in) % (1U << 17)) >> (17 - 10);
4085  ++in;
4086  *out |= ((*in) % (1U << 17)) << 10;
4087  ++in;
4088  *out |= ((*in)) << 27;
4089  ++out;
4090  *out = ((*in) % (1U << 17)) >> (17 - 12);
4091  ++in;
4092  *out |= ((*in) % (1U << 17)) << 12;
4093  ++in;
4094  *out |= ((*in)) << 29;
4095  ++out;
4096  *out = ((*in) % (1U << 17)) >> (17 - 14);
4097  ++in;
4098  *out |= ((*in) % (1U << 17)) << 14;
4099  ++in;
4100  *out |= ((*in)) << 31;
4101  ++out;
4102  *out = ((*in) % (1U << 17)) >> (17 - 16);
4103  ++in;
4104  *out |= ((*in)) << 16;
4105  ++out;
4106  *out = ((*in) % (1U << 17)) >> (17 - 1);
4107  ++in;
4108  *out |= ((*in) % (1U << 17)) << 1;
4109  ++in;
4110  *out |= ((*in)) << 18;
4111  ++out;
4112  *out = ((*in) % (1U << 17)) >> (17 - 3);
4113  ++in;
4114  *out |= ((*in) % (1U << 17)) << 3;
4115  ++in;
4116  *out |= ((*in)) << 20;
4117  ++out;
4118  *out = ((*in) % (1U << 17)) >> (17 - 5);
4119  ++in;
4120  *out |= ((*in) % (1U << 17)) << 5;
4121  ++in;
4122  *out |= ((*in)) << 22;
4123  ++out;
4124  *out = ((*in) % (1U << 17)) >> (17 - 7);
4125  ++in;
4126  *out |= ((*in) % (1U << 17)) << 7;
4127  ++in;
4128  *out |= ((*in)) << 24;
4129  ++out;
4130  *out = ((*in) % (1U << 17)) >> (17 - 9);
4131  ++in;
4132  *out |= ((*in) % (1U << 17)) << 9;
4133  ++in;
4134  *out |= ((*in)) << 26;
4135  ++out;
4136  *out = ((*in) % (1U << 17)) >> (17 - 11);
4137  ++in;
4138  *out |= ((*in) % (1U << 17)) << 11;
4139  ++in;
4140  *out |= ((*in)) << 28;
4141  ++out;
4142  *out = ((*in) % (1U << 17)) >> (17 - 13);
4143  ++in;
4144  *out |= ((*in) % (1U << 17)) << 13;
4145  ++in;
4146  *out |= ((*in)) << 30;
4147  ++out;
4148  *out = ((*in) % (1U << 17)) >> (17 - 15);
4149  ++in;
4150  *out |= ((*in)) << 15;
4151 }
4152 
4153 void __fastpack18(const uint32_t * in, uint32_t * out) {
4154  *out = (*in) % (1U << 18);
4155  ++in;
4156  *out |= ((*in)) << 18;
4157  ++out;
4158  *out = ((*in) % (1U << 18)) >> (18 - 4);
4159  ++in;
4160  *out |= ((*in) % (1U << 18)) << 4;
4161  ++in;
4162  *out |= ((*in)) << 22;
4163  ++out;
4164  *out = ((*in) % (1U << 18)) >> (18 - 8);
4165  ++in;
4166  *out |= ((*in) % (1U << 18)) << 8;
4167  ++in;
4168  *out |= ((*in)) << 26;
4169  ++out;
4170  *out = ((*in) % (1U << 18)) >> (18 - 12);
4171  ++in;
4172  *out |= ((*in) % (1U << 18)) << 12;
4173  ++in;
4174  *out |= ((*in)) << 30;
4175  ++out;
4176  *out = ((*in) % (1U << 18)) >> (18 - 16);
4177  ++in;
4178  *out |= ((*in)) << 16;
4179  ++out;
4180  *out = ((*in) % (1U << 18)) >> (18 - 2);
4181  ++in;
4182  *out |= ((*in) % (1U << 18)) << 2;
4183  ++in;
4184  *out |= ((*in)) << 20;
4185  ++out;
4186  *out = ((*in) % (1U << 18)) >> (18 - 6);
4187  ++in;
4188  *out |= ((*in) % (1U << 18)) << 6;
4189  ++in;
4190  *out |= ((*in)) << 24;
4191  ++out;
4192  *out = ((*in) % (1U << 18)) >> (18 - 10);
4193  ++in;
4194  *out |= ((*in) % (1U << 18)) << 10;
4195  ++in;
4196  *out |= ((*in)) << 28;
4197  ++out;
4198  *out = ((*in) % (1U << 18)) >> (18 - 14);
4199  ++in;
4200  *out |= ((*in)) << 14;
4201  ++out;
4202  ++in;
4203  *out = (*in) % (1U << 18);
4204  ++in;
4205  *out |= ((*in)) << 18;
4206  ++out;
4207  *out = ((*in) % (1U << 18)) >> (18 - 4);
4208  ++in;
4209  *out |= ((*in) % (1U << 18)) << 4;
4210  ++in;
4211  *out |= ((*in)) << 22;
4212  ++out;
4213  *out = ((*in) % (1U << 18)) >> (18 - 8);
4214  ++in;
4215  *out |= ((*in) % (1U << 18)) << 8;
4216  ++in;
4217  *out |= ((*in)) << 26;
4218  ++out;
4219  *out = ((*in) % (1U << 18)) >> (18 - 12);
4220  ++in;
4221  *out |= ((*in) % (1U << 18)) << 12;
4222  ++in;
4223  *out |= ((*in)) << 30;
4224  ++out;
4225  *out = ((*in) % (1U << 18)) >> (18 - 16);
4226  ++in;
4227  *out |= ((*in)) << 16;
4228  ++out;
4229  *out = ((*in) % (1U << 18)) >> (18 - 2);
4230  ++in;
4231  *out |= ((*in) % (1U << 18)) << 2;
4232  ++in;
4233  *out |= ((*in)) << 20;
4234  ++out;
4235  *out = ((*in) % (1U << 18)) >> (18 - 6);
4236  ++in;
4237  *out |= ((*in) % (1U << 18)) << 6;
4238  ++in;
4239  *out |= ((*in)) << 24;
4240  ++out;
4241  *out = ((*in) % (1U << 18)) >> (18 - 10);
4242  ++in;
4243  *out |= ((*in) % (1U << 18)) << 10;
4244  ++in;
4245  *out |= ((*in)) << 28;
4246  ++out;
4247  *out = ((*in) % (1U << 18)) >> (18 - 14);
4248  ++in;
4249  *out |= ((*in)) << 14;
4250 }
4251 
4252 void __fastpack19(const uint32_t * in, uint32_t * out) {
4253  *out = (*in) % (1U << 19);
4254  ++in;
4255  *out |= ((*in)) << 19;
4256  ++out;
4257  *out = ((*in) % (1U << 19)) >> (19 - 6);
4258  ++in;
4259  *out |= ((*in) % (1U << 19)) << 6;
4260  ++in;
4261  *out |= ((*in)) << 25;
4262  ++out;
4263  *out = ((*in) % (1U << 19)) >> (19 - 12);
4264  ++in;
4265  *out |= ((*in) % (1U << 19)) << 12;
4266  ++in;
4267  *out |= ((*in)) << 31;
4268  ++out;
4269  *out = ((*in) % (1U << 19)) >> (19 - 18);
4270  ++in;
4271  *out |= ((*in)) << 18;
4272  ++out;
4273  *out = ((*in) % (1U << 19)) >> (19 - 5);
4274  ++in;
4275  *out |= ((*in) % (1U << 19)) << 5;
4276  ++in;
4277  *out |= ((*in)) << 24;
4278  ++out;
4279  *out = ((*in) % (1U << 19)) >> (19 - 11);
4280  ++in;
4281  *out |= ((*in) % (1U << 19)) << 11;
4282  ++in;
4283  *out |= ((*in)) << 30;
4284  ++out;
4285  *out = ((*in) % (1U << 19)) >> (19 - 17);
4286  ++in;
4287  *out |= ((*in)) << 17;
4288  ++out;
4289  *out = ((*in) % (1U << 19)) >> (19 - 4);
4290  ++in;
4291  *out |= ((*in) % (1U << 19)) << 4;
4292  ++in;
4293  *out |= ((*in)) << 23;
4294  ++out;
4295  *out = ((*in) % (1U << 19)) >> (19 - 10);
4296  ++in;
4297  *out |= ((*in) % (1U << 19)) << 10;
4298  ++in;
4299  *out |= ((*in)) << 29;
4300  ++out;
4301  *out = ((*in) % (1U << 19)) >> (19 - 16);
4302  ++in;
4303  *out |= ((*in)) << 16;
4304  ++out;
4305  *out = ((*in) % (1U << 19)) >> (19 - 3);
4306  ++in;
4307  *out |= ((*in) % (1U << 19)) << 3;
4308  ++in;
4309  *out |= ((*in)) << 22;
4310  ++out;
4311  *out = ((*in) % (1U << 19)) >> (19 - 9);
4312  ++in;
4313  *out |= ((*in) % (1U << 19)) << 9;
4314  ++in;
4315  *out |= ((*in)) << 28;
4316  ++out;
4317  *out = ((*in) % (1U << 19)) >> (19 - 15);
4318  ++in;
4319  *out |= ((*in)) << 15;
4320  ++out;
4321  *out = ((*in) % (1U << 19)) >> (19 - 2);
4322  ++in;
4323  *out |= ((*in) % (1U << 19)) << 2;
4324  ++in;
4325  *out |= ((*in)) << 21;
4326  ++out;
4327  *out = ((*in) % (1U << 19)) >> (19 - 8);
4328  ++in;
4329  *out |= ((*in) % (1U << 19)) << 8;
4330  ++in;
4331  *out |= ((*in)) << 27;
4332  ++out;
4333  *out = ((*in) % (1U << 19)) >> (19 - 14);
4334  ++in;
4335  *out |= ((*in)) << 14;
4336  ++out;
4337  *out = ((*in) % (1U << 19)) >> (19 - 1);
4338  ++in;
4339  *out |= ((*in) % (1U << 19)) << 1;
4340  ++in;
4341  *out |= ((*in)) << 20;
4342  ++out;
4343  *out = ((*in) % (1U << 19)) >> (19 - 7);
4344  ++in;
4345  *out |= ((*in) % (1U << 19)) << 7;
4346  ++in;
4347  *out |= ((*in)) << 26;
4348  ++out;
4349  *out = ((*in) % (1U << 19)) >> (19 - 13);
4350  ++in;
4351  *out |= ((*in)) << 13;
4352 }
4353 
4354 void __fastpack20(const uint32_t * in, uint32_t * out) {
4355  *out = (*in) % (1U << 20);
4356  ++in;
4357  *out |= ((*in)) << 20;
4358  ++out;
4359  *out = ((*in) % (1U << 20)) >> (20 - 8);
4360  ++in;
4361  *out |= ((*in) % (1U << 20)) << 8;
4362  ++in;
4363  *out |= ((*in)) << 28;
4364  ++out;
4365  *out = ((*in) % (1U << 20)) >> (20 - 16);
4366  ++in;
4367  *out |= ((*in)) << 16;
4368  ++out;
4369  *out = ((*in) % (1U << 20)) >> (20 - 4);
4370  ++in;
4371  *out |= ((*in) % (1U << 20)) << 4;
4372  ++in;
4373  *out |= ((*in)) << 24;
4374  ++out;
4375  *out = ((*in) % (1U << 20)) >> (20 - 12);
4376  ++in;
4377  *out |= ((*in)) << 12;
4378  ++out;
4379  ++in;
4380  *out = (*in) % (1U << 20);
4381  ++in;
4382  *out |= ((*in)) << 20;
4383  ++out;
4384  *out = ((*in) % (1U << 20)) >> (20 - 8);
4385  ++in;
4386  *out |= ((*in) % (1U << 20)) << 8;
4387  ++in;
4388  *out |= ((*in)) << 28;
4389  ++out;
4390  *out = ((*in) % (1U << 20)) >> (20 - 16);
4391  ++in;
4392  *out |= ((*in)) << 16;
4393  ++out;
4394  *out = ((*in) % (1U << 20)) >> (20 - 4);
4395  ++in;
4396  *out |= ((*in) % (1U << 20)) << 4;
4397  ++in;
4398  *out |= ((*in)) << 24;
4399  ++out;
4400  *out = ((*in) % (1U << 20)) >> (20 - 12);
4401  ++in;
4402  *out |= ((*in)) << 12;
4403  ++out;
4404  ++in;
4405  *out = (*in) % (1U << 20);
4406  ++in;
4407  *out |= ((*in)) << 20;
4408  ++out;
4409  *out = ((*in) % (1U << 20)) >> (20 - 8);
4410  ++in;
4411  *out |= ((*in) % (1U << 20)) << 8;
4412  ++in;
4413  *out |= ((*in)) << 28;
4414  ++out;
4415  *out = ((*in) % (1U << 20)) >> (20 - 16);
4416  ++in;
4417  *out |= ((*in)) << 16;
4418  ++out;
4419  *out = ((*in) % (1U << 20)) >> (20 - 4);
4420  ++in;
4421  *out |= ((*in) % (1U << 20)) << 4;
4422  ++in;
4423  *out |= ((*in)) << 24;
4424  ++out;
4425  *out = ((*in) % (1U << 20)) >> (20 - 12);
4426  ++in;
4427  *out |= ((*in)) << 12;
4428  ++out;
4429  ++in;
4430  *out = (*in) % (1U << 20);
4431  ++in;
4432  *out |= ((*in)) << 20;
4433  ++out;
4434  *out = ((*in) % (1U << 20)) >> (20 - 8);
4435  ++in;
4436  *out |= ((*in) % (1U << 20)) << 8;
4437  ++in;
4438  *out |= ((*in)) << 28;
4439  ++out;
4440  *out = ((*in) % (1U << 20)) >> (20 - 16);
4441  ++in;
4442  *out |= ((*in)) << 16;
4443  ++out;
4444  *out = ((*in) % (1U << 20)) >> (20 - 4);
4445  ++in;
4446  *out |= ((*in) % (1U << 20)) << 4;
4447  ++in;
4448  *out |= ((*in)) << 24;
4449  ++out;
4450  *out = ((*in) % (1U << 20)) >> (20 - 12);
4451  ++in;
4452  *out |= ((*in)) << 12;
4453 }
4454 
4455 void __fastpack21(const uint32_t * in, uint32_t * out) {
4456  *out = (*in) % (1U << 21);
4457  ++in;
4458  *out |= ((*in)) << 21;
4459  ++out;
4460  *out = ((*in) % (1U << 21)) >> (21 - 10);
4461  ++in;
4462  *out |= ((*in) % (1U << 21)) << 10;
4463  ++in;
4464  *out |= ((*in)) << 31;
4465  ++out;
4466  *out = ((*in) % (1U << 21)) >> (21 - 20);
4467  ++in;
4468  *out |= ((*in)) << 20;
4469  ++out;
4470  *out = ((*in) % (1U << 21)) >> (21 - 9);
4471  ++in;
4472  *out |= ((*in) % (1U << 21)) << 9;
4473  ++in;
4474  *out |= ((*in)) << 30;
4475  ++out;
4476  *out = ((*in) % (1U << 21)) >> (21 - 19);
4477  ++in;
4478  *out |= ((*in)) << 19;
4479  ++out;
4480  *out = ((*in) % (1U << 21)) >> (21 - 8);
4481  ++in;
4482  *out |= ((*in) % (1U << 21)) << 8;
4483  ++in;
4484  *out |= ((*in)) << 29;
4485  ++out;
4486  *out = ((*in) % (1U << 21)) >> (21 - 18);
4487  ++in;
4488  *out |= ((*in)) << 18;
4489  ++out;
4490  *out = ((*in) % (1U << 21)) >> (21 - 7);
4491  ++in;
4492  *out |= ((*in) % (1U << 21)) << 7;
4493  ++in;
4494  *out |= ((*in)) << 28;
4495  ++out;
4496  *out = ((*in) % (1U << 21)) >> (21 - 17);
4497  ++in;
4498  *out |= ((*in)) << 17;
4499  ++out;
4500  *out = ((*in) % (1U << 21)) >> (21 - 6);
4501  ++in;
4502  *out |= ((*in) % (1U << 21)) << 6;
4503  ++in;
4504  *out |= ((*in)) << 27;
4505  ++out;
4506  *out = ((*in) % (1U << 21)) >> (21 - 16);
4507  ++in;
4508  *out |= ((*in)) << 16;
4509  ++out;
4510  *out = ((*in) % (1U << 21)) >> (21 - 5);
4511  ++in;
4512  *out |= ((*in) % (1U << 21)) << 5;
4513  ++in;
4514  *out |= ((*in)) << 26;
4515  ++out;
4516  *out = ((*in) % (1U << 21)) >> (21 - 15);
4517  ++in;
4518  *out |= ((*in)) << 15;
4519  ++out;
4520  *out = ((*in) % (1U << 21)) >> (21 - 4);
4521  ++in;
4522  *out |= ((*in) % (1U << 21)) << 4;
4523  ++in;
4524  *out |= ((*in)) << 25;
4525  ++out;
4526  *out = ((*in) % (1U << 21)) >> (21 - 14);
4527  ++in;
4528  *out |= ((*in)) << 14;
4529  ++out;
4530  *out = ((*in) % (1U << 21)) >> (21 - 3);
4531  ++in;
4532  *out |= ((*in) % (1U << 21)) << 3;
4533  ++in;
4534  *out |= ((*in)) << 24;
4535  ++out;
4536  *out = ((*in) % (1U << 21)) >> (21 - 13);
4537  ++in;
4538  *out |= ((*in)) << 13;
4539  ++out;
4540  *out = ((*in) % (1U << 21)) >> (21 - 2);
4541  ++in;
4542  *out |= ((*in) % (1U << 21)) << 2;
4543  ++in;
4544  *out |= ((*in)) << 23;
4545  ++out;
4546  *out = ((*in) % (1U << 21)) >> (21 - 12);
4547  ++in;
4548  *out |= ((*in)) << 12;
4549  ++out;
4550  *out = ((*in) % (1U << 21)) >> (21 - 1);
4551  ++in;
4552  *out |= ((*in) % (1U << 21)) << 1;
4553  ++in;
4554  *out |= ((*in)) << 22;
4555  ++out;
4556  *out = ((*in) % (1U << 21)) >> (21 - 11);
4557  ++in;
4558  *out |= ((*in)) << 11;
4559 }
4560 
4561 void __fastpack22(const uint32_t * in, uint32_t * out) {
4562  *out = (*in) % (1U << 22);
4563  ++in;
4564  *out |= ((*in)) << 22;
4565  ++out;
4566  *out = ((*in) % (1U << 22)) >> (22 - 12);
4567  ++in;
4568  *out |= ((*in)) << 12;
4569  ++out;
4570  *out = ((*in) % (1U << 22)) >> (22 - 2);
4571  ++in;
4572  *out |= ((*in) % (1U << 22)) << 2;
4573  ++in;
4574  *out |= ((*in)) << 24;
4575  ++out;
4576  *out = ((*in) % (1U << 22)) >> (22 - 14);
4577  ++in;
4578  *out |= ((*in)) << 14;
4579  ++out;
4580  *out = ((*in) % (1U << 22)) >> (22 - 4);
4581  ++in;
4582  *out |= ((*in) % (1U << 22)) << 4;
4583  ++in;
4584  *out |= ((*in)) << 26;
4585  ++out;
4586  *out = ((*in) % (1U << 22)) >> (22 - 16);
4587  ++in;
4588  *out |= ((*in)) << 16;
4589  ++out;
4590  *out = ((*in) % (1U << 22)) >> (22 - 6);
4591  ++in;
4592  *out |= ((*in) % (1U << 22)) << 6;
4593  ++in;
4594  *out |= ((*in)) << 28;
4595  ++out;
4596  *out = ((*in) % (1U << 22)) >> (22 - 18);
4597  ++in;
4598  *out |= ((*in)) << 18;
4599  ++out;
4600  *out = ((*in) % (1U << 22)) >> (22 - 8);
4601  ++in;
4602  *out |= ((*in) % (1U << 22)) << 8;
4603  ++in;
4604  *out |= ((*in)) << 30;
4605  ++out;
4606  *out = ((*in) % (1U << 22)) >> (22 - 20);
4607  ++in;
4608  *out |= ((*in)) << 20;
4609  ++out;
4610  *out = ((*in) % (1U << 22)) >> (22 - 10);
4611  ++in;
4612  *out |= ((*in)) << 10;
4613  ++out;
4614  ++in;
4615  *out = (*in) % (1U << 22);
4616  ++in;
4617  *out |= ((*in)) << 22;
4618  ++out;
4619  *out = ((*in) % (1U << 22)) >> (22 - 12);
4620  ++in;
4621  *out |= ((*in)) << 12;
4622  ++out;
4623  *out = ((*in) % (1U << 22)) >> (22 - 2);
4624  ++in;
4625  *out |= ((*in) % (1U << 22)) << 2;
4626  ++in;
4627  *out |= ((*in)) << 24;
4628  ++out;
4629  *out = ((*in) % (1U << 22)) >> (22 - 14);
4630  ++in;
4631  *out |= ((*in)) << 14;
4632  ++out;
4633  *out = ((*in) % (1U << 22)) >> (22 - 4);
4634  ++in;
4635  *out |= ((*in) % (1U << 22)) << 4;
4636  ++in;
4637  *out |= ((*in)) << 26;
4638  ++out;
4639  *out = ((*in) % (1U << 22)) >> (22 - 16);
4640  ++in;
4641  *out |= ((*in)) << 16;
4642  ++out;
4643  *out = ((*in) % (1U << 22)) >> (22 - 6);
4644  ++in;
4645  *out |= ((*in) % (1U << 22)) << 6;
4646  ++in;
4647  *out |= ((*in)) << 28;
4648  ++out;
4649  *out = ((*in) % (1U << 22)) >> (22 - 18);
4650  ++in;
4651  *out |= ((*in)) << 18;
4652  ++out;
4653  *out = ((*in) % (1U << 22)) >> (22 - 8);
4654  ++in;
4655  *out |= ((*in) % (1U << 22)) << 8;
4656  ++in;
4657  *out |= ((*in)) << 30;
4658  ++out;
4659  *out = ((*in) % (1U << 22)) >> (22 - 20);
4660  ++in;
4661  *out |= ((*in)) << 20;
4662  ++out;
4663  *out = ((*in) % (1U << 22)) >> (22 - 10);
4664  ++in;
4665  *out |= ((*in)) << 10;
4666 }
4667 
4668 void __fastpack23(const uint32_t * in, uint32_t * out) {
4669  *out = (*in) % (1U << 23);
4670  ++in;
4671  *out |= ((*in)) << 23;
4672  ++out;
4673  *out = ((*in) % (1U << 23)) >> (23 - 14);
4674  ++in;
4675  *out |= ((*in)) << 14;
4676  ++out;
4677  *out = ((*in) % (1U << 23)) >> (23 - 5);
4678  ++in;
4679  *out |= ((*in) % (1U << 23)) << 5;
4680  ++in;
4681  *out |= ((*in)) << 28;
4682  ++out;
4683  *out = ((*in) % (1U << 23)) >> (23 - 19);
4684  ++in;
4685  *out |= ((*in)) << 19;
4686  ++out;
4687  *out = ((*in) % (1U << 23)) >> (23 - 10);
4688  ++in;
4689  *out |= ((*in)) << 10;
4690  ++out;
4691  *out = ((*in) % (1U << 23)) >> (23 - 1);
4692  ++in;
4693  *out |= ((*in) % (1U << 23)) << 1;
4694  ++in;
4695  *out |= ((*in)) << 24;
4696  ++out;
4697  *out = ((*in) % (1U << 23)) >> (23 - 15);
4698  ++in;
4699  *out |= ((*in)) << 15;
4700  ++out;
4701  *out = ((*in) % (1U << 23)) >> (23 - 6);
4702  ++in;
4703  *out |= ((*in) % (1U << 23)) << 6;
4704  ++in;
4705  *out |= ((*in)) << 29;
4706  ++out;
4707  *out = ((*in) % (1U << 23)) >> (23 - 20);
4708  ++in;
4709  *out |= ((*in)) << 20;
4710  ++out;
4711  *out = ((*in) % (1U << 23)) >> (23 - 11);
4712  ++in;
4713  *out |= ((*in)) << 11;
4714  ++out;
4715  *out = ((*in) % (1U << 23)) >> (23 - 2);
4716  ++in;
4717  *out |= ((*in) % (1U << 23)) << 2;
4718  ++in;
4719  *out |= ((*in)) << 25;
4720  ++out;
4721  *out = ((*in) % (1U << 23)) >> (23 - 16);
4722  ++in;
4723  *out |= ((*in)) << 16;
4724  ++out;
4725  *out = ((*in) % (1U << 23)) >> (23 - 7);
4726  ++in;
4727  *out |= ((*in) % (1U << 23)) << 7;
4728  ++in;
4729  *out |= ((*in)) << 30;
4730  ++out;
4731  *out = ((*in) % (1U << 23)) >> (23 - 21);
4732  ++in;
4733  *out |= ((*in)) << 21;
4734  ++out;
4735  *out = ((*in) % (1U << 23)) >> (23 - 12);
4736  ++in;
4737  *out |= ((*in)) << 12;
4738  ++out;
4739  *out = ((*in) % (1U << 23)) >> (23 - 3);
4740  ++in;
4741  *out |= ((*in) % (1U << 23)) << 3;
4742  ++in;
4743  *out |= ((*in)) << 26;
4744  ++out;
4745  *out = ((*in) % (1U << 23)) >> (23 - 17);
4746  ++in;
4747  *out |= ((*in)) << 17;
4748  ++out;
4749  *out = ((*in) % (1U << 23)) >> (23 - 8);
4750  ++in;
4751  *out |= ((*in) % (1U << 23)) << 8;
4752  ++in;
4753  *out |= ((*in)) << 31;
4754  ++out;
4755  *out = ((*in) % (1U << 23)) >> (23 - 22);
4756  ++in;
4757  *out |= ((*in)) << 22;
4758  ++out;
4759  *out = ((*in) % (1U << 23)) >> (23 - 13);
4760  ++in;
4761  *out |= ((*in)) << 13;
4762  ++out;
4763  *out = ((*in) % (1U << 23)) >> (23 - 4);
4764  ++in;
4765  *out |= ((*in) % (1U << 23)) << 4;
4766  ++in;
4767  *out |= ((*in)) << 27;
4768  ++out;
4769  *out = ((*in) % (1U << 23)) >> (23 - 18);
4770  ++in;
4771  *out |= ((*in)) << 18;
4772  ++out;
4773  *out = ((*in) % (1U << 23)) >> (23 - 9);
4774  ++in;
4775  *out |= ((*in)) << 9;
4776 }
4777 
4778 void __fastpack24(const uint32_t * in, uint32_t * out) {
4779  *out = (*in) % (1U << 24);
4780  ++in;
4781  *out |= ((*in)) << 24;
4782  ++out;
4783  *out = ((*in) % (1U << 24)) >> (24 - 16);
4784  ++in;
4785  *out |= ((*in)) << 16;
4786  ++out;
4787  *out = ((*in) % (1U << 24)) >> (24 - 8);
4788  ++in;
4789  *out |= ((*in)) << 8;
4790  ++out;
4791  ++in;
4792  *out = (*in) % (1U << 24);
4793  ++in;
4794  *out |= ((*in)) << 24;
4795  ++out;
4796  *out = ((*in) % (1U << 24)) >> (24 - 16);
4797  ++in;
4798  *out |= ((*in)) << 16;
4799  ++out;
4800  *out = ((*in) % (1U << 24)) >> (24 - 8);
4801  ++in;
4802  *out |= ((*in)) << 8;
4803  ++out;
4804  ++in;
4805  *out = (*in) % (1U << 24);
4806  ++in;
4807  *out |= ((*in)) << 24;
4808  ++out;
4809  *out = ((*in) % (1U << 24)) >> (24 - 16);
4810  ++in;
4811  *out |= ((*in)) << 16;
4812  ++out;
4813  *out = ((*in) % (1U << 24)) >> (24 - 8);
4814  ++in;
4815  *out |= ((*in)) << 8;
4816  ++out;
4817  ++in;
4818  *out = (*in) % (1U << 24);
4819  ++in;
4820  *out |= ((*in)) << 24;
4821  ++out;
4822  *out = ((*in) % (1U << 24)) >> (24 - 16);
4823  ++in;
4824  *out |= ((*in)) << 16;
4825  ++out;
4826  *out = ((*in) % (1U << 24)) >> (24 - 8);
4827  ++in;
4828  *out |= ((*in)) << 8;
4829  ++out;
4830  ++in;
4831  *out = (*in) % (1U << 24);
4832  ++in;
4833  *out |= ((*in)) << 24;
4834  ++out;
4835  *out = ((*in) % (1U << 24)) >> (24 - 16);
4836  ++in;
4837  *out |= ((*in)) << 16;
4838  ++out;
4839  *out = ((*in) % (1U << 24)) >> (24 - 8);
4840  ++in;
4841  *out |= ((*in)) << 8;
4842  ++out;
4843  ++in;
4844  *out = (*in) % (1U << 24);
4845  ++in;
4846  *out |= ((*in)) << 24;
4847  ++out;
4848  *out = ((*in) % (1U << 24)) >> (24 - 16);
4849  ++in;
4850  *out |= ((*in)) << 16;
4851  ++out;
4852  *out = ((*in) % (1U << 24)) >> (24 - 8);
4853  ++in;
4854  *out |= ((*in)) << 8;
4855  ++out;
4856  ++in;
4857  *out = (*in) % (1U << 24);
4858  ++in;
4859  *out |= ((*in)) << 24;
4860  ++out;
4861  *out = ((*in) % (1U << 24)) >> (24 - 16);
4862  ++in;
4863  *out |= ((*in)) << 16;
4864  ++out;
4865  *out = ((*in) % (1U << 24)) >> (24 - 8);
4866  ++in;
4867  *out |= ((*in)) << 8;
4868  ++out;
4869  ++in;
4870  *out = (*in) % (1U << 24);
4871  ++in;
4872  *out |= ((*in)) << 24;
4873  ++out;
4874  *out = ((*in) % (1U << 24)) >> (24 - 16);
4875  ++in;
4876  *out |= ((*in)) << 16;
4877  ++out;
4878  *out = ((*in) % (1U << 24)) >> (24 - 8);
4879  ++in;
4880  *out |= ((*in)) << 8;
4881 }
4882 
4883 void __fastpack25(const uint32_t * in, uint32_t * out) {
4884  *out = (*in) % (1U << 25);
4885  ++in;
4886  *out |= ((*in)) << 25;
4887  ++out;
4888  *out = ((*in) % (1U << 25)) >> (25 - 18);
4889  ++in;
4890  *out |= ((*in)) << 18;
4891  ++out;
4892  *out = ((*in) % (1U << 25)) >> (25 - 11);
4893  ++in;
4894  *out |= ((*in)) << 11;
4895  ++out;
4896  *out = ((*in) % (1U << 25)) >> (25 - 4);
4897  ++in;
4898  *out |= ((*in) % (1U << 25)) << 4;
4899  ++in;
4900  *out |= ((*in)) << 29;
4901  ++out;
4902  *out = ((*in) % (1U << 25)) >> (25 - 22);
4903  ++in;
4904  *out |= ((*in)) << 22;
4905  ++out;
4906  *out = ((*in) % (1U << 25)) >> (25 - 15);
4907  ++in;
4908  *out |= ((*in)) << 15;
4909  ++out;
4910  *out = ((*in) % (1U << 25)) >> (25 - 8);
4911  ++in;
4912  *out |= ((*in)) << 8;
4913  ++out;
4914  *out = ((*in) % (1U << 25)) >> (25 - 1);
4915  ++in;
4916  *out |= ((*in) % (1U << 25)) << 1;
4917  ++in;
4918  *out |= ((*in)) << 26;
4919  ++out;
4920  *out = ((*in) % (1U << 25)) >> (25 - 19);
4921  ++in;
4922  *out |= ((*in)) << 19;
4923  ++out;
4924  *out = ((*in) % (1U << 25)) >> (25 - 12);
4925  ++in;
4926  *out |= ((*in)) << 12;
4927  ++out;
4928  *out = ((*in) % (1U << 25)) >> (25 - 5);
4929  ++in;
4930  *out |= ((*in) % (1U << 25)) << 5;
4931  ++in;
4932  *out |= ((*in)) << 30;
4933  ++out;
4934  *out = ((*in) % (1U << 25)) >> (25 - 23);
4935  ++in;
4936  *out |= ((*in)) << 23;
4937  ++out;
4938  *out = ((*in) % (1U << 25)) >> (25 - 16);
4939  ++in;
4940  *out |= ((*in)) << 16;
4941  ++out;
4942  *out = ((*in) % (1U << 25)) >> (25 - 9);
4943  ++in;
4944  *out |= ((*in)) << 9;
4945  ++out;
4946  *out = ((*in) % (1U << 25)) >> (25 - 2);
4947  ++in;
4948  *out |= ((*in) % (1U << 25)) << 2;
4949  ++in;
4950  *out |= ((*in)) << 27;
4951  ++out;
4952  *out = ((*in) % (1U << 25)) >> (25 - 20);
4953  ++in;
4954  *out |= ((*in)) << 20;
4955  ++out;
4956  *out = ((*in) % (1U << 25)) >> (25 - 13);
4957  ++in;
4958  *out |= ((*in)) << 13;
4959  ++out;
4960  *out = ((*in) % (1U << 25)) >> (25 - 6);
4961  ++in;
4962  *out |= ((*in) % (1U << 25)) << 6;
4963  ++in;
4964  *out |= ((*in)) << 31;
4965  ++out;
4966  *out = ((*in) % (1U << 25)) >> (25 - 24);
4967  ++in;
4968  *out |= ((*in)) << 24;
4969  ++out;
4970  *out = ((*in) % (1U << 25)) >> (25 - 17);
4971  ++in;
4972  *out |= ((*in)) << 17;
4973  ++out;
4974  *out = ((*in) % (1U << 25)) >> (25 - 10);
4975  ++in;
4976  *out |= ((*in)) << 10;
4977  ++out;
4978  *out = ((*in) % (1U << 25)) >> (25 - 3);
4979  ++in;
4980  *out |= ((*in) % (1U << 25)) << 3;
4981  ++in;
4982  *out |= ((*in)) << 28;
4983  ++out;
4984  *out = ((*in) % (1U << 25)) >> (25 - 21);
4985  ++in;
4986  *out |= ((*in)) << 21;
4987  ++out;
4988  *out = ((*in) % (1U << 25)) >> (25 - 14);
4989  ++in;
4990  *out |= ((*in)) << 14;
4991  ++out;
4992  *out = ((*in) % (1U << 25)) >> (25 - 7);
4993  ++in;
4994  *out |= ((*in)) << 7;
4995 }
4996 
4997 void __fastpack26(const uint32_t * in, uint32_t * out) {
4998  *out = (*in) % (1U << 26);
4999  ++in;
5000  *out |= ((*in)) << 26;
5001  ++out;
5002  *out = ((*in) % (1U << 26)) >> (26 - 20);
5003  ++in;
5004  *out |= ((*in)) << 20;
5005  ++out;
5006  *out = ((*in) % (1U << 26)) >> (26 - 14);
5007  ++in;
5008  *out |= ((*in)) << 14;
5009  ++out;
5010  *out = ((*in) % (1U << 26)) >> (26 - 8);
5011  ++in;
5012  *out |= ((*in)) << 8;
5013  ++out;
5014  *out = ((*in) % (1U << 26)) >> (26 - 2);
5015  ++in;
5016  *out |= ((*in) % (1U << 26)) << 2;
5017  ++in;
5018  *out |= ((*in)) << 28;
5019  ++out;
5020  *out = ((*in) % (1U << 26)) >> (26 - 22);
5021  ++in;
5022  *out |= ((*in)) << 22;
5023  ++out;
5024  *out = ((*in) % (1U << 26)) >> (26 - 16);
5025  ++in;
5026  *out |= ((*in)) << 16;
5027  ++out;
5028  *out = ((*in) % (1U << 26)) >> (26 - 10);
5029  ++in;
5030  *out |= ((*in)) << 10;
5031  ++out;
5032  *out = ((*in) % (1U << 26)) >> (26 - 4);
5033  ++in;
5034  *out |= ((*in) % (1U << 26)) << 4;
5035  ++in;
5036  *out |= ((*in)) << 30;
5037  ++out;
5038  *out = ((*in) % (1U << 26)) >> (26 - 24);
5039  ++in;
5040  *out |= ((*in)) << 24;
5041  ++out;
5042  *out = ((*in) % (1U << 26)) >> (26 - 18);
5043  ++in;
5044  *out |= ((*in)) << 18;
5045  ++out;
5046  *out = ((*in) % (1U << 26)) >> (26 - 12);
5047  ++in;
5048  *out |= ((*in)) << 12;
5049  ++out;
5050  *out = ((*in) % (1U << 26)) >> (26 - 6);
5051  ++in;
5052  *out |= ((*in)) << 6;
5053  ++out;
5054  ++in;
5055  *out = (*in) % (1U << 26);
5056  ++in;
5057  *out |= ((*in)) << 26;
5058  ++out;
5059  *out = ((*in) % (1U << 26)) >> (26 - 20);
5060  ++in;
5061  *out |= ((*in)) << 20;
5062  ++out;
5063  *out = ((*in) % (1U << 26)) >> (26 - 14);
5064  ++in;
5065  *out |= ((*in)) << 14;
5066  ++out;
5067  *out = ((*in) % (1U << 26)) >> (26 - 8);
5068  ++in;
5069  *out |= ((*in)) << 8;
5070  ++out;
5071  *out = ((*in) % (1U << 26)) >> (26 - 2);
5072  ++in;
5073  *out |= ((*in) % (1U << 26)) << 2;
5074  ++in;
5075  *out |= ((*in)) << 28;
5076  ++out;
5077  *out = ((*in) % (1U << 26)) >> (26 - 22);
5078  ++in;
5079  *out |= ((*in)) << 22;
5080  ++out;
5081  *out = ((*in) % (1U << 26)) >> (26 - 16);
5082  ++in;
5083  *out |= ((*in)) << 16;
5084  ++out;
5085  *out = ((*in) % (1U << 26)) >> (26 - 10);
5086  ++in;
5087  *out |= ((*in)) << 10;
5088  ++out;
5089  *out = ((*in) % (1U << 26)) >> (26 - 4);
5090  ++in;
5091  *out |= ((*in) % (1U << 26)) << 4;
5092  ++in;
5093  *out |= ((*in)) << 30;
5094  ++out;
5095  *out = ((*in) % (1U << 26)) >> (26 - 24);
5096  ++in;
5097  *out |= ((*in)) << 24;
5098  ++out;
5099  *out = ((*in) % (1U << 26)) >> (26 - 18);
5100  ++in;
5101  *out |= ((*in)) << 18;
5102  ++out;
5103  *out = ((*in) % (1U << 26)) >> (26 - 12);
5104  ++in;
5105  *out |= ((*in)) << 12;
5106  ++out;
5107  *out = ((*in) % (1U << 26)) >> (26 - 6);
5108  ++in;
5109  *out |= ((*in)) << 6;
5110 }
5111 
5112 void __fastpack27(const uint32_t * in, uint32_t * out) {
5113  *out = (*in) % (1U << 27);
5114  ++in;
5115  *out |= ((*in)) << 27;
5116  ++out;
5117  *out = ((*in) % (1U << 27)) >> (27 - 22);
5118  ++in;
5119  *out |= ((*in)) << 22;
5120  ++out;
5121  *out = ((*in) % (1U << 27)) >> (27 - 17);
5122  ++in;
5123  *out |= ((*in)) << 17;
5124  ++out;
5125  *out = ((*in) % (1U << 27)) >> (27 - 12);
5126  ++in;
5127  *out |= ((*in)) << 12;
5128  ++out;
5129  *out = ((*in) % (1U << 27)) >> (27 - 7);
5130  ++in;
5131  *out |= ((*in)) << 7;
5132  ++out;
5133  *out = ((*in) % (1U << 27)) >> (27 - 2);
5134  ++in;
5135  *out |= ((*in) % (1U << 27)) << 2;
5136  ++in;
5137  *out |= ((*in)) << 29;
5138  ++out;
5139  *out = ((*in) % (1U << 27)) >> (27 - 24);
5140  ++in;
5141  *out |= ((*in)) << 24;
5142  ++out;
5143  *out = ((*in) % (1U << 27)) >> (27 - 19);
5144  ++in;
5145  *out |= ((*in)) << 19;
5146  ++out;
5147  *out = ((*in) % (1U << 27)) >> (27 - 14);
5148  ++in;
5149  *out |= ((*in)) << 14;
5150  ++out;
5151  *out = ((*in) % (1U << 27)) >> (27 - 9);
5152  ++in;
5153  *out |= ((*in)) << 9;
5154  ++out;
5155  *out = ((*in) % (1U << 27)) >> (27 - 4);
5156  ++in;
5157  *out |= ((*in) % (1U << 27)) << 4;
5158  ++in;
5159  *out |= ((*in)) << 31;
5160  ++out;
5161  *out = ((*in) % (1U << 27)) >> (27 - 26);
5162  ++in;
5163  *out |= ((*in)) << 26;
5164  ++out;
5165  *out = ((*in) % (1U << 27)) >> (27 - 21);
5166  ++in;
5167  *out |= ((*in)) << 21;
5168  ++out;
5169  *out = ((*in) % (1U << 27)) >> (27 - 16);
5170  ++in;
5171  *out |= ((*in)) << 16;
5172  ++out;
5173  *out = ((*in) % (1U << 27)) >> (27 - 11);
5174  ++in;
5175  *out |= ((*in)) << 11;
5176  ++out;
5177  *out = ((*in) % (1U << 27)) >> (27 - 6);
5178  ++in;
5179  *out |= ((*in)) << 6;
5180  ++out;
5181  *out = ((*in) % (1U << 27)) >> (27 - 1);
5182  ++in;
5183  *out |= ((*in) % (1U << 27)) << 1;
5184  ++in;
5185  *out |= ((*in)) << 28;
5186  ++out;
5187  *out = ((*in) % (1U << 27)) >> (27 - 23);
5188  ++in;
5189  *out |= ((*in)) << 23;
5190  ++out;
5191  *out = ((*in) % (1U << 27)) >> (27 - 18);
5192  ++in;
5193  *out |= ((*in)) << 18;
5194  ++out;
5195  *out = ((*in) % (1U << 27)) >> (27 - 13);
5196  ++in;
5197  *out |= ((*in)) << 13;
5198  ++out;
5199  *out = ((*in) % (1U << 27)) >> (27 - 8);
5200  ++in;
5201  *out |= ((*in)) << 8;
5202  ++out;
5203  *out = ((*in) % (1U << 27)) >> (27 - 3);
5204  ++in;
5205  *out |= ((*in) % (1U << 27)) << 3;
5206  ++in;
5207  *out |= ((*in)) << 30;
5208  ++out;
5209  *out = ((*in) % (1U << 27)) >> (27 - 25);
5210  ++in;
5211  *out |= ((*in)) << 25;
5212  ++out;
5213  *out = ((*in) % (1U << 27)) >> (27 - 20);
5214  ++in;
5215  *out |= ((*in)) << 20;
5216  ++out;
5217  *out = ((*in) % (1U << 27)) >> (27 - 15);
5218  ++in;
5219  *out |= ((*in)) << 15;
5220  ++out;
5221  *out = ((*in) % (1U << 27)) >> (27 - 10);
5222  ++in;
5223  *out |= ((*in)) << 10;
5224  ++out;
5225  *out = ((*in) % (1U << 27)) >> (27 - 5);
5226  ++in;
5227  *out |= ((*in)) << 5;
5228 }
5229 
5230 void __fastpack28(const uint32_t * in, uint32_t * out) {
5231  *out = (*in) % (1U << 28);
5232  ++in;
5233  *out |= ((*in)) << 28;
5234  ++out;
5235  *out = ((*in) % (1U << 28)) >> (28 - 24);
5236  ++in;
5237  *out |= ((*in)) << 24;
5238  ++out;
5239  *out = ((*in) % (1U << 28)) >> (28 - 20);
5240  ++in;
5241  *out |= ((*in)) << 20;
5242  ++out;
5243  *out = ((*in) % (1U << 28)) >> (28 - 16);
5244  ++in;
5245  *out |= ((*in)) << 16;
5246  ++out;
5247  *out = ((*in) % (1U << 28)) >> (28 - 12);
5248  ++in;
5249  *out |= ((*in)) << 12;
5250  ++out;
5251  *out = ((*in) % (1U << 28)) >> (28 - 8);
5252  ++in;
5253  *out |= ((*in)) << 8;
5254  ++out;
5255  *out = ((*in) % (1U << 28)) >> (28 - 4);
5256  ++in;
5257  *out |= ((*in)) << 4;
5258  ++out;
5259  ++in;
5260  *out = (*in) % (1U << 28);
5261  ++in;
5262  *out |= ((*in)) << 28;
5263  ++out;
5264  *out = ((*in) % (1U << 28)) >> (28 - 24);
5265  ++in;
5266  *out |= ((*in)) << 24;
5267  ++out;
5268  *out = ((*in) % (1U << 28)) >> (28 - 20);
5269  ++in;
5270  *out |= ((*in)) << 20;
5271  ++out;
5272  *out = ((*in) % (1U << 28)) >> (28 - 16);
5273  ++in;
5274  *out |= ((*in)) << 16;
5275  ++out;
5276  *out = ((*in) % (1U << 28)) >> (28 - 12);
5277  ++in;
5278  *out |= ((*in)) << 12;
5279  ++out;
5280  *out = ((*in) % (1U << 28)) >> (28 - 8);
5281  ++in;
5282  *out |= ((*in)) << 8;
5283  ++out;
5284  *out = ((*in) % (1U << 28)) >> (28 - 4);
5285  ++in;
5286  *out |= ((*in)) << 4;
5287  ++out;
5288  ++in;
5289  *out = (*in) % (1U << 28);
5290  ++in;
5291  *out |= ((*in)) << 28;
5292  ++out;
5293  *out = ((*in) % (1U << 28)) >> (28 - 24);
5294  ++in;
5295  *out |= ((*in)) << 24;
5296  ++out;
5297  *out = ((*in) % (1U << 28)) >> (28 - 20);
5298  ++in;
5299  *out |= ((*in)) << 20;
5300  ++out;
5301  *out = ((*in) % (1U << 28)) >> (28 - 16);
5302  ++in;
5303  *out |= ((*in)) << 16;
5304  ++out;
5305  *out = ((*in) % (1U << 28)) >> (28 - 12);
5306  ++in;
5307  *out |= ((*in)) << 12;
5308  ++out;
5309  *out = ((*in) % (1U << 28)) >> (28 - 8);
5310  ++in;
5311  *out |= ((*in)) << 8;
5312  ++out;
5313  *out = ((*in) % (1U << 28)) >> (28 - 4);
5314  ++in;
5315  *out |= ((*in)) << 4;
5316  ++out;
5317  ++in;
5318  *out = (*in) % (1U << 28);
5319  ++in;
5320  *out |= ((*in)) << 28;
5321  ++out;
5322  *out = ((*in) % (1U << 28)) >> (28 - 24);
5323  ++in;
5324  *out |= ((*in)) << 24;
5325  ++out;
5326  *out = ((*in) % (1U << 28)) >> (28 - 20);
5327  ++in;
5328  *out |= ((*in)) << 20;
5329  ++out;
5330  *out = ((*in) % (1U << 28)) >> (28 - 16);
5331  ++in;
5332  *out |= ((*in)) << 16;
5333  ++out;
5334  *out = ((*in) % (1U << 28)) >> (28 - 12);
5335  ++in;
5336  *out |= ((*in)) << 12;
5337  ++out;
5338  *out = ((*in) % (1U << 28)) >> (28 - 8);
5339  ++in;
5340  *out |= ((*in)) << 8;
5341  ++out;
5342  *out = ((*in) % (1U << 28)) >> (28 - 4);
5343  ++in;
5344  *out |= ((*in)) << 4;
5345 }
5346 
5347 void __fastpack29(const uint32_t * in, uint32_t * out) {
5348  *out = (*in) % (1U << 29);
5349  ++in;
5350  *out |= ((*in)) << 29;
5351  ++out;
5352  *out = ((*in) % (1U << 29)) >> (29 - 26);
5353  ++in;
5354  *out |= ((*in)) << 26;
5355  ++out;
5356  *out = ((*in) % (1U << 29)) >> (29 - 23);
5357  ++in;
5358  *out |= ((*in)) << 23;
5359  ++out;
5360  *out = ((*in) % (1U << 29)) >> (29 - 20);
5361  ++in;
5362  *out |= ((*in)) << 20;
5363  ++out;
5364  *out = ((*in) % (1U << 29)) >> (29 - 17);
5365  ++in;
5366  *out |= ((*in)) << 17;
5367  ++out;
5368  *out = ((*in) % (1U << 29)) >> (29 - 14);
5369  ++in;
5370  *out |= ((*in)) << 14;
5371  ++out;
5372  *out = ((*in) % (1U << 29)) >> (29 - 11);
5373  ++in;
5374  *out |= ((*in)) << 11;
5375  ++out;
5376  *out = ((*in) % (1U << 29)) >> (29 - 8);
5377  ++in;
5378  *out |= ((*in)) << 8;
5379  ++out;
5380  *out = ((*in) % (1U << 29)) >> (29 - 5);
5381  ++in;
5382  *out |= ((*in)) << 5;
5383  ++out;
5384  *out = ((*in) % (1U << 29)) >> (29 - 2);
5385  ++in;
5386  *out |= ((*in) % (1U << 29)) << 2;
5387  ++in;
5388  *out |= ((*in)) << 31;
5389  ++out;
5390  *out = ((*in) % (1U << 29)) >> (29 - 28);
5391  ++in;
5392  *out |= ((*in)) << 28;
5393  ++out;
5394  *out = ((*in) % (1U << 29)) >> (29 - 25);
5395  ++in;
5396  *out |= ((*in)) << 25;
5397  ++out;
5398  *out = ((*in) % (1U << 29)) >> (29 - 22);
5399  ++in;
5400  *out |= ((*in)) << 22;
5401  ++out;
5402  *out = ((*in) % (1U << 29)) >> (29 - 19);
5403  ++in;
5404  *out |= ((*in)) << 19;
5405  ++out;
5406  *out = ((*in) % (1U << 29)) >> (29 - 16);
5407  ++in;
5408  *out |= ((*in)) << 16;
5409  ++out;
5410  *out = ((*in) % (1U << 29)) >> (29 - 13);
5411  ++in;
5412  *out |= ((*in)) << 13;
5413  ++out;
5414  *out = ((*in) % (1U << 29)) >> (29 - 10);
5415  ++in;
5416  *out |= ((*in)) << 10;
5417  ++out;
5418  *out = ((*in) % (1U << 29)) >> (29 - 7);
5419  ++in;
5420  *out |= ((*in)) << 7;
5421  ++out;
5422  *out = ((*in) % (1U << 29)) >> (29 - 4);
5423  ++in;
5424  *out |= ((*in)) << 4;
5425  ++out;
5426  *out = ((*in) % (1U << 29)) >> (29 - 1);
5427  ++in;
5428  *out |= ((*in) % (1U << 29)) << 1;
5429  ++in;
5430  *out |= ((*in)) << 30;
5431  ++out;
5432  *out = ((*in) % (1U << 29)) >> (29 - 27);
5433  ++in;
5434  *out |= ((*in)) << 27;
5435  ++out;
5436  *out = ((*in) % (1U << 29)) >> (29 - 24);
5437  ++in;
5438  *out |= ((*in)) << 24;
5439  ++out;
5440  *out = ((*in) % (1U << 29)) >> (29 - 21);
5441  ++in;
5442  *out |= ((*in)) << 21;
5443  ++out;
5444  *out = ((*in) % (1U << 29)) >> (29 - 18);
5445  ++in;
5446  *out |= ((*in)) << 18;
5447  ++out;
5448  *out = ((*in) % (1U << 29)) >> (29 - 15);
5449  ++in;
5450  *out |= ((*in)) << 15;
5451  ++out;
5452  *out = ((*in) % (1U << 29)) >> (29 - 12);
5453  ++in;
5454  *out |= ((*in)) << 12;
5455  ++out;
5456  *out = ((*in) % (1U << 29)) >> (29 - 9);
5457  ++in;
5458  *out |= ((*in)) << 9;
5459  ++out;
5460  *out = ((*in) % (1U << 29)) >> (29 - 6);
5461  ++in;
5462  *out |= ((*in)) << 6;
5463  ++out;
5464  *out = ((*in) % (1U << 29)) >> (29 - 3);
5465  ++in;
5466  *out |= ((*in)) << 3;
5467 }
5468 
5469 void __fastpack30(const uint32_t * in, uint32_t * out) {
5470  *out = (*in) % (1U << 30);
5471  ++in;
5472  *out |= ((*in)) << 30;
5473  ++out;
5474  *out = ((*in) % (1U << 30)) >> (30 - 28);
5475  ++in;
5476  *out |= ((*in)) << 28;
5477  ++out;
5478  *out = ((*in) % (1U << 30)) >> (30 - 26);
5479  ++in;
5480  *out |= ((*in)) << 26;
5481  ++out;
5482  *out = ((*in) % (1U << 30)) >> (30 - 24);
5483  ++in;
5484  *out |= ((*in)) << 24;
5485  ++out;
5486  *out = ((*in) % (1U << 30)) >> (30 - 22);
5487  ++in;
5488  *out |= ((*in)) << 22;
5489  ++out;
5490  *out = ((*in) % (1U << 30)) >> (30 - 20);
5491  ++in;
5492  *out |= ((*in)) << 20;
5493  ++out;
5494  *out = ((*in) % (1U << 30)) >> (30 - 18);
5495  ++in;
5496  *out |= ((*in)) << 18;
5497  ++out;
5498  *out = ((*in) % (1U << 30)) >> (30 - 16);
5499  ++in;
5500  *out |= ((*in)) << 16;
5501  ++out;
5502  *out = ((*in) % (1U << 30)) >> (30 - 14);
5503  ++in;
5504  *out |= ((*in)) << 14;
5505  ++out;
5506  *out = ((*in) % (1U << 30)) >> (30 - 12);
5507  ++in;
5508  *out |= ((*in)) << 12;
5509  ++out;
5510  *out = ((*in) % (1U << 30)) >> (30 - 10);
5511  ++in;
5512  *out |= ((*in)) << 10;
5513  ++out;
5514  *out = ((*in) % (1U << 30)) >> (30 - 8);
5515  ++in;
5516  *out |= ((*in)) << 8;
5517  ++out;
5518  *out = ((*in) % (1U << 30)) >> (30 - 6);
5519  ++in;
5520  *out |= ((*in)) << 6;
5521  ++out;
5522  *out = ((*in) % (1U << 30)) >> (30 - 4);
5523  ++in;
5524  *out |= ((*in)) << 4;
5525  ++out;
5526  *out = ((*in) % (1U << 30)) >> (30 - 2);
5527  ++in;
5528  *out |= ((*in)) << 2;
5529  ++out;
5530  ++in;
5531  *out = (*in) % (1U << 30);
5532  ++in;
5533  *out |= ((*in)) << 30;
5534  ++out;
5535  *out = ((*in) % (1U << 30)) >> (30 - 28);
5536  ++in;
5537  *out |= ((*in)) << 28;
5538  ++out;
5539  *out = ((*in) % (1U << 30)) >> (30 - 26);
5540  ++in;
5541  *out |= ((*in)) << 26;
5542  ++out;
5543  *out = ((*in) % (1U << 30)) >> (30 - 24);
5544  ++in;
5545  *out |= ((*in)) << 24;
5546  ++out;
5547  *out = ((*in) % (1U << 30)) >> (30 - 22);
5548  ++in;
5549  *out |= ((*in)) << 22;
5550  ++out;
5551  *out = ((*in) % (1U << 30)) >> (30 - 20);
5552  ++in;
5553  *out |= ((*in)) << 20;
5554  ++out;
5555  *out = ((*in) % (1U << 30)) >> (30 - 18);
5556  ++in;
5557  *out |= ((*in)) << 18;
5558  ++out;
5559  *out = ((*in) % (1U << 30)) >> (30 - 16);
5560  ++in;
5561  *out |= ((*in)) << 16;
5562  ++out;
5563  *out = ((*in) % (1U << 30)) >> (30 - 14);
5564  ++in;
5565  *out |= ((*in)) << 14;
5566  ++out;
5567  *out = ((*in) % (1U << 30)) >> (30 - 12);
5568  ++in;
5569  *out |= ((*in)) << 12;
5570  ++out;
5571  *out = ((*in) % (1U << 30)) >> (30 - 10);
5572  ++in;
5573  *out |= ((*in)) << 10;
5574  ++out;
5575  *out = ((*in) % (1U << 30)) >> (30 - 8);
5576  ++in;
5577  *out |= ((*in)) << 8;
5578  ++out;
5579  *out = ((*in) % (1U << 30)) >> (30 - 6);
5580  ++in;
5581  *out |= ((*in)) << 6;
5582  ++out;
5583  *out = ((*in) % (1U << 30)) >> (30 - 4);
5584  ++in;
5585  *out |= ((*in)) << 4;
5586  ++out;
5587  *out = ((*in) % (1U << 30)) >> (30 - 2);
5588  ++in;
5589  *out |= ((*in)) << 2;
5590 }
5591 
5592 void __fastpack31(const uint32_t * in, uint32_t * out) {
5593  *out = (*in) % (1U << 31);
5594  ++in;
5595  *out |= ((*in)) << 31;
5596  ++out;
5597  *out = ((*in) % (1U << 31)) >> (31 - 30);
5598  ++in;
5599  *out |= ((*in)) << 30;
5600  ++out;
5601  *out = ((*in) % (1U << 31)) >> (31 - 29);
5602  ++in;
5603  *out |= ((*in)) << 29;
5604  ++out;
5605  *out = ((*in) % (1U << 31)) >> (31 - 28);
5606  ++in;
5607  *out |= ((*in)) << 28;
5608  ++out;
5609  *out = ((*in) % (1U << 31)) >> (31 - 27);
5610  ++in;
5611  *out |= ((*in)) << 27;
5612  ++out;
5613  *out = ((*in) % (1U << 31)) >> (31 - 26);
5614  ++in;
5615  *out |= ((*in)) << 26;
5616  ++out;
5617  *out = ((*in) % (1U << 31)) >> (31 - 25);
5618  ++in;
5619  *out |= ((*in)) << 25;
5620  ++out;
5621  *out = ((*in) % (1U << 31)) >> (31 - 24);
5622  ++in;
5623  *out |= ((*in)) << 24;
5624  ++out;
5625  *out = ((*in) % (1U << 31)) >> (31 - 23);
5626  ++in;
5627  *out |= ((*in)) << 23;
5628  ++out;
5629  *out = ((*in) % (1U << 31)) >> (31 - 22);
5630  ++in;
5631  *out |= ((*in)) << 22;
5632  ++out;
5633  *out = ((*in) % (1U << 31)) >> (31 - 21);
5634  ++in;
5635  *out |= ((*in)) << 21;
5636  ++out;
5637  *out = ((*in) % (1U << 31)) >> (31 - 20);
5638  ++in;
5639  *out |= ((*in)) << 20;
5640  ++out;
5641  *out = ((*in) % (1U << 31)) >> (31 - 19);
5642  ++in;
5643  *out |= ((*in)) << 19;
5644  ++out;
5645  *out = ((*in) % (1U << 31)) >> (31 - 18);
5646  ++in;
5647  *out |= ((*in)) << 18;
5648  ++out;
5649  *out = ((*in) % (1U << 31)) >> (31 - 17);
5650  ++in;
5651  *out |= ((*in)) << 17;
5652  ++out;
5653  *out = ((*in) % (1U << 31)) >> (31 - 16);
5654  ++in;
5655  *out |= ((*in)) << 16;
5656  ++out;
5657  *out = ((*in) % (1U << 31)) >> (31 - 15);
5658  ++in;
5659  *out |= ((*in)) << 15;
5660  ++out;
5661  *out = ((*in) % (1U << 31)) >> (31 - 14);
5662  ++in;
5663  *out |= ((*in)) << 14;
5664  ++out;
5665  *out = ((*in) % (1U << 31)) >> (31 - 13);
5666  ++in;
5667  *out |= ((*in)) << 13;
5668  ++out;
5669  *out = ((*in) % (1U << 31)) >> (31 - 12);
5670  ++in;
5671  *out |= ((*in)) << 12;
5672  ++out;
5673  *out = ((*in) % (1U << 31)) >> (31 - 11);
5674  ++in;
5675  *out |= ((*in)) << 11;
5676  ++out;
5677  *out = ((*in) % (1U << 31)) >> (31 - 10);
5678  ++in;
5679  *out |= ((*in)) << 10;
5680  ++out;
5681  *out = ((*in) % (1U << 31)) >> (31 - 9);
5682  ++in;
5683  *out |= ((*in)) << 9;
5684  ++out;
5685  *out = ((*in) % (1U << 31)) >> (31 - 8);
5686  ++in;
5687  *out |= ((*in)) << 8;
5688  ++out;
5689  *out = ((*in) % (1U << 31)) >> (31 - 7);
5690  ++in;
5691  *out |= ((*in)) << 7;
5692  ++out;
5693  *out = ((*in) % (1U << 31)) >> (31 - 6);
5694  ++in;
5695  *out |= ((*in)) << 6;
5696  ++out;
5697  *out = ((*in) % (1U << 31)) >> (31 - 5);
5698  ++in;
5699  *out |= ((*in)) << 5;
5700  ++out;
5701  *out = ((*in) % (1U << 31)) >> (31 - 4);
5702  ++in;
5703  *out |= ((*in)) << 4;
5704  ++out;
5705  *out = ((*in) % (1U << 31)) >> (31 - 3);
5706  ++in;
5707  *out |= ((*in)) << 3;
5708  ++out;
5709  *out = ((*in) % (1U << 31)) >> (31 - 2);
5710  ++in;
5711  *out |= ((*in)) << 2;
5712  ++out;
5713  *out = ((*in) % (1U << 31)) >> (31 - 1);
5714  ++in;
5715  *out |= ((*in)) << 1;
5716 }
5717 
5718 /*assumes that integers fit in the prescribed number of bits */
5719 void __fastpackwithoutmask1(const uint32_t * in,
5720  uint32_t * out) {
5721  *out = (*in);
5722  ++in;
5723  *out |= ((*in)) << 1;
5724  ++in;
5725  *out |= ((*in)) << 2;
5726  ++in;
5727  *out |= ((*in)) << 3;
5728  ++in;
5729  *out |= ((*in)) << 4;
5730  ++in;
5731  *out |= ((*in)) << 5;
5732  ++in;
5733  *out |= ((*in)) << 6;
5734  ++in;
5735  *out |= ((*in)) << 7;
5736  ++in;
5737  *out |= ((*in)) << 8;
5738  ++in;
5739  *out |= ((*in)) << 9;
5740  ++in;
5741  *out |= ((*in)) << 10;
5742  ++in;
5743  *out |= ((*in)) << 11;
5744  ++in;
5745  *out |= ((*in)) << 12;
5746  ++in;
5747  *out |= ((*in)) << 13;
5748  ++in;
5749  *out |= ((*in)) << 14;
5750  ++in;
5751  *out |= ((*in)) << 15;
5752  ++in;
5753  *out |= ((*in)) << 16;
5754  ++in;
5755  *out |= ((*in)) << 17;
5756  ++in;
5757  *out |= ((*in)) << 18;
5758  ++in;
5759  *out |= ((*in)) << 19;
5760  ++in;
5761  *out |= ((*in)) << 20;
5762  ++in;
5763  *out |= ((*in)) << 21;
5764  ++in;
5765  *out |= ((*in)) << 22;
5766  ++in;
5767  *out |= ((*in)) << 23;
5768  ++in;
5769  *out |= ((*in)) << 24;
5770  ++in;
5771  *out |= ((*in)) << 25;
5772  ++in;
5773  *out |= ((*in)) << 26;
5774  ++in;
5775  *out |= ((*in)) << 27;
5776  ++in;
5777  *out |= ((*in)) << 28;
5778  ++in;
5779  *out |= ((*in)) << 29;
5780  ++in;
5781  *out |= ((*in)) << 30;
5782  ++in;
5783  *out |= ((*in)) << 31;
5784 }
5785 
5786 /*assumes that integers fit in the prescribed number of bits */
5787 void __fastpackwithoutmask2(const uint32_t * in,
5788  uint32_t * out) {
5789  *out = (*in);
5790  ++in;
5791  *out |= ((*in)) << 2;
5792  ++in;
5793  *out |= ((*in)) << 4;
5794  ++in;
5795  *out |= ((*in)) << 6;
5796  ++in;
5797  *out |= ((*in)) << 8;
5798  ++in;
5799  *out |= ((*in)) << 10;
5800  ++in;
5801  *out |= ((*in)) << 12;
5802  ++in;
5803  *out |= ((*in)) << 14;
5804  ++in;
5805  *out |= ((*in)) << 16;
5806  ++in;
5807  *out |= ((*in)) << 18;
5808  ++in;
5809  *out |= ((*in)) << 20;
5810  ++in;
5811  *out |= ((*in)) << 22;
5812  ++in;
5813  *out |= ((*in)) << 24;
5814  ++in;
5815  *out |= ((*in)) << 26;
5816  ++in;
5817  *out |= ((*in)) << 28;
5818  ++in;
5819  *out |= ((*in)) << 30;
5820  ++out;
5821  ++in;
5822  *out = (*in);
5823  ++in;
5824  *out |= ((*in)) << 2;
5825  ++in;
5826  *out |= ((*in)) << 4;
5827  ++in;
5828  *out |= ((*in)) << 6;
5829  ++in;
5830  *out |= ((*in)) << 8;
5831  ++in;
5832  *out |= ((*in)) << 10;
5833  ++in;
5834  *out |= ((*in)) << 12;
5835  ++in;
5836  *out |= ((*in)) << 14;
5837  ++in;
5838  *out |= ((*in)) << 16;
5839  ++in;
5840  *out |= ((*in)) << 18;
5841  ++in;
5842  *out |= ((*in)) << 20;
5843  ++in;
5844  *out |= ((*in)) << 22;
5845  ++in;
5846  *out |= ((*in)) << 24;
5847  ++in;
5848  *out |= ((*in)) << 26;
5849  ++in;
5850  *out |= ((*in)) << 28;
5851  ++in;
5852  *out |= ((*in)) << 30;
5853 }
5854 
5855 /*assumes that integers fit in the prescribed number of bits */
5856 void __fastpackwithoutmask3(const uint32_t * in,
5857  uint32_t * out) {
5858  *out = (*in);
5859  ++in;
5860  *out |= ((*in)) << 3;
5861  ++in;
5862  *out |= ((*in)) << 6;
5863  ++in;
5864  *out |= ((*in)) << 9;
5865  ++in;
5866  *out |= ((*in)) << 12;
5867  ++in;
5868  *out |= ((*in)) << 15;
5869  ++in;
5870  *out |= ((*in)) << 18;
5871  ++in;
5872  *out |= ((*in)) << 21;
5873  ++in;
5874  *out |= ((*in)) << 24;
5875  ++in;
5876  *out |= ((*in)) << 27;
5877  ++in;
5878  *out |= ((*in)) << 30;
5879  ++out;
5880  *out = ((*in)) >> (3 - 1);
5881  ++in;
5882  *out |= ((*in)) << 1;
5883  ++in;
5884  *out |= ((*in)) << 4;
5885  ++in;
5886  *out |= ((*in)) << 7;
5887  ++in;
5888  *out |= ((*in)) << 10;
5889  ++in;
5890  *out |= ((*in)) << 13;
5891  ++in;
5892  *out |= ((*in)) << 16;
5893  ++in;
5894  *out |= ((*in)) << 19;
5895  ++in;
5896  *out |= ((*in)) << 22;
5897  ++in;
5898  *out |= ((*in)) << 25;
5899  ++in;
5900  *out |= ((*in)) << 28;
5901  ++in;
5902  *out |= ((*in)) << 31;
5903  ++out;
5904  *out = ((*in)) >> (3 - 2);
5905  ++in;
5906  *out |= ((*in)) << 2;
5907  ++in;
5908  *out |= ((*in)) << 5;
5909  ++in;
5910  *out |= ((*in)) << 8;
5911  ++in;
5912  *out |= ((*in)) << 11;
5913  ++in;
5914  *out |= ((*in)) << 14;
5915  ++in;
5916  *out |= ((*in)) << 17;
5917  ++in;
5918  *out |= ((*in)) << 20;
5919  ++in;
5920  *out |= ((*in)) << 23;
5921  ++in;
5922  *out |= ((*in)) << 26;
5923  ++in;
5924  *out |= ((*in)) << 29;
5925 }
5926 
5927 /*assumes that integers fit in the prescribed number of bits */
5928 void __fastpackwithoutmask4(const uint32_t * in,
5929  uint32_t * out) {
5930  *out = (*in);
5931  ++in;
5932  *out |= ((*in)) << 4;
5933  ++in;
5934  *out |= ((*in)) << 8;
5935  ++in;
5936  *out |= ((*in)) << 12;
5937  ++in;
5938  *out |= ((*in)) << 16;
5939  ++in;
5940  *out |= ((*in)) << 20;
5941  ++in;
5942  *out |= ((*in)) << 24;
5943  ++in;
5944  *out |= ((*in)) << 28;
5945  ++out;
5946  ++in;
5947  *out = (*in);
5948  ++in;
5949  *out |= ((*in)) << 4;
5950  ++in;
5951  *out |= ((*in)) << 8;
5952  ++in;
5953  *out |= ((*in)) << 12;
5954  ++in;
5955  *out |= ((*in)) << 16;
5956  ++in;
5957  *out |= ((*in)) << 20;
5958  ++in;
5959  *out |= ((*in)) << 24;
5960  ++in;
5961  *out |= ((*in)) << 28;
5962  ++out;
5963  ++in;
5964  *out = (*in);
5965  ++in;
5966  *out |= ((*in)) << 4;
5967  ++in;
5968  *out |= ((*in)) << 8;
5969  ++in;
5970  *out |= ((*in)) << 12;
5971  ++in;
5972  *out |= ((*in)) << 16;
5973  ++in;
5974  *out |= ((*in)) << 20;
5975  ++in;
5976  *out |= ((*in)) << 24;
5977  ++in;
5978  *out |= ((*in)) << 28;
5979  ++out;
5980  ++in;
5981  *out = (*in);
5982  ++in;
5983  *out |= ((*in)) << 4;
5984  ++in;
5985  *out |= ((*in)) << 8;
5986  ++in;
5987  *out |= ((*in)) << 12;
5988  ++in;
5989  *out |= ((*in)) << 16;
5990  ++in;
5991  *out |= ((*in)) << 20;
5992  ++in;
5993  *out |= ((*in)) << 24;
5994  ++in;
5995  *out |= ((*in)) << 28;
5996 }
5997 
5998 /*assumes that integers fit in the prescribed number of bits */
5999 void __fastpackwithoutmask5(const uint32_t * in,
6000  uint32_t * out) {
6001  *out = (*in);
6002  ++in;
6003  *out |= ((*in)) << 5;
6004  ++in;
6005  *out |= ((*in)) << 10;
6006  ++in;
6007  *out |= ((*in)) << 15;
6008  ++in;
6009  *out |= ((*in)) << 20;
6010  ++in;
6011  *out |= ((*in)) << 25;
6012  ++in;
6013  *out |= ((*in)) << 30;
6014  ++out;
6015  *out = ((*in)) >> (5 - 3);
6016  ++in;
6017  *out |= ((*in)) << 3;
6018  ++in;
6019  *out |= ((*in)) << 8;
6020  ++in;
6021  *out |= ((*in)) << 13;
6022  ++in;
6023  *out |= ((*in)) << 18;
6024  ++in;
6025  *out |= ((*in)) << 23;
6026  ++in;
6027  *out |= ((*in)) << 28;
6028  ++out;
6029  *out = ((*in)) >> (5 - 1);
6030  ++in;
6031  *out |= ((*in)) << 1;
6032  ++in;
6033  *out |= ((*in)) << 6;
6034  ++in;
6035  *out |= ((*in)) << 11;
6036  ++in;
6037  *out |= ((*in)) << 16;
6038  ++in;
6039  *out |= ((*in)) << 21;
6040  ++in;
6041  *out |= ((*in)) << 26;
6042  ++in;
6043  *out |= ((*in)) << 31;
6044  ++out;
6045  *out = ((*in)) >> (5 - 4);
6046  ++in;
6047  *out |= ((*in)) << 4;
6048  ++in;
6049  *out |= ((*in)) << 9;
6050  ++in;
6051  *out |= ((*in)) << 14;
6052  ++in;
6053  *out |= ((*in)) << 19;
6054  ++in;
6055  *out |= ((*in)) << 24;
6056  ++in;
6057  *out |= ((*in)) << 29;
6058  ++out;
6059  *out = ((*in)) >> (5 - 2);
6060  ++in;
6061  *out |= ((*in)) << 2;
6062  ++in;
6063  *out |= ((*in)) << 7;
6064  ++in;
6065  *out |= ((*in)) << 12;
6066  ++in;
6067  *out |= ((*in)) << 17;
6068  ++in;
6069  *out |= ((*in)) << 22;
6070  ++in;
6071  *out |= ((*in)) << 27;
6072 }
6073 
6074 /*assumes that integers fit in the prescribed number of bits */
6075 void __fastpackwithoutmask6(const uint32_t * in,
6076  uint32_t * out) {
6077  *out = (*in);
6078  ++in;
6079  *out |= ((*in)) << 6;
6080  ++in;
6081  *out |= ((*in)) << 12;
6082  ++in;
6083  *out |= ((*in)) << 18;
6084  ++in;
6085  *out |= ((*in)) << 24;
6086  ++in;
6087  *out |= ((*in)) << 30;
6088  ++out;
6089  *out = ((*in)) >> (6 - 4);
6090  ++in;
6091  *out |= ((*in)) << 4;
6092  ++in;
6093  *out |= ((*in)) << 10;
6094  ++in;
6095  *out |= ((*in)) << 16;
6096  ++in;
6097  *out |= ((*in)) << 22;
6098  ++in;
6099  *out |= ((*in)) << 28;
6100  ++out;
6101  *out = ((*in)) >> (6 - 2);
6102  ++in;
6103  *out |= ((*in)) << 2;
6104  ++in;
6105  *out |= ((*in)) << 8;
6106  ++in;
6107  *out |= ((*in)) << 14;
6108  ++in;
6109  *out |= ((*in)) << 20;
6110  ++in;
6111  *out |= ((*in)) << 26;
6112  ++out;
6113  ++in;
6114  *out = (*in);
6115  ++in;
6116  *out |= ((*in)) << 6;
6117  ++in;
6118  *out |= ((*in)) << 12;
6119  ++in;
6120  *out |= ((*in)) << 18;
6121  ++in;
6122  *out |= ((*in)) << 24;
6123  ++in;
6124  *out |= ((*in)) << 30;
6125  ++out;
6126  *out = ((*in)) >> (6 - 4);
6127  ++in;
6128  *out |= ((*in)) << 4;
6129  ++in;
6130  *out |= ((*in)) << 10;
6131  ++in;
6132  *out |= ((*in)) << 16;
6133  ++in;
6134  *out |= ((*in)) << 22;
6135  ++in;
6136  *out |= ((*in)) << 28;
6137  ++out;
6138  *out = ((*in)) >> (6 - 2);
6139  ++in;
6140  *out |= ((*in)) << 2;
6141  ++in;
6142  *out |= ((*in)) << 8;
6143  ++in;
6144  *out |= ((*in)) << 14;
6145  ++in;
6146  *out |= ((*in)) << 20;
6147  ++in;
6148  *out |= ((*in)) << 26;
6149 }
6150 
6151 /*assumes that integers fit in the prescribed number of bits */
6152 void __fastpackwithoutmask7(const uint32_t * in,
6153  uint32_t * out) {
6154  *out = (*in);
6155  ++in;
6156  *out |= ((*in)) << 7;
6157  ++in;
6158  *out |= ((*in)) << 14;
6159  ++in;
6160  *out |= ((*in)) << 21;
6161  ++in;
6162  *out |= ((*in)) << 28;
6163  ++out;
6164  *out = ((*in)) >> (7 - 3);
6165  ++in;
6166  *out |= ((*in)) << 3;
6167  ++in;
6168  *out |= ((*in)) << 10;
6169  ++in;
6170  *out |= ((*in)) << 17;
6171  ++in;
6172  *out |= ((*in)) << 24;
6173  ++in;
6174  *out |= ((*in)) << 31;
6175  ++out;
6176  *out = ((*in)) >> (7 - 6);
6177  ++in;
6178  *out |= ((*in)) << 6;
6179  ++in;
6180  *out |= ((*in)) << 13;
6181  ++in;
6182  *out |= ((*in)) << 20;
6183  ++in;
6184  *out |= ((*in)) << 27;
6185  ++out;
6186  *out = ((*in)) >> (7 - 2);
6187  ++in;
6188  *out |= ((*in)) << 2;
6189  ++in;
6190  *out |= ((*in)) << 9;
6191  ++in;
6192  *out |= ((*in)) << 16;
6193  ++in;
6194  *out |= ((*in)) << 23;
6195  ++in;
6196  *out |= ((*in)) << 30;
6197  ++out;
6198  *out = ((*in)) >> (7 - 5);
6199  ++in;
6200  *out |= ((*in)) << 5;
6201  ++in;
6202  *out |= ((*in)) << 12;
6203  ++in;
6204  *out |= ((*in)) << 19;
6205  ++in;
6206  *out |= ((*in)) << 26;
6207  ++out;
6208  *out = ((*in)) >> (7 - 1);
6209  ++in;
6210  *out |= ((*in)) << 1;
6211  ++in;
6212  *out |= ((*in)) << 8;
6213  ++in;
6214  *out |= ((*in)) << 15;
6215  ++in;
6216  *out |= ((*in)) << 22;
6217  ++in;
6218  *out |= ((*in)) << 29;
6219  ++out;
6220  *out = ((*in)) >> (7 - 4);
6221  ++in;
6222  *out |= ((*in)) << 4;
6223  ++in;
6224  *out |= ((*in)) << 11;
6225  ++in;
6226  *out |= ((*in)) << 18;
6227  ++in;
6228  *out |= ((*in)) << 25;
6229 }
6230 
6231 /*assumes that integers fit in the prescribed number of bits */
6232 void __fastpackwithoutmask8(const uint32_t * in,
6233  uint32_t * out) {
6234  *out = (*in);
6235  ++in;
6236  *out |= ((*in)) << 8;
6237  ++in;
6238  *out |= ((*in)) << 16;
6239  ++in;
6240  *out |= ((*in)) << 24;
6241  ++out;
6242  ++in;
6243  *out = (*in);
6244  ++in;
6245  *out |= ((*in)) << 8;
6246  ++in;
6247  *out |= ((*in)) << 16;
6248  ++in;
6249  *out |= ((*in)) << 24;
6250  ++out;
6251  ++in;
6252  *out = (*in);
6253  ++in;
6254  *out |= ((*in)) << 8;
6255  ++in;
6256  *out |= ((*in)) << 16;
6257  ++in;
6258  *out |= ((*in)) << 24;
6259  ++out;
6260  ++in;
6261  *out = (*in);
6262  ++in;
6263  *out |= ((*in)) << 8;
6264  ++in;
6265  *out |= ((*in)) << 16;
6266  ++in;
6267  *out |= ((*in)) << 24;
6268  ++out;
6269  ++in;
6270  *out = (*in);
6271  ++in;
6272  *out |= ((*in)) << 8;
6273  ++in;
6274  *out |= ((*in)) << 16;
6275  ++in;
6276  *out |= ((*in)) << 24;
6277  ++out;
6278  ++in;
6279  *out = (*in);
6280  ++in;
6281  *out |= ((*in)) << 8;
6282  ++in;
6283  *out |= ((*in)) << 16;
6284  ++in;
6285  *out |= ((*in)) << 24;
6286  ++out;
6287  ++in;
6288  *out = (*in);
6289  ++in;
6290  *out |= ((*in)) << 8;
6291  ++in;
6292  *out |= ((*in)) << 16;
6293  ++in;
6294  *out |= ((*in)) << 24;
6295  ++out;
6296  ++in;
6297  *out = (*in);
6298  ++in;
6299  *out |= ((*in)) << 8;
6300  ++in;
6301  *out |= ((*in)) << 16;
6302  ++in;
6303  *out |= ((*in)) << 24;
6304 }
6305 
6306 /*assumes that integers fit in the prescribed number of bits */
6307 void __fastpackwithoutmask9(const uint32_t * in,
6308  uint32_t * out) {
6309  *out = (*in);
6310  ++in;
6311  *out |= ((*in)) << 9;
6312  ++in;
6313  *out |= ((*in)) << 18;
6314  ++in;
6315  *out |= ((*in)) << 27;
6316  ++out;
6317  *out = ((*in)) >> (9 - 4);
6318  ++in;
6319  *out |= ((*in)) << 4;
6320  ++in;
6321  *out |= ((*in)) << 13;
6322  ++in;
6323  *out |= ((*in)) << 22;
6324  ++in;
6325  *out |= ((*in)) << 31;
6326  ++out;
6327  *out = ((*in)) >> (9 - 8);
6328  ++in;
6329  *out |= ((*in)) << 8;
6330  ++in;
6331  *out |= ((*in)) << 17;
6332  ++in;
6333  *out |= ((*in)) << 26;
6334  ++out;
6335  *out = ((*in)) >> (9 - 3);
6336  ++in;
6337  *out |= ((*in)) << 3;
6338  ++in;
6339  *out |= ((*in)) << 12;
6340  ++in;
6341  *out |= ((*in)) << 21;
6342  ++in;
6343  *out |= ((*in)) << 30;
6344  ++out;
6345  *out = ((*in)) >> (9 - 7);
6346  ++in;
6347  *out |= ((*in)) << 7;
6348  ++in;
6349  *out |= ((*in)) << 16;
6350  ++in;
6351  *out |= ((*in)) << 25;
6352  ++out;
6353  *out = ((*in)) >> (9 - 2);
6354  ++in;
6355  *out |= ((*in)) << 2;
6356  ++in;
6357  *out |= ((*in)) << 11;
6358  ++in;
6359  *out |= ((*in)) << 20;
6360  ++in;
6361  *out |= ((*in)) << 29;
6362  ++out;
6363  *out = ((*in)) >> (9 - 6);
6364  ++in;
6365  *out |= ((*in)) << 6;
6366  ++in;
6367  *out |= ((*in)) << 15;
6368  ++in;
6369  *out |= ((*in)) << 24;
6370  ++out;
6371  *out = ((*in)) >> (9 - 1);
6372  ++in;
6373  *out |= ((*in)) << 1;
6374  ++in;
6375  *out |= ((*in)) << 10;
6376  ++in;
6377  *out |= ((*in)) << 19;
6378  ++in;
6379  *out |= ((*in)) << 28;
6380  ++out;
6381  *out = ((*in)) >> (9 - 5);
6382  ++in;
6383  *out |= ((*in)) << 5;
6384  ++in;
6385  *out |= ((*in)) << 14;
6386  ++in;
6387  *out |= ((*in)) << 23;
6388 }
6389 
6390 /*assumes that integers fit in the prescribed number of bits */
6391 void __fastpackwithoutmask10(const uint32_t * in,
6392  uint32_t * out) {
6393  *out = (*in);
6394  ++in;
6395  *out |= ((*in)) << 10;
6396  ++in;
6397  *out |= ((*in)) << 20;
6398  ++in;
6399  *out |= ((*in)) << 30;
6400  ++out;
6401  *out = ((*in)) >> (10 - 8);
6402  ++in;
6403  *out |= ((*in)) << 8;
6404  ++in;
6405  *out |= ((*in)) << 18;
6406  ++in;
6407  *out |= ((*in)) << 28;
6408  ++out;
6409  *out = ((*in)) >> (10 - 6);
6410  ++in;
6411  *out |= ((*in)) << 6;
6412  ++in;
6413  *out |= ((*in)) << 16;
6414  ++in;
6415  *out |= ((*in)) << 26;
6416  ++out;
6417  *out = ((*in)) >> (10 - 4);
6418  ++in;
6419  *out |= ((*in)) << 4;
6420  ++in;
6421  *out |= ((*in)) << 14;
6422  ++in;
6423  *out |= ((*in)) << 24;
6424  ++out;
6425  *out = ((*in)) >> (10 - 2);
6426  ++in;
6427  *out |= ((*in)) << 2;
6428  ++in;
6429  *out |= ((*in)) << 12;
6430  ++in;
6431  *out |= ((*in)) << 22;
6432  ++out;
6433  ++in;
6434  *out = (*in);
6435  ++in;
6436  *out |= ((*in)) << 10;
6437  ++in;
6438  *out |= ((*in)) << 20;
6439  ++in;
6440  *out |= ((*in)) << 30;
6441  ++out;
6442  *out = ((*in)) >> (10 - 8);
6443  ++in;
6444  *out |= ((*in)) << 8;
6445  ++in;
6446  *out |= ((*in)) << 18;
6447  ++in;
6448  *out |= ((*in)) << 28;
6449  ++out;
6450  *out = ((*in)) >> (10 - 6);
6451  ++in;
6452  *out |= ((*in)) << 6;
6453  ++in;
6454  *out |= ((*in)) << 16;
6455  ++in;
6456  *out |= ((*in)) << 26;
6457  ++out;
6458  *out = ((*in)) >> (10 - 4);
6459  ++in;
6460  *out |= ((*in)) << 4;
6461  ++in;
6462  *out |= ((*in)) << 14;
6463  ++in;
6464  *out |= ((*in)) << 24;
6465  ++out;
6466  *out = ((*in)) >> (10 - 2);
6467  ++in;
6468  *out |= ((*in)) << 2;
6469  ++in;
6470  *out |= ((*in)) << 12;
6471  ++in;
6472  *out |= ((*in)) << 22;
6473 }
6474 
6475 /*assumes that integers fit in the prescribed number of bits */
6476 void __fastpackwithoutmask11(const uint32_t * in,
6477  uint32_t * out) {
6478  *out = (*in);
6479  ++in;
6480  *out |= ((*in)) << 11;
6481  ++in;
6482  *out |= ((*in)) << 22;
6483  ++out;
6484  *out = ((*in)) >> (11 - 1);
6485  ++in;
6486  *out |= ((*in)) << 1;
6487  ++in;
6488  *out |= ((*in)) << 12;
6489  ++in;
6490  *out |= ((*in)) << 23;
6491  ++out;
6492  *out = ((*in)) >> (11 - 2);
6493  ++in;
6494  *out |= ((*in)) << 2;
6495  ++in;
6496  *out |= ((*in)) << 13;
6497  ++in;
6498  *out |= ((*in)) << 24;
6499  ++out;
6500  *out = ((*in)) >> (11 - 3);
6501  ++in;
6502  *out |= ((*in)) << 3;
6503  ++in;
6504  *out |= ((*in)) << 14;
6505  ++in;
6506  *out |= ((*in)) << 25;
6507  ++out;
6508  *out = ((*in)) >> (11 - 4);
6509  ++in;
6510  *out |= ((*in)) << 4;
6511  ++in;
6512  *out |= ((*in)) << 15;
6513  ++in;
6514  *out |= ((*in)) << 26;
6515  ++out;
6516  *out = ((*in)) >> (11 - 5);
6517  ++in;
6518  *out |= ((*in)) << 5;
6519  ++in;
6520  *out |= ((*in)) << 16;
6521  ++in;
6522  *out |= ((*in)) << 27;
6523  ++out;
6524  *out = ((*in)) >> (11 - 6);
6525  ++in;
6526  *out |= ((*in)) << 6;
6527  ++in;
6528  *out |= ((*in)) << 17;
6529  ++in;
6530  *out |= ((*in)) << 28;
6531  ++out;
6532  *out = ((*in)) >> (11 - 7);
6533  ++in;
6534  *out |= ((*in)) << 7;
6535  ++in;
6536  *out |= ((*in)) << 18;
6537  ++in;
6538  *out |= ((*in)) << 29;
6539  ++out;
6540  *out = ((*in)) >> (11 - 8);
6541  ++in;
6542  *out |= ((*in)) << 8;
6543  ++in;
6544  *out |= ((*in)) << 19;
6545  ++in;
6546  *out |= ((*in)) << 30;
6547  ++out;
6548  *out = ((*in)) >> (11 - 9);
6549  ++in;
6550  *out |= ((*in)) << 9;
6551  ++in;
6552  *out |= ((*in)) << 20;
6553  ++in;
6554  *out |= ((*in)) << 31;
6555  ++out;
6556  *out = ((*in)) >> (11 - 10);
6557  ++in;
6558  *out |= ((*in)) << 10;
6559  ++in;
6560  *out |= ((*in)) << 21;
6561 }
6562 
6563 /*assumes that integers fit in the prescribed number of bits */
6564 void __fastpackwithoutmask12(const uint32_t * in,
6565  uint32_t * out) {
6566  *out = (*in);
6567  ++in;
6568  *out |= ((*in)) << 12;
6569  ++in;
6570  *out |= ((*in)) << 24;
6571  ++out;
6572  *out = ((*in)) >> (12 - 4);
6573  ++in;
6574  *out |= ((*in)) << 4;
6575  ++in;
6576  *out |= ((*in)) << 16;
6577  ++in;
6578  *out |= ((*in)) << 28;
6579  ++out;
6580  *out = ((*in)) >> (12 - 8);
6581  ++in;
6582  *out |= ((*in)) << 8;
6583  ++in;
6584  *out |= ((*in)) << 20;
6585  ++out;
6586  ++in;
6587  *out = (*in);
6588  ++in;
6589  *out |= ((*in)) << 12;
6590  ++in;
6591  *out |= ((*in)) << 24;
6592  ++out;
6593  *out = ((*in)) >> (12 - 4);
6594  ++in;
6595  *out |= ((*in)) << 4;
6596  ++in;
6597  *out |= ((*in)) << 16;
6598  ++in;
6599  *out |= ((*in)) << 28;
6600  ++out;
6601  *out = ((*in)) >> (12 - 8);
6602  ++in;
6603  *out |= ((*in)) << 8;
6604  ++in;
6605  *out |= ((*in)) << 20;
6606  ++out;
6607  ++in;
6608  *out = (*in);
6609  ++in;
6610  *out |= ((*in)) << 12;
6611  ++in;
6612  *out |= ((*in)) << 24;
6613  ++out;
6614  *out = ((*in)) >> (12 - 4);
6615  ++in;
6616  *out |= ((*in)) << 4;
6617  ++in;
6618  *out |= ((*in)) << 16;
6619  ++in;
6620  *out |= ((*in)) << 28;
6621  ++out;
6622  *out = ((*in)) >> (12 - 8);
6623  ++in;
6624  *out |= ((*in)) << 8;
6625  ++in;
6626  *out |= ((*in)) << 20;
6627  ++out;
6628  ++in;
6629  *out = (*in);
6630  ++in;
6631  *out |= ((*in)) << 12;
6632  ++in;
6633  *out |= ((*in)) << 24;
6634  ++out;
6635  *out = ((*in)) >> (12 - 4);
6636  ++in;
6637  *out |= ((*in)) << 4;
6638  ++in;
6639  *out |= ((*in)) << 16;
6640  ++in;
6641  *out |= ((*in)) << 28;
6642  ++out;
6643  *out = ((*in)) >> (12 - 8);
6644  ++in;
6645  *out |= ((*in)) << 8;
6646  ++in;
6647  *out |= ((*in)) << 20;
6648 }
6649 
6650 /*assumes that integers fit in the prescribed number of bits */
6651 void __fastpackwithoutmask13(const uint32_t * in,
6652  uint32_t * out) {
6653  *out = (*in);
6654  ++in;
6655  *out |= ((*in)) << 13;
6656  ++in;
6657  *out |= ((*in)) << 26;
6658  ++out;
6659  *out = ((*in)) >> (13 - 7);
6660  ++in;
6661  *out |= ((*in)) << 7;
6662  ++in;
6663  *out |= ((*in)) << 20;
6664  ++out;
6665  *out = ((*in)) >> (13 - 1);
6666  ++in;
6667  *out |= ((*in)) << 1;
6668  ++in;
6669  *out |= ((*in)) << 14;
6670  ++in;
6671  *out |= ((*in)) << 27;
6672  ++out;
6673  *out = ((*in)) >> (13 - 8);
6674  ++in;
6675  *out |= ((*in)) << 8;
6676  ++in;
6677  *out |= ((*in)) << 21;
6678  ++out;
6679  *out = ((*in)) >> (13 - 2);
6680  ++in;
6681  *out |= ((*in)) << 2;
6682  ++in;
6683  *out |= ((*in)) << 15;
6684  ++in;
6685  *out |= ((*in)) << 28;
6686  ++out;
6687  *out = ((*in)) >> (13 - 9);
6688  ++in;
6689  *out |= ((*in)) << 9;
6690  ++in;
6691  *out |= ((*in)) << 22;
6692  ++out;
6693  *out = ((*in)) >> (13 - 3);
6694  ++in;
6695  *out |= ((*in)) << 3;
6696  ++in;
6697  *out |= ((*in)) << 16;
6698  ++in;
6699  *out |= ((*in)) << 29;
6700  ++out;
6701  *out = ((*in)) >> (13 - 10);
6702  ++in;
6703  *out |= ((*in)) << 10;
6704  ++in;
6705  *out |= ((*in)) << 23;
6706  ++out;
6707  *out = ((*in)) >> (13 - 4);
6708  ++in;
6709  *out |= ((*in)) << 4;
6710  ++in;
6711  *out |= ((*in)) << 17;
6712  ++in;
6713  *out |= ((*in)) << 30;
6714  ++out;
6715  *out = ((*in)) >> (13 - 11);
6716  ++in;
6717  *out |= ((*in)) << 11;
6718  ++in;
6719  *out |= ((*in)) << 24;
6720  ++out;
6721  *out = ((*in)) >> (13 - 5);
6722  ++in;
6723  *out |= ((*in)) << 5;
6724  ++in;
6725  *out |= ((*in)) << 18;
6726  ++in;
6727  *out |= ((*in)) << 31;
6728  ++out;
6729  *out = ((*in)) >> (13 - 12);
6730  ++in;
6731  *out |= ((*in)) << 12;
6732  ++in;
6733  *out |= ((*in)) << 25;
6734  ++out;
6735  *out = ((*in)) >> (13 - 6);
6736  ++in;
6737  *out |= ((*in)) << 6;
6738  ++in;
6739  *out |= ((*in)) << 19;
6740 }
6741 
6742 /*assumes that integers fit in the prescribed number of bits */
6743 void __fastpackwithoutmask14(const uint32_t * in,
6744  uint32_t * out) {
6745  *out = (*in);
6746  ++in;
6747  *out |= ((*in)) << 14;
6748  ++in;
6749  *out |= ((*in)) << 28;
6750  ++out;
6751  *out = ((*in)) >> (14 - 10);
6752  ++in;
6753  *out |= ((*in)) << 10;
6754  ++in;
6755  *out |= ((*in)) << 24;
6756  ++out;
6757  *out = ((*in)) >> (14 - 6);
6758  ++in;
6759  *out |= ((*in)) << 6;
6760  ++in;
6761  *out |= ((*in)) << 20;
6762  ++out;
6763  *out = ((*in)) >> (14 - 2);
6764  ++in;
6765  *out |= ((*in)) << 2;
6766  ++in;
6767  *out |= ((*in)) << 16;
6768  ++in;
6769  *out |= ((*in)) << 30;
6770  ++out;
6771  *out = ((*in)) >> (14 - 12);
6772  ++in;
6773  *out |= ((*in)) << 12;
6774  ++in;
6775  *out |= ((*in)) << 26;
6776  ++out;
6777  *out = ((*in)) >> (14 - 8);
6778  ++in;
6779  *out |= ((*in)) << 8;
6780  ++in;
6781  *out |= ((*in)) << 22;
6782  ++out;
6783  *out = ((*in)) >> (14 - 4);
6784  ++in;
6785  *out |= ((*in)) << 4;
6786  ++in;
6787  *out |= ((*in)) << 18;
6788  ++out;
6789  ++in;
6790  *out = (*in);
6791  ++in;
6792  *out |= ((*in)) << 14;
6793  ++in;
6794  *out |= ((*in)) << 28;
6795  ++out;
6796  *out = ((*in)) >> (14 - 10);
6797  ++in;
6798  *out |= ((*in)) << 10;
6799  ++in;
6800  *out |= ((*in)) << 24;
6801  ++out;
6802  *out = ((*in)) >> (14 - 6);
6803  ++in;
6804  *out |= ((*in)) << 6;
6805  ++in;
6806  *out |= ((*in)) << 20;
6807  ++out;
6808  *out = ((*in)) >> (14 - 2);
6809  ++in;
6810  *out |= ((*in)) << 2;
6811  ++in;
6812  *out |= ((*in)) << 16;
6813  ++in;
6814  *out |= ((*in)) << 30;
6815  ++out;
6816  *out = ((*in)) >> (14 - 12);
6817  ++in;
6818  *out |= ((*in)) << 12;
6819  ++in;
6820  *out |= ((*in)) << 26;
6821  ++out;
6822  *out = ((*in)) >> (14 - 8);
6823  ++in;
6824  *out |= ((*in)) << 8;
6825  ++in;
6826  *out |= ((*in)) << 22;
6827  ++out;
6828  *out = ((*in)) >> (14 - 4);
6829  ++in;
6830  *out |= ((*in)) << 4;
6831  ++in;
6832  *out |= ((*in)) << 18;
6833 }
6834 
6835 /*assumes that integers fit in the prescribed number of bits */
6836 void __fastpackwithoutmask15(const uint32_t * in,
6837  uint32_t * out) {
6838  *out = (*in);
6839  ++in;
6840  *out |= ((*in)) << 15;
6841  ++in;
6842  *out |= ((*in)) << 30;
6843  ++out;
6844  *out = ((*in)) >> (15 - 13);
6845  ++in;
6846  *out |= ((*in)) << 13;
6847  ++in;
6848  *out |= ((*in)) << 28;
6849  ++out;
6850  *out = ((*in)) >> (15 - 11);
6851  ++in;
6852  *out |= ((*in)) << 11;
6853  ++in;
6854  *out |= ((*in)) << 26;
6855  ++out;
6856  *out = ((*in)) >> (15 - 9);
6857  ++in;
6858  *out |= ((*in)) << 9;
6859  ++in;
6860  *out |= ((*in)) << 24;
6861  ++out;
6862  *out = ((*in)) >> (15 - 7);
6863  ++in;
6864  *out |= ((*in)) << 7;
6865  ++in;
6866  *out |= ((*in)) << 22;
6867  ++out;
6868  *out = ((*in)) >> (15 - 5);
6869  ++in;
6870  *out |= ((*in)) << 5;
6871  ++in;
6872  *out |= ((*in)) << 20;
6873  ++out;
6874  *out = ((*in)) >> (15 - 3);
6875  ++in;
6876  *out |= ((*in)) << 3;
6877  ++in;
6878  *out |= ((*in)) << 18;
6879  ++out;
6880  *out = ((*in)) >> (15 - 1);
6881  ++in;
6882  *out |= ((*in)) << 1;
6883  ++in;
6884  *out |= ((*in)) << 16;
6885  ++in;
6886  *out |= ((*in)) << 31;
6887  ++out;
6888  *out = ((*in)) >> (15 - 14);
6889  ++in;
6890  *out |= ((*in)) << 14;
6891  ++in;
6892  *out |= ((*in)) << 29;
6893  ++out;
6894  *out = ((*in)) >> (15 - 12);
6895  ++in;
6896  *out |= ((*in)) << 12;
6897  ++in;
6898  *out |= ((*in)) << 27;
6899  ++out;
6900  *out = ((*in)) >> (15 - 10);
6901  ++in;
6902  *out |= ((*in)) << 10;
6903  ++in;
6904  *out |= ((*in)) << 25;
6905  ++out;
6906  *out = ((*in)) >> (15 - 8);
6907  ++in;
6908  *out |= ((*in)) << 8;
6909  ++in;
6910  *out |= ((*in)) << 23;
6911  ++out;
6912  *out = ((*in)) >> (15 - 6);
6913  ++in;
6914  *out |= ((*in)) << 6;
6915  ++in;
6916  *out |= ((*in)) << 21;
6917  ++out;
6918  *out = ((*in)) >> (15 - 4);
6919  ++in;
6920  *out |= ((*in)) << 4;
6921  ++in;
6922  *out |= ((*in)) << 19;
6923  ++out;
6924  *out = ((*in)) >> (15 - 2);
6925  ++in;
6926  *out |= ((*in)) << 2;
6927  ++in;
6928  *out |= ((*in)) << 17;
6929 }
6930 
6931 /*assumes that integers fit in the prescribed number of bits */
6932 void __fastpackwithoutmask16(const uint32_t * in,
6933  uint32_t * out) {
6934  *out = (*in);
6935  ++in;
6936  *out |= ((*in)) << 16;
6937  ++out;
6938  ++in;
6939  *out = (*in);
6940  ++in;
6941  *out |= ((*in)) << 16;
6942  ++out;
6943  ++in;
6944  *out = (*in);
6945  ++in;
6946  *out |= ((*in)) << 16;
6947  ++out;
6948  ++in;
6949  *out = (*in);
6950  ++in;
6951  *out |= ((*in)) << 16;
6952  ++out;
6953  ++in;
6954  *out = (*in);
6955  ++in;
6956  *out |= ((*in)) << 16;
6957  ++out;
6958  ++in;
6959  *out = (*in);
6960  ++in;
6961  *out |= ((*in)) << 16;
6962  ++out;
6963  ++in;
6964  *out = (*in);
6965  ++in;
6966  *out |= ((*in)) << 16;
6967  ++out;
6968  ++in;
6969  *out = (*in);
6970  ++in;
6971  *out |= ((*in)) << 16;
6972  ++out;
6973  ++in;
6974  *out = (*in);
6975  ++in;
6976  *out |= ((*in)) << 16;
6977  ++out;
6978  ++in;
6979  *out = (*in);
6980  ++in;
6981  *out |= ((*in)) << 16;
6982  ++out;
6983  ++in;
6984  *out = (*in);
6985  ++in;
6986  *out |= ((*in)) << 16;
6987  ++out;
6988  ++in;
6989  *out = (*in);
6990  ++in;
6991  *out |= ((*in)) << 16;
6992  ++out;
6993  ++in;
6994  *out = (*in);
6995  ++in;
6996  *out |= ((*in)) << 16;
6997  ++out;
6998  ++in;
6999  *out = (*in);
7000  ++in;
7001  *out |= ((*in)) << 16;
7002  ++out;
7003  ++in;
7004  *out = (*in);
7005  ++in;
7006  *out |= ((*in)) << 16;
7007  ++out;
7008  ++in;
7009  *out = (*in);
7010  ++in;
7011  *out |= ((*in)) << 16;
7012 }
7013 
7014 /*assumes that integers fit in the prescribed number of bits */
7015 void __fastpackwithoutmask17(const uint32_t * in,
7016  uint32_t * out) {
7017  *out = (*in);
7018  ++in;
7019  *out |= ((*in)) << 17;
7020  ++out;
7021  *out = ((*in)) >> (17 - 2);
7022  ++in;
7023  *out |= ((*in)) << 2;
7024  ++in;
7025  *out |= ((*in)) << 19;
7026  ++out;
7027  *out = ((*in)) >> (17 - 4);
7028  ++in;
7029  *out |= ((*in)) << 4;
7030  ++in;
7031  *out |= ((*in)) << 21;
7032  ++out;
7033  *out = ((*in)) >> (17 - 6);
7034  ++in;
7035  *out |= ((*in)) << 6;
7036  ++in;
7037  *out |= ((*in)) << 23;
7038  ++out;
7039  *out = ((*in)) >> (17 - 8);
7040  ++in;
7041  *out |= ((*in)) << 8;
7042  ++in;
7043  *out |= ((*in)) << 25;
7044  ++out;
7045  *out = ((*in)) >> (17 - 10);
7046  ++in;
7047  *out |= ((*in)) << 10;
7048  ++in;
7049  *out |= ((*in)) << 27;
7050  ++out;
7051  *out = ((*in)) >> (17 - 12);
7052  ++in;
7053  *out |= ((*in)) << 12;
7054  ++in;
7055  *out |= ((*in)) << 29;
7056  ++out;
7057  *out = ((*in)) >> (17 - 14);
7058  ++in;
7059  *out |= ((*in)) << 14;
7060  ++in;
7061  *out |= ((*in)) << 31;
7062  ++out;
7063  *out = ((*in)) >> (17 - 16);
7064  ++in;
7065  *out |= ((*in)) << 16;
7066  ++out;
7067  *out = ((*in)) >> (17 - 1);
7068  ++in;
7069  *out |= ((*in)) << 1;
7070  ++in;
7071  *out |= ((*in)) << 18;
7072  ++out;
7073  *out = ((*in)) >> (17 - 3);
7074  ++in;
7075  *out |= ((*in)) << 3;
7076  ++in;
7077  *out |= ((*in)) << 20;
7078  ++out;
7079  *out = ((*in)) >> (17 - 5);
7080  ++in;
7081  *out |= ((*in)) << 5;
7082  ++in;
7083  *out |= ((*in)) << 22;
7084  ++out;
7085  *out = ((*in)) >> (17 - 7);
7086  ++in;
7087  *out |= ((*in)) << 7;
7088  ++in;
7089  *out |= ((*in)) << 24;
7090  ++out;
7091  *out = ((*in)) >> (17 - 9);
7092  ++in;
7093  *out |= ((*in)) << 9;
7094  ++in;
7095  *out |= ((*in)) << 26;
7096  ++out;
7097  *out = ((*in)) >> (17 - 11);
7098  ++in;
7099  *out |= ((*in)) << 11;
7100  ++in;
7101  *out |= ((*in)) << 28;
7102  ++out;
7103  *out = ((*in)) >> (17 - 13);
7104  ++in;
7105  *out |= ((*in)) << 13;
7106  ++in;
7107  *out |= ((*in)) << 30;
7108  ++out;
7109  *out = ((*in)) >> (17 - 15);
7110  ++in;
7111  *out |= ((*in)) << 15;
7112 }
7113 
7114 /*assumes that integers fit in the prescribed number of bits */
7115 void __fastpackwithoutmask18(const uint32_t * in,
7116  uint32_t * out) {
7117  *out = (*in);
7118  ++in;
7119  *out |= ((*in)) << 18;
7120  ++out;
7121  *out = ((*in)) >> (18 - 4);
7122  ++in;
7123  *out |= ((*in)) << 4;
7124  ++in;
7125  *out |= ((*in)) << 22;
7126  ++out;
7127  *out = ((*in)) >> (18 - 8);
7128  ++in;
7129  *out |= ((*in)) << 8;
7130  ++in;
7131  *out |= ((*in)) << 26;
7132  ++out;
7133  *out = ((*in)) >> (18 - 12);
7134  ++in;
7135  *out |= ((*in)) << 12;
7136  ++in;
7137  *out |= ((*in)) << 30;
7138  ++out;
7139  *out = ((*in)) >> (18 - 16);
7140  ++in;
7141  *out |= ((*in)) << 16;
7142  ++out;
7143  *out = ((*in)) >> (18 - 2);
7144  ++in;
7145  *out |= ((*in)) << 2;
7146  ++in;
7147  *out |= ((*in)) << 20;
7148  ++out;
7149  *out = ((*in)) >> (18 - 6);
7150  ++in;
7151  *out |= ((*in)) << 6;
7152  ++in;
7153  *out |= ((*in)) << 24;
7154  ++out;
7155  *out = ((*in)) >> (18 - 10);
7156  ++in;
7157  *out |= ((*in)) << 10;
7158  ++in;
7159  *out |= ((*in)) << 28;
7160  ++out;
7161  *out = ((*in)) >> (18 - 14);
7162  ++in;
7163  *out |= ((*in)) << 14;
7164  ++out;
7165  ++in;
7166  *out = (*in);
7167  ++in;
7168  *out |= ((*in)) << 18;
7169  ++out;
7170  *out = ((*in)) >> (18 - 4);
7171  ++in;
7172  *out |= ((*in)) << 4;
7173  ++in;
7174  *out |= ((*in)) << 22;
7175  ++out;
7176  *out = ((*in)) >> (18 - 8);
7177  ++in;
7178  *out |= ((*in)) << 8;
7179  ++in;
7180  *out |= ((*in)) << 26;
7181  ++out;
7182  *out = ((*in)) >> (18 - 12);
7183  ++in;
7184  *out |= ((*in)) << 12;
7185  ++in;
7186  *out |= ((*in)) << 30;
7187  ++out;
7188  *out = ((*in)) >> (18 - 16);
7189  ++in;
7190  *out |= ((*in)) << 16;
7191  ++out;
7192  *out = ((*in)) >> (18 - 2);
7193  ++in;
7194  *out |= ((*in)) << 2;
7195  ++in;
7196  *out |= ((*in)) << 20;
7197  ++out;
7198  *out = ((*in)) >> (18 - 6);
7199  ++in;
7200  *out |= ((*in)) << 6;
7201  ++in;
7202  *out |= ((*in)) << 24;
7203  ++out;
7204  *out = ((*in)) >> (18 - 10);
7205  ++in;
7206  *out |= ((*in)) << 10;
7207  ++in;
7208  *out |= ((*in)) << 28;
7209  ++out;
7210  *out = ((*in)) >> (18 - 14);
7211  ++in;
7212  *out |= ((*in)) << 14;
7213 }
7214 
7215 /*assumes that integers fit in the prescribed number of bits */
7216 void __fastpackwithoutmask19(const uint32_t * in,
7217  uint32_t * out) {
7218  *out = (*in);
7219  ++in;
7220  *out |= ((*in)) << 19;
7221  ++out;
7222  *out = ((*in)) >> (19 - 6);
7223  ++in;
7224  *out |= ((*in)) << 6;
7225  ++in;
7226  *out |= ((*in)) << 25;
7227  ++out;
7228  *out = ((*in)) >> (19 - 12);
7229  ++in;
7230  *out |= ((*in)) << 12;
7231  ++in;
7232  *out |= ((*in)) << 31;
7233  ++out;
7234  *out = ((*in)) >> (19 - 18);
7235  ++in;
7236  *out |= ((*in)) << 18;
7237  ++out;
7238  *out = ((*in)) >> (19 - 5);
7239  ++in;
7240  *out |= ((*in)) << 5;
7241  ++in;
7242  *out |= ((*in)) << 24;
7243  ++out;
7244  *out = ((*in)) >> (19 - 11);
7245  ++in;
7246  *out |= ((*in)) << 11;
7247  ++in;
7248  *out |= ((*in)) << 30;
7249  ++out;
7250  *out = ((*in)) >> (19 - 17);
7251  ++in;
7252  *out |= ((*in)) << 17;
7253  ++out;
7254  *out = ((*in)) >> (19 - 4);
7255  ++in;
7256  *out |= ((*in)) << 4;
7257  ++in;
7258  *out |= ((*in)) << 23;
7259  ++out;
7260  *out = ((*in)) >> (19 - 10);
7261  ++in;
7262  *out |= ((*in)) << 10;
7263  ++in;
7264  *out |= ((*in)) << 29;
7265  ++out;
7266  *out = ((*in)) >> (19 - 16);
7267  ++in;
7268  *out |= ((*in)) << 16;
7269  ++out;
7270  *out = ((*in)) >> (19 - 3);
7271  ++in;
7272  *out |= ((*in)) << 3;
7273  ++in;
7274  *out |= ((*in)) << 22;
7275  ++out;
7276  *out = ((*in)) >> (19 - 9);
7277  ++in;
7278  *out |= ((*in)) << 9;
7279  ++in;
7280  *out |= ((*in)) << 28;
7281  ++out;
7282  *out = ((*in)) >> (19 - 15);
7283  ++in;
7284  *out |= ((*in)) << 15;
7285  ++out;
7286  *out = ((*in)) >> (19 - 2);
7287  ++in;
7288  *out |= ((*in)) << 2;
7289  ++in;
7290  *out |= ((*in)) << 21;
7291  ++out;
7292  *out = ((*in)) >> (19 - 8);
7293  ++in;
7294  *out |= ((*in)) << 8;
7295  ++in;
7296  *out |= ((*in)) << 27;
7297  ++out;
7298  *out = ((*in)) >> (19 - 14);
7299  ++in;
7300  *out |= ((*in)) << 14;
7301  ++out;
7302  *out = ((*in)) >> (19 - 1);
7303  ++in;
7304  *out |= ((*in)) << 1;
7305  ++in;
7306  *out |= ((*in)) << 20;
7307  ++out;
7308  *out = ((*in)) >> (19 - 7);
7309  ++in;
7310  *out |= ((*in)) << 7;
7311  ++in;
7312  *out |= ((*in)) << 26;
7313  ++out;
7314  *out = ((*in)) >> (19 - 13);
7315  ++in;
7316  *out |= ((*in)) << 13;
7317 }
7318 
7319 /*assumes that integers fit in the prescribed number of bits */
7320 void __fastpackwithoutmask20(const uint32_t * in,
7321  uint32_t * out) {
7322  *out = (*in);
7323  ++in;
7324  *out |= ((*in)) << 20;
7325  ++out;
7326  *out = ((*in)) >> (20 - 8);
7327  ++in;
7328  *out |= ((*in)) << 8;
7329  ++in;
7330  *out |= ((*in)) << 28;
7331  ++out;
7332  *out = ((*in)) >> (20 - 16);
7333  ++in;
7334  *out |= ((*in)) << 16;
7335  ++out;
7336  *out = ((*in)) >> (20 - 4);
7337  ++in;
7338  *out |= ((*in)) << 4;
7339  ++in;
7340  *out |= ((*in)) << 24;
7341  ++out;
7342  *out = ((*in)) >> (20 - 12);
7343  ++in;
7344  *out |= ((*in)) << 12;
7345  ++out;
7346  ++in;
7347  *out = (*in);
7348  ++in;
7349  *out |= ((*in)) << 20;
7350  ++out;
7351  *out = ((*in)) >> (20 - 8);
7352  ++in;
7353  *out |= ((*in)) << 8;
7354  ++in;
7355  *out |= ((*in)) << 28;
7356  ++out;
7357  *out = ((*in)) >> (20 - 16);
7358  ++in;
7359  *out |= ((*in)) << 16;
7360  ++out;
7361  *out = ((*in)) >> (20 - 4);
7362  ++in;
7363  *out |= ((*in)) << 4;
7364  ++in;
7365  *out |= ((*in)) << 24;
7366  ++out;
7367  *out = ((*in)) >> (20 - 12);
7368  ++in;
7369  *out |= ((*in)) << 12;
7370  ++out;
7371  ++in;
7372  *out = (*in);
7373  ++in;
7374  *out |= ((*in)) << 20;
7375  ++out;
7376  *out = ((*in)) >> (20 - 8);
7377  ++in;
7378  *out |= ((*in)) << 8;
7379  ++in;
7380  *out |= ((*in)) << 28;
7381  ++out;
7382  *out = ((*in)) >> (20 - 16);
7383  ++in;
7384  *out |= ((*in)) << 16;
7385  ++out;
7386  *out = ((*in)) >> (20 - 4);
7387  ++in;
7388  *out |= ((*in)) << 4;
7389  ++in;
7390  *out |= ((*in)) << 24;
7391  ++out;
7392  *out = ((*in)) >> (20 - 12);
7393  ++in;
7394  *out |= ((*in)) << 12;
7395  ++out;
7396  ++in;
7397  *out = (*in);
7398  ++in;
7399  *out |= ((*in)) << 20;
7400  ++out;
7401  *out = ((*in)) >> (20 - 8);
7402  ++in;
7403  *out |= ((*in)) << 8;
7404  ++in;
7405  *out |= ((*in)) << 28;
7406  ++out;
7407  *out = ((*in)) >> (20 - 16);
7408  ++in;
7409  *out |= ((*in)) << 16;
7410  ++out;
7411  *out = ((*in)) >> (20 - 4);
7412  ++in;
7413  *out |= ((*in)) << 4;
7414  ++in;
7415  *out |= ((*in)) << 24;
7416  ++out;
7417  *out = ((*in)) >> (20 - 12);
7418  ++in;
7419  *out |= ((*in)) << 12;
7420 }
7421 
7422 /*assumes that integers fit in the prescribed number of bits */
7423 void __fastpackwithoutmask21(const uint32_t * in,
7424  uint32_t * out) {
7425  *out = (*in);
7426  ++in;
7427  *out |= ((*in)) << 21;
7428  ++out;
7429  *out = ((*in)) >> (21 - 10);
7430  ++in;
7431  *out |= ((*in)) << 10;
7432  ++in;
7433  *out |= ((*in)) << 31;
7434  ++out;
7435  *out = ((*in)) >> (21 - 20);
7436  ++in;
7437  *out |= ((*in)) << 20;
7438  ++out;
7439  *out = ((*in)) >> (21 - 9);
7440  ++in;
7441  *out |= ((*in)) << 9;
7442  ++in;
7443  *out |= ((*in)) << 30;
7444  ++out;
7445  *out = ((*in)) >> (21 - 19);
7446  ++in;
7447  *out |= ((*in)) << 19;
7448  ++out;
7449  *out = ((*in)) >> (21 - 8);
7450  ++in;
7451  *out |= ((*in)) << 8;
7452  ++in;
7453  *out |= ((*in)) << 29;
7454  ++out;
7455  *out = ((*in)) >> (21 - 18);
7456  ++in;
7457  *out |= ((*in)) << 18;
7458  ++out;
7459  *out = ((*in)) >> (21 - 7);
7460  ++in;
7461  *out |= ((*in)) << 7;
7462  ++in;
7463  *out |= ((*in)) << 28;
7464  ++out;
7465  *out = ((*in)) >> (21 - 17);
7466  ++in;
7467  *out |= ((*in)) << 17;
7468  ++out;
7469  *out = ((*in)) >> (21 - 6);
7470  ++in;
7471  *out |= ((*in)) << 6;
7472  ++in;
7473  *out |= ((*in)) << 27;
7474  ++out;
7475  *out = ((*in)) >> (21 - 16);
7476  ++in;
7477  *out |= ((*in)) << 16;
7478  ++out;
7479  *out = ((*in)) >> (21 - 5);
7480  ++in;
7481  *out |= ((*in)) << 5;
7482  ++in;
7483  *out |= ((*in)) << 26;
7484  ++out;
7485  *out = ((*in)) >> (21 - 15);
7486  ++in;
7487  *out |= ((*in)) << 15;
7488  ++out;
7489  *out = ((*in)) >> (21 - 4);
7490  ++in;
7491  *out |= ((*in)) << 4;
7492  ++in;
7493  *out |= ((*in)) << 25;
7494  ++out;
7495  *out = ((*in)) >> (21 - 14);
7496  ++in;
7497  *out |= ((*in)) << 14;
7498  ++out;
7499  *out = ((*in)) >> (21 - 3);
7500  ++in;
7501  *out |= ((*in)) << 3;
7502  ++in;
7503  *out |= ((*in)) << 24;
7504  ++out;
7505  *out = ((*in)) >> (21 - 13);
7506  ++in;
7507  *out |= ((*in)) << 13;
7508  ++out;
7509  *out = ((*in)) >> (21 - 2);
7510  ++in;
7511  *out |= ((*in)) << 2;
7512  ++in;
7513  *out |= ((*in)) << 23;
7514  ++out;
7515  *out = ((*in)) >> (21 - 12);
7516  ++in;
7517  *out |= ((*in)) << 12;
7518  ++out;
7519  *out = ((*in)) >> (21 - 1);
7520  ++in;
7521  *out |= ((*in)) << 1;
7522  ++in;
7523  *out |= ((*in)) << 22;
7524  ++out;
7525  *out = ((*in)) >> (21 - 11);
7526  ++in;
7527  *out |= ((*in)) << 11;
7528 }
7529 
7530 /*assumes that integers fit in the prescribed number of bits */
7531 void __fastpackwithoutmask22(const uint32_t * in,
7532  uint32_t * out) {
7533  *out = (*in);
7534  ++in;
7535  *out |= ((*in)) << 22;
7536  ++out;
7537  *out = ((*in)) >> (22 - 12);
7538  ++in;
7539  *out |= ((*in)) << 12;
7540  ++out;
7541  *out = ((*in)) >> (22 - 2);
7542  ++in;
7543  *out |= ((*in)) << 2;
7544  ++in;
7545  *out |= ((*in)) << 24;
7546  ++out;
7547  *out = ((*in)) >> (22 - 14);
7548  ++in;
7549  *out |= ((*in)) << 14;
7550  ++out;
7551  *out = ((*in)) >> (22 - 4);
7552  ++in;
7553  *out |= ((*in)) << 4;
7554  ++in;
7555  *out |= ((*in)) << 26;
7556  ++out;
7557  *out = ((*in)) >> (22 - 16);
7558  ++in;
7559  *out |= ((*in)) << 16;
7560  ++out;
7561  *out = ((*in)) >> (22 - 6);
7562  ++in;
7563  *out |= ((*in)) << 6;
7564  ++in;
7565  *out |= ((*in)) << 28;
7566  ++out;
7567  *out = ((*in)) >> (22 - 18);
7568  ++in;
7569  *out |= ((*in)) << 18;
7570  ++out;
7571  *out = ((*in)) >> (22 - 8);
7572  ++in;
7573  *out |= ((*in)) << 8;
7574  ++in;
7575  *out |= ((*in)) << 30;
7576  ++out;
7577  *out = ((*in)) >> (22 - 20);
7578  ++in;
7579  *out |= ((*in)) << 20;
7580  ++out;
7581  *out = ((*in)) >> (22 - 10);
7582  ++in;
7583  *out |= ((*in)) << 10;
7584  ++out;
7585  ++in;
7586  *out = (*in);
7587  ++in;
7588  *out |= ((*in)) << 22;
7589  ++out;
7590  *out = ((*in)) >> (22 - 12);
7591  ++in;
7592  *out |= ((*in)) << 12;
7593  ++out;
7594  *out = ((*in)) >> (22 - 2);
7595  ++in;
7596  *out |= ((*in)) << 2;
7597  ++in;
7598  *out |= ((*in)) << 24;
7599  ++out;
7600  *out = ((*in)) >> (22 - 14);
7601  ++in;
7602  *out |= ((*in)) << 14;
7603  ++out;
7604  *out = ((*in)) >> (22 - 4);
7605  ++in;
7606  *out |= ((*in)) << 4;
7607  ++in;
7608  *out |= ((*in)) << 26;
7609  ++out;
7610  *out = ((*in)) >> (22 - 16);
7611  ++in;
7612  *out |= ((*in)) << 16;
7613  ++out;
7614  *out = ((*in)) >> (22 - 6);
7615  ++in;
7616  *out |= ((*in)) << 6;
7617  ++in;
7618  *out |= ((*in)) << 28;
7619  ++out;
7620  *out = ((*in)) >> (22 - 18);
7621  ++in;
7622  *out |= ((*in)) << 18;
7623  ++out;
7624  *out = ((*in)) >> (22 - 8);
7625  ++in;
7626  *out |= ((*in)) << 8;
7627  ++in;
7628  *out |= ((*in)) << 30;
7629  ++out;
7630  *out = ((*in)) >> (22 - 20);
7631  ++in;
7632  *out |= ((*in)) << 20;
7633  ++out;
7634  *out = ((*in)) >> (22 - 10);
7635  ++in;
7636  *out |= ((*in)) << 10;
7637 }
7638 
7639 /*assumes that integers fit in the prescribed number of bits */
7640 void __fastpackwithoutmask23(const uint32_t * in,
7641  uint32_t * out) {
7642  *out = (*in);
7643  ++in;
7644  *out |= ((*in)) << 23;
7645  ++out;
7646  *out = ((*in)) >> (23 - 14);
7647  ++in;
7648  *out |= ((*in)) << 14;
7649  ++out;
7650  *out = ((*in)) >> (23 - 5);
7651  ++in;
7652  *out |= ((*in)) << 5;
7653  ++in;
7654  *out |= ((*in)) << 28;
7655  ++out;
7656  *out = ((*in)) >> (23 - 19);
7657  ++in;
7658  *out |= ((*in)) << 19;
7659  ++out;
7660  *out = ((*in)) >> (23 - 10);
7661  ++in;
7662  *out |= ((*in)) << 10;
7663  ++out;
7664  *out = ((*in)) >> (23 - 1);
7665  ++in;
7666  *out |= ((*in)) << 1;
7667  ++in;
7668  *out |= ((*in)) << 24;
7669  ++out;
7670  *out = ((*in)) >> (23 - 15);
7671  ++in;
7672  *out |= ((*in)) << 15;
7673  ++out;
7674  *out = ((*in)) >> (23 - 6);
7675  ++in;
7676  *out |= ((*in)) << 6;
7677  ++in;
7678  *out |= ((*in)) << 29;
7679  ++out;
7680  *out = ((*in)) >> (23 - 20);
7681  ++in;
7682  *out |= ((*in)) << 20;
7683  ++out;
7684  *out = ((*in)) >> (23 - 11);
7685  ++in;
7686  *out |= ((*in)) << 11;
7687  ++out;
7688  *out = ((*in)) >> (23 - 2);
7689  ++in;
7690  *out |= ((*in)) << 2;
7691  ++in;
7692  *out |= ((*in)) << 25;
7693  ++out;
7694  *out = ((*in)) >> (23 - 16);
7695  ++in;
7696  *out |= ((*in)) << 16;
7697  ++out;
7698  *out = ((*in)) >> (23 - 7);
7699  ++in;
7700  *out |= ((*in)) << 7;
7701  ++in;
7702  *out |= ((*in)) << 30;
7703  ++out;
7704  *out = ((*in)) >> (23 - 21);
7705  ++in;
7706  *out |= ((*in)) << 21;
7707  ++out;
7708  *out = ((*in)) >> (23 - 12);
7709  ++in;
7710  *out |= ((*in)) << 12;
7711  ++out;
7712  *out = ((*in)) >> (23 - 3);
7713  ++in;
7714  *out |= ((*in)) << 3;
7715  ++in;
7716  *out |= ((*in)) << 26;
7717  ++out;
7718  *out = ((*in)) >> (23 - 17);
7719  ++in;
7720  *out |= ((*in)) << 17;
7721  ++out;
7722  *out = ((*in)) >> (23 - 8);
7723  ++in;
7724  *out |= ((*in)) << 8;
7725  ++in;
7726  *out |= ((*in)) << 31;
7727  ++out;
7728  *out = ((*in)) >> (23 - 22);
7729  ++in;
7730  *out |= ((*in)) << 22;
7731  ++out;
7732  *out = ((*in)) >> (23 - 13);
7733  ++in;
7734  *out |= ((*in)) << 13;
7735  ++out;
7736  *out = ((*in)) >> (23 - 4);
7737  ++in;
7738  *out |= ((*in)) << 4;
7739  ++in;
7740  *out |= ((*in)) << 27;
7741  ++out;
7742  *out = ((*in)) >> (23 - 18);
7743  ++in;
7744  *out |= ((*in)) << 18;
7745  ++out;
7746  *out = ((*in)) >> (23 - 9);
7747  ++in;
7748  *out |= ((*in)) << 9;
7749 }
7750 
7751 /*assumes that integers fit in the prescribed number of bits */
7752 void __fastpackwithoutmask24(const uint32_t * in,
7753  uint32_t * out) {
7754  *out = (*in);
7755  ++in;
7756  *out |= ((*in)) << 24;
7757  ++out;
7758  *out = ((*in)) >> (24 - 16);
7759  ++in;
7760  *out |= ((*in)) << 16;
7761  ++out;
7762  *out = ((*in)) >> (24 - 8);
7763  ++in;
7764  *out |= ((*in)) << 8;
7765  ++out;
7766  ++in;
7767  *out = (*in);
7768  ++in;
7769  *out |= ((*in)) << 24;
7770  ++out;
7771  *out = ((*in)) >> (24 - 16);
7772  ++in;
7773  *out |= ((*in)) << 16;
7774  ++out;
7775  *out = ((*in)) >> (24 - 8);
7776  ++in;
7777  *out |= ((*in)) << 8;
7778  ++out;
7779  ++in;
7780  *out = (*in);
7781  ++in;
7782  *out |= ((*in)) << 24;
7783  ++out;
7784  *out = ((*in)) >> (24 - 16);
7785  ++in;
7786  *out |= ((*in)) << 16;
7787  ++out;
7788  *out = ((*in)) >> (24 - 8);
7789  ++in;
7790  *out |= ((*in)) << 8;
7791  ++out;
7792  ++in;
7793  *out = (*in);
7794  ++in;
7795  *out |= ((*in)) << 24;
7796  ++out;
7797  *out = ((*in)) >> (24 - 16);
7798  ++in;
7799  *out |= ((*in)) << 16;
7800  ++out;
7801  *out = ((*in)) >> (24 - 8);
7802  ++in;
7803  *out |= ((*in)) << 8;
7804  ++out;
7805  ++in;
7806  *out = (*in);
7807  ++in;
7808  *out |= ((*in)) << 24;
7809  ++out;
7810  *out = ((*in)) >> (24 - 16);
7811  ++in;
7812  *out |= ((*in)) << 16;
7813  ++out;
7814  *out = ((*in)) >> (24 - 8);
7815  ++in;
7816  *out |= ((*in)) << 8;
7817  ++out;
7818  ++in;
7819  *out = (*in);
7820  ++in;
7821  *out |= ((*in)) << 24;
7822  ++out;
7823  *out = ((*in)) >> (24 - 16);
7824  ++in;
7825  *out |= ((*in)) << 16;
7826  ++out;
7827  *out = ((*in)) >> (24 - 8);
7828  ++in;
7829  *out |= ((*in)) << 8;
7830  ++out;
7831  ++in;
7832  *out = (*in);
7833  ++in;
7834  *out |= ((*in)) << 24;
7835  ++out;
7836  *out = ((*in)) >> (24 - 16);
7837  ++in;
7838  *out |= ((*in)) << 16;
7839  ++out;
7840  *out = ((*in)) >> (24 - 8);
7841  ++in;
7842  *out |= ((*in)) << 8;
7843  ++out;
7844  ++in;
7845  *out = (*in);
7846  ++in;
7847  *out |= ((*in)) << 24;
7848  ++out;
7849  *out = ((*in)) >> (24 - 16);
7850  ++in;
7851  *out |= ((*in)) << 16;
7852  ++out;
7853  *out = ((*in)) >> (24 - 8);
7854  ++in;
7855  *out |= ((*in)) << 8;
7856 }
7857 
7858 /*assumes that integers fit in the prescribed number of bits */
7859 void __fastpackwithoutmask25(const uint32_t * in,
7860  uint32_t * out) {
7861  *out = (*in);
7862  ++in;
7863  *out |= ((*in)) << 25;
7864  ++out;
7865  *out = ((*in)) >> (25 - 18);
7866  ++in;
7867  *out |= ((*in)) << 18;
7868  ++out;
7869  *out = ((*in)) >> (25 - 11);
7870  ++in;
7871  *out |= ((*in)) << 11;
7872  ++out;
7873  *out = ((*in)) >> (25 - 4);
7874  ++in;
7875  *out |= ((*in)) << 4;
7876  ++in;
7877  *out |= ((*in)) << 29;
7878  ++out;
7879  *out = ((*in)) >> (25 - 22);
7880  ++in;
7881  *out |= ((*in)) << 22;
7882  ++out;
7883  *out = ((*in)) >> (25 - 15);
7884  ++in;
7885  *out |= ((*in)) << 15;
7886  ++out;
7887  *out = ((*in)) >> (25 - 8);
7888  ++in;
7889  *out |= ((*in)) << 8;
7890  ++out;
7891  *out = ((*in)) >> (25 - 1);
7892  ++in;
7893  *out |= ((*in)) << 1;
7894  ++in;
7895  *out |= ((*in)) << 26;
7896  ++out;
7897  *out = ((*in)) >> (25 - 19);
7898  ++in;
7899  *out |= ((*in)) << 19;
7900  ++out;
7901  *out = ((*in)) >> (25 - 12);
7902  ++in;
7903  *out |= ((*in)) << 12;
7904  ++out;
7905  *out = ((*in)) >> (25 - 5);
7906  ++in;
7907  *out |= ((*in)) << 5;
7908  ++in;
7909  *out |= ((*in)) << 30;
7910  ++out;
7911  *out = ((*in)) >> (25 - 23);
7912  ++in;
7913  *out |= ((*in)) << 23;
7914  ++out;
7915  *out = ((*in)) >> (25 - 16);
7916  ++in;
7917  *out |= ((*in)) << 16;
7918  ++out;
7919  *out = ((*in)) >> (25 - 9);
7920  ++in;
7921  *out |= ((*in)) << 9;
7922  ++out;
7923  *out = ((*in)) >> (25 - 2);
7924  ++in;
7925  *out |= ((*in)) << 2;
7926  ++in;
7927  *out |= ((*in)) << 27;
7928  ++out;
7929  *out = ((*in)) >> (25 - 20);
7930  ++in;
7931  *out |= ((*in)) << 20;
7932  ++out;
7933  *out = ((*in)) >> (25 - 13);
7934  ++in;
7935  *out |= ((*in)) << 13;
7936  ++out;
7937  *out = ((*in)) >> (25 - 6);
7938  ++in;
7939  *out |= ((*in)) << 6;
7940  ++in;
7941  *out |= ((*in)) << 31;
7942  ++out;
7943  *out = ((*in)) >> (25 - 24);
7944  ++in;
7945  *out |= ((*in)) << 24;
7946  ++out;
7947  *out = ((*in)) >> (25 - 17);
7948  ++in;
7949  *out |= ((*in)) << 17;
7950  ++out;
7951  *out = ((*in)) >> (25 - 10);
7952  ++in;
7953  *out |= ((*in)) << 10;
7954  ++out;
7955  *out = ((*in)) >> (25 - 3);
7956  ++in;
7957  *out |= ((*in)) << 3;
7958  ++in;
7959  *out |= ((*in)) << 28;
7960  ++out;
7961  *out = ((*in)) >> (25 - 21);
7962  ++in;
7963  *out |= ((*in)) << 21;
7964  ++out;
7965  *out = ((*in)) >> (25 - 14);
7966  ++in;
7967  *out |= ((*in)) << 14;
7968  ++out;
7969  *out = ((*in)) >> (25 - 7);
7970  ++in;
7971  *out |= ((*in)) << 7;
7972 }
7973 
7974 /*assumes that integers fit in the prescribed number of bits */
7975 void __fastpackwithoutmask26(const uint32_t * in,
7976  uint32_t * out) {
7977  *out = (*in);
7978  ++in;
7979  *out |= ((*in)) << 26;
7980  ++out;
7981  *out = ((*in)) >> (26 - 20);
7982  ++in;
7983  *out |= ((*in)) << 20;
7984  ++out;
7985  *out = ((*in)) >> (26 - 14);
7986  ++in;
7987  *out |= ((*in)) << 14;
7988  ++out;
7989  *out = ((*in)) >> (26 - 8);
7990  ++in;
7991  *out |= ((*in)) << 8;
7992  ++out;
7993  *out = ((*in)) >> (26 - 2);
7994  ++in;
7995  *out |= ((*in)) << 2;
7996  ++in;
7997  *out |= ((*in)) << 28;
7998  ++out;
7999  *out = ((*in)) >> (26 - 22);
8000  ++in;
8001  *out |= ((*in)) << 22;
8002  ++out;
8003  *out = ((*in)) >> (26 - 16);
8004  ++in;
8005  *out |= ((*in)) << 16;
8006  ++out;
8007  *out = ((*in)) >> (26 - 10);
8008  ++in;
8009  *out |= ((*in)) << 10;
8010  ++out;
8011  *out = ((*in)) >> (26 - 4);
8012  ++in;
8013  *out |= ((*in)) << 4;
8014  ++in;
8015  *out |= ((*in)) << 30;
8016  ++out;
8017  *out = ((*in)) >> (26 - 24);
8018  ++in;
8019  *out |= ((*in)) << 24;
8020  ++out;
8021  *out = ((*in)) >> (26 - 18);
8022  ++in;
8023  *out |= ((*in)) << 18;
8024  ++out;
8025  *out = ((*in)) >> (26 - 12);
8026  ++in;
8027  *out |= ((*in)) << 12;
8028  ++out;
8029  *out = ((*in)) >> (26 - 6);
8030  ++in;
8031  *out |= ((*in)) << 6;
8032  ++out;
8033  ++in;
8034  *out = (*in);
8035  ++in;
8036  *out |= ((*in)) << 26;
8037  ++out;
8038  *out = ((*in)) >> (26 - 20);
8039  ++in;
8040  *out |= ((*in)) << 20;
8041  ++out;
8042  *out = ((*in)) >> (26 - 14);
8043  ++in;
8044  *out |= ((*in)) << 14;
8045  ++out;
8046  *out = ((*in)) >> (26 - 8);
8047  ++in;
8048  *out |= ((*in)) << 8;
8049  ++out;
8050  *out = ((*in)) >> (26 - 2);
8051  ++in;
8052  *out |= ((*in)) << 2;
8053  ++in;
8054  *out |= ((*in)) << 28;
8055  ++out;
8056  *out = ((*in)) >> (26 - 22);
8057  ++in;
8058  *out |= ((*in)) << 22;
8059  ++out;
8060  *out = ((*in)) >> (26 - 16);
8061  ++in;
8062  *out |= ((*in)) << 16;
8063  ++out;
8064  *out = ((*in)) >> (26 - 10);
8065  ++in;
8066  *out |= ((*in)) << 10;
8067  ++out;
8068  *out = ((*in)) >> (26 - 4);
8069  ++in;
8070  *out |= ((*in)) << 4;
8071  ++in;
8072  *out |= ((*in)) << 30;
8073  ++out;
8074  *out = ((*in)) >> (26 - 24);
8075  ++in;
8076  *out |= ((*in)) << 24;
8077  ++out;
8078  *out = ((*in)) >> (26 - 18);
8079  ++in;
8080  *out |= ((*in)) << 18;
8081  ++out;
8082  *out = ((*in)) >> (26 - 12);
8083  ++in;
8084  *out |= ((*in)) << 12;
8085  ++out;
8086  *out = ((*in)) >> (26 - 6);
8087  ++in;
8088  *out |= ((*in)) << 6;
8089 }
8090 
8091 /*assumes that integers fit in the prescribed number of bits */
8092 void __fastpackwithoutmask27(const uint32_t * in,
8093  uint32_t * out) {
8094  *out = (*in);
8095  ++in;
8096  *out |= ((*in)) << 27;
8097  ++out;
8098  *out = ((*in)) >> (27 - 22);
8099  ++in;
8100  *out |= ((*in)) << 22;
8101  ++out;
8102  *out = ((*in)) >> (27 - 17);
8103  ++in;
8104  *out |= ((*in)) << 17;
8105  ++out;
8106  *out = ((*in)) >> (27 - 12);
8107  ++in;
8108  *out |= ((*in)) << 12;
8109  ++out;
8110  *out = ((*in)) >> (27 - 7);
8111  ++in;
8112  *out |= ((*in)) << 7;
8113  ++out;
8114  *out = ((*in)) >> (27 - 2);
8115  ++in;
8116  *out |= ((*in)) << 2;
8117  ++in;
8118  *out |= ((*in)) << 29;
8119  ++out;
8120  *out = ((*in)) >> (27 - 24);
8121  ++in;
8122  *out |= ((*in)) << 24;
8123  ++out;
8124  *out = ((*in)) >> (27 - 19);
8125  ++in;
8126  *out |= ((*in)) << 19;
8127  ++out;
8128  *out = ((*in)) >> (27 - 14);
8129  ++in;
8130  *out |= ((*in)) << 14;
8131  ++out;
8132  *out = ((*in)) >> (27 - 9);
8133  ++in;
8134  *out |= ((*in)) << 9;
8135  ++out;
8136  *out = ((*in)) >> (27 - 4);
8137  ++in;
8138  *out |= ((*in)) << 4;
8139  ++in;
8140  *out |= ((*in)) << 31;
8141  ++out;
8142  *out = ((*in)) >> (27 - 26);
8143  ++in;
8144  *out |= ((*in)) << 26;
8145  ++out;
8146  *out = ((*in)) >> (27 - 21);
8147  ++in;
8148  *out |= ((*in)) << 21;
8149  ++out;
8150  *out = ((*in)) >> (27 - 16);
8151  ++in;
8152  *out |= ((*in)) << 16;
8153  ++out;
8154  *out = ((*in)) >> (27 - 11);
8155  ++in;
8156  *out |= ((*in)) << 11;
8157  ++out;
8158  *out = ((*in)) >> (27 - 6);
8159  ++in;
8160  *out |= ((*in)) << 6;
8161  ++out;
8162  *out = ((*in)) >> (27 - 1);
8163  ++in;
8164  *out |= ((*in)) << 1;
8165  ++in;
8166  *out |= ((*in)) << 28;
8167  ++out;
8168  *out = ((*in)) >> (27 - 23);
8169  ++in;
8170  *out |= ((*in)) << 23;
8171  ++out;
8172  *out = ((*in)) >> (27 - 18);
8173  ++in;
8174  *out |= ((*in)) << 18;
8175  ++out;
8176  *out = ((*in)) >> (27 - 13);
8177  ++in;
8178  *out |= ((*in)) << 13;
8179  ++out;
8180  *out = ((*in)) >> (27 - 8);
8181  ++in;
8182  *out |= ((*in)) << 8;
8183  ++out;
8184  *out = ((*in)) >> (27 - 3);
8185  ++in;
8186  *out |= ((*in)) << 3;
8187  ++in;
8188  *out |= ((*in)) << 30;
8189  ++out;
8190  *out = ((*in)) >> (27 - 25);
8191  ++in;
8192  *out |= ((*in)) << 25;
8193  ++out;
8194  *out = ((*in)) >> (27 - 20);
8195  ++in;
8196  *out |= ((*in)) << 20;
8197  ++out;
8198  *out = ((*in)) >> (27 - 15);
8199  ++in;
8200  *out |= ((*in)) << 15;
8201  ++out;
8202  *out = ((*in)) >> (27 - 10);
8203  ++in;
8204  *out |= ((*in)) << 10;
8205  ++out;
8206  *out = ((*in)) >> (27 - 5);
8207  ++in;
8208  *out |= ((*in)) << 5;
8209 }
8210 
8211 /*assumes that integers fit in the prescribed number of bits */
8212 void __fastpackwithoutmask28(const uint32_t * in,
8213  uint32_t * out) {
8214  *out = (*in);
8215  ++in;
8216  *out |= ((*in)) << 28;
8217  ++out;
8218  *out = ((*in)) >> (28 - 24);
8219  ++in;
8220  *out |= ((*in)) << 24;
8221  ++out;
8222  *out = ((*in)) >> (28 - 20);
8223  ++in;
8224  *out |= ((*in)) << 20;
8225  ++out;
8226  *out = ((*in)) >> (28 - 16);
8227  ++in;
8228  *out |= ((*in)) << 16;
8229  ++out;
8230  *out = ((*in)) >> (28 - 12);
8231  ++in;
8232  *out |= ((*in)) << 12;
8233  ++out;
8234  *out = ((*in)) >> (28 - 8);
8235  ++in;
8236  *out |= ((*in)) << 8;
8237  ++out;
8238  *out = ((*in)) >> (28 - 4);
8239  ++in;
8240  *out |= ((*in)) << 4;
8241  ++out;
8242  ++in;
8243  *out = (*in);
8244  ++in;
8245  *out |= ((*in)) << 28;
8246  ++out;
8247  *out = ((*in)) >> (28 - 24);
8248  ++in;
8249  *out |= ((*in)) << 24;
8250  ++out;
8251  *out = ((*in)) >> (28 - 20);
8252  ++in;
8253  *out |= ((*in)) << 20;
8254  ++out;
8255  *out = ((*in)) >> (28 - 16);
8256  ++in;
8257  *out |= ((*in)) << 16;
8258  ++out;
8259  *out = ((*in)) >> (28 - 12);
8260  ++in;
8261  *out |= ((*in)) << 12;
8262  ++out;
8263  *out = ((*in)) >> (28 - 8);
8264  ++in;
8265  *out |= ((*in)) << 8;
8266  ++out;
8267  *out = ((*in)) >> (28 - 4);
8268  ++in;
8269  *out |= ((*in)) << 4;
8270  ++out;
8271  ++in;
8272  *out = (*in);
8273  ++in;
8274  *out |= ((*in)) << 28;
8275  ++out;
8276  *out = ((*in)) >> (28 - 24);
8277  ++in;
8278  *out |= ((*in)) << 24;
8279  ++out;
8280  *out = ((*in)) >> (28 - 20);
8281  ++in;
8282  *out |= ((*in)) << 20;
8283  ++out;
8284  *out = ((*in)) >> (28 - 16);
8285  ++in;
8286  *out |= ((*in)) << 16;
8287  ++out;
8288  *out = ((*in)) >> (28 - 12);
8289  ++in;
8290  *out |= ((*in)) << 12;
8291  ++out;
8292  *out = ((*in)) >> (28 - 8);
8293  ++in;
8294  *out |= ((*in)) << 8;
8295  ++out;
8296  *out = ((*in)) >> (28 - 4);
8297  ++in;
8298  *out |= ((*in)) << 4;
8299  ++out;
8300  ++in;
8301  *out = (*in);
8302  ++in;
8303  *out |= ((*in)) << 28;
8304  ++out;
8305  *out = ((*in)) >> (28 - 24);
8306  ++in;
8307  *out |= ((*in)) << 24;
8308  ++out;
8309  *out = ((*in)) >> (28 - 20);
8310  ++in;
8311  *out |= ((*in)) << 20;
8312  ++out;
8313  *out = ((*in)) >> (28 - 16);
8314  ++in;
8315  *out |= ((*in)) << 16;
8316  ++out;
8317  *out = ((*in)) >> (28 - 12);
8318  ++in;
8319  *out |= ((*in)) << 12;
8320  ++out;
8321  *out = ((*in)) >> (28 - 8);
8322  ++in;
8323  *out |= ((*in)) << 8;
8324  ++out;
8325  *out = ((*in)) >> (28 - 4);
8326  ++in;
8327  *out |= ((*in)) << 4;
8328 }
8329 
8330 /*assumes that integers fit in the prescribed number of bits */
8331 void __fastpackwithoutmask29(const uint32_t * in,
8332  uint32_t * out) {
8333  *out = (*in);
8334  ++in;
8335  *out |= ((*in)) << 29;
8336  ++out;
8337  *out = ((*in)) >> (29 - 26);
8338  ++in;
8339  *out |= ((*in)) << 26;
8340  ++out;
8341  *out = ((*in)) >> (29 - 23);
8342  ++in;
8343  *out |= ((*in)) << 23;
8344  ++out;
8345  *out = ((*in)) >> (29 - 20);
8346  ++in;
8347  *out |= ((*in)) << 20;
8348  ++out;
8349  *out = ((*in)) >> (29 - 17);
8350  ++in;
8351  *out |= ((*in)) << 17;
8352  ++out;
8353  *out = ((*in)) >> (29 - 14);
8354  ++in;
8355  *out |= ((*in)) << 14;
8356  ++out;
8357  *out = ((*in)) >> (29 - 11);
8358  ++in;
8359  *out |= ((*in)) << 11;
8360  ++out;
8361  *out = ((*in)) >> (29 - 8);
8362  ++in;
8363  *out |= ((*in)) << 8;
8364  ++out;
8365  *out = ((*in)) >> (29 - 5);
8366  ++in;
8367  *out |= ((*in)) << 5;
8368  ++out;
8369  *out = ((*in)) >> (29 - 2);
8370  ++in;
8371  *out |= ((*in)) << 2;
8372  ++in;
8373  *out |= ((*in)) << 31;
8374  ++out;
8375  *out = ((*in)) >> (29 - 28);
8376  ++in;
8377  *out |= ((*in)) << 28;
8378  ++out;
8379  *out = ((*in)) >> (29 - 25);
8380  ++in;
8381  *out |= ((*in)) << 25;
8382  ++out;
8383  *out = ((*in)) >> (29 - 22);
8384  ++in;
8385  *out |= ((*in)) << 22;
8386  ++out;
8387  *out = ((*in)) >> (29 - 19);
8388  ++in;
8389  *out |= ((*in)) << 19;
8390  ++out;
8391  *out = ((*in)) >> (29 - 16);
8392  ++in;
8393  *out |= ((*in)) << 16;
8394  ++out;
8395  *out = ((*in)) >> (29 - 13);
8396  ++in;
8397  *out |= ((*in)) << 13;
8398  ++out;
8399  *out = ((*in)) >> (29 - 10);
8400  ++in;
8401  *out |= ((*in)) << 10;
8402  ++out;
8403  *out = ((*in)) >> (29 - 7);
8404  ++in;
8405  *out |= ((*in)) << 7;
8406  ++out;
8407  *out = ((*in)) >> (29 - 4);
8408  ++in;
8409  *out |= ((*in)) << 4;
8410  ++out;
8411  *out = ((*in)) >> (29 - 1);
8412  ++in;
8413  *out |= ((*in)) << 1;
8414  ++in;
8415  *out |= ((*in)) << 30;
8416  ++out;
8417  *out = ((*in)) >> (29 - 27);
8418  ++in;
8419  *out |= ((*in)) << 27;
8420  ++out;
8421  *out = ((*in)) >> (29 - 24);
8422  ++in;
8423  *out |= ((*in)) << 24;
8424  ++out;
8425  *out = ((*in)) >> (29 - 21);
8426  ++in;
8427  *out |= ((*in)) << 21;
8428  ++out;
8429  *out = ((*in)) >> (29 - 18);
8430  ++in;
8431  *out |= ((*in)) << 18;
8432  ++out;
8433  *out = ((*in)) >> (29 - 15);
8434  ++in;
8435  *out |= ((*in)) << 15;
8436  ++out;
8437  *out = ((*in)) >> (29 - 12);
8438  ++in;
8439  *out |= ((*in)) << 12;
8440  ++out;
8441  *out = ((*in)) >> (29 - 9);
8442  ++in;
8443  *out |= ((*in)) << 9;
8444  ++out;
8445  *out = ((*in)) >> (29 - 6);
8446  ++in;
8447  *out |= ((*in)) << 6;
8448  ++out;
8449  *out = ((*in)) >> (29 - 3);
8450  ++in;
8451  *out |= ((*in)) << 3;
8452 }
8453 
8454 /*assumes that integers fit in the prescribed number of bits */
8455 void __fastpackwithoutmask30(const uint32_t * in,
8456  uint32_t * out) {
8457  *out = (*in);
8458  ++in;
8459  *out |= ((*in)) << 30;
8460  ++out;
8461  *out = ((*in)) >> (30 - 28);
8462  ++in;
8463  *out |= ((*in)) << 28;
8464  ++out;
8465  *out = ((*in)) >> (30 - 26);
8466  ++in;
8467  *out |= ((*in)) << 26;
8468  ++out;
8469  *out = ((*in)) >> (30 - 24);
8470  ++in;
8471  *out |= ((*in)) << 24;
8472  ++out;
8473  *out = ((*in)) >> (30 - 22);
8474  ++in;
8475  *out |= ((*in)) << 22;
8476  ++out;
8477  *out = ((*in)) >> (30 - 20);
8478  ++in;
8479  *out |= ((*in)) << 20;
8480  ++out;
8481  *out = ((*in)) >> (30 - 18);
8482  ++in;
8483  *out |= ((*in)) << 18;
8484  ++out;
8485  *out = ((*in)) >> (30 - 16);
8486  ++in;
8487  *out |= ((*in)) << 16;
8488  ++out;
8489  *out = ((*in)) >> (30 - 14);
8490  ++in;
8491  *out |= ((*in)) << 14;
8492  ++out;
8493  *out = ((*in)) >> (30 - 12);
8494  ++in;
8495  *out |= ((*in)) << 12;
8496  ++out;
8497  *out = ((*in)) >> (30 - 10);
8498  ++in;
8499  *out |= ((*in)) << 10;
8500  ++out;
8501  *out = ((*in)) >> (30 - 8);
8502  ++in;
8503  *out |= ((*in)) << 8;
8504  ++out;
8505  *out = ((*in)) >> (30 - 6);
8506  ++in;
8507  *out |= ((*in)) << 6;
8508  ++out;
8509  *out = ((*in)) >> (30 - 4);
8510  ++in;
8511  *out |= ((*in)) << 4;
8512  ++out;
8513  *out = ((*in)) >> (30 - 2);
8514  ++in;
8515  *out |= ((*in)) << 2;
8516  ++out;
8517  ++in;
8518  *out = (*in);
8519  ++in;
8520  *out |= ((*in)) << 30;
8521  ++out;
8522  *out = ((*in)) >> (30 - 28);
8523  ++in;
8524  *out |= ((*in)) << 28;
8525  ++out;
8526  *out = ((*in)) >> (30 - 26);
8527  ++in;
8528  *out |= ((*in)) << 26;
8529  ++out;
8530  *out = ((*in)) >> (30 - 24);
8531  ++in;
8532  *out |= ((*in)) << 24;
8533  ++out;
8534  *out = ((*in)) >> (30 - 22);
8535  ++in;
8536  *out |= ((*in)) << 22;
8537  ++out;
8538  *out = ((*in)) >> (30 - 20);
8539  ++in;
8540  *out |= ((*in)) << 20;
8541  ++out;
8542  *out = ((*in)) >> (30 - 18);
8543  ++in;
8544  *out |= ((*in)) << 18;
8545  ++out;
8546  *out = ((*in)) >> (30 - 16);
8547  ++in;
8548  *out |= ((*in)) << 16;
8549  ++out;
8550  *out = ((*in)) >> (30 - 14);
8551  ++in;
8552  *out |= ((*in)) << 14;
8553  ++out;
8554  *out = ((*in)) >> (30 - 12);
8555  ++in;
8556  *out |= ((*in)) << 12;
8557  ++out;
8558  *out = ((*in)) >> (30 - 10);
8559  ++in;
8560  *out |= ((*in)) << 10;
8561  ++out;
8562  *out = ((*in)) >> (30 - 8);
8563  ++in;
8564  *out |= ((*in)) << 8;
8565  ++out;
8566  *out = ((*in)) >> (30 - 6);
8567  ++in;
8568  *out |= ((*in)) << 6;
8569  ++out;
8570  *out = ((*in)) >> (30 - 4);
8571  ++in;
8572  *out |= ((*in)) << 4;
8573  ++out;
8574  *out = ((*in)) >> (30 - 2);
8575  ++in;
8576  *out |= ((*in)) << 2;
8577 }
8578 
8579 /*assumes that integers fit in the prescribed number of bits */
8580 void __fastpackwithoutmask31(const uint32_t * in,
8581  uint32_t * out) {
8582  *out = (*in);
8583  ++in;
8584  *out |= ((*in)) << 31;
8585  ++out;
8586  *out = ((*in)) >> (31 - 30);
8587  ++in;
8588  *out |= ((*in)) << 30;
8589  ++out;
8590  *out = ((*in)) >> (31 - 29);
8591  ++in;
8592  *out |= ((*in)) << 29;
8593  ++out;
8594  *out = ((*in)) >> (31 - 28);
8595  ++in;
8596  *out |= ((*in)) << 28;
8597  ++out;
8598  *out = ((*in)) >> (31 - 27);
8599  ++in;
8600  *out |= ((*in)) << 27;
8601  ++out;
8602  *out = ((*in)) >> (31 - 26);
8603  ++in;
8604  *out |= ((*in)) << 26;
8605  ++out;
8606  *out = ((*in)) >> (31 - 25);
8607  ++in;
8608  *out |= ((*in)) << 25;
8609  ++out;
8610  *out = ((*in)) >> (31 - 24);
8611  ++in;
8612  *out |= ((*in)) << 24;
8613  ++out;
8614  *out = ((*in)) >> (31 - 23);
8615  ++in;
8616  *out |= ((*in)) << 23;
8617  ++out;
8618  *out = ((*in)) >> (31 - 22);
8619  ++in;
8620  *out |= ((*in)) << 22;
8621  ++out;
8622  *out = ((*in)) >> (31 - 21);
8623  ++in;
8624  *out |= ((*in)) << 21;
8625  ++out;
8626  *out = ((*in)) >> (31 - 20);
8627  ++in;
8628  *out |= ((*in)) << 20;
8629  ++out;
8630  *out = ((*in)) >> (31 - 19);
8631  ++in;
8632  *out |= ((*in)) << 19;
8633  ++out;
8634  *out = ((*in)) >> (31 - 18);
8635  ++in;
8636  *out |= ((*in)) << 18;
8637  ++out;
8638  *out = ((*in)) >> (31 - 17);
8639  ++in;
8640  *out |= ((*in)) << 17;
8641  ++out;
8642  *out = ((*in)) >> (31 - 16);
8643  ++in;
8644  *out |= ((*in)) << 16;
8645  ++out;
8646  *out = ((*in)) >> (31 - 15);
8647  ++in;
8648  *out |= ((*in)) << 15;
8649  ++out;
8650  *out = ((*in)) >> (31 - 14);
8651  ++in;
8652  *out |= ((*in)) << 14;
8653  ++out;
8654  *out = ((*in)) >> (31 - 13);
8655  ++in;
8656  *out |= ((*in)) << 13;
8657  ++out;
8658  *out = ((*in)) >> (31 - 12);
8659  ++in;
8660  *out |= ((*in)) << 12;
8661  ++out;
8662  *out = ((*in)) >> (31 - 11);
8663  ++in;
8664  *out |= ((*in)) << 11;
8665  ++out;
8666  *out = ((*in)) >> (31 - 10);
8667  ++in;
8668  *out |= ((*in)) << 10;
8669  ++out;
8670  *out = ((*in)) >> (31 - 9);
8671  ++in;
8672  *out |= ((*in)) << 9;
8673  ++out;
8674  *out = ((*in)) >> (31 - 8);
8675  ++in;
8676  *out |= ((*in)) << 8;
8677  ++out;
8678  *out = ((*in)) >> (31 - 7);
8679  ++in;
8680  *out |= ((*in)) << 7;
8681  ++out;
8682  *out = ((*in)) >> (31 - 6);
8683  ++in;
8684  *out |= ((*in)) << 6;
8685  ++out;
8686  *out = ((*in)) >> (31 - 5);
8687  ++in;
8688  *out |= ((*in)) << 5;
8689  ++out;
8690  *out = ((*in)) >> (31 - 4);
8691  ++in;
8692  *out |= ((*in)) << 4;
8693  ++out;
8694  *out = ((*in)) >> (31 - 3);
8695  ++in;
8696  *out |= ((*in)) << 3;
8697  ++out;
8698  *out = ((*in)) >> (31 - 2);
8699  ++in;
8700  *out |= ((*in)) << 2;
8701  ++out;
8702  *out = ((*in)) >> (31 - 1);
8703  ++in;
8704  *out |= ((*in)) << 1;
8705 }
8706 
8707 void fastunpack(const uint32_t * in, uint32_t * out,
8708  const uint32_t bit) {
8709  // Could have used function pointers instead of switch.
8710  // Switch calls do offer the compiler more opportunities for optimization in
8711  // theory. In this case, it makes no difference with a good compiler.
8712  switch (bit) {
8713  case 0:
8714  __fastunpack0(in, out);
8715  break;
8716  case 1:
8717  __fastunpack1(in, out);
8718  break;
8719  case 2:
8720  __fastunpack2(in, out);
8721  break;
8722  case 3:
8723  __fastunpack3(in, out);
8724  break;
8725  case 4:
8726  __fastunpack4(in, out);
8727  break;
8728  case 5:
8729  __fastunpack5(in, out);
8730  break;
8731  case 6:
8732  __fastunpack6(in, out);
8733  break;
8734  case 7:
8735  __fastunpack7(in, out);
8736  break;
8737  case 8:
8738  __fastunpack8(in, out);
8739  break;
8740  case 9:
8741  __fastunpack9(in, out);
8742  break;
8743  case 10:
8744  __fastunpack10(in, out);
8745  break;
8746  case 11:
8747  __fastunpack11(in, out);
8748  break;
8749  case 12:
8750  __fastunpack12(in, out);
8751  break;
8752  case 13:
8753  __fastunpack13(in, out);
8754  break;
8755  case 14:
8756  __fastunpack14(in, out);
8757  break;
8758  case 15:
8759  __fastunpack15(in, out);
8760  break;
8761  case 16:
8762  __fastunpack16(in, out);
8763  break;
8764  case 17:
8765  __fastunpack17(in, out);
8766  break;
8767  case 18:
8768  __fastunpack18(in, out);
8769  break;
8770  case 19:
8771  __fastunpack19(in, out);
8772  break;
8773  case 20:
8774  __fastunpack20(in, out);
8775  break;
8776  case 21:
8777  __fastunpack21(in, out);
8778  break;
8779  case 22:
8780  __fastunpack22(in, out);
8781  break;
8782  case 23:
8783  __fastunpack23(in, out);
8784  break;
8785  case 24:
8786  __fastunpack24(in, out);
8787  break;
8788  case 25:
8789  __fastunpack25(in, out);
8790  break;
8791  case 26:
8792  __fastunpack26(in, out);
8793  break;
8794  case 27:
8795  __fastunpack27(in, out);
8796  break;
8797  case 28:
8798  __fastunpack28(in, out);
8799  break;
8800  case 29:
8801  __fastunpack29(in, out);
8802  break;
8803  case 30:
8804  __fastunpack30(in, out);
8805  break;
8806  case 31:
8807  __fastunpack31(in, out);
8808  break;
8809  case 32:
8810  __fastunpack32(in, out);
8811  break;
8812  default:
8813  break;
8814  }
8815 }
8816 
8817 void fastpack(const uint32_t * in, uint32_t * out,
8818  const uint32_t bit) {
8819  // Could have used function pointers instead of switch.
8820  // Switch calls do offer the compiler more opportunities for optimization in
8821  // theory. In this case, it makes no difference with a good compiler.
8822  switch (bit) {
8823  case 0:
8824  __fastpack0(in, out);
8825  break;
8826  case 1:
8827  __fastpack1(in, out);
8828  break;
8829  case 2:
8830  __fastpack2(in, out);
8831  break;
8832  case 3:
8833  __fastpack3(in, out);
8834  break;
8835  case 4:
8836  __fastpack4(in, out);
8837  break;
8838  case 5:
8839  __fastpack5(in, out);
8840  break;
8841  case 6:
8842  __fastpack6(in, out);
8843  break;
8844  case 7:
8845  __fastpack7(in, out);
8846  break;
8847  case 8:
8848  __fastpack8(in, out);
8849  break;
8850  case 9:
8851  __fastpack9(in, out);
8852  break;
8853  case 10:
8854  __fastpack10(in, out);
8855  break;
8856  case 11:
8857  __fastpack11(in, out);
8858  break;
8859  case 12:
8860  __fastpack12(in, out);
8861  break;
8862  case 13:
8863  __fastpack13(in, out);
8864  break;
8865  case 14:
8866  __fastpack14(in, out);
8867  break;
8868  case 15:
8869  __fastpack15(in, out);
8870  break;
8871  case 16:
8872  __fastpack16(in, out);
8873  break;
8874  case 17:
8875  __fastpack17(in, out);
8876  break;
8877  case 18:
8878  __fastpack18(in, out);
8879  break;
8880  case 19:
8881  __fastpack19(in, out);
8882  break;
8883  case 20:
8884  __fastpack20(in, out);
8885  break;
8886  case 21:
8887  __fastpack21(in, out);
8888  break;
8889  case 22:
8890  __fastpack22(in, out);
8891  break;
8892  case 23:
8893  __fastpack23(in, out);
8894  break;
8895  case 24:
8896  __fastpack24(in, out);
8897  break;
8898  case 25:
8899  __fastpack25(in, out);
8900  break;
8901  case 26:
8902  __fastpack26(in, out);
8903  break;
8904  case 27:
8905  __fastpack27(in, out);
8906  break;
8907  case 28:
8908  __fastpack28(in, out);
8909  break;
8910  case 29:
8911  __fastpack29(in, out);
8912  break;
8913  case 30:
8914  __fastpack30(in, out);
8915  break;
8916  case 31:
8917  __fastpack31(in, out);
8918  break;
8919  case 32:
8920  __fastpack32(in, out);
8921  break;
8922  default:
8923  break;
8924  }
8925 }
8926 
8927 /*assumes that integers fit in the prescribed number of bits*/
8928 void fastpackwithoutmask(const uint32_t * in,
8929  uint32_t * out, const uint32_t bit) {
8930  // Could have used function pointers instead of switch.
8931  // Switch calls do offer the compiler more opportunities for optimization in
8932  // theory. In this case, it makes no difference with a good compiler.
8933  switch (bit) {
8934  case 0:
8935  __fastpackwithoutmask0(in, out);
8936  break;
8937  case 1:
8938  __fastpackwithoutmask1(in, out);
8939  break;
8940  case 2:
8941  __fastpackwithoutmask2(in, out);
8942  break;
8943  case 3:
8944  __fastpackwithoutmask3(in, out);
8945  break;
8946  case 4:
8947  __fastpackwithoutmask4(in, out);
8948  break;
8949  case 5:
8950  __fastpackwithoutmask5(in, out);
8951  break;
8952  case 6:
8953  __fastpackwithoutmask6(in, out);
8954  break;
8955  case 7:
8956  __fastpackwithoutmask7(in, out);
8957  break;
8958  case 8:
8959  __fastpackwithoutmask8(in, out);
8960  break;
8961  case 9:
8962  __fastpackwithoutmask9(in, out);
8963  break;
8964  case 10:
8965  __fastpackwithoutmask10(in, out);
8966  break;
8967  case 11:
8968  __fastpackwithoutmask11(in, out);
8969  break;
8970  case 12:
8971  __fastpackwithoutmask12(in, out);
8972  break;
8973  case 13:
8974  __fastpackwithoutmask13(in, out);
8975  break;
8976  case 14:
8977  __fastpackwithoutmask14(in, out);
8978  break;
8979  case 15:
8980  __fastpackwithoutmask15(in, out);
8981  break;
8982  case 16:
8983  __fastpackwithoutmask16(in, out);
8984  break;
8985  case 17:
8986  __fastpackwithoutmask17(in, out);
8987  break;
8988  case 18:
8989  __fastpackwithoutmask18(in, out);
8990  break;
8991  case 19:
8992  __fastpackwithoutmask19(in, out);
8993  break;
8994  case 20:
8995  __fastpackwithoutmask20(in, out);
8996  break;
8997  case 21:
8998  __fastpackwithoutmask21(in, out);
8999  break;
9000  case 22:
9001  __fastpackwithoutmask22(in, out);
9002  break;
9003  case 23:
9004  __fastpackwithoutmask23(in, out);
9005  break;
9006  case 24:
9007  __fastpackwithoutmask24(in, out);
9008  break;
9009  case 25:
9010  __fastpackwithoutmask25(in, out);
9011  break;
9012  case 26:
9013  __fastpackwithoutmask26(in, out);
9014  break;
9015  case 27:
9016  __fastpackwithoutmask27(in, out);
9017  break;
9018  case 28:
9019  __fastpackwithoutmask28(in, out);
9020  break;
9021  case 29:
9022  __fastpackwithoutmask29(in, out);
9023  break;
9024  case 30:
9025  __fastpackwithoutmask30(in, out);
9026  break;
9027  case 31:
9028  __fastpackwithoutmask31(in, out);
9029  break;
9030  case 32:
9031  __fastpackwithoutmask32(in, out);
9032  break;
9033  default:
9034  break;
9035  }
9036 }
9037 
9038 void __host__ __device__ __integratedfastunpack0(const uint32_t initoffset,
9039  const uint32_t *__restrict__,
9040  uint32_t *__restrict__ out) {
9041  for (uint32_t i = 0; i < 32; ++i)
9042  *(out++) = initoffset;
9043 }
9044 
9045 void __integratedfastpack0(const uint32_t, const uint32_t *,
9046  uint32_t *) {}
9047 
9048 void __device__ __host__ __integratedfastunpack32(const uint32_t, const uint32_t * in,
9049  uint32_t * out) {
9050  for (int k = 0; k < 32; ++k)
9051  out[k] = in[k]; // no sense in wasting time with deltas
9052 }
9053 
9054 void __integratedfastpack32(const uint32_t, const uint32_t * in,
9055  uint32_t * out) {
9056  for (int k = 0; k < 32; ++k)
9057  out[k] = in[k]; // no sense in wasting time with deltas
9058 }
9059 
9060 void __device__ __host__ __integratedfastunpack2(const uint32_t initoffset,
9061  const uint32_t * in,
9062  uint32_t * out) {
9063  *out = (*in >> 0) % (1U << 2);
9064  *out += initoffset; // integrated delta decoding
9065  out++;
9066  *out = (*in >> 2) % (1U << 2);
9067  *out += out[-1]; // integrated delta decoding
9068  out++;
9069  *out = (*in >> 4) % (1U << 2);
9070  *out += out[-1]; // integrated delta decoding
9071  out++;
9072  *out = (*in >> 6) % (1U << 2);
9073  *out += out[-1]; // integrated delta decoding
9074  out++;
9075  *out = (*in >> 8) % (1U << 2);
9076  *out += out[-1]; // integrated delta decoding
9077  out++;
9078  *out = (*in >> 10) % (1U << 2);
9079  *out += out[-1]; // integrated delta decoding
9080  out++;
9081  *out = (*in >> 12) % (1U << 2);
9082  *out += out[-1]; // integrated delta decoding
9083  out++;
9084  *out = (*in >> 14) % (1U << 2);
9085  *out += out[-1]; // integrated delta decoding
9086  out++;
9087  *out = (*in >> 16) % (1U << 2);
9088  *out += out[-1]; // integrated delta decoding
9089  out++;
9090  *out = (*in >> 18) % (1U << 2);
9091  *out += out[-1]; // integrated delta decoding
9092  out++;
9093  *out = (*in >> 20) % (1U << 2);
9094  *out += out[-1]; // integrated delta decoding
9095  out++;
9096  *out = (*in >> 22) % (1U << 2);
9097  *out += out[-1]; // integrated delta decoding
9098  out++;
9099  *out = (*in >> 24) % (1U << 2);
9100  *out += out[-1]; // integrated delta decoding
9101  out++;
9102  *out = (*in >> 26) % (1U << 2);
9103  *out += out[-1]; // integrated delta decoding
9104  out++;
9105  *out = (*in >> 28) % (1U << 2);
9106  *out += out[-1]; // integrated delta decoding
9107  out++;
9108  *out = (*in >> 30);
9109  ++in;
9110  *out += out[-1]; // integrated delta decoding
9111  out++;
9112  *out = (*in >> 0) % (1U << 2);
9113  *out += out[-1]; // integrated delta decoding
9114  out++;
9115  *out = (*in >> 2) % (1U << 2);
9116  *out += out[-1]; // integrated delta decoding
9117  out++;
9118  *out = (*in >> 4) % (1U << 2);
9119  *out += out[-1]; // integrated delta decoding
9120  out++;
9121  *out = (*in >> 6) % (1U << 2);
9122  *out += out[-1]; // integrated delta decoding
9123  out++;
9124  *out = (*in >> 8) % (1U << 2);
9125  *out += out[-1]; // integrated delta decoding
9126  out++;
9127  *out = (*in >> 10) % (1U << 2);
9128  *out += out[-1]; // integrated delta decoding
9129  out++;
9130  *out = (*in >> 12) % (1U << 2);
9131  *out += out[-1]; // integrated delta decoding
9132  out++;
9133  *out = (*in >> 14) % (1U << 2);
9134  *out += out[-1]; // integrated delta decoding
9135  out++;
9136  *out = (*in >> 16) % (1U << 2);
9137  *out += out[-1]; // integrated delta decoding
9138  out++;
9139  *out = (*in >> 18) % (1U << 2);
9140  *out += out[-1]; // integrated delta decoding
9141  out++;
9142  *out = (*in >> 20) % (1U << 2);
9143  *out += out[-1]; // integrated delta decoding
9144  out++;
9145  *out = (*in >> 22) % (1U << 2);
9146  *out += out[-1]; // integrated delta decoding
9147  out++;
9148  *out = (*in >> 24) % (1U << 2);
9149  *out += out[-1]; // integrated delta decoding
9150  out++;
9151  *out = (*in >> 26) % (1U << 2);
9152  *out += out[-1]; // integrated delta decoding
9153  out++;
9154  *out = (*in >> 28) % (1U << 2);
9155  *out += out[-1]; // integrated delta decoding
9156  out++;
9157  *out = (*in >> 30);
9158  *out += out[-1]; // integrated delta decoding
9159 }
9160 
9161 void __device__ __host__ __integratedfastunpack3(const uint32_t initoffset,
9162  const uint32_t * in,
9163  uint32_t * out) {
9164  *out = (*in >> 0) % (1U << 3);
9165  *out += initoffset; // integrated delta decoding
9166  out++;
9167  *out = (*in >> 3) % (1U << 3);
9168  *out += out[-1]; // integrated delta decoding
9169  out++;
9170  *out = (*in >> 6) % (1U << 3);
9171  *out += out[-1]; // integrated delta decoding
9172  out++;
9173  *out = (*in >> 9) % (1U << 3);
9174  *out += out[-1]; // integrated delta decoding
9175  out++;
9176  *out = (*in >> 12) % (1U << 3);
9177  *out += out[-1]; // integrated delta decoding
9178  out++;
9179  *out = (*in >> 15) % (1U << 3);
9180  *out += out[-1]; // integrated delta decoding
9181  out++;
9182  *out = (*in >> 18) % (1U << 3);
9183  *out += out[-1]; // integrated delta decoding
9184  out++;
9185  *out = (*in >> 21) % (1U << 3);
9186  *out += out[-1]; // integrated delta decoding
9187  out++;
9188  *out = (*in >> 24) % (1U << 3);
9189  *out += out[-1]; // integrated delta decoding
9190  out++;
9191  *out = (*in >> 27) % (1U << 3);
9192  *out += out[-1]; // integrated delta decoding
9193  out++;
9194  *out = (*in >> 30);
9195  ++in;
9196  *out |= (*in % (1U << 1)) << (3 - 1);
9197  *out += out[-1]; // integrated delta decoding
9198  out++;
9199  *out = (*in >> 1) % (1U << 3);
9200  *out += out[-1]; // integrated delta decoding
9201  out++;
9202  *out = (*in >> 4) % (1U << 3);
9203  *out += out[-1]; // integrated delta decoding
9204  out++;
9205  *out = (*in >> 7) % (1U << 3);
9206  *out += out[-1]; // integrated delta decoding
9207  out++;
9208  *out = (*in >> 10) % (1U << 3);
9209  *out += out[-1]; // integrated delta decoding
9210  out++;
9211  *out = (*in >> 13) % (1U << 3);
9212  *out += out[-1]; // integrated delta decoding
9213  out++;
9214  *out = (*in >> 16) % (1U << 3);
9215  *out += out[-1]; // integrated delta decoding
9216  out++;
9217  *out = (*in >> 19) % (1U << 3);
9218  *out += out[-1]; // integrated delta decoding
9219  out++;
9220  *out = (*in >> 22) % (1U << 3);
9221  *out += out[-1]; // integrated delta decoding
9222  out++;
9223  *out = (*in >> 25) % (1U << 3);
9224  *out += out[-1]; // integrated delta decoding
9225  out++;
9226  *out = (*in >> 28) % (1U << 3);
9227  *out += out[-1]; // integrated delta decoding
9228  out++;
9229  *out = (*in >> 31);
9230  ++in;
9231  *out |= (*in % (1U << 2)) << (3 - 2);
9232  *out += out[-1]; // integrated delta decoding
9233  out++;
9234  *out = (*in >> 2) % (1U << 3);
9235  *out += out[-1]; // integrated delta decoding
9236  out++;
9237  *out = (*in >> 5) % (1U << 3);
9238  *out += out[-1]; // integrated delta decoding
9239  out++;
9240  *out = (*in >> 8) % (1U << 3);
9241  *out += out[-1]; // integrated delta decoding
9242  out++;
9243  *out = (*in >> 11) % (1U << 3);
9244  *out += out[-1]; // integrated delta decoding
9245  out++;
9246  *out = (*in >> 14) % (1U << 3);
9247  *out += out[-1]; // integrated delta decoding
9248  out++;
9249  *out = (*in >> 17) % (1U << 3);
9250  *out += out[-1]; // integrated delta decoding
9251  out++;
9252  *out = (*in >> 20) % (1U << 3);
9253  *out += out[-1]; // integrated delta decoding
9254  out++;
9255  *out = (*in >> 23) % (1U << 3);
9256  *out += out[-1]; // integrated delta decoding
9257  out++;
9258  *out = (*in >> 26) % (1U << 3);
9259  *out += out[-1]; // integrated delta decoding
9260  out++;
9261  *out = (*in >> 29);
9262  *out += out[-1]; // integrated delta decoding
9263 }
9264 
9265 void __device__ __host__ __integratedfastunpack5(const uint32_t initoffset,
9266  const uint32_t * in,
9267  uint32_t * out) {
9268  *out = (*in >> 0) % (1U << 5);
9269  *out += initoffset; // integrated delta decoding
9270  out++;
9271  *out = (*in >> 5) % (1U << 5);
9272  *out += out[-1]; // integrated delta decoding
9273  out++;
9274  *out = (*in >> 10) % (1U << 5);
9275  *out += out[-1]; // integrated delta decoding
9276  out++;
9277  *out = (*in >> 15) % (1U << 5);
9278  *out += out[-1]; // integrated delta decoding
9279  out++;
9280  *out = (*in >> 20) % (1U << 5);
9281  *out += out[-1]; // integrated delta decoding
9282  out++;
9283  *out = (*in >> 25) % (1U << 5);
9284  *out += out[-1]; // integrated delta decoding
9285  out++;
9286  *out = (*in >> 30);
9287  ++in;
9288  *out |= (*in % (1U << 3)) << (5 - 3);
9289  *out += out[-1]; // integrated delta decoding
9290  out++;
9291  *out = (*in >> 3) % (1U << 5);
9292  *out += out[-1]; // integrated delta decoding
9293  out++;
9294  *out = (*in >> 8) % (1U << 5);
9295  *out += out[-1]; // integrated delta decoding
9296  out++;
9297  *out = (*in >> 13) % (1U << 5);
9298  *out += out[-1]; // integrated delta decoding
9299  out++;
9300  *out = (*in >> 18) % (1U << 5);
9301  *out += out[-1]; // integrated delta decoding
9302  out++;
9303  *out = (*in >> 23) % (1U << 5);
9304  *out += out[-1]; // integrated delta decoding
9305  out++;
9306  *out = (*in >> 28);
9307  ++in;
9308  *out |= (*in % (1U << 1)) << (5 - 1);
9309  *out += out[-1]; // integrated delta decoding
9310  out++;
9311  *out = (*in >> 1) % (1U << 5);
9312  *out += out[-1]; // integrated delta decoding
9313  out++;
9314  *out = (*in >> 6) % (1U << 5);
9315  *out += out[-1]; // integrated delta decoding
9316  out++;
9317  *out = (*in >> 11) % (1U << 5);
9318  *out += out[-1]; // integrated delta decoding
9319  out++;
9320  *out = (*in >> 16) % (1U << 5);
9321  *out += out[-1]; // integrated delta decoding
9322  out++;
9323  *out = (*in >> 21) % (1U << 5);
9324  *out += out[-1]; // integrated delta decoding
9325  out++;
9326  *out = (*in >> 26) % (1U << 5);
9327  *out += out[-1]; // integrated delta decoding
9328  out++;
9329  *out = (*in >> 31);
9330  ++in;
9331  *out |= (*in % (1U << 4)) << (5 - 4);
9332  *out += out[-1]; // integrated delta decoding
9333  out++;
9334  *out = (*in >> 4) % (1U << 5);
9335  *out += out[-1]; // integrated delta decoding
9336  out++;
9337  *out = (*in >> 9) % (1U << 5);
9338  *out += out[-1]; // integrated delta decoding
9339  out++;
9340  *out = (*in >> 14) % (1U << 5);
9341  *out += out[-1]; // integrated delta decoding
9342  out++;
9343  *out = (*in >> 19) % (1U << 5);
9344  *out += out[-1]; // integrated delta decoding
9345  out++;
9346  *out = (*in >> 24) % (1U << 5);
9347  *out += out[-1]; // integrated delta decoding
9348  out++;
9349  *out = (*in >> 29);
9350  ++in;
9351  *out |= (*in % (1U << 2)) << (5 - 2);
9352  *out += out[-1]; // integrated delta decoding
9353  out++;
9354  *out = (*in >> 2) % (1U << 5);
9355  *out += out[-1]; // integrated delta decoding
9356  out++;
9357  *out = (*in >> 7) % (1U << 5);
9358  *out += out[-1]; // integrated delta decoding
9359  out++;
9360  *out = (*in >> 12) % (1U << 5);
9361  *out += out[-1]; // integrated delta decoding
9362  out++;
9363  *out = (*in >> 17) % (1U << 5);
9364  *out += out[-1]; // integrated delta decoding
9365  out++;
9366  *out = (*in >> 22) % (1U << 5);
9367  *out += out[-1]; // integrated delta decoding
9368  out++;
9369  *out = (*in >> 27);
9370  *out += out[-1]; // integrated delta decoding
9371 }
9372 
9373 void __device__ __host__ __integratedfastunpack6(const uint32_t initoffset,
9374  const uint32_t * in,
9375  uint32_t * out) {
9376  *out = (*in >> 0) % (1U << 6);
9377  *out += initoffset; // integrated delta decoding
9378  out++;
9379  *out = (*in >> 6) % (1U << 6);
9380  *out += out[-1]; // integrated delta decoding
9381  out++;
9382  *out = (*in >> 12) % (1U << 6);
9383  *out += out[-1]; // integrated delta decoding
9384  out++;
9385  *out = (*in >> 18) % (1U << 6);
9386  *out += out[-1]; // integrated delta decoding
9387  out++;
9388  *out = (*in >> 24) % (1U << 6);
9389  *out += out[-1]; // integrated delta decoding
9390  out++;
9391  *out = (*in >> 30);
9392  ++in;
9393  *out |= (*in % (1U << 4)) << (6 - 4);
9394  *out += out[-1]; // integrated delta decoding
9395  out++;
9396  *out = (*in >> 4) % (1U << 6);
9397  *out += out[-1]; // integrated delta decoding
9398  out++;
9399  *out = (*in >> 10) % (1U << 6);
9400  *out += out[-1]; // integrated delta decoding
9401  out++;
9402  *out = (*in >> 16) % (1U << 6);
9403  *out += out[-1]; // integrated delta decoding
9404  out++;
9405  *out = (*in >> 22) % (1U << 6);
9406  *out += out[-1]; // integrated delta decoding
9407  out++;
9408  *out = (*in >> 28);
9409  ++in;
9410  *out |= (*in % (1U << 2)) << (6 - 2);
9411  *out += out[-1]; // integrated delta decoding
9412  out++;
9413  *out = (*in >> 2) % (1U << 6);
9414  *out += out[-1]; // integrated delta decoding
9415  out++;
9416  *out = (*in >> 8) % (1U << 6);
9417  *out += out[-1]; // integrated delta decoding
9418  out++;
9419  *out = (*in >> 14) % (1U << 6);
9420  *out += out[-1]; // integrated delta decoding
9421  out++;
9422  *out = (*in >> 20) % (1U << 6);
9423  *out += out[-1]; // integrated delta decoding
9424  out++;
9425  *out = (*in >> 26);
9426  ++in;
9427  *out += out[-1]; // integrated delta decoding
9428  out++;
9429  *out = (*in >> 0) % (1U << 6);
9430  *out += out[-1]; // integrated delta decoding
9431  out++;
9432  *out = (*in >> 6) % (1U << 6);
9433  *out += out[-1]; // integrated delta decoding
9434  out++;
9435  *out = (*in >> 12) % (1U << 6);
9436  *out += out[-1]; // integrated delta decoding
9437  out++;
9438  *out = (*in >> 18) % (1U << 6);
9439  *out += out[-1]; // integrated delta decoding
9440  out++;
9441  *out = (*in >> 24) % (1U << 6);
9442  *out += out[-1]; // integrated delta decoding
9443  out++;
9444  *out = (*in >> 30);
9445  ++in;
9446  *out |= (*in % (1U << 4)) << (6 - 4);
9447  *out += out[-1]; // integrated delta decoding
9448  out++;
9449  *out = (*in >> 4) % (1U << 6);
9450  *out += out[-1]; // integrated delta decoding
9451  out++;
9452  *out = (*in >> 10) % (1U << 6);
9453  *out += out[-1]; // integrated delta decoding
9454  out++;
9455  *out = (*in >> 16) % (1U << 6);
9456  *out += out[-1]; // integrated delta decoding
9457  out++;
9458  *out = (*in >> 22) % (1U << 6);
9459  *out += out[-1]; // integrated delta decoding
9460  out++;
9461  *out = (*in >> 28);
9462  ++in;
9463  *out |= (*in % (1U << 2)) << (6 - 2);
9464  *out += out[-1]; // integrated delta decoding
9465  out++;
9466  *out = (*in >> 2) % (1U << 6);
9467  *out += out[-1]; // integrated delta decoding
9468  out++;
9469  *out = (*in >> 8) % (1U << 6);
9470  *out += out[-1]; // integrated delta decoding
9471  out++;
9472  *out = (*in >> 14) % (1U << 6);
9473  *out += out[-1]; // integrated delta decoding
9474  out++;
9475  *out = (*in >> 20) % (1U << 6);
9476  *out += out[-1]; // integrated delta decoding
9477  out++;
9478  *out = (*in >> 26);
9479  *out += out[-1]; // integrated delta decoding
9480 }
9481 
9482 void __device__ __host__ __integratedfastunpack7(const uint32_t initoffset,
9483  const uint32_t * in,
9484  uint32_t * out) {
9485  *out = (*in >> 0) % (1U << 7);
9486  *out += initoffset; // integrated delta decoding
9487  out++;
9488  *out = (*in >> 7) % (1U << 7);
9489  *out += out[-1]; // integrated delta decoding
9490  out++;
9491  *out = (*in >> 14) % (1U << 7);
9492  *out += out[-1]; // integrated delta decoding
9493  out++;
9494  *out = (*in >> 21) % (1U << 7);
9495  *out += out[-1]; // integrated delta decoding
9496  out++;
9497  *out = (*in >> 28);
9498  ++in;
9499  *out |= (*in % (1U << 3)) << (7 - 3);
9500  *out += out[-1]; // integrated delta decoding
9501  out++;
9502  *out = (*in >> 3) % (1U << 7);
9503  *out += out[-1]; // integrated delta decoding
9504  out++;
9505  *out = (*in >> 10) % (1U << 7);
9506  *out += out[-1]; // integrated delta decoding
9507  out++;
9508  *out = (*in >> 17) % (1U << 7);
9509  *out += out[-1]; // integrated delta decoding
9510  out++;
9511  *out = (*in >> 24) % (1U << 7);
9512  *out += out[-1]; // integrated delta decoding
9513  out++;
9514  *out = (*in >> 31);
9515  ++in;
9516  *out |= (*in % (1U << 6)) << (7 - 6);
9517  *out += out[-1]; // integrated delta decoding
9518  out++;
9519  *out = (*in >> 6) % (1U << 7);
9520  *out += out[-1]; // integrated delta decoding
9521  out++;
9522  *out = (*in >> 13) % (1U << 7);
9523  *out += out[-1]; // integrated delta decoding
9524  out++;
9525  *out = (*in >> 20) % (1U << 7);
9526  *out += out[-1]; // integrated delta decoding
9527  out++;
9528  *out = (*in >> 27);
9529  ++in;
9530  *out |= (*in % (1U << 2)) << (7 - 2);
9531  *out += out[-1]; // integrated delta decoding
9532  out++;
9533  *out = (*in >> 2) % (1U << 7);
9534  *out += out[-1]; // integrated delta decoding
9535  out++;
9536  *out = (*in >> 9) % (1U << 7);
9537  *out += out[-1]; // integrated delta decoding
9538  out++;
9539  *out = (*in >> 16) % (1U << 7);
9540  *out += out[-1]; // integrated delta decoding
9541  out++;
9542  *out = (*in >> 23) % (1U << 7);
9543  *out += out[-1]; // integrated delta decoding
9544  out++;
9545  *out = (*in >> 30);
9546  ++in;
9547  *out |= (*in % (1U << 5)) << (7 - 5);
9548  *out += out[-1]; // integrated delta decoding
9549  out++;
9550  *out = (*in >> 5) % (1U << 7);
9551  *out += out[-1]; // integrated delta decoding
9552  out++;
9553  *out = (*in >> 12) % (1U << 7);
9554  *out += out[-1]; // integrated delta decoding
9555  out++;
9556  *out = (*in >> 19) % (1U << 7);
9557  *out += out[-1]; // integrated delta decoding
9558  out++;
9559  *out = (*in >> 26);
9560  ++in;
9561  *out |= (*in % (1U << 1)) << (7 - 1);
9562  *out += out[-1]; // integrated delta decoding
9563  out++;
9564  *out = (*in >> 1) % (1U << 7);
9565  *out += out[-1]; // integrated delta decoding
9566  out++;
9567  *out = (*in >> 8) % (1U << 7);
9568  *out += out[-1]; // integrated delta decoding
9569  out++;
9570  *out = (*in >> 15) % (1U << 7);
9571  *out += out[-1]; // integrated delta decoding
9572  out++;
9573  *out = (*in >> 22) % (1U << 7);
9574  *out += out[-1]; // integrated delta decoding
9575  out++;
9576  *out = (*in >> 29);
9577  ++in;
9578  *out |= (*in % (1U << 4)) << (7 - 4);
9579  *out += out[-1]; // integrated delta decoding
9580  out++;
9581  *out = (*in >> 4) % (1U << 7);
9582  *out += out[-1]; // integrated delta decoding
9583  out++;
9584  *out = (*in >> 11) % (1U << 7);
9585  *out += out[-1]; // integrated delta decoding
9586  out++;
9587  *out = (*in >> 18) % (1U << 7);
9588  *out += out[-1]; // integrated delta decoding
9589  out++;
9590  *out = (*in >> 25);
9591  *out += out[-1]; // integrated delta decoding
9592 }
9593 
9594 void __device__ __host__ __integratedfastunpack9(const uint32_t initoffset,
9595  const uint32_t * in,
9596  uint32_t * out) {
9597  *out = (*in >> 0) % (1U << 9);
9598  *out += initoffset; // integrated delta decoding
9599  out++;
9600  *out = (*in >> 9) % (1U << 9);
9601  *out += out[-1]; // integrated delta decoding
9602  out++;
9603  *out = (*in >> 18) % (1U << 9);
9604  *out += out[-1]; // integrated delta decoding
9605  out++;
9606  *out = (*in >> 27);
9607  ++in;
9608  *out |= (*in % (1U << 4)) << (9 - 4);
9609  *out += out[-1]; // integrated delta decoding
9610  out++;
9611  *out = (*in >> 4) % (1U << 9);
9612  *out += out[-1]; // integrated delta decoding
9613  out++;
9614  *out = (*in >> 13) % (1U << 9);
9615  *out += out[-1]; // integrated delta decoding
9616  out++;
9617  *out = (*in >> 22) % (1U << 9);
9618  *out += out[-1]; // integrated delta decoding
9619  out++;
9620  *out = (*in >> 31);
9621  ++in;
9622  *out |= (*in % (1U << 8)) << (9 - 8);
9623  *out += out[-1]; // integrated delta decoding
9624  out++;
9625  *out = (*in >> 8) % (1U << 9);
9626  *out += out[-1]; // integrated delta decoding
9627  out++;
9628  *out = (*in >> 17) % (1U << 9);
9629  *out += out[-1]; // integrated delta decoding
9630  out++;
9631  *out = (*in >> 26);
9632  ++in;
9633  *out |= (*in % (1U << 3)) << (9 - 3);
9634  *out += out[-1]; // integrated delta decoding
9635  out++;
9636  *out = (*in >> 3) % (1U << 9);
9637  *out += out[-1]; // integrated delta decoding
9638  out++;
9639  *out = (*in >> 12) % (1U << 9);
9640  *out += out[-1]; // integrated delta decoding
9641  out++;
9642  *out = (*in >> 21) % (1U << 9);
9643  *out += out[-1]; // integrated delta decoding
9644  out++;
9645  *out = (*in >> 30);
9646  ++in;
9647  *out |= (*in % (1U << 7)) << (9 - 7);
9648  *out += out[-1]; // integrated delta decoding
9649  out++;
9650  *out = (*in >> 7) % (1U << 9);
9651  *out += out[-1]; // integrated delta decoding
9652  out++;
9653  *out = (*in >> 16) % (1U << 9);
9654  *out += out[-1]; // integrated delta decoding
9655  out++;
9656  *out = (*in >> 25);
9657  ++in;
9658  *out |= (*in % (1U << 2)) << (9 - 2);
9659  *out += out[-1]; // integrated delta decoding
9660  out++;
9661  *out = (*in >> 2) % (1U << 9);
9662  *out += out[-1]; // integrated delta decoding
9663  out++;
9664  *out = (*in >> 11) % (1U << 9);
9665  *out += out[-1]; // integrated delta decoding
9666  out++;
9667  *out = (*in >> 20) % (1U << 9);
9668  *out += out[-1]; // integrated delta decoding
9669  out++;
9670  *out = (*in >> 29);
9671  ++in;
9672  *out |= (*in % (1U << 6)) << (9 - 6);
9673  *out += out[-1]; // integrated delta decoding
9674  out++;
9675  *out = (*in >> 6) % (1U << 9);
9676  *out += out[-1]; // integrated delta decoding
9677  out++;
9678  *out = (*in >> 15) % (1U << 9);
9679  *out += out[-1]; // integrated delta decoding
9680  out++;
9681  *out = (*in >> 24);
9682  ++in;
9683  *out |= (*in % (1U << 1)) << (9 - 1);
9684  *out += out[-1]; // integrated delta decoding
9685  out++;
9686  *out = (*in >> 1) % (1U << 9);
9687  *out += out[-1]; // integrated delta decoding
9688  out++;
9689  *out = (*in >> 10) % (1U << 9);
9690  *out += out[-1]; // integrated delta decoding
9691  out++;
9692  *out = (*in >> 19) % (1U << 9);
9693  *out += out[-1]; // integrated delta decoding
9694  out++;
9695  *out = (*in >> 28);
9696  ++in;
9697  *out |= (*in % (1U << 5)) << (9 - 5);
9698  *out += out[-1]; // integrated delta decoding
9699  out++;
9700  *out = (*in >> 5) % (1U << 9);
9701  *out += out[-1]; // integrated delta decoding
9702  out++;
9703  *out = (*in >> 14) % (1U << 9);
9704  *out += out[-1]; // integrated delta decoding
9705  out++;
9706  *out = (*in >> 23);
9707  *out += out[-1]; // integrated delta decoding
9708 }
9709 
9710 void __device__ __host__ __integratedfastunpack10(const uint32_t initoffset,
9711  const uint32_t * in,
9712  uint32_t * out) {
9713  *out = (*in >> 0) % (1U << 10);
9714  *out += initoffset; // integrated delta decoding
9715  out++;
9716  *out = (*in >> 10) % (1U << 10);
9717  *out += out[-1]; // integrated delta decoding
9718  out++;
9719  *out = (*in >> 20) % (1U << 10);
9720  *out += out[-1]; // integrated delta decoding
9721  out++;
9722  *out = (*in >> 30);
9723  ++in;
9724  *out |= (*in % (1U << 8)) << (10 - 8);
9725  *out += out[-1]; // integrated delta decoding
9726  out++;
9727  *out = (*in >> 8) % (1U << 10);
9728  *out += out[-1]; // integrated delta decoding
9729  out++;
9730  *out = (*in >> 18) % (1U << 10);
9731  *out += out[-1]; // integrated delta decoding
9732  out++;
9733  *out = (*in >> 28);
9734  ++in;
9735  *out |= (*in % (1U << 6)) << (10 - 6);
9736  *out += out[-1]; // integrated delta decoding
9737  out++;
9738  *out = (*in >> 6) % (1U << 10);
9739  *out += out[-1]; // integrated delta decoding
9740  out++;
9741  *out = (*in >> 16) % (1U << 10);
9742  *out += out[-1]; // integrated delta decoding
9743  out++;
9744  *out = (*in >> 26);
9745  ++in;
9746  *out |= (*in % (1U << 4)) << (10 - 4);
9747  *out += out[-1]; // integrated delta decoding
9748  out++;
9749  *out = (*in >> 4) % (1U << 10);
9750  *out += out[-1]; // integrated delta decoding
9751  out++;
9752  *out = (*in >> 14) % (1U << 10);
9753  *out += out[-1]; // integrated delta decoding
9754  out++;
9755  *out = (*in >> 24);
9756  ++in;
9757  *out |= (*in % (1U << 2)) << (10 - 2);
9758  *out += out[-1]; // integrated delta decoding
9759  out++;
9760  *out = (*in >> 2) % (1U << 10);
9761  *out += out[-1]; // integrated delta decoding
9762  out++;
9763  *out = (*in >> 12) % (1U << 10);
9764  *out += out[-1]; // integrated delta decoding
9765  out++;
9766  *out = (*in >> 22);
9767  ++in;
9768  *out += out[-1]; // integrated delta decoding
9769  out++;
9770  *out = (*in >> 0) % (1U << 10);
9771  *out += out[-1]; // integrated delta decoding
9772  out++;
9773  *out = (*in >> 10) % (1U << 10);
9774  *out += out[-1]; // integrated delta decoding
9775  out++;
9776  *out = (*in >> 20) % (1U << 10);
9777  *out += out[-1]; // integrated delta decoding
9778  out++;
9779  *out = (*in >> 30);
9780  ++in;
9781  *out |= (*in % (1U << 8)) << (10 - 8);
9782  *out += out[-1]; // integrated delta decoding
9783  out++;
9784  *out = (*in >> 8) % (1U << 10);
9785  *out += out[-1]; // integrated delta decoding
9786  out++;
9787  *out = (*in >> 18) % (1U << 10);
9788  *out += out[-1]; // integrated delta decoding
9789  out++;
9790  *out = (*in >> 28);
9791  ++in;
9792  *out |= (*in % (1U << 6)) << (10 - 6);
9793  *out += out[-1]; // integrated delta decoding
9794  out++;
9795  *out = (*in >> 6) % (1U << 10);
9796  *out += out[-1]; // integrated delta decoding
9797  out++;
9798  *out = (*in >> 16) % (1U << 10);
9799  *out += out[-1]; // integrated delta decoding
9800  out++;
9801  *out = (*in >> 26);
9802  ++in;
9803  *out |= (*in % (1U << 4)) << (10 - 4);
9804  *out += out[-1]; // integrated delta decoding
9805  out++;
9806  *out = (*in >> 4) % (1U << 10);
9807  *out += out[-1]; // integrated delta decoding
9808  out++;
9809  *out = (*in >> 14) % (1U << 10);
9810  *out += out[-1]; // integrated delta decoding
9811  out++;
9812  *out = (*in >> 24);
9813  ++in;
9814  *out |= (*in % (1U << 2)) << (10 - 2);
9815  *out += out[-1]; // integrated delta decoding
9816  out++;
9817  *out = (*in >> 2) % (1U << 10);
9818  *out += out[-1]; // integrated delta decoding
9819  out++;
9820  *out = (*in >> 12) % (1U << 10);
9821  *out += out[-1]; // integrated delta decoding
9822  out++;
9823  *out = (*in >> 22);
9824  *out += out[-1]; // integrated delta decoding
9825 }
9826 
9827 void __device__ __host__ __integratedfastunpack11(const uint32_t initoffset,
9828  const uint32_t * in,
9829  uint32_t * out) {
9830  *out = (*in >> 0) % (1U << 11);
9831  *out += initoffset; // integrated delta decoding
9832  out++;
9833  *out = (*in >> 11) % (1U << 11);
9834  *out += out[-1]; // integrated delta decoding
9835  out++;
9836  *out = (*in >> 22);
9837  ++in;
9838  *out |= (*in % (1U << 1)) << (11 - 1);
9839  *out += out[-1]; // integrated delta decoding
9840  out++;
9841  *out = (*in >> 1) % (1U << 11);
9842  *out += out[-1]; // integrated delta decoding
9843  out++;
9844  *out = (*in >> 12) % (1U << 11);
9845  *out += out[-1]; // integrated delta decoding
9846  out++;
9847  *out = (*in >> 23);
9848  ++in;
9849  *out |= (*in % (1U << 2)) << (11 - 2);
9850  *out += out[-1]; // integrated delta decoding
9851  out++;
9852  *out = (*in >> 2) % (1U << 11);
9853  *out += out[-1]; // integrated delta decoding
9854  out++;
9855  *out = (*in >> 13) % (1U << 11);
9856  *out += out[-1]; // integrated delta decoding
9857  out++;
9858  *out = (*in >> 24);
9859  ++in;
9860  *out |= (*in % (1U << 3)) << (11 - 3);
9861  *out += out[-1]; // integrated delta decoding
9862  out++;
9863  *out = (*in >> 3) % (1U << 11);
9864  *out += out[-1]; // integrated delta decoding
9865  out++;
9866  *out = (*in >> 14) % (1U << 11);
9867  *out += out[-1]; // integrated delta decoding
9868  out++;
9869  *out = (*in >> 25);
9870  ++in;
9871  *out |= (*in % (1U << 4)) << (11 - 4);
9872  *out += out[-1]; // integrated delta decoding
9873  out++;
9874  *out = (*in >> 4) % (1U << 11);
9875  *out += out[-1]; // integrated delta decoding
9876  out++;
9877  *out = (*in >> 15) % (1U << 11);
9878  *out += out[-1]; // integrated delta decoding
9879  out++;
9880  *out = (*in >> 26);
9881  ++in;
9882  *out |= (*in % (1U << 5)) << (11 - 5);
9883  *out += out[-1]; // integrated delta decoding
9884  out++;
9885  *out = (*in >> 5) % (1U << 11);
9886  *out += out[-1]; // integrated delta decoding
9887  out++;
9888  *out = (*in >> 16) % (1U << 11);
9889  *out += out[-1]; // integrated delta decoding
9890  out++;
9891  *out = (*in >> 27);
9892  ++in;
9893  *out |= (*in % (1U << 6)) << (11 - 6);
9894  *out += out[-1]; // integrated delta decoding
9895  out++;
9896  *out = (*in >> 6) % (1U << 11);
9897  *out += out[-1]; // integrated delta decoding
9898  out++;
9899  *out = (*in >> 17) % (1U << 11);
9900  *out += out[-1]; // integrated delta decoding
9901  out++;
9902  *out = (*in >> 28);
9903  ++in;
9904  *out |= (*in % (1U << 7)) << (11 - 7);
9905  *out += out[-1]; // integrated delta decoding
9906  out++;
9907  *out = (*in >> 7) % (1U << 11);
9908  *out += out[-1]; // integrated delta decoding
9909  out++;
9910  *out = (*in >> 18) % (1U << 11);
9911  *out += out[-1]; // integrated delta decoding
9912  out++;
9913  *out = (*in >> 29);
9914  ++in;
9915  *out |= (*in % (1U << 8)) << (11 - 8);
9916  *out += out[-1]; // integrated delta decoding
9917  out++;
9918  *out = (*in >> 8) % (1U << 11);
9919  *out += out[-1]; // integrated delta decoding
9920  out++;
9921  *out = (*in >> 19) % (1U << 11);
9922  *out += out[-1]; // integrated delta decoding
9923  out++;
9924  *out = (*in >> 30);
9925  ++in;
9926  *out |= (*in % (1U << 9)) << (11 - 9);
9927  *out += out[-1]; // integrated delta decoding
9928  out++;
9929  *out = (*in >> 9) % (1U << 11);
9930  *out += out[-1]; // integrated delta decoding
9931  out++;
9932  *out = (*in >> 20) % (1U << 11);
9933  *out += out[-1]; // integrated delta decoding
9934  out++;
9935  *out = (*in >> 31);
9936  ++in;
9937  *out |= (*in % (1U << 10)) << (11 - 10);
9938  *out += out[-1]; // integrated delta decoding
9939  out++;
9940  *out = (*in >> 10) % (1U << 11);
9941  *out += out[-1]; // integrated delta decoding
9942  out++;
9943  *out = (*in >> 21);
9944  *out += out[-1]; // integrated delta decoding
9945 }
9946 
9947 void __device__ __host__ __integratedfastunpack12(const uint32_t initoffset,
9948  const uint32_t * in,
9949  uint32_t * out) {
9950  *out = (*in >> 0) % (1U << 12);
9951  *out += initoffset; // integrated delta decoding
9952  out++;
9953  *out = (*in >> 12) % (1U << 12);
9954  *out += out[-1]; // integrated delta decoding
9955  out++;
9956  *out = (*in >> 24);
9957  ++in;
9958  *out |= (*in % (1U << 4)) << (12 - 4);
9959  *out += out[-1]; // integrated delta decoding
9960  out++;
9961  *out = (*in >> 4) % (1U << 12);
9962  *out += out[-1]; // integrated delta decoding
9963  out++;
9964  *out = (*in >> 16) % (1U << 12);
9965  *out += out[-1]; // integrated delta decoding
9966  out++;
9967  *out = (*in >> 28);
9968  ++in;
9969  *out |= (*in % (1U << 8)) << (12 - 8);
9970  *out += out[-1]; // integrated delta decoding
9971  out++;
9972  *out = (*in >> 8) % (1U << 12);
9973  *out += out[-1]; // integrated delta decoding
9974  out++;
9975  *out = (*in >> 20);
9976  ++in;
9977  *out += out[-1]; // integrated delta decoding
9978  out++;
9979  *out = (*in >> 0) % (1U << 12);
9980  *out += out[-1]; // integrated delta decoding
9981  out++;
9982  *out = (*in >> 12) % (1U << 12);
9983  *out += out[-1]; // integrated delta decoding
9984  out++;
9985  *out = (*in >> 24);
9986  ++in;
9987  *out |= (*in % (1U << 4)) << (12 - 4);
9988  *out += out[-1]; // integrated delta decoding
9989  out++;
9990  *out = (*in >> 4) % (1U << 12);
9991  *out += out[-1]; // integrated delta decoding
9992  out++;
9993  *out = (*in >> 16) % (1U << 12);
9994  *out += out[-1]; // integrated delta decoding
9995  out++;
9996  *out = (*in >> 28);
9997  ++in;
9998  *out |= (*in % (1U << 8)) << (12 - 8);
9999  *out += out[-1]; // integrated delta decoding
10000  out++;
10001  *out = (*in >> 8) % (1U << 12);
10002  *out += out[-1]; // integrated delta decoding
10003  out++;
10004  *out = (*in >> 20);
10005  ++in;
10006  *out += out[-1]; // integrated delta decoding
10007  out++;
10008  *out = (*in >> 0) % (1U << 12);
10009  *out += out[-1]; // integrated delta decoding
10010  out++;
10011  *out = (*in >> 12) % (1U << 12);
10012  *out += out[-1]; // integrated delta decoding
10013  out++;
10014  *out = (*in >> 24);
10015  ++in;
10016  *out |= (*in % (1U << 4)) << (12 - 4);
10017  *out += out[-1]; // integrated delta decoding
10018  out++;
10019  *out = (*in >> 4) % (1U << 12);
10020  *out += out[-1]; // integrated delta decoding
10021  out++;
10022  *out = (*in >> 16) % (1U << 12);
10023  *out += out[-1]; // integrated delta decoding
10024  out++;
10025  *out = (*in >> 28);
10026  ++in;
10027  *out |= (*in % (1U << 8)) << (12 - 8);
10028  *out += out[-1]; // integrated delta decoding
10029  out++;
10030  *out = (*in >> 8) % (1U << 12);
10031  *out += out[-1]; // integrated delta decoding
10032  out++;
10033  *out = (*in >> 20);
10034  ++in;
10035  *out += out[-1]; // integrated delta decoding
10036  out++;
10037  *out = (*in >> 0) % (1U << 12);
10038  *out += out[-1]; // integrated delta decoding
10039  out++;
10040  *out = (*in >> 12) % (1U << 12);
10041  *out += out[-1]; // integrated delta decoding
10042  out++;
10043  *out = (*in >> 24);
10044  ++in;
10045  *out |= (*in % (1U << 4)) << (12 - 4);
10046  *out += out[-1]; // integrated delta decoding
10047  out++;
10048  *out = (*in >> 4) % (1U << 12);
10049  *out += out[-1]; // integrated delta decoding
10050  out++;
10051  *out = (*in >> 16) % (1U << 12);
10052  *out += out[-1]; // integrated delta decoding
10053  out++;
10054  *out = (*in >> 28);
10055  ++in;
10056  *out |= (*in % (1U << 8)) << (12 - 8);
10057  *out += out[-1]; // integrated delta decoding
10058  out++;
10059  *out = (*in >> 8) % (1U << 12);
10060  *out += out[-1]; // integrated delta decoding
10061  out++;
10062  *out = (*in >> 20);
10063  *out += out[-1]; // integrated delta decoding
10064 }
10065 
10066 void __device__ __host__ __integratedfastunpack13(const uint32_t initoffset,
10067  const uint32_t * in,
10068  uint32_t * out) {
10069  *out = (*in >> 0) % (1U << 13);
10070  *out += initoffset; // integrated delta decoding
10071  out++;
10072  *out = (*in >> 13) % (1U << 13);
10073  *out += out[-1]; // integrated delta decoding
10074  out++;
10075  *out = (*in >> 26);
10076  ++in;
10077  *out |= (*in % (1U << 7)) << (13 - 7);
10078  *out += out[-1]; // integrated delta decoding
10079  out++;
10080  *out = (*in >> 7) % (1U << 13);
10081  *out += out[-1]; // integrated delta decoding
10082  out++;
10083  *out = (*in >> 20);
10084  ++in;
10085  *out |= (*in % (1U << 1)) << (13 - 1);
10086  *out += out[-1]; // integrated delta decoding
10087  out++;
10088  *out = (*in >> 1) % (1U << 13);
10089  *out += out[-1]; // integrated delta decoding
10090  out++;
10091  *out = (*in >> 14) % (1U << 13);
10092  *out += out[-1]; // integrated delta decoding
10093  out++;
10094  *out = (*in >> 27);
10095  ++in;
10096  *out |= (*in % (1U << 8)) << (13 - 8);
10097  *out += out[-1]; // integrated delta decoding
10098  out++;
10099  *out = (*in >> 8) % (1U << 13);
10100  *out += out[-1]; // integrated delta decoding
10101  out++;
10102  *out = (*in >> 21);
10103  ++in;
10104  *out |= (*in % (1U << 2)) << (13 - 2);
10105  *out += out[-1]; // integrated delta decoding
10106  out++;
10107  *out = (*in >> 2) % (1U << 13);
10108  *out += out[-1]; // integrated delta decoding
10109  out++;
10110  *out = (*in >> 15) % (1U << 13);
10111  *out += out[-1]; // integrated delta decoding
10112  out++;
10113  *out = (*in >> 28);
10114  ++in;
10115  *out |= (*in % (1U << 9)) << (13 - 9);
10116  *out += out[-1]; // integrated delta decoding
10117  out++;
10118  *out = (*in >> 9) % (1U << 13);
10119  *out += out[-1]; // integrated delta decoding
10120  out++;
10121  *out = (*in >> 22);
10122  ++in;
10123  *out |= (*in % (1U << 3)) << (13 - 3);
10124  *out += out[-1]; // integrated delta decoding
10125  out++;
10126  *out = (*in >> 3) % (1U << 13);
10127  *out += out[-1]; // integrated delta decoding
10128  out++;
10129  *out = (*in >> 16) % (1U << 13);
10130  *out += out[-1]; // integrated delta decoding
10131  out++;
10132  *out = (*in >> 29);
10133  ++in;
10134  *out |= (*in % (1U << 10)) << (13 - 10);
10135  *out += out[-1]; // integrated delta decoding
10136  out++;
10137  *out = (*in >> 10) % (1U << 13);
10138  *out += out[-1]; // integrated delta decoding
10139  out++;
10140  *out = (*in >> 23);
10141  ++in;
10142  *out |= (*in % (1U << 4)) << (13 - 4);
10143  *out += out[-1]; // integrated delta decoding
10144  out++;
10145  *out = (*in >> 4) % (1U << 13);
10146  *out += out[-1]; // integrated delta decoding
10147  out++;
10148  *out = (*in >> 17) % (1U << 13);
10149  *out += out[-1]; // integrated delta decoding
10150  out++;
10151  *out = (*in >> 30);
10152  ++in;
10153  *out |= (*in % (1U << 11)) << (13 - 11);
10154  *out += out[-1]; // integrated delta decoding
10155  out++;
10156  *out = (*in >> 11) % (1U << 13);
10157  *out += out[-1]; // integrated delta decoding
10158  out++;
10159  *out = (*in >> 24);
10160  ++in;
10161  *out |= (*in % (1U << 5)) << (13 - 5);
10162  *out += out[-1]; // integrated delta decoding
10163  out++;
10164  *out = (*in >> 5) % (1U << 13);
10165  *out += out[-1]; // integrated delta decoding
10166  out++;
10167  *out = (*in >> 18) % (1U << 13);
10168  *out += out[-1]; // integrated delta decoding
10169  out++;
10170  *out = (*in >> 31);
10171  ++in;
10172  *out |= (*in % (1U << 12)) << (13 - 12);
10173  *out += out[-1]; // integrated delta decoding
10174  out++;
10175  *out = (*in >> 12) % (1U << 13);
10176  *out += out[-1]; // integrated delta decoding
10177  out++;
10178  *out = (*in >> 25);
10179  ++in;
10180  *out |= (*in % (1U << 6)) << (13 - 6);
10181  *out += out[-1]; // integrated delta decoding
10182  out++;
10183  *out = (*in >> 6) % (1U << 13);
10184  *out += out[-1]; // integrated delta decoding
10185  out++;
10186  *out = (*in >> 19);
10187  *out += out[-1]; // integrated delta decoding
10188 }
10189 
10190 void __device__ __host__ __integratedfastunpack14(const uint32_t initoffset,
10191  const uint32_t * in,
10192  uint32_t * out) {
10193  *out = (*in >> 0) % (1U << 14);
10194  *out += initoffset; // integrated delta decoding
10195  out++;
10196  *out = (*in >> 14) % (1U << 14);
10197  *out += out[-1]; // integrated delta decoding
10198  out++;
10199  *out = (*in >> 28);
10200  ++in;
10201  *out |= (*in % (1U << 10)) << (14 - 10);
10202  *out += out[-1]; // integrated delta decoding
10203  out++;
10204  *out = (*in >> 10) % (1U << 14);
10205  *out += out[-1]; // integrated delta decoding
10206  out++;
10207  *out = (*in >> 24);
10208  ++in;
10209  *out |= (*in % (1U << 6)) << (14 - 6);
10210  *out += out[-1]; // integrated delta decoding
10211  out++;
10212  *out = (*in >> 6) % (1U << 14);
10213  *out += out[-1]; // integrated delta decoding
10214  out++;
10215  *out = (*in >> 20);
10216  ++in;
10217  *out |= (*in % (1U << 2)) << (14 - 2);
10218  *out += out[-1]; // integrated delta decoding
10219  out++;
10220  *out = (*in >> 2) % (1U << 14);
10221  *out += out[-1]; // integrated delta decoding
10222  out++;
10223  *out = (*in >> 16) % (1U << 14);
10224  *out += out[-1]; // integrated delta decoding
10225  out++;
10226  *out = (*in >> 30);
10227  ++in;
10228  *out |= (*in % (1U << 12)) << (14 - 12);
10229  *out += out[-1]; // integrated delta decoding
10230  out++;
10231  *out = (*in >> 12) % (1U << 14);
10232  *out += out[-1]; // integrated delta decoding
10233  out++;
10234  *out = (*in >> 26);
10235  ++in;
10236  *out |= (*in % (1U << 8)) << (14 - 8);
10237  *out += out[-1]; // integrated delta decoding
10238  out++;
10239  *out = (*in >> 8) % (1U << 14);
10240  *out += out[-1]; // integrated delta decoding
10241  out++;
10242  *out = (*in >> 22);
10243  ++in;
10244  *out |= (*in % (1U << 4)) << (14 - 4);
10245  *out += out[-1]; // integrated delta decoding
10246  out++;
10247  *out = (*in >> 4) % (1U << 14);
10248  *out += out[-1]; // integrated delta decoding
10249  out++;
10250  *out = (*in >> 18);
10251  ++in;
10252  *out += out[-1]; // integrated delta decoding
10253  out++;
10254  *out = (*in >> 0) % (1U << 14);
10255  *out += out[-1]; // integrated delta decoding
10256  out++;
10257  *out = (*in >> 14) % (1U << 14);
10258  *out += out[-1]; // integrated delta decoding
10259  out++;
10260  *out = (*in >> 28);
10261  ++in;
10262  *out |= (*in % (1U << 10)) << (14 - 10);
10263  *out += out[-1]; // integrated delta decoding
10264  out++;
10265  *out = (*in >> 10) % (1U << 14);
10266  *out += out[-1]; // integrated delta decoding
10267  out++;
10268  *out = (*in >> 24);
10269  ++in;
10270  *out |= (*in % (1U << 6)) << (14 - 6);
10271  *out += out[-1]; // integrated delta decoding
10272  out++;
10273  *out = (*in >> 6) % (1U << 14);
10274  *out += out[-1]; // integrated delta decoding
10275  out++;
10276  *out = (*in >> 20);
10277  ++in;
10278  *out |= (*in % (1U << 2)) << (14 - 2);
10279  *out += out[-1]; // integrated delta decoding
10280  out++;
10281  *out = (*in >> 2) % (1U << 14);
10282  *out += out[-1]; // integrated delta decoding
10283  out++;
10284  *out = (*in >> 16) % (1U << 14);
10285  *out += out[-1]; // integrated delta decoding
10286  out++;
10287  *out = (*in >> 30);
10288  ++in;
10289  *out |= (*in % (1U << 12)) << (14 - 12);
10290  *out += out[-1]; // integrated delta decoding
10291  out++;
10292  *out = (*in >> 12) % (1U << 14);
10293  *out += out[-1]; // integrated delta decoding
10294  out++;
10295  *out = (*in >> 26);
10296  ++in;
10297  *out |= (*in % (1U << 8)) << (14 - 8);
10298  *out += out[-1]; // integrated delta decoding
10299  out++;
10300  *out = (*in >> 8) % (1U << 14);
10301  *out += out[-1]; // integrated delta decoding
10302  out++;
10303  *out = (*in >> 22);
10304  ++in;
10305  *out |= (*in % (1U << 4)) << (14 - 4);
10306  *out += out[-1]; // integrated delta decoding
10307  out++;
10308  *out = (*in >> 4) % (1U << 14);
10309  *out += out[-1]; // integrated delta decoding
10310  out++;
10311  *out = (*in >> 18);
10312  *out += out[-1]; // integrated delta decoding
10313 }
10314 
10315 void __device__ __host__ __integratedfastunpack15(const uint32_t initoffset,
10316  const uint32_t * in,
10317  uint32_t * out) {
10318  *out = (*in >> 0) % (1U << 15);
10319  *out += initoffset; // integrated delta decoding
10320  out++;
10321  *out = (*in >> 15) % (1U << 15);
10322  *out += out[-1]; // integrated delta decoding
10323  out++;
10324  *out = (*in >> 30);
10325  ++in;
10326  *out |= (*in % (1U << 13)) << (15 - 13);
10327  *out += out[-1]; // integrated delta decoding
10328  out++;
10329  *out = (*in >> 13) % (1U << 15);
10330  *out += out[-1]; // integrated delta decoding
10331  out++;
10332  *out = (*in >> 28);
10333  ++in;
10334  *out |= (*in % (1U << 11)) << (15 - 11);
10335  *out += out[-1]; // integrated delta decoding
10336  out++;
10337  *out = (*in >> 11) % (1U << 15);
10338  *out += out[-1]; // integrated delta decoding
10339  out++;
10340  *out = (*in >> 26);
10341  ++in;
10342  *out |= (*in % (1U << 9)) << (15 - 9);
10343  *out += out[-1]; // integrated delta decoding
10344  out++;
10345  *out = (*in >> 9) % (1U << 15);
10346  *out += out[-1]; // integrated delta decoding
10347  out++;
10348  *out = (*in >> 24);
10349  ++in;
10350  *out |= (*in % (1U << 7)) << (15 - 7);
10351  *out += out[-1]; // integrated delta decoding
10352  out++;
10353  *out = (*in >> 7) % (1U << 15);
10354  *out += out[-1]; // integrated delta decoding
10355  out++;
10356  *out = (*in >> 22);
10357  ++in;
10358  *out |= (*in % (1U << 5)) << (15 - 5);
10359  *out += out[-1]; // integrated delta decoding
10360  out++;
10361  *out = (*in >> 5) % (1U << 15);
10362  *out += out[-1]; // integrated delta decoding
10363  out++;
10364  *out = (*in >> 20);
10365  ++in;
10366  *out |= (*in % (1U << 3)) << (15 - 3);
10367  *out += out[-1]; // integrated delta decoding
10368  out++;
10369  *out = (*in >> 3) % (1U << 15);
10370  *out += out[-1]; // integrated delta decoding
10371  out++;
10372  *out = (*in >> 18);
10373  ++in;
10374  *out |= (*in % (1U << 1)) << (15 - 1);
10375  *out += out[-1]; // integrated delta decoding
10376  out++;
10377  *out = (*in >> 1) % (1U << 15);
10378  *out += out[-1]; // integrated delta decoding
10379  out++;
10380  *out = (*in >> 16) % (1U << 15);
10381  *out += out[-1]; // integrated delta decoding
10382  out++;
10383  *out = (*in >> 31);
10384  ++in;
10385  *out |= (*in % (1U << 14)) << (15 - 14);
10386  *out += out[-1]; // integrated delta decoding
10387  out++;
10388  *out = (*in >> 14) % (1U << 15);
10389  *out += out[-1]; // integrated delta decoding
10390  out++;
10391  *out = (*in >> 29);
10392  ++in;
10393  *out |= (*in % (1U << 12)) << (15 - 12);
10394  *out += out[-1]; // integrated delta decoding
10395  out++;
10396  *out = (*in >> 12) % (1U << 15);
10397  *out += out[-1]; // integrated delta decoding
10398  out++;
10399  *out = (*in >> 27);
10400  ++in;
10401  *out |= (*in % (1U << 10)) << (15 - 10);
10402  *out += out[-1]; // integrated delta decoding
10403  out++;
10404  *out = (*in >> 10) % (1U << 15);
10405  *out += out[-1]; // integrated delta decoding
10406  out++;
10407  *out = (*in >> 25);
10408  ++in;
10409  *out |= (*in % (1U << 8)) << (15 - 8);
10410  *out += out[-1]; // integrated delta decoding
10411  out++;
10412  *out = (*in >> 8) % (1U << 15);
10413  *out += out[-1]; // integrated delta decoding
10414  out++;
10415  *out = (*in >> 23);
10416  ++in;
10417  *out |= (*in % (1U << 6)) << (15 - 6);
10418  *out += out[-1]; // integrated delta decoding
10419  out++;
10420  *out = (*in >> 6) % (1U << 15);
10421  *out += out[-1]; // integrated delta decoding
10422  out++;
10423  *out = (*in >> 21);
10424  ++in;
10425  *out |= (*in % (1U << 4)) << (15 - 4);
10426  *out += out[-1]; // integrated delta decoding
10427  out++;
10428  *out = (*in >> 4) % (1U << 15);
10429  *out += out[-1]; // integrated delta decoding
10430  out++;
10431  *out = (*in >> 19);
10432  ++in;
10433  *out |= (*in % (1U << 2)) << (15 - 2);
10434  *out += out[-1]; // integrated delta decoding
10435  out++;
10436  *out = (*in >> 2) % (1U << 15);
10437  *out += out[-1]; // integrated delta decoding
10438  out++;
10439  *out = (*in >> 17);
10440  *out += out[-1]; // integrated delta decoding
10441 }
10442 
10443 void __device__ __host__ __integratedfastunpack17(const uint32_t initoffset,
10444  const uint32_t * in,
10445  uint32_t * out) {
10446  *out = (*in >> 0) % (1U << 17);
10447  *out += initoffset; // integrated delta decoding
10448  out++;
10449  *out = (*in >> 17);
10450  ++in;
10451  *out |= (*in % (1U << 2)) << (17 - 2);
10452  *out += out[-1]; // integrated delta decoding
10453  out++;
10454  *out = (*in >> 2) % (1U << 17);
10455  *out += out[-1]; // integrated delta decoding
10456  out++;
10457  *out = (*in >> 19);
10458  ++in;
10459  *out |= (*in % (1U << 4)) << (17 - 4);
10460  *out += out[-1]; // integrated delta decoding
10461  out++;
10462  *out = (*in >> 4) % (1U << 17);
10463  *out += out[-1]; // integrated delta decoding
10464  out++;
10465  *out = (*in >> 21);
10466  ++in;
10467  *out |= (*in % (1U << 6)) << (17 - 6);
10468  *out += out[-1]; // integrated delta decoding
10469  out++;
10470  *out = (*in >> 6) % (1U << 17);
10471  *out += out[-1]; // integrated delta decoding
10472  out++;
10473  *out = (*in >> 23);
10474  ++in;
10475  *out |= (*in % (1U << 8)) << (17 - 8);
10476  *out += out[-1]; // integrated delta decoding
10477  out++;
10478  *out = (*in >> 8) % (1U << 17);
10479  *out += out[-1]; // integrated delta decoding
10480  out++;
10481  *out = (*in >> 25);
10482  ++in;
10483  *out |= (*in % (1U << 10)) << (17 - 10);
10484  *out += out[-1]; // integrated delta decoding
10485  out++;
10486  *out = (*in >> 10) % (1U << 17);
10487  *out += out[-1]; // integrated delta decoding
10488  out++;
10489  *out = (*in >> 27);
10490  ++in;
10491  *out |= (*in % (1U << 12)) << (17 - 12);
10492  *out += out[-1]; // integrated delta decoding
10493  out++;
10494  *out = (*in >> 12) % (1U << 17);
10495  *out += out[-1]; // integrated delta decoding
10496  out++;
10497  *out = (*in >> 29);
10498  ++in;
10499  *out |= (*in % (1U << 14)) << (17 - 14);
10500  *out += out[-1]; // integrated delta decoding
10501  out++;
10502  *out = (*in >> 14) % (1U << 17);
10503  *out += out[-1]; // integrated delta decoding
10504  out++;
10505  *out = (*in >> 31);
10506  ++in;
10507  *out |= (*in % (1U << 16)) << (17 - 16);
10508  *out += out[-1]; // integrated delta decoding
10509  out++;
10510  *out = (*in >> 16);
10511  ++in;
10512  *out |= (*in % (1U << 1)) << (17 - 1);
10513  *out += out[-1]; // integrated delta decoding
10514  out++;
10515  *out = (*in >> 1) % (1U << 17);
10516  *out += out[-1]; // integrated delta decoding
10517  out++;
10518  *out = (*in >> 18);
10519  ++in;
10520  *out |= (*in % (1U << 3)) << (17 - 3);
10521  *out += out[-1]; // integrated delta decoding
10522  out++;
10523  *out = (*in >> 3) % (1U << 17);
10524  *out += out[-1]; // integrated delta decoding
10525  out++;
10526  *out = (*in >> 20);
10527  ++in;
10528  *out |= (*in % (1U << 5)) << (17 - 5);
10529  *out += out[-1]; // integrated delta decoding
10530  out++;
10531  *out = (*in >> 5) % (1U << 17);
10532  *out += out[-1]; // integrated delta decoding
10533  out++;
10534  *out = (*in >> 22);
10535  ++in;
10536  *out |= (*in % (1U << 7)) << (17 - 7);
10537  *out += out[-1]; // integrated delta decoding
10538  out++;
10539  *out = (*in >> 7) % (1U << 17);
10540  *out += out[-1]; // integrated delta decoding
10541  out++;
10542  *out = (*in >> 24);
10543  ++in;
10544  *out |= (*in % (1U << 9)) << (17 - 9);
10545  *out += out[-1]; // integrated delta decoding
10546  out++;
10547  *out = (*in >> 9) % (1U << 17);
10548  *out += out[-1]; // integrated delta decoding
10549  out++;
10550  *out = (*in >> 26);
10551  ++in;
10552  *out |= (*in % (1U << 11)) << (17 - 11);
10553  *out += out[-1]; // integrated delta decoding
10554  out++;
10555  *out = (*in >> 11) % (1U << 17);
10556  *out += out[-1]; // integrated delta decoding
10557  out++;
10558  *out = (*in >> 28);
10559  ++in;
10560  *out |= (*in % (1U << 13)) << (17 - 13);
10561  *out += out[-1]; // integrated delta decoding
10562  out++;
10563  *out = (*in >> 13) % (1U << 17);
10564  *out += out[-1]; // integrated delta decoding
10565  out++;
10566  *out = (*in >> 30);
10567  ++in;
10568  *out |= (*in % (1U << 15)) << (17 - 15);
10569  *out += out[-1]; // integrated delta decoding
10570  out++;
10571  *out = (*in >> 15);
10572  *out += out[-1]; // integrated delta decoding
10573 }
10574 
10575 void __device__ __host__ __integratedfastunpack18(const uint32_t initoffset,
10576  const uint32_t * in,
10577  uint32_t * out) {
10578  *out = (*in >> 0) % (1U << 18);
10579  *out += initoffset; // integrated delta decoding
10580  out++;
10581  *out = (*in >> 18);
10582  ++in;
10583  *out |= (*in % (1U << 4)) << (18 - 4);
10584  *out += out[-1]; // integrated delta decoding
10585  out++;
10586  *out = (*in >> 4) % (1U << 18);
10587  *out += out[-1]; // integrated delta decoding
10588  out++;
10589  *out = (*in >> 22);
10590  ++in;
10591  *out |= (*in % (1U << 8)) << (18 - 8);
10592  *out += out[-1]; // integrated delta decoding
10593  out++;
10594  *out = (*in >> 8) % (1U << 18);
10595  *out += out[-1]; // integrated delta decoding
10596  out++;
10597  *out = (*in >> 26);
10598  ++in;
10599  *out |= (*in % (1U << 12)) << (18 - 12);
10600  *out += out[-1]; // integrated delta decoding
10601  out++;
10602  *out = (*in >> 12) % (1U << 18);
10603  *out += out[-1]; // integrated delta decoding
10604  out++;
10605  *out = (*in >> 30);
10606  ++in;
10607  *out |= (*in % (1U << 16)) << (18 - 16);
10608  *out += out[-1]; // integrated delta decoding
10609  out++;
10610  *out = (*in >> 16);
10611  ++in;
10612  *out |= (*in % (1U << 2)) << (18 - 2);
10613  *out += out[-1]; // integrated delta decoding
10614  out++;
10615  *out = (*in >> 2) % (1U << 18);
10616  *out += out[-1]; // integrated delta decoding
10617  out++;
10618  *out = (*in >> 20);
10619  ++in;
10620  *out |= (*in % (1U << 6)) << (18 - 6);
10621  *out += out[-1]; // integrated delta decoding
10622  out++;
10623  *out = (*in >> 6) % (1U << 18);
10624  *out += out[-1]; // integrated delta decoding
10625  out++;
10626  *out = (*in >> 24);
10627  ++in;
10628  *out |= (*in % (1U << 10)) << (18 - 10);
10629  *out += out[-1]; // integrated delta decoding
10630  out++;
10631  *out = (*in >> 10) % (1U << 18);
10632  *out += out[-1]; // integrated delta decoding
10633  out++;
10634  *out = (*in >> 28);
10635  ++in;
10636  *out |= (*in % (1U << 14)) << (18 - 14);
10637  *out += out[-1]; // integrated delta decoding
10638  out++;
10639  *out = (*in >> 14);
10640  ++in;
10641  *out += out[-1]; // integrated delta decoding
10642  out++;
10643  *out = (*in >> 0) % (1U << 18);
10644  *out += out[-1]; // integrated delta decoding
10645  out++;
10646  *out = (*in >> 18);
10647  ++in;
10648  *out |= (*in % (1U << 4)) << (18 - 4);
10649  *out += out[-1]; // integrated delta decoding
10650  out++;
10651  *out = (*in >> 4) % (1U << 18);
10652  *out += out[-1]; // integrated delta decoding
10653  out++;
10654  *out = (*in >> 22);
10655  ++in;
10656  *out |= (*in % (1U << 8)) << (18 - 8);
10657  *out += out[-1]; // integrated delta decoding
10658  out++;
10659  *out = (*in >> 8) % (1U << 18);
10660  *out += out[-1]; // integrated delta decoding
10661  out++;
10662  *out = (*in >> 26);
10663  ++in;
10664  *out |= (*in % (1U << 12)) << (18 - 12);
10665  *out += out[-1]; // integrated delta decoding
10666  out++;
10667  *out = (*in >> 12) % (1U << 18);
10668  *out += out[-1]; // integrated delta decoding
10669  out++;
10670  *out = (*in >> 30);
10671  ++in;
10672  *out |= (*in % (1U << 16)) << (18 - 16);
10673  *out += out[-1]; // integrated delta decoding
10674  out++;
10675  *out = (*in >> 16);
10676  ++in;
10677  *out |= (*in % (1U << 2)) << (18 - 2);
10678  *out += out[-1]; // integrated delta decoding
10679  out++;
10680  *out = (*in >> 2) % (1U << 18);
10681  *out += out[-1]; // integrated delta decoding
10682  out++;
10683  *out = (*in >> 20);
10684  ++in;
10685  *out |= (*in % (1U << 6)) << (18 - 6);
10686  *out += out[-1]; // integrated delta decoding
10687  out++;
10688  *out = (*in >> 6) % (1U << 18);
10689  *out += out[-1]; // integrated delta decoding
10690  out++;
10691  *out = (*in >> 24);
10692  ++in;
10693  *out |= (*in % (1U << 10)) << (18 - 10);
10694  *out += out[-1]; // integrated delta decoding
10695  out++;
10696  *out = (*in >> 10) % (1U << 18);
10697  *out += out[-1]; // integrated delta decoding
10698  out++;
10699  *out = (*in >> 28);
10700  ++in;
10701  *out |= (*in % (1U << 14)) << (18 - 14);
10702  *out += out[-1]; // integrated delta decoding
10703  out++;
10704  *out = (*in >> 14);
10705  *out += out[-1]; // integrated delta decoding
10706 }
10707 
10708 void __device__ __host__ __integratedfastunpack19(const uint32_t initoffset,
10709  const uint32_t * in,
10710  uint32_t * out) {
10711  *out = (*in >> 0) % (1U << 19);
10712  *out += initoffset; // integrated delta decoding
10713  out++;
10714  *out = (*in >> 19);
10715  ++in;
10716  *out |= (*in % (1U << 6)) << (19 - 6);
10717  *out += out[-1]; // integrated delta decoding
10718  out++;
10719  *out = (*in >> 6) % (1U << 19);
10720  *out += out[-1]; // integrated delta decoding
10721  out++;
10722  *out = (*in >> 25);
10723  ++in;
10724  *out |= (*in % (1U << 12)) << (19 - 12);
10725  *out += out[-1]; // integrated delta decoding
10726  out++;
10727  *out = (*in >> 12) % (1U << 19);
10728  *out += out[-1]; // integrated delta decoding
10729  out++;
10730  *out = (*in >> 31);
10731  ++in;
10732  *out |= (*in % (1U << 18)) << (19 - 18);
10733  *out += out[-1]; // integrated delta decoding
10734  out++;
10735  *out = (*in >> 18);
10736  ++in;
10737  *out |= (*in % (1U << 5)) << (19 - 5);
10738  *out += out[-1]; // integrated delta decoding
10739  out++;
10740  *out = (*in >> 5) % (1U << 19);
10741  *out += out[-1]; // integrated delta decoding
10742  out++;
10743  *out = (*in >> 24);
10744  ++in;
10745  *out |= (*in % (1U << 11)) << (19 - 11);
10746  *out += out[-1]; // integrated delta decoding
10747  out++;
10748  *out = (*in >> 11) % (1U << 19);
10749  *out += out[-1]; // integrated delta decoding
10750  out++;
10751  *out = (*in >> 30);
10752  ++in;
10753  *out |= (*in % (1U << 17)) << (19 - 17);
10754  *out += out[-1]; // integrated delta decoding
10755  out++;
10756  *out = (*in >> 17);
10757  ++in;
10758  *out |= (*in % (1U << 4)) << (19 - 4);
10759  *out += out[-1]; // integrated delta decoding
10760  out++;
10761  *out = (*in >> 4) % (1U << 19);
10762  *out += out[-1]; // integrated delta decoding
10763  out++;
10764  *out = (*in >> 23);
10765  ++in;
10766  *out |= (*in % (1U << 10)) << (19 - 10);
10767  *out += out[-1]; // integrated delta decoding
10768  out++;
10769  *out = (*in >> 10) % (1U << 19);
10770  *out += out[-1]; // integrated delta decoding
10771  out++;
10772  *out = (*in >> 29);
10773  ++in;
10774  *out |= (*in % (1U << 16)) << (19 - 16);
10775  *out += out[-1]; // integrated delta decoding
10776  out++;
10777  *out = (*in >> 16);
10778  ++in;
10779  *out |= (*in % (1U << 3)) << (19 - 3);
10780  *out += out[-1]; // integrated delta decoding
10781  out++;
10782  *out = (*in >> 3) % (1U << 19);
10783  *out += out[-1]; // integrated delta decoding
10784  out++;
10785  *out = (*in >> 22);
10786  ++in;
10787  *out |= (*in % (1U << 9)) << (19 - 9);
10788  *out += out[-1]; // integrated delta decoding
10789  out++;
10790  *out = (*in >> 9) % (1U << 19);
10791  *out += out[-1]; // integrated delta decoding
10792  out++;
10793  *out = (*in >> 28);
10794  ++in;
10795  *out |= (*in % (1U << 15)) << (19 - 15);
10796  *out += out[-1]; // integrated delta decoding
10797  out++;
10798  *out = (*in >> 15);
10799  ++in;
10800  *out |= (*in % (1U << 2)) << (19 - 2);
10801  *out += out[-1]; // integrated delta decoding
10802  out++;
10803  *out = (*in >> 2) % (1U << 19);
10804  *out += out[-1]; // integrated delta decoding
10805  out++;
10806  *out = (*in >> 21);
10807  ++in;
10808  *out |= (*in % (1U << 8)) << (19 - 8);
10809  *out += out[-1]; // integrated delta decoding
10810  out++;
10811  *out = (*in >> 8) % (1U << 19);
10812  *out += out[-1]; // integrated delta decoding
10813  out++;
10814  *out = (*in >> 27);
10815  ++in;
10816  *out |= (*in % (1U << 14)) << (19 - 14);
10817  *out += out[-1]; // integrated delta decoding
10818  out++;
10819  *out = (*in >> 14);
10820  ++in;
10821  *out |= (*in % (1U << 1)) << (19 - 1);
10822  *out += out[-1]; // integrated delta decoding
10823  out++;
10824  *out = (*in >> 1) % (1U << 19);
10825  *out += out[-1]; // integrated delta decoding
10826  out++;
10827  *out = (*in >> 20);
10828  ++in;
10829  *out |= (*in % (1U << 7)) << (19 - 7);
10830  *out += out[-1]; // integrated delta decoding
10831  out++;
10832  *out = (*in >> 7) % (1U << 19);
10833  *out += out[-1]; // integrated delta decoding
10834  out++;
10835  *out = (*in >> 26);
10836  ++in;
10837  *out |= (*in % (1U << 13)) << (19 - 13);
10838  *out += out[-1]; // integrated delta decoding
10839  out++;
10840  *out = (*in >> 13);
10841  *out += out[-1]; // integrated delta decoding
10842 }
10843 
10844 void __device__ __host__ __integratedfastunpack20(const uint32_t initoffset,
10845  const uint32_t * in,
10846  uint32_t * out) {
10847  *out = (*in >> 0) % (1U << 20);
10848  *out += initoffset; // integrated delta decoding
10849  out++;
10850  *out = (*in >> 20);
10851  ++in;
10852  *out |= (*in % (1U << 8)) << (20 - 8);
10853  *out += out[-1]; // integrated delta decoding
10854  out++;
10855  *out = (*in >> 8) % (1U << 20);
10856  *out += out[-1]; // integrated delta decoding
10857  out++;
10858  *out = (*in >> 28);
10859  ++in;
10860  *out |= (*in % (1U << 16)) << (20 - 16);
10861  *out += out[-1]; // integrated delta decoding
10862  out++;
10863  *out = (*in >> 16);
10864  ++in;
10865  *out |= (*in % (1U << 4)) << (20 - 4);
10866  *out += out[-1]; // integrated delta decoding
10867  out++;
10868  *out = (*in >> 4) % (1U << 20);
10869  *out += out[-1]; // integrated delta decoding
10870  out++;
10871  *out = (*in >> 24);
10872  ++in;
10873  *out |= (*in % (1U << 12)) << (20 - 12);
10874  *out += out[-1]; // integrated delta decoding
10875  out++;
10876  *out = (*in >> 12);
10877  ++in;
10878  *out += out[-1]; // integrated delta decoding
10879  out++;
10880  *out = (*in >> 0) % (1U << 20);
10881  *out += out[-1]; // integrated delta decoding
10882  out++;
10883  *out = (*in >> 20);
10884  ++in;
10885  *out |= (*in % (1U << 8)) << (20 - 8);
10886  *out += out[-1]; // integrated delta decoding
10887  out++;
10888  *out = (*in >> 8) % (1U << 20);
10889  *out += out[-1]; // integrated delta decoding
10890  out++;
10891  *out = (*in >> 28);
10892  ++in;
10893  *out |= (*in % (1U << 16)) << (20 - 16);
10894  *out += out[-1]; // integrated delta decoding
10895  out++;
10896  *out = (*in >> 16);
10897  ++in;
10898  *out |= (*in % (1U << 4)) << (20 - 4);
10899  *out += out[-1]; // integrated delta decoding
10900  out++;
10901  *out = (*in >> 4) % (1U << 20);
10902  *out += out[-1]; // integrated delta decoding
10903  out++;
10904  *out = (*in >> 24);
10905  ++in;
10906  *out |= (*in % (1U << 12)) << (20 - 12);
10907  *out += out[-1]; // integrated delta decoding
10908  out++;
10909  *out = (*in >> 12);
10910  ++in;
10911  *out += out[-1]; // integrated delta decoding
10912  out++;
10913  *out = (*in >> 0) % (1U << 20);
10914  *out += out[-1]; // integrated delta decoding
10915  out++;
10916  *out = (*in >> 20);
10917  ++in;
10918  *out |= (*in % (1U << 8)) << (20 - 8);
10919  *out += out[-1]; // integrated delta decoding
10920  out++;
10921  *out = (*in >> 8) % (1U << 20);
10922  *out += out[-1]; // integrated delta decoding
10923  out++;
10924  *out = (*in >> 28);
10925  ++in;
10926  *out |= (*in % (1U << 16)) << (20 - 16);
10927  *out += out[-1]; // integrated delta decoding
10928  out++;
10929  *out = (*in >> 16);
10930  ++in;
10931  *out |= (*in % (1U << 4)) << (20 - 4);
10932  *out += out[-1]; // integrated delta decoding
10933  out++;
10934  *out = (*in >> 4) % (1U << 20);
10935  *out += out[-1]; // integrated delta decoding
10936  out++;
10937  *out = (*in >> 24);
10938  ++in;
10939  *out |= (*in % (1U << 12)) << (20 - 12);
10940  *out += out[-1]; // integrated delta decoding
10941  out++;
10942  *out = (*in >> 12);
10943  ++in;
10944  *out += out[-1]; // integrated delta decoding
10945  out++;
10946  *out = (*in >> 0) % (1U << 20);
10947  *out += out[-1]; // integrated delta decoding
10948  out++;
10949  *out = (*in >> 20);
10950  ++in;
10951  *out |= (*in % (1U << 8)) << (20 - 8);
10952  *out += out[-1]; // integrated delta decoding
10953  out++;
10954  *out = (*in >> 8) % (1U << 20);
10955  *out += out[-1]; // integrated delta decoding
10956  out++;
10957  *out = (*in >> 28);
10958  ++in;
10959  *out |= (*in % (1U << 16)) << (20 - 16);
10960  *out += out[-1]; // integrated delta decoding
10961  out++;
10962  *out = (*in >> 16);
10963  ++in;
10964  *out |= (*in % (1U << 4)) << (20 - 4);
10965  *out += out[-1]; // integrated delta decoding
10966  out++;
10967  *out = (*in >> 4) % (1U << 20);
10968  *out += out[-1]; // integrated delta decoding
10969  out++;
10970  *out = (*in >> 24);
10971  ++in;
10972  *out |= (*in % (1U << 12)) << (20 - 12);
10973  *out += out[-1]; // integrated delta decoding
10974  out++;
10975  *out = (*in >> 12);
10976  *out += out[-1]; // integrated delta decoding
10977 }
10978 
10979 void __device__ __host__ __integratedfastunpack21(const uint32_t initoffset,
10980  const uint32_t * in,
10981  uint32_t * out) {
10982  *out = (*in >> 0) % (1U << 21);
10983  *out += initoffset; // integrated delta decoding
10984  out++;
10985  *out = (*in >> 21);
10986  ++in;
10987  *out |= (*in % (1U << 10)) << (21 - 10);
10988  *out += out[-1]; // integrated delta decoding
10989  out++;
10990  *out = (*in >> 10) % (1U << 21);
10991  *out += out[-1]; // integrated delta decoding
10992  out++;
10993  *out = (*in >> 31);
10994  ++in;
10995  *out |= (*in % (1U << 20)) << (21 - 20);
10996  *out += out[-1]; // integrated delta decoding
10997  out++;
10998  *out = (*in >> 20);
10999  ++in;
11000  *out |= (*in % (1U << 9)) << (21 - 9);
11001  *out += out[-1]; // integrated delta decoding
11002  out++;
11003  *out = (*in >> 9) % (1U << 21);
11004  *out += out[-1]; // integrated delta decoding
11005  out++;
11006  *out = (*in >> 30);
11007  ++in;
11008  *out |= (*in % (1U << 19)) << (21 - 19);
11009  *out += out[-1]; // integrated delta decoding
11010  out++;
11011  *out = (*in >> 19);
11012  ++in;
11013  *out |= (*in % (1U << 8)) << (21 - 8);
11014  *out += out[-1]; // integrated delta decoding
11015  out++;
11016  *out = (*in >> 8) % (1U << 21);
11017  *out += out[-1]; // integrated delta decoding
11018  out++;
11019  *out = (*in >> 29);
11020  ++in;
11021  *out |= (*in % (1U << 18)) << (21 - 18);
11022  *out += out[-1]; // integrated delta decoding
11023  out++;
11024  *out = (*in >> 18);
11025  ++in;
11026  *out |= (*in % (1U << 7)) << (21 - 7);
11027  *out += out[-1]; // integrated delta decoding
11028  out++;
11029  *out = (*in >> 7) % (1U << 21);
11030  *out += out[-1]; // integrated delta decoding
11031  out++;
11032  *out = (*in >> 28);
11033  ++in;
11034  *out |= (*in % (1U << 17)) << (21 - 17);
11035  *out += out[-1]; // integrated delta decoding
11036  out++;
11037  *out = (*in >> 17);
11038  ++in;
11039  *out |= (*in % (1U << 6)) << (21 - 6);
11040  *out += out[-1]; // integrated delta decoding
11041  out++;
11042  *out = (*in >> 6) % (1U << 21);
11043  *out += out[-1]; // integrated delta decoding
11044  out++;
11045  *out = (*in >> 27);
11046  ++in;
11047  *out |= (*in % (1U << 16)) << (21 - 16);
11048  *out += out[-1]; // integrated delta decoding
11049  out++;
11050  *out = (*in >> 16);
11051  ++in;
11052  *out |= (*in % (1U << 5)) << (21 - 5);
11053  *out += out[-1]; // integrated delta decoding
11054  out++;
11055  *out = (*in >> 5) % (1U << 21);
11056  *out += out[-1]; // integrated delta decoding
11057  out++;
11058  *out = (*in >> 26);
11059  ++in;
11060  *out |= (*in % (1U << 15)) << (21 - 15);
11061  *out += out[-1]; // integrated delta decoding
11062  out++;
11063  *out = (*in >> 15);
11064  ++in;
11065  *out |= (*in % (1U << 4)) << (21 - 4);
11066  *out += out[-1]; // integrated delta decoding
11067  out++;
11068  *out = (*in >> 4) % (1U << 21);
11069  *out += out[-1]; // integrated delta decoding
11070  out++;
11071  *out = (*in >> 25);
11072  ++in;
11073  *out |= (*in % (1U << 14)) << (21 - 14);
11074  *out += out[-1]; // integrated delta decoding
11075  out++;
11076  *out = (*in >> 14);
11077  ++in;
11078  *out |= (*in % (1U << 3)) << (21 - 3);
11079  *out += out[-1]; // integrated delta decoding
11080  out++;
11081  *out = (*in >> 3) % (1U << 21);
11082  *out += out[-1]; // integrated delta decoding
11083  out++;
11084  *out = (*in >> 24);
11085  ++in;
11086  *out |= (*in % (1U << 13)) << (21 - 13);
11087  *out += out[-1]; // integrated delta decoding
11088  out++;
11089  *out = (*in >> 13);
11090  ++in;
11091  *out |= (*in % (1U << 2)) << (21 - 2);
11092  *out += out[-1]; // integrated delta decoding
11093  out++;
11094  *out = (*in >> 2) % (1U << 21);
11095  *out += out[-1]; // integrated delta decoding
11096  out++;
11097  *out = (*in >> 23);
11098  ++in;
11099  *out |= (*in % (1U << 12)) << (21 - 12);
11100  *out += out[-1]; // integrated delta decoding
11101  out++;
11102  *out = (*in >> 12);
11103  ++in;
11104  *out |= (*in % (1U << 1)) << (21 - 1);
11105  *out += out[-1]; // integrated delta decoding
11106  out++;
11107  *out = (*in >> 1) % (1U << 21);
11108  *out += out[-1]; // integrated delta decoding
11109  out++;
11110  *out = (*in >> 22);
11111  ++in;
11112  *out |= (*in % (1U << 11)) << (21 - 11);
11113  *out += out[-1]; // integrated delta decoding
11114  out++;
11115  *out = (*in >> 11);
11116  *out += out[-1]; // integrated delta decoding
11117 }
11118 
11119 void __device__ __host__ __integratedfastunpack22(const uint32_t initoffset,
11120  const uint32_t * in,
11121  uint32_t * out) {
11122  *out = (*in >> 0) % (1U << 22);
11123  *out += initoffset; // integrated delta decoding
11124  out++;
11125  *out = (*in >> 22);
11126  ++in;
11127  *out |= (*in % (1U << 12)) << (22 - 12);
11128  *out += out[-1]; // integrated delta decoding
11129  out++;
11130  *out = (*in >> 12);
11131  ++in;
11132  *out |= (*in % (1U << 2)) << (22 - 2);
11133  *out += out[-1]; // integrated delta decoding
11134  out++;
11135  *out = (*in >> 2) % (1U << 22);
11136  *out += out[-1]; // integrated delta decoding
11137  out++;
11138  *out = (*in >> 24);
11139  ++in;
11140  *out |= (*in % (1U << 14)) << (22 - 14);
11141  *out += out[-1]; // integrated delta decoding
11142  out++;
11143  *out = (*in >> 14);
11144  ++in;
11145  *out |= (*in % (1U << 4)) << (22 - 4);
11146  *out += out[-1]; // integrated delta decoding
11147  out++;
11148  *out = (*in >> 4) % (1U << 22);
11149  *out += out[-1]; // integrated delta decoding
11150  out++;
11151  *out = (*in >> 26);
11152  ++in;
11153  *out |= (*in % (1U << 16)) << (22 - 16);
11154  *out += out[-1]; // integrated delta decoding
11155  out++;
11156  *out = (*in >> 16);
11157  ++in;
11158  *out |= (*in % (1U << 6)) << (22 - 6);
11159  *out += out[-1]; // integrated delta decoding
11160  out++;
11161  *out = (*in >> 6) % (1U << 22);
11162  *out += out[-1]; // integrated delta decoding
11163  out++;
11164  *out = (*in >> 28);
11165  ++in;
11166  *out |= (*in % (1U << 18)) << (22 - 18);
11167  *out += out[-1]; // integrated delta decoding
11168  out++;
11169  *out = (*in >> 18);
11170  ++in;
11171  *out |= (*in % (1U << 8)) << (22 - 8);
11172  *out += out[-1]; // integrated delta decoding
11173  out++;
11174  *out = (*in >> 8) % (1U << 22);
11175  *out += out[-1]; // integrated delta decoding
11176  out++;
11177  *out = (*in >> 30);
11178  ++in;
11179  *out |= (*in % (1U << 20)) << (22 - 20);
11180  *out += out[-1]; // integrated delta decoding
11181  out++;
11182  *out = (*in >> 20);
11183  ++in;
11184  *out |= (*in % (1U << 10)) << (22 - 10);
11185  *out += out[-1]; // integrated delta decoding
11186  out++;
11187  *out = (*in >> 10);
11188  ++in;
11189  *out += out[-1]; // integrated delta decoding
11190  out++;
11191  *out = (*in >> 0) % (1U << 22);
11192  *out += out[-1]; // integrated delta decoding
11193  out++;
11194  *out = (*in >> 22);
11195  ++in;
11196  *out |= (*in % (1U << 12)) << (22 - 12);
11197  *out += out[-1]; // integrated delta decoding
11198  out++;
11199  *out = (*in >> 12);
11200  ++in;
11201  *out |= (*in % (1U << 2)) << (22 - 2);
11202  *out += out[-1]; // integrated delta decoding
11203  out++;
11204  *out = (*in >> 2) % (1U << 22);
11205  *out += out[-1]; // integrated delta decoding
11206  out++;
11207  *out = (*in >> 24);
11208  ++in;
11209  *out |= (*in % (1U << 14)) << (22 - 14);
11210  *out += out[-1]; // integrated delta decoding
11211  out++;
11212  *out = (*in >> 14);
11213  ++in;
11214  *out |= (*in % (1U << 4)) << (22 - 4);
11215  *out += out[-1]; // integrated delta decoding
11216  out++;
11217  *out = (*in >> 4) % (1U << 22);
11218  *out += out[-1]; // integrated delta decoding
11219  out++;
11220  *out = (*in >> 26);
11221  ++in;
11222  *out |= (*in % (1U << 16)) << (22 - 16);
11223  *out += out[-1]; // integrated delta decoding
11224  out++;
11225  *out = (*in >> 16);
11226  ++in;
11227  *out |= (*in % (1U << 6)) << (22 - 6);
11228  *out += out[-1]; // integrated delta decoding
11229  out++;
11230  *out = (*in >> 6) % (1U << 22);
11231  *out += out[-1]; // integrated delta decoding
11232  out++;
11233  *out = (*in >> 28);
11234  ++in;
11235  *out |= (*in % (1U << 18)) << (22 - 18);
11236  *out += out[-1]; // integrated delta decoding
11237  out++;
11238  *out = (*in >> 18);
11239  ++in;
11240  *out |= (*in % (1U << 8)) << (22 - 8);
11241  *out += out[-1]; // integrated delta decoding
11242  out++;
11243  *out = (*in >> 8) % (1U << 22);
11244  *out += out[-1]; // integrated delta decoding
11245  out++;
11246  *out = (*in >> 30);
11247  ++in;
11248  *out |= (*in % (1U << 20)) << (22 - 20);
11249  *out += out[-1]; // integrated delta decoding
11250  out++;
11251  *out = (*in >> 20);
11252  ++in;
11253  *out |= (*in % (1U << 10)) << (22 - 10);
11254  *out += out[-1]; // integrated delta decoding
11255  out++;
11256  *out = (*in >> 10);
11257  *out += out[-1]; // integrated delta decoding
11258 }
11259 
11260 void __device__ __host__ __integratedfastunpack23(const uint32_t initoffset,
11261  const uint32_t * in,
11262  uint32_t * out) {
11263  *out = (*in >> 0) % (1U << 23);
11264  *out += initoffset; // integrated delta decoding
11265  out++;
11266  *out = (*in >> 23);
11267  ++in;
11268  *out |= (*in % (1U << 14)) << (23 - 14);
11269  *out += out[-1]; // integrated delta decoding
11270  out++;
11271  *out = (*in >> 14);
11272  ++in;
11273  *out |= (*in % (1U << 5)) << (23 - 5);
11274  *out += out[-1]; // integrated delta decoding
11275  out++;
11276  *out = (*in >> 5) % (1U << 23);
11277  *out += out[-1]; // integrated delta decoding
11278  out++;
11279  *out = (*in >> 28);
11280  ++in;
11281  *out |= (*in % (1U << 19)) << (23 - 19);
11282  *out += out[-1]; // integrated delta decoding
11283  out++;
11284  *out = (*in >> 19);
11285  ++in;
11286  *out |= (*in % (1U << 10)) << (23 - 10);
11287  *out += out[-1]; // integrated delta decoding
11288  out++;
11289  *out = (*in >> 10);
11290  ++in;
11291  *out |= (*in % (1U << 1)) << (23 - 1);
11292  *out += out[-1]; // integrated delta decoding
11293  out++;
11294  *out = (*in >> 1) % (1U << 23);
11295  *out += out[-1]; // integrated delta decoding
11296  out++;
11297  *out = (*in >> 24);
11298  ++in;
11299  *out |= (*in % (1U << 15)) << (23 - 15);
11300  *out += out[-1]; // integrated delta decoding
11301  out++;
11302  *out = (*in >> 15);
11303  ++in;
11304  *out |= (*in % (1U << 6)) << (23 - 6);
11305  *out += out[-1]; // integrated delta decoding
11306  out++;
11307  *out = (*in >> 6) % (1U << 23);
11308  *out += out[-1]; // integrated delta decoding
11309  out++;
11310  *out = (*in >> 29);
11311  ++in;
11312  *out |= (*in % (1U << 20)) << (23 - 20);
11313  *out += out[-1]; // integrated delta decoding
11314  out++;
11315  *out = (*in >> 20);
11316  ++in;
11317  *out |= (*in % (1U << 11)) << (23 - 11);
11318  *out += out[-1]; // integrated delta decoding
11319  out++;
11320  *out = (*in >> 11);
11321  ++in;
11322  *out |= (*in % (1U << 2)) << (23 - 2);
11323  *out += out[-1]; // integrated delta decoding
11324  out++;
11325  *out = (*in >> 2) % (1U << 23);
11326  *out += out[-1]; // integrated delta decoding
11327  out++;
11328  *out = (*in >> 25);
11329  ++in;
11330  *out |= (*in % (1U << 16)) << (23 - 16);
11331  *out += out[-1]; // integrated delta decoding
11332  out++;
11333  *out = (*in >> 16);
11334  ++in;
11335  *out |= (*in % (1U << 7)) << (23 - 7);
11336  *out += out[-1]; // integrated delta decoding
11337  out++;
11338  *out = (*in >> 7) % (1U << 23);
11339  *out += out[-1]; // integrated delta decoding
11340  out++;
11341  *out = (*in >> 30);
11342  ++in;
11343  *out |= (*in % (1U << 21)) << (23 - 21);
11344  *out += out[-1]; // integrated delta decoding
11345  out++;
11346  *out = (*in >> 21);
11347  ++in;
11348  *out |= (*in % (1U << 12)) << (23 - 12);
11349  *out += out[-1]; // integrated delta decoding
11350  out++;
11351  *out = (*in >> 12);
11352  ++in;
11353  *out |= (*in % (1U << 3)) << (23 - 3);
11354  *out += out[-1]; // integrated delta decoding
11355  out++;
11356  *out = (*in >> 3) % (1U << 23);
11357  *out += out[-1]; // integrated delta decoding
11358  out++;
11359  *out = (*in >> 26);
11360  ++in;
11361  *out |= (*in % (1U << 17)) << (23 - 17);
11362  *out += out[-1]; // integrated delta decoding
11363  out++;
11364  *out = (*in >> 17);
11365  ++in;
11366  *out |= (*in % (1U << 8)) << (23 - 8);
11367  *out += out[-1]; // integrated delta decoding
11368  out++;
11369  *out = (*in >> 8) % (1U << 23);
11370  *out += out[-1]; // integrated delta decoding
11371  out++;
11372  *out = (*in >> 31);
11373  ++in;
11374  *out |= (*in % (1U << 22)) << (23 - 22);
11375  *out += out[-1]; // integrated delta decoding
11376  out++;
11377  *out = (*in >> 22);
11378  ++in;
11379  *out |= (*in % (1U << 13)) << (23 - 13);
11380  *out += out[-1]; // integrated delta decoding
11381  out++;
11382  *out = (*in >> 13);
11383  ++in;
11384  *out |= (*in % (1U << 4)) << (23 - 4);
11385  *out += out[-1]; // integrated delta decoding
11386  out++;
11387  *out = (*in >> 4) % (1U << 23);
11388  *out += out[-1]; // integrated delta decoding
11389  out++;
11390  *out = (*in >> 27);
11391  ++in;
11392  *out |= (*in % (1U << 18)) << (23 - 18);
11393  *out += out[-1]; // integrated delta decoding
11394  out++;
11395  *out = (*in >> 18);
11396  ++in;
11397  *out |= (*in % (1U << 9)) << (23 - 9);
11398  *out += out[-1]; // integrated delta decoding
11399  out++;
11400  *out = (*in >> 9);
11401  *out += out[-1]; // integrated delta decoding
11402 }
11403 
11404 void __device__ __host__ __integratedfastunpack24(const uint32_t initoffset,
11405  const uint32_t * in,
11406  uint32_t * out) {
11407  *out = (*in >> 0) % (1U << 24);
11408  *out += initoffset; // integrated delta decoding
11409  out++;
11410  *out = (*in >> 24);
11411  ++in;
11412  *out |= (*in % (1U << 16)) << (24 - 16);
11413  *out += out[-1]; // integrated delta decoding
11414  out++;
11415  *out = (*in >> 16);
11416  ++in;
11417  *out |= (*in % (1U << 8)) << (24 - 8);
11418  *out += out[-1]; // integrated delta decoding
11419  out++;
11420  *out = (*in >> 8);
11421  ++in;
11422  *out += out[-1]; // integrated delta decoding
11423  out++;
11424  *out = (*in >> 0) % (1U << 24);
11425  *out += out[-1]; // integrated delta decoding
11426  out++;
11427  *out = (*in >> 24);
11428  ++in;
11429  *out |= (*in % (1U << 16)) << (24 - 16);
11430  *out += out[-1]; // integrated delta decoding
11431  out++;
11432  *out = (*in >> 16);
11433  ++in;
11434  *out |= (*in % (1U << 8)) << (24 - 8);
11435  *out += out[-1]; // integrated delta decoding
11436  out++;
11437  *out = (*in >> 8);
11438  ++in;
11439  *out += out[-1]; // integrated delta decoding
11440  out++;
11441  *out = (*in >> 0) % (1U << 24);
11442  *out += out[-1]; // integrated delta decoding
11443  out++;
11444  *out = (*in >> 24);
11445  ++in;
11446  *out |= (*in % (1U << 16)) << (24 - 16);
11447  *out += out[-1]; // integrated delta decoding
11448  out++;
11449  *out = (*in >> 16);
11450  ++in;
11451  *out |= (*in % (1U << 8)) << (24 - 8);
11452  *out += out[-1]; // integrated delta decoding
11453  out++;
11454  *out = (*in >> 8);
11455  ++in;
11456  *out += out[-1]; // integrated delta decoding
11457  out++;
11458  *out = (*in >> 0) % (1U << 24);
11459  *out += out[-1]; // integrated delta decoding
11460  out++;
11461  *out = (*in >> 24);
11462  ++in;
11463  *out |= (*in % (1U << 16)) << (24 - 16);
11464  *out += out[-1]; // integrated delta decoding
11465  out++;
11466  *out = (*in >> 16);
11467  ++in;
11468  *out |= (*in % (1U << 8)) << (24 - 8);
11469  *out += out[-1]; // integrated delta decoding
11470  out++;
11471  *out = (*in >> 8);
11472  ++in;
11473  *out += out[-1]; // integrated delta decoding
11474  out++;
11475  *out = (*in >> 0) % (1U << 24);
11476  *out += out[-1]; // integrated delta decoding
11477  out++;
11478  *out = (*in >> 24);
11479  ++in;
11480  *out |= (*in % (1U << 16)) << (24 - 16);
11481  *out += out[-1]; // integrated delta decoding
11482  out++;
11483  *out = (*in >> 16);
11484  ++in;
11485  *out |= (*in % (1U << 8)) << (24 - 8);
11486  *out += out[-1]; // integrated delta decoding
11487  out++;
11488  *out = (*in >> 8);
11489  ++in;
11490  *out += out[-1]; // integrated delta decoding
11491  out++;
11492  *out = (*in >> 0) % (1U << 24);
11493  *out += out[-1]; // integrated delta decoding
11494  out++;
11495  *out = (*in >> 24);
11496  ++in;
11497  *out |= (*in % (1U << 16)) << (24 - 16);
11498  *out += out[-1]; // integrated delta decoding
11499  out++;
11500  *out = (*in >> 16);
11501  ++in;
11502  *out |= (*in % (1U << 8)) << (24 - 8);
11503  *out += out[-1]; // integrated delta decoding
11504  out++;
11505  *out = (*in >> 8);
11506  ++in;
11507  *out += out[-1]; // integrated delta decoding
11508  out++;
11509  *out = (*in >> 0) % (1U << 24);
11510  *out += out[-1]; // integrated delta decoding
11511  out++;
11512  *out = (*in >> 24);
11513  ++in;
11514  *out |= (*in % (1U << 16)) << (24 - 16);
11515  *out += out[-1]; // integrated delta decoding
11516  out++;
11517  *out = (*in >> 16);
11518  ++in;
11519  *out |= (*in % (1U << 8)) << (24 - 8);
11520  *out += out[-1]; // integrated delta decoding
11521  out++;
11522  *out = (*in >> 8);
11523  ++in;
11524  *out += out[-1]; // integrated delta decoding
11525  out++;
11526  *out = (*in >> 0) % (1U << 24);
11527  *out += out[-1]; // integrated delta decoding
11528  out++;
11529  *out = (*in >> 24);
11530  ++in;
11531  *out |= (*in % (1U << 16)) << (24 - 16);
11532  *out += out[-1]; // integrated delta decoding
11533  out++;
11534  *out = (*in >> 16);
11535  ++in;
11536  *out |= (*in % (1U << 8)) << (24 - 8);
11537  *out += out[-1]; // integrated delta decoding
11538  out++;
11539  *out = (*in >> 8);
11540  *out += out[-1]; // integrated delta decoding
11541 }
11542 
11543 void __device__ __host__ __integratedfastunpack25(const uint32_t initoffset,
11544  const uint32_t * in,
11545  uint32_t * out) {
11546  *out = (*in >> 0) % (1U << 25);
11547  *out += initoffset; // integrated delta decoding
11548  out++;
11549  *out = (*in >> 25);
11550  ++in;
11551  *out |= (*in % (1U << 18)) << (25 - 18);
11552  *out += out[-1]; // integrated delta decoding
11553  out++;
11554  *out = (*in >> 18);
11555  ++in;
11556  *out |= (*in % (1U << 11)) << (25 - 11);
11557  *out += out[-1]; // integrated delta decoding
11558  out++;
11559  *out = (*in >> 11);
11560  ++in;
11561  *out |= (*in % (1U << 4)) << (25 - 4);
11562  *out += out[-1]; // integrated delta decoding
11563  out++;
11564  *out = (*in >> 4) % (1U << 25);
11565  *out += out[-1]; // integrated delta decoding
11566  out++;
11567  *out = (*in >> 29);
11568  ++in;
11569  *out |= (*in % (1U << 22)) << (25 - 22);
11570  *out += out[-1]; // integrated delta decoding
11571  out++;
11572  *out = (*in >> 22);
11573  ++in;
11574  *out |= (*in % (1U << 15)) << (25 - 15);
11575  *out += out[-1]; // integrated delta decoding
11576  out++;
11577  *out = (*in >> 15);
11578  ++in;
11579  *out |= (*in % (1U << 8)) << (25 - 8);
11580  *out += out[-1]; // integrated delta decoding
11581  out++;
11582  *out = (*in >> 8);
11583  ++in;
11584  *out |= (*in % (1U << 1)) << (25 - 1);
11585  *out += out[-1]; // integrated delta decoding
11586  out++;
11587  *out = (*in >> 1) % (1U << 25);
11588  *out += out[-1]; // integrated delta decoding
11589  out++;
11590  *out = (*in >> 26);
11591  ++in;
11592  *out |= (*in % (1U << 19)) << (25 - 19);
11593  *out += out[-1]; // integrated delta decoding
11594  out++;
11595  *out = (*in >> 19);
11596  ++in;
11597  *out |= (*in % (1U << 12)) << (25 - 12);
11598  *out += out[-1]; // integrated delta decoding
11599  out++;
11600  *out = (*in >> 12);
11601  ++in;
11602  *out |= (*in % (1U << 5)) << (25 - 5);
11603  *out += out[-1]; // integrated delta decoding
11604  out++;
11605  *out = (*in >> 5) % (1U << 25);
11606  *out += out[-1]; // integrated delta decoding
11607  out++;
11608  *out = (*in >> 30);
11609  ++in;
11610  *out |= (*in % (1U << 23)) << (25 - 23);
11611  *out += out[-1]; // integrated delta decoding
11612  out++;
11613  *out = (*in >> 23);
11614  ++in;
11615  *out |= (*in % (1U << 16)) << (25 - 16);
11616  *out += out[-1]; // integrated delta decoding
11617  out++;
11618  *out = (*in >> 16);
11619  ++in;
11620  *out |= (*in % (1U << 9)) << (25 - 9);
11621  *out += out[-1]; // integrated delta decoding
11622  out++;
11623  *out = (*in >> 9);
11624  ++in;
11625  *out |= (*in % (1U << 2)) << (25 - 2);
11626  *out += out[-1]; // integrated delta decoding
11627  out++;
11628  *out = (*in >> 2) % (1U << 25);
11629  *out += out[-1]; // integrated delta decoding
11630  out++;
11631  *out = (*in >> 27);
11632  ++in;
11633  *out |= (*in % (1U << 20)) << (25 - 20);
11634  *out += out[-1]; // integrated delta decoding
11635  out++;
11636  *out = (*in >> 20);
11637  ++in;
11638  *out |= (*in % (1U << 13)) << (25 - 13);
11639  *out += out[-1]; // integrated delta decoding
11640  out++;
11641  *out = (*in >> 13);
11642  ++in;
11643  *out |= (*in % (1U << 6)) << (25 - 6);
11644  *out += out[-1]; // integrated delta decoding
11645  out++;
11646  *out = (*in >> 6) % (1U << 25);
11647  *out += out[-1]; // integrated delta decoding
11648  out++;
11649  *out = (*in >> 31);
11650  ++in;
11651  *out |= (*in % (1U << 24)) << (25 - 24);
11652  *out += out[-1]; // integrated delta decoding
11653  out++;
11654  *out = (*in >> 24);
11655  ++in;
11656  *out |= (*in % (1U << 17)) << (25 - 17);
11657  *out += out[-1]; // integrated delta decoding
11658  out++;
11659  *out = (*in >> 17);
11660  ++in;
11661  *out |= (*in % (1U << 10)) << (25 - 10);
11662  *out += out[-1]; // integrated delta decoding
11663  out++;
11664  *out = (*in >> 10);
11665  ++in;
11666  *out |= (*in % (1U << 3)) << (25 - 3);
11667  *out += out[-1]; // integrated delta decoding
11668  out++;
11669  *out = (*in >> 3) % (1U << 25);
11670  *out += out[-1]; // integrated delta decoding
11671  out++;
11672  *out = (*in >> 28);
11673  ++in;
11674  *out |= (*in % (1U << 21)) << (25 - 21);
11675  *out += out[-1]; // integrated delta decoding
11676  out++;
11677  *out = (*in >> 21);
11678  ++in;
11679  *out |= (*in % (1U << 14)) << (25 - 14);
11680  *out += out[-1]; // integrated delta decoding
11681  out++;
11682  *out = (*in >> 14);
11683  ++in;
11684  *out |= (*in % (1U << 7)) << (25 - 7);
11685  *out += out[-1]; // integrated delta decoding
11686  out++;
11687  *out = (*in >> 7);
11688  *out += out[-1]; // integrated delta decoding
11689 }
11690 
11691 void __device__ __host__ __integratedfastunpack26(const uint32_t initoffset,
11692  const uint32_t * in,
11693  uint32_t * out) {
11694  *out = (*in >> 0) % (1U << 26);
11695  *out += initoffset; // integrated delta decoding
11696  out++;
11697  *out = (*in >> 26);
11698  ++in;
11699  *out |= (*in % (1U << 20)) << (26 - 20);
11700  *out += out[-1]; // integrated delta decoding
11701  out++;
11702  *out = (*in >> 20);
11703  ++in;
11704  *out |= (*in % (1U << 14)) << (26 - 14);
11705  *out += out[-1]; // integrated delta decoding
11706  out++;
11707  *out = (*in >> 14);
11708  ++in;
11709  *out |= (*in % (1U << 8)) << (26 - 8);
11710  *out += out[-1]; // integrated delta decoding
11711  out++;
11712  *out = (*in >> 8);
11713  ++in;
11714  *out |= (*in % (1U << 2)) << (26 - 2);
11715  *out += out[-1]; // integrated delta decoding
11716  out++;
11717  *out = (*in >> 2) % (1U << 26);
11718  *out += out[-1]; // integrated delta decoding
11719  out++;
11720  *out = (*in >> 28);
11721  ++in;
11722  *out |= (*in % (1U << 22)) << (26 - 22);
11723  *out += out[-1]; // integrated delta decoding
11724  out++;
11725  *out = (*in >> 22);
11726  ++in;
11727  *out |= (*in % (1U << 16)) << (26 - 16);
11728  *out += out[-1]; // integrated delta decoding
11729  out++;
11730  *out = (*in >> 16);
11731  ++in;
11732  *out |= (*in % (1U << 10)) << (26 - 10);
11733  *out += out[-1]; // integrated delta decoding
11734  out++;
11735  *out = (*in >> 10);
11736  ++in;
11737  *out |= (*in % (1U << 4)) << (26 - 4);
11738  *out += out[-1]; // integrated delta decoding
11739  out++;
11740  *out = (*in >> 4) % (1U << 26);
11741  *out += out[-1]; // integrated delta decoding
11742  out++;
11743  *out = (*in >> 30);
11744  ++in;
11745  *out |= (*in % (1U << 24)) << (26 - 24);
11746  *out += out[-1]; // integrated delta decoding
11747  out++;
11748  *out = (*in >> 24);
11749  ++in;
11750  *out |= (*in % (1U << 18)) << (26 - 18);
11751  *out += out[-1]; // integrated delta decoding
11752  out++;
11753  *out = (*in >> 18);
11754  ++in;
11755  *out |= (*in % (1U << 12)) << (26 - 12);
11756  *out += out[-1]; // integrated delta decoding
11757  out++;
11758  *out = (*in >> 12);
11759  ++in;
11760  *out |= (*in % (1U << 6)) << (26 - 6);
11761  *out += out[-1]; // integrated delta decoding
11762  out++;
11763  *out = (*in >> 6);
11764  ++in;
11765  *out += out[-1]; // integrated delta decoding
11766  out++;
11767  *out = (*in >> 0) % (1U << 26);
11768  *out += out[-1]; // integrated delta decoding
11769  out++;
11770  *out = (*in >> 26);
11771  ++in;
11772  *out |= (*in % (1U << 20)) << (26 - 20);
11773  *out += out[-1]; // integrated delta decoding
11774  out++;
11775  *out = (*in >> 20);
11776  ++in;
11777  *out |= (*in % (1U << 14)) << (26 - 14);
11778  *out += out[-1]; // integrated delta decoding
11779  out++;
11780  *out = (*in >> 14);
11781  ++in;
11782  *out |= (*in % (1U << 8)) << (26 - 8);
11783  *out += out[-1]; // integrated delta decoding
11784  out++;
11785  *out = (*in >> 8);
11786  ++in;
11787  *out |= (*in % (1U << 2)) << (26 - 2);
11788  *out += out[-1]; // integrated delta decoding
11789  out++;
11790  *out = (*in >> 2) % (1U << 26);
11791  *out += out[-1]; // integrated delta decoding
11792  out++;
11793  *out = (*in >> 28);
11794  ++in;
11795  *out |= (*in % (1U << 22)) << (26 - 22);
11796  *out += out[-1]; // integrated delta decoding
11797  out++;
11798  *out = (*in >> 22);
11799  ++in;
11800  *out |= (*in % (1U << 16)) << (26 - 16);
11801  *out += out[-1]; // integrated delta decoding
11802  out++;
11803  *out = (*in >> 16);
11804  ++in;
11805  *out |= (*in % (1U << 10)) << (26 - 10);
11806  *out += out[-1]; // integrated delta decoding
11807  out++;
11808  *out = (*in >> 10);
11809  ++in;
11810  *out |= (*in % (1U << 4)) << (26 - 4);
11811  *out += out[-1]; // integrated delta decoding
11812  out++;
11813  *out = (*in >> 4) % (1U << 26);
11814  *out += out[-1]; // integrated delta decoding
11815  out++;
11816  *out = (*in >> 30);
11817  ++in;
11818  *out |= (*in % (1U << 24)) << (26 - 24);
11819  *out += out[-1]; // integrated delta decoding
11820  out++;
11821  *out = (*in >> 24);
11822  ++in;
11823  *out |= (*in % (1U << 18)) << (26 - 18);
11824  *out += out[-1]; // integrated delta decoding
11825  out++;
11826  *out = (*in >> 18);
11827  ++in;
11828  *out |= (*in % (1U << 12)) << (26 - 12);
11829  *out += out[-1]; // integrated delta decoding
11830  out++;
11831  *out = (*in >> 12);
11832  ++in;
11833  *out |= (*in % (1U << 6)) << (26 - 6);
11834  *out += out[-1]; // integrated delta decoding
11835  out++;
11836  *out = (*in >> 6);
11837  *out += out[-1]; // integrated delta decoding
11838 }
11839 
11840 void __device__ __host__ __integratedfastunpack27(const uint32_t initoffset,
11841  const uint32_t * in,
11842  uint32_t * out) {
11843  *out = (*in >> 0) % (1U << 27);
11844  *out += initoffset; // integrated delta decoding
11845  out++;
11846  *out = (*in >> 27);
11847  ++in;
11848  *out |= (*in % (1U << 22)) << (27 - 22);
11849  *out += out[-1]; // integrated delta decoding
11850  out++;
11851  *out = (*in >> 22);
11852  ++in;
11853  *out |= (*in % (1U << 17)) << (27 - 17);
11854  *out += out[-1]; // integrated delta decoding
11855  out++;
11856  *out = (*in >> 17);
11857  ++in;
11858  *out |= (*in % (1U << 12)) << (27 - 12);
11859  *out += out[-1]; // integrated delta decoding
11860  out++;
11861  *out = (*in >> 12);
11862  ++in;
11863  *out |= (*in % (1U << 7)) << (27 - 7);
11864  *out += out[-1]; // integrated delta decoding
11865  out++;
11866  *out = (*in >> 7);
11867  ++in;
11868  *out |= (*in % (1U << 2)) << (27 - 2);
11869  *out += out[-1]; // integrated delta decoding
11870  out++;
11871  *out = (*in >> 2) % (1U << 27);
11872  *out += out[-1]; // integrated delta decoding
11873  out++;
11874  *out = (*in >> 29);
11875  ++in;
11876  *out |= (*in % (1U << 24)) << (27 - 24);
11877  *out += out[-1]; // integrated delta decoding
11878  out++;
11879  *out = (*in >> 24);
11880  ++in;
11881  *out |= (*in % (1U << 19)) << (27 - 19);
11882  *out += out[-1]; // integrated delta decoding
11883  out++;
11884  *out = (*in >> 19);
11885  ++in;
11886  *out |= (*in % (1U << 14)) << (27 - 14);
11887  *out += out[-1]; // integrated delta decoding
11888  out++;
11889  *out = (*in >> 14);
11890  ++in;
11891  *out |= (*in % (1U << 9)) << (27 - 9);
11892  *out += out[-1]; // integrated delta decoding
11893  out++;
11894  *out = (*in >> 9);
11895  ++in;
11896  *out |= (*in % (1U << 4)) << (27 - 4);
11897  *out += out[-1]; // integrated delta decoding
11898  out++;
11899  *out = (*in >> 4) % (1U << 27);
11900  *out += out[-1]; // integrated delta decoding
11901  out++;
11902  *out = (*in >> 31);
11903  ++in;
11904  *out |= (*in % (1U << 26)) << (27 - 26);
11905  *out += out[-1]; // integrated delta decoding
11906  out++;
11907  *out = (*in >> 26);
11908  ++in;
11909  *out |= (*in % (1U << 21)) << (27 - 21);
11910  *out += out[-1]; // integrated delta decoding
11911  out++;
11912  *out = (*in >> 21);
11913  ++in;
11914  *out |= (*in % (1U << 16)) << (27 - 16);
11915  *out += out[-1]; // integrated delta decoding
11916  out++;
11917  *out = (*in >> 16);
11918  ++in;
11919  *out |= (*in % (1U << 11)) << (27 - 11);
11920  *out += out[-1]; // integrated delta decoding
11921  out++;
11922  *out = (*in >> 11);
11923  ++in;
11924  *out |= (*in % (1U << 6)) << (27 - 6);
11925  *out += out[-1]; // integrated delta decoding
11926  out++;
11927  *out = (*in >> 6);
11928  ++in;
11929  *out |= (*in % (1U << 1)) << (27 - 1);
11930  *out += out[-1]; // integrated delta decoding
11931  out++;
11932  *out = (*in >> 1) % (1U << 27);
11933  *out += out[-1]; // integrated delta decoding
11934  out++;
11935  *out = (*in >> 28);
11936  ++in;
11937  *out |= (*in % (1U << 23)) << (27 - 23);
11938  *out += out[-1]; // integrated delta decoding
11939  out++;
11940  *out = (*in >> 23);
11941  ++in;
11942  *out |= (*in % (1U << 18)) << (27 - 18);
11943  *out += out[-1]; // integrated delta decoding
11944  out++;
11945  *out = (*in >> 18);
11946  ++in;
11947  *out |= (*in % (1U << 13)) << (27 - 13);
11948  *out += out[-1]; // integrated delta decoding
11949  out++;
11950  *out = (*in >> 13);
11951  ++in;
11952  *out |= (*in % (1U << 8)) << (27 - 8);
11953  *out += out[-1]; // integrated delta decoding
11954  out++;
11955  *out = (*in >> 8);
11956  ++in;
11957  *out |= (*in % (1U << 3)) << (27 - 3);
11958  *out += out[-1]; // integrated delta decoding
11959  out++;
11960  *out = (*in >> 3) % (1U << 27);
11961  *out += out[-1]; // integrated delta decoding
11962  out++;
11963  *out = (*in >> 30);
11964  ++in;
11965  *out |= (*in % (1U << 25)) << (27 - 25);
11966  *out += out[-1]; // integrated delta decoding
11967  out++;
11968  *out = (*in >> 25);
11969  ++in;
11970  *out |= (*in % (1U << 20)) << (27 - 20);
11971  *out += out[-1]; // integrated delta decoding
11972  out++;
11973  *out = (*in >> 20);
11974  ++in;
11975  *out |= (*in % (1U << 15)) << (27 - 15);
11976  *out += out[-1]; // integrated delta decoding
11977  out++;
11978  *out = (*in >> 15);
11979  ++in;
11980  *out |= (*in % (1U << 10)) << (27 - 10);
11981  *out += out[-1]; // integrated delta decoding
11982  out++;
11983  *out = (*in >> 10);
11984  ++in;
11985  *out |= (*in % (1U << 5)) << (27 - 5);
11986  *out += out[-1]; // integrated delta decoding
11987  out++;
11988  *out = (*in >> 5);
11989  *out += out[-1]; // integrated delta decoding
11990 }
11991 
11992 void __device__ __host__ __integratedfastunpack28(const uint32_t initoffset,
11993  const uint32_t * in,
11994  uint32_t * out) {
11995  *out = (*in >> 0) % (1U << 28);
11996  *out += initoffset; // integrated delta decoding
11997  out++;
11998  *out = (*in >> 28);
11999  ++in;
12000  *out |= (*in % (1U << 24)) << (28 - 24);
12001  *out += out[-1]; // integrated delta decoding
12002  out++;
12003  *out = (*in >> 24);
12004  ++in;
12005  *out |= (*in % (1U << 20)) << (28 - 20);
12006  *out += out[-1]; // integrated delta decoding
12007  out++;
12008  *out = (*in >> 20);
12009  ++in;
12010  *out |= (*in % (1U << 16)) << (28 - 16);
12011  *out += out[-1]; // integrated delta decoding
12012  out++;
12013  *out = (*in >> 16);
12014  ++in;
12015  *out |= (*in % (1U << 12)) << (28 - 12);
12016  *out += out[-1]; // integrated delta decoding
12017  out++;
12018  *out = (*in >> 12);
12019  ++in;
12020  *out |= (*in % (1U << 8)) << (28 - 8);
12021  *out += out[-1]; // integrated delta decoding
12022  out++;
12023  *out = (*in >> 8);
12024  ++in;
12025  *out |= (*in % (1U << 4)) << (28 - 4);
12026  *out += out[-1]; // integrated delta decoding
12027  out++;
12028  *out = (*in >> 4);
12029  ++in;
12030  *out += out[-1]; // integrated delta decoding
12031  out++;
12032  *out = (*in >> 0) % (1U << 28);
12033  *out += out[-1]; // integrated delta decoding
12034  out++;
12035  *out = (*in >> 28);
12036  ++in;
12037  *out |= (*in % (1U << 24)) << (28 - 24);
12038  *out += out[-1]; // integrated delta decoding
12039  out++;
12040  *out = (*in >> 24);
12041  ++in;
12042  *out |= (*in % (1U << 20)) << (28 - 20);
12043  *out += out[-1]; // integrated delta decoding
12044  out++;
12045  *out = (*in >> 20);
12046  ++in;
12047  *out |= (*in % (1U << 16)) << (28 - 16);
12048  *out += out[-1]; // integrated delta decoding
12049  out++;
12050  *out = (*in >> 16);
12051  ++in;
12052  *out |= (*in % (1U << 12)) << (28 - 12);
12053  *out += out[-1]; // integrated delta decoding
12054  out++;
12055  *out = (*in >> 12);
12056  ++in;
12057  *out |= (*in % (1U << 8)) << (28 - 8);
12058  *out += out[-1]; // integrated delta decoding
12059  out++;
12060  *out = (*in >> 8);
12061  ++in;
12062  *out |= (*in % (1U << 4)) << (28 - 4);
12063  *out += out[-1]; // integrated delta decoding
12064  out++;
12065  *out = (*in >> 4);
12066  ++in;
12067  *out += out[-1]; // integrated delta decoding
12068  out++;
12069  *out = (*in >> 0) % (1U << 28);
12070  *out += out[-1]; // integrated delta decoding
12071  out++;
12072  *out = (*in >> 28);
12073  ++in;
12074  *out |= (*in % (1U << 24)) << (28 - 24);
12075  *out += out[-1]; // integrated delta decoding
12076  out++;
12077  *out = (*in >> 24);
12078  ++in;
12079  *out |= (*in % (1U << 20)) << (28 - 20);
12080  *out += out[-1]; // integrated delta decoding
12081  out++;
12082  *out = (*in >> 20);
12083  ++in;
12084  *out |= (*in % (1U << 16)) << (28 - 16);
12085  *out += out[-1]; // integrated delta decoding
12086  out++;
12087  *out = (*in >> 16);
12088  ++in;
12089  *out |= (*in % (1U << 12)) << (28 - 12);
12090  *out += out[-1]; // integrated delta decoding
12091  out++;
12092  *out = (*in >> 12);
12093  ++in;
12094  *out |= (*in % (1U << 8)) << (28 - 8);
12095  *out += out[-1]; // integrated delta decoding
12096  out++;
12097  *out = (*in >> 8);
12098  ++in;
12099  *out |= (*in % (1U << 4)) << (28 - 4);
12100  *out += out[-1]; // integrated delta decoding
12101  out++;
12102  *out = (*in >> 4);
12103  ++in;
12104  *out += out[-1]; // integrated delta decoding
12105  out++;
12106  *out = (*in >> 0) % (1U << 28);
12107  *out += out[-1]; // integrated delta decoding
12108  out++;
12109  *out = (*in >> 28);
12110  ++in;
12111  *out |= (*in % (1U << 24)) << (28 - 24);
12112  *out += out[-1]; // integrated delta decoding
12113  out++;
12114  *out = (*in >> 24);
12115  ++in;
12116  *out |= (*in % (1U << 20)) << (28 - 20);
12117  *out += out[-1]; // integrated delta decoding
12118  out++;
12119  *out = (*in >> 20);
12120  ++in;
12121  *out |= (*in % (1U << 16)) << (28 - 16);
12122  *out += out[-1]; // integrated delta decoding
12123  out++;
12124  *out = (*in >> 16);
12125  ++in;
12126  *out |= (*in % (1U << 12)) << (28 - 12);
12127  *out += out[-1]; // integrated delta decoding
12128  out++;
12129  *out = (*in >> 12);
12130  ++in;
12131  *out |= (*in % (1U << 8)) << (28 - 8);
12132  *out += out[-1]; // integrated delta decoding
12133  out++;
12134  *out = (*in >> 8);
12135  ++in;
12136  *out |= (*in % (1U << 4)) << (28 - 4);
12137  *out += out[-1]; // integrated delta decoding
12138  out++;
12139  *out = (*in >> 4);
12140  *out += out[-1]; // integrated delta decoding
12141 }
12142 
12143 void __device__ __host__ __integratedfastunpack29(const uint32_t initoffset,
12144  const uint32_t * in,
12145  uint32_t * out) {
12146  *out = (*in >> 0) % (1U << 29);
12147  *out += initoffset; // integrated delta decoding
12148  out++;
12149  *out = (*in >> 29);
12150  ++in;
12151  *out |= (*in % (1U << 26)) << (29 - 26);
12152  *out += out[-1]; // integrated delta decoding
12153  out++;
12154  *out = (*in >> 26);
12155  ++in;
12156  *out |= (*in % (1U << 23)) << (29 - 23);
12157  *out += out[-1]; // integrated delta decoding
12158  out++;
12159  *out = (*in >> 23);
12160  ++in;
12161  *out |= (*in % (1U << 20)) << (29 - 20);
12162  *out += out[-1]; // integrated delta decoding
12163  out++;
12164  *out = (*in >> 20);
12165  ++in;
12166  *out |= (*in % (1U << 17)) << (29 - 17);
12167  *out += out[-1]; // integrated delta decoding
12168  out++;
12169  *out = (*in >> 17);
12170  ++in;
12171  *out |= (*in % (1U << 14)) << (29 - 14);
12172  *out += out[-1]; // integrated delta decoding
12173  out++;
12174  *out = (*in >> 14);
12175  ++in;
12176  *out |= (*in % (1U << 11)) << (29 - 11);
12177  *out += out[-1]; // integrated delta decoding
12178  out++;
12179  *out = (*in >> 11);
12180  ++in;
12181  *out |= (*in % (1U << 8)) << (29 - 8);
12182  *out += out[-1]; // integrated delta decoding
12183  out++;
12184  *out = (*in >> 8);
12185  ++in;
12186  *out |= (*in % (1U << 5)) << (29 - 5);
12187  *out += out[-1]; // integrated delta decoding
12188  out++;
12189  *out = (*in >> 5);
12190  ++in;
12191  *out |= (*in % (1U << 2)) << (29 - 2);
12192  *out += out[-1]; // integrated delta decoding
12193  out++;
12194  *out = (*in >> 2) % (1U << 29);
12195  *out += out[-1]; // integrated delta decoding
12196  out++;
12197  *out = (*in >> 31);
12198  ++in;
12199  *out |= (*in % (1U << 28)) << (29 - 28);
12200  *out += out[-1]; // integrated delta decoding
12201  out++;
12202  *out = (*in >> 28);
12203  ++in;
12204  *out |= (*in % (1U << 25)) << (29 - 25);
12205  *out += out[-1]; // integrated delta decoding
12206  out++;
12207  *out = (*in >> 25);
12208  ++in;
12209  *out |= (*in % (1U << 22)) << (29 - 22);
12210  *out += out[-1]; // integrated delta decoding
12211  out++;
12212  *out = (*in >> 22);
12213  ++in;
12214  *out |= (*in % (1U << 19)) << (29 - 19);
12215  *out += out[-1]; // integrated delta decoding
12216  out++;
12217  *out = (*in >> 19);
12218  ++in;
12219  *out |= (*in % (1U << 16)) << (29 - 16);
12220  *out += out[-1]; // integrated delta decoding
12221  out++;
12222  *out = (*in >> 16);
12223  ++in;
12224  *out |= (*in % (1U << 13)) << (29 - 13);
12225  *out += out[-1]; // integrated delta decoding
12226  out++;
12227  *out = (*in >> 13);
12228  ++in;
12229  *out |= (*in % (1U << 10)) << (29 - 10);
12230  *out += out[-1]; // integrated delta decoding
12231  out++;
12232  *out = (*in >> 10);
12233  ++in;
12234  *out |= (*in % (1U << 7)) << (29 - 7);
12235  *out += out[-1]; // integrated delta decoding
12236  out++;
12237  *out = (*in >> 7);
12238  ++in;
12239  *out |= (*in % (1U << 4)) << (29 - 4);
12240  *out += out[-1]; // integrated delta decoding
12241  out++;
12242  *out = (*in >> 4);
12243  ++in;
12244  *out |= (*in % (1U << 1)) << (29 - 1);
12245  *out += out[-1]; // integrated delta decoding
12246  out++;
12247  *out = (*in >> 1) % (1U << 29);
12248  *out += out[-1]; // integrated delta decoding
12249  out++;
12250  *out = (*in >> 30);
12251  ++in;
12252  *out |= (*in % (1U << 27)) << (29 - 27);
12253  *out += out[-1]; // integrated delta decoding
12254  out++;
12255  *out = (*in >> 27);
12256  ++in;
12257  *out |= (*in % (1U << 24)) << (29 - 24);
12258  *out += out[-1]; // integrated delta decoding
12259  out++;
12260  *out = (*in >> 24);
12261  ++in;
12262  *out |= (*in % (1U << 21)) << (29 - 21);
12263  *out += out[-1]; // integrated delta decoding
12264  out++;
12265  *out = (*in >> 21);
12266  ++in;
12267  *out |= (*in % (1U << 18)) << (29 - 18);
12268  *out += out[-1]; // integrated delta decoding
12269  out++;
12270  *out = (*in >> 18);
12271  ++in;
12272  *out |= (*in % (1U << 15)) << (29 - 15);
12273  *out += out[-1]; // integrated delta decoding
12274  out++;
12275  *out = (*in >> 15);
12276  ++in;
12277  *out |= (*in % (1U << 12)) << (29 - 12);
12278  *out += out[-1]; // integrated delta decoding
12279  out++;
12280  *out = (*in >> 12);
12281  ++in;
12282  *out |= (*in % (1U << 9)) << (29 - 9);
12283  *out += out[-1]; // integrated delta decoding
12284  out++;
12285  *out = (*in >> 9);
12286  ++in;
12287  *out |= (*in % (1U << 6)) << (29 - 6);
12288  *out += out[-1]; // integrated delta decoding
12289  out++;
12290  *out = (*in >> 6);
12291  ++in;
12292  *out |= (*in % (1U << 3)) << (29 - 3);
12293  *out += out[-1]; // integrated delta decoding
12294  out++;
12295  *out = (*in >> 3);
12296  *out += out[-1]; // integrated delta decoding
12297 }
12298 
12299 void __device__ __host__ __integratedfastunpack30(const uint32_t initoffset,
12300  const uint32_t * in,
12301  uint32_t * out) {
12302  *out = (*in >> 0) % (1U << 30);
12303  *out += initoffset; // integrated delta decoding
12304  out++;
12305  *out = (*in >> 30);
12306  ++in;
12307  *out |= (*in % (1U << 28)) << (30 - 28);
12308  *out += out[-1]; // integrated delta decoding
12309  out++;
12310  *out = (*in >> 28);
12311  ++in;
12312  *out |= (*in % (1U << 26)) << (30 - 26);
12313  *out += out[-1]; // integrated delta decoding
12314  out++;
12315  *out = (*in >> 26);
12316  ++in;
12317  *out |= (*in % (1U << 24)) << (30 - 24);
12318  *out += out[-1]; // integrated delta decoding
12319  out++;
12320  *out = (*in >> 24);
12321  ++in;
12322  *out |= (*in % (1U << 22)) << (30 - 22);
12323  *out += out[-1]; // integrated delta decoding
12324  out++;
12325  *out = (*in >> 22);
12326  ++in;
12327  *out |= (*in % (1U << 20)) << (30 - 20);
12328  *out += out[-1]; // integrated delta decoding
12329  out++;
12330  *out = (*in >> 20);
12331  ++in;
12332  *out |= (*in % (1U << 18)) << (30 - 18);
12333  *out += out[-1]; // integrated delta decoding
12334  out++;
12335  *out = (*in >> 18);
12336  ++in;
12337  *out |= (*in % (1U << 16)) << (30 - 16);
12338  *out += out[-1]; // integrated delta decoding
12339  out++;
12340  *out = (*in >> 16);
12341  ++in;
12342  *out |= (*in % (1U << 14)) << (30 - 14);
12343  *out += out[-1]; // integrated delta decoding
12344  out++;
12345  *out = (*in >> 14);
12346  ++in;
12347  *out |= (*in % (1U << 12)) << (30 - 12);
12348  *out += out[-1]; // integrated delta decoding
12349  out++;
12350  *out = (*in >> 12);
12351  ++in;
12352  *out |= (*in % (1U << 10)) << (30 - 10);
12353  *out += out[-1]; // integrated delta decoding
12354  out++;
12355  *out = (*in >> 10);
12356  ++in;
12357  *out |= (*in % (1U << 8)) << (30 - 8);
12358  *out += out[-1]; // integrated delta decoding
12359  out++;
12360  *out = (*in >> 8);
12361  ++in;
12362  *out |= (*in % (1U << 6)) << (30 - 6);
12363  *out += out[-1]; // integrated delta decoding
12364  out++;
12365  *out = (*in >> 6);
12366  ++in;
12367  *out |= (*in % (1U << 4)) << (30 - 4);
12368  *out += out[-1]; // integrated delta decoding
12369  out++;
12370  *out = (*in >> 4);
12371  ++in;
12372  *out |= (*in % (1U << 2)) << (30 - 2);
12373  *out += out[-1]; // integrated delta decoding
12374  out++;
12375  *out = (*in >> 2);
12376  ++in;
12377  *out += out[-1]; // integrated delta decoding
12378  out++;
12379  *out = (*in >> 0) % (1U << 30);
12380  *out += out[-1]; // integrated delta decoding
12381  out++;
12382  *out = (*in >> 30);
12383  ++in;
12384  *out |= (*in % (1U << 28)) << (30 - 28);
12385  *out += out[-1]; // integrated delta decoding
12386  out++;
12387  *out = (*in >> 28);
12388  ++in;
12389  *out |= (*in % (1U << 26)) << (30 - 26);
12390  *out += out[-1]; // integrated delta decoding
12391  out++;
12392  *out = (*in >> 26);
12393  ++in;
12394  *out |= (*in % (1U << 24)) << (30 - 24);
12395  *out += out[-1]; // integrated delta decoding
12396  out++;
12397  *out = (*in >> 24);
12398  ++in;
12399  *out |= (*in % (1U << 22)) << (30 - 22);
12400  *out += out[-1]; // integrated delta decoding
12401  out++;
12402  *out = (*in >> 22);
12403  ++in;
12404  *out |= (*in % (1U << 20)) << (30 - 20);
12405  *out += out[-1]; // integrated delta decoding
12406  out++;
12407  *out = (*in >> 20);
12408  ++in;
12409  *out |= (*in % (1U << 18)) << (30 - 18);
12410  *out += out[-1]; // integrated delta decoding
12411  out++;
12412  *out = (*in >> 18);
12413  ++in;
12414  *out |= (*in % (1U << 16)) << (30 - 16);
12415  *out += out[-1]; // integrated delta decoding
12416  out++;
12417  *out = (*in >> 16);
12418  ++in;
12419  *out |= (*in % (1U << 14)) << (30 - 14);
12420  *out += out[-1]; // integrated delta decoding
12421  out++;
12422  *out = (*in >> 14);
12423  ++in;
12424  *out |= (*in % (1U << 12)) << (30 - 12);
12425  *out += out[-1]; // integrated delta decoding
12426  out++;
12427  *out = (*in >> 12);
12428  ++in;
12429  *out |= (*in % (1U << 10)) << (30 - 10);
12430  *out += out[-1]; // integrated delta decoding
12431  out++;
12432  *out = (*in >> 10);
12433  ++in;
12434  *out |= (*in % (1U << 8)) << (30 - 8);
12435  *out += out[-1]; // integrated delta decoding
12436  out++;
12437  *out = (*in >> 8);
12438  ++in;
12439  *out |= (*in % (1U << 6)) << (30 - 6);
12440  *out += out[-1]; // integrated delta decoding
12441  out++;
12442  *out = (*in >> 6);
12443  ++in;
12444  *out |= (*in % (1U << 4)) << (30 - 4);
12445  *out += out[-1]; // integrated delta decoding
12446  out++;
12447  *out = (*in >> 4);
12448  ++in;
12449  *out |= (*in % (1U << 2)) << (30 - 2);
12450  *out += out[-1]; // integrated delta decoding
12451  out++;
12452  *out = (*in >> 2);
12453  *out += out[-1]; // integrated delta decoding
12454 }
12455 
12456 void __device__ __host__ __integratedfastunpack31(const uint32_t initoffset,
12457  const uint32_t * in,
12458  uint32_t * out) {
12459  *out = (*in >> 0) % (1U << 31);
12460  *out += initoffset; // integrated delta decoding
12461  out++;
12462  *out = (*in >> 31);
12463  ++in;
12464  *out |= (*in % (1U << 30)) << (31 - 30);
12465  *out += out[-1]; // integrated delta decoding
12466  out++;
12467  *out = (*in >> 30);
12468  ++in;
12469  *out |= (*in % (1U << 29)) << (31 - 29);
12470  *out += out[-1]; // integrated delta decoding
12471  out++;
12472  *out = (*in >> 29);
12473  ++in;
12474  *out |= (*in % (1U << 28)) << (31 - 28);
12475  *out += out[-1]; // integrated delta decoding
12476  out++;
12477  *out = (*in >> 28);
12478  ++in;
12479  *out |= (*in % (1U << 27)) << (31 - 27);
12480  *out += out[-1]; // integrated delta decoding
12481  out++;
12482  *out = (*in >> 27);
12483  ++in;
12484  *out |= (*in % (1U << 26)) << (31 - 26);
12485  *out += out[-1]; // integrated delta decoding
12486  out++;
12487  *out = (*in >> 26);
12488  ++in;
12489  *out |= (*in % (1U << 25)) << (31 - 25);
12490  *out += out[-1]; // integrated delta decoding
12491  out++;
12492  *out = (*in >> 25);
12493  ++in;
12494  *out |= (*in % (1U << 24)) << (31 - 24);
12495  *out += out[-1]; // integrated delta decoding
12496  out++;
12497  *out = (*in >> 24);
12498  ++in;
12499  *out |= (*in % (1U << 23)) << (31 - 23);
12500  *out += out[-1]; // integrated delta decoding
12501  out++;
12502  *out = (*in >> 23);
12503  ++in;
12504  *out |= (*in % (1U << 22)) << (31 - 22);
12505  *out += out[-1]; // integrated delta decoding
12506  out++;
12507  *out = (*in >> 22);
12508  ++in;
12509  *out |= (*in % (1U << 21)) << (31 - 21);
12510  *out += out[-1]; // integrated delta decoding
12511  out++;
12512  *out = (*in >> 21);
12513  ++in;
12514  *out |= (*in % (1U << 20)) << (31 - 20);
12515  *out += out[-1]; // integrated delta decoding
12516  out++;
12517  *out = (*in >> 20);
12518  ++in;
12519  *out |= (*in % (1U << 19)) << (31 - 19);
12520  *out += out[-1]; // integrated delta decoding
12521  out++;
12522  *out = (*in >> 19);
12523  ++in;
12524  *out |= (*in % (1U << 18)) << (31 - 18);
12525  *out += out[-1]; // integrated delta decoding
12526  out++;
12527  *out = (*in >> 18);
12528  ++in;
12529  *out |= (*in % (1U << 17)) << (31 - 17);
12530  *out += out[-1]; // integrated delta decoding
12531  out++;
12532  *out = (*in >> 17);
12533  ++in;
12534  *out |= (*in % (1U << 16)) << (31 - 16);
12535  *out += out[-1]; // integrated delta decoding
12536  out++;
12537  *out = (*in >> 16);
12538  ++in;
12539  *out |= (*in % (1U << 15)) << (31 - 15);
12540  *out += out[-1]; // integrated delta decoding
12541  out++;
12542  *out = (*in >> 15);
12543  ++in;
12544  *out |= (*in % (1U << 14)) << (31 - 14);
12545  *out += out[-1]; // integrated delta decoding
12546  out++;
12547  *out = (*in >> 14);
12548  ++in;
12549  *out |= (*in % (1U << 13)) << (31 - 13);
12550  *out += out[-1]; // integrated delta decoding
12551  out++;
12552  *out = (*in >> 13);
12553  ++in;
12554  *out |= (*in % (1U << 12)) << (31 - 12);
12555  *out += out[-1]; // integrated delta decoding
12556  out++;
12557  *out = (*in >> 12);
12558  ++in;
12559  *out |= (*in % (1U << 11)) << (31 - 11);
12560  *out += out[-1]; // integrated delta decoding
12561  out++;
12562  *out = (*in >> 11);
12563  ++in;
12564  *out |= (*in % (1U << 10)) << (31 - 10);
12565  *out += out[-1]; // integrated delta decoding
12566  out++;
12567  *out = (*in >> 10);
12568  ++in;
12569  *out |= (*in % (1U << 9)) << (31 - 9);
12570  *out += out[-1]; // integrated delta decoding
12571  out++;
12572  *out = (*in >> 9);
12573  ++in;
12574  *out |= (*in % (1U << 8)) << (31 - 8);
12575  *out += out[-1]; // integrated delta decoding
12576  out++;
12577  *out = (*in >> 8);
12578  ++in;
12579  *out |= (*in % (1U << 7)) << (31 - 7);
12580  *out += out[-1]; // integrated delta decoding
12581  out++;
12582  *out = (*in >> 7);
12583  ++in;
12584  *out |= (*in % (1U << 6)) << (31 - 6);
12585  *out += out[-1]; // integrated delta decoding
12586  out++;
12587  *out = (*in >> 6);
12588  ++in;
12589  *out |= (*in % (1U << 5)) << (31 - 5);
12590  *out += out[-1]; // integrated delta decoding
12591  out++;
12592  *out = (*in >> 5);
12593  ++in;
12594  *out |= (*in % (1U << 4)) << (31 - 4);
12595  *out += out[-1]; // integrated delta decoding
12596  out++;
12597  *out = (*in >> 4);
12598  ++in;
12599  *out |= (*in % (1U << 3)) << (31 - 3);
12600  *out += out[-1]; // integrated delta decoding
12601  out++;
12602  *out = (*in >> 3);
12603  ++in;
12604  *out |= (*in % (1U << 2)) << (31 - 2);
12605  *out += out[-1]; // integrated delta decoding
12606  out++;
12607  *out = (*in >> 2);
12608  ++in;
12609  *out |= (*in % (1U << 1)) << (31 - 1);
12610  *out += out[-1]; // integrated delta decoding
12611  out++;
12612  *out = (*in >> 1);
12613  *out += out[-1]; // integrated delta decoding
12614 }
12615 
12616 void __device__ __host__ __integratedfastunpack1(const uint32_t initoffset,
12617  const uint32_t * in,
12618  uint32_t * out) {
12619  *out = (*in & 1) + initoffset;
12620  ++out;
12621  *out = ((*in >> 1) & 1) + out[-1];
12622  ++out;
12623  for (uint32_t i = 2; i < 32; i += 1) {
12624  *out = ((*in >> i) & 1) + out[-1];
12625  ++i;
12626  ++out;
12627  *out = ((*in >> i) & 1) + out[-1];
12628  ++out;
12629  }
12630 }
12631 
12632 void __device__ __host__ __integratedfastunpack4(const uint32_t initoffset,
12633  const uint32_t * in,
12634  uint32_t * out) {
12635  *(out++) = (*in % (1U << 4)) + initoffset;
12636  for (uint32_t i = 4; i < 32; i += 4) {
12637  *out = ((*in >> i) % (1U << 4)) + out[-1];
12638  ++out;
12639  }
12640  ++in;
12641  for (uint32_t i = 0; i < 32; i += 4) {
12642  *out = ((*in >> i) % (1U << 4)) + out[-1];
12643  ++out;
12644  }
12645  ++in;
12646  for (uint32_t i = 0; i < 32; i += 4) {
12647  *out = ((*in >> i) % (1U << 4)) + out[-1];
12648  ++out;
12649  }
12650  ++in;
12651  for (uint32_t i = 0; i < 32; i += 4) {
12652  *out = ((*in >> i) % (1U << 4)) + out[-1];
12653  ++out;
12654  }
12655 }
12656 
12657 void __device__ __host__ __integratedfastunpack8(const uint32_t initoffset,
12658  const uint32_t * in,
12659  uint32_t * out) {
12660  *(out++) = (*in % (1U << 8)) + initoffset;
12661  for (uint32_t i = 8; i < 32; i += 8) {
12662  *out = ((*in >> i) % (1U << 8)) + out[-1];
12663  ++out;
12664  }
12665  ++in;
12666  for (uint32_t i = 0; i < 32; i += 8) {
12667  *out = ((*in >> i) % (1U << 8)) + out[-1];
12668  ++out;
12669  }
12670  ++in;
12671  for (uint32_t i = 0; i < 32; i += 8) {
12672  *out = ((*in >> i) % (1U << 8)) + out[-1];
12673  ++out;
12674  }
12675  ++in;
12676  for (uint32_t i = 0; i < 32; i += 8) {
12677  *out = ((*in >> i) % (1U << 8)) + out[-1];
12678  ++out;
12679  }
12680  ++in;
12681  for (uint32_t i = 0; i < 32; i += 8) {
12682  *out = ((*in >> i) % (1U << 8)) + out[-1];
12683  ++out;
12684  }
12685  ++in;
12686  for (uint32_t i = 0; i < 32; i += 8) {
12687  *out = ((*in >> i) % (1U << 8)) + out[-1];
12688  ++out;
12689  }
12690  ++in;
12691  for (uint32_t i = 0; i < 32; i += 8) {
12692  *out = ((*in >> i) % (1U << 8)) + out[-1];
12693  ++out;
12694  }
12695  ++in;
12696  for (uint32_t i = 0; i < 32; i += 8) {
12697  *out = ((*in >> i) % (1U << 8)) + out[-1];
12698  ++out;
12699  }
12700 }
12701 
12702 void __device__ __host__ __integratedfastunpack16(const uint32_t initoffset,
12703  const uint32_t * in,
12704  uint32_t * out) {
12705  *(out++) = (*in % (1U << 16)) + initoffset;
12706  for (uint32_t i = 16; i < 32; i += 16) {
12707  *out = ((*in >> i) % (1U << 16)) + out[-1];
12708  ++out;
12709  }
12710  ++in;
12711  for (uint32_t i = 0; i < 32; i += 16) {
12712  *out = ((*in >> i) % (1U << 16)) + out[-1];
12713  ++out;
12714  }
12715  ++in;
12716  for (uint32_t i = 0; i < 32; i += 16) {
12717  *out = ((*in >> i) % (1U << 16)) + out[-1];
12718  ++out;
12719  }
12720  ++in;
12721  for (uint32_t i = 0; i < 32; i += 16) {
12722  *out = ((*in >> i) % (1U << 16)) + out[-1];
12723  ++out;
12724  }
12725  ++in;
12726  for (uint32_t i = 0; i < 32; i += 16) {
12727  *out = ((*in >> i) % (1U << 16)) + out[-1];
12728  ++out;
12729  }
12730  ++in;
12731  for (uint32_t i = 0; i < 32; i += 16) {
12732  *out = ((*in >> i) % (1U << 16)) + out[-1];
12733  ++out;
12734  }
12735  ++in;
12736  for (uint32_t i = 0; i < 32; i += 16) {
12737  *out = ((*in >> i) % (1U << 16)) + out[-1];
12738  ++out;
12739  }
12740  ++in;
12741  for (uint32_t i = 0; i < 32; i += 16) {
12742  *out = ((*in >> i) % (1U << 16)) + out[-1];
12743  ++out;
12744  }
12745  ++in;
12746  for (uint32_t i = 0; i < 32; i += 16) {
12747  *out = ((*in >> i) % (1U << 16)) + out[-1];
12748  ++out;
12749  }
12750  ++in;
12751  for (uint32_t i = 0; i < 32; i += 16) {
12752  *out = ((*in >> i) % (1U << 16)) + out[-1];
12753  ++out;
12754  }
12755  ++in;
12756  for (uint32_t i = 0; i < 32; i += 16) {
12757  *out = ((*in >> i) % (1U << 16)) + out[-1];
12758  ++out;
12759  }
12760  ++in;
12761  for (uint32_t i = 0; i < 32; i += 16) {
12762  *out = ((*in >> i) % (1U << 16)) + out[-1];
12763  ++out;
12764  }
12765  ++in;
12766  for (uint32_t i = 0; i < 32; i += 16) {
12767  *out = ((*in >> i) % (1U << 16)) + out[-1];
12768  ++out;
12769  }
12770  ++in;
12771  for (uint32_t i = 0; i < 32; i += 16) {
12772  *out = ((*in >> i) % (1U << 16)) + out[-1];
12773  ++out;
12774  }
12775  ++in;
12776  for (uint32_t i = 0; i < 32; i += 16) {
12777  *out = ((*in >> i) % (1U << 16)) + out[-1];
12778  ++out;
12779  }
12780  ++in;
12781  for (uint32_t i = 0; i < 32; i += 16) {
12782  *out = ((*in >> i) % (1U << 16)) + out[-1];
12783  ++out;
12784  }
12785 }
12786 
12787 void __integratedfastpack2(const uint32_t initoffset,
12788  const uint32_t * in,
12789  uint32_t * out) {
12790  *out = (*in - initoffset) % (1U << 2);
12791  ++in;
12792  *out |= ((*in - in[-1]) % (1U << 2)) << 2;
12793  ++in;
12794  *out |= ((*in - in[-1]) % (1U << 2)) << 4;
12795  ++in;
12796  *out |= ((*in - in[-1]) % (1U << 2)) << 6;
12797  ++in;
12798  *out |= ((*in - in[-1]) % (1U << 2)) << 8;
12799  ++in;
12800  *out |= ((*in - in[-1]) % (1U << 2)) << 10;
12801  ++in;
12802  *out |= ((*in - in[-1]) % (1U << 2)) << 12;
12803  ++in;
12804  *out |= ((*in - in[-1]) % (1U << 2)) << 14;
12805  ++in;
12806  *out |= ((*in - in[-1]) % (1U << 2)) << 16;
12807  ++in;
12808  *out |= ((*in - in[-1]) % (1U << 2)) << 18;
12809  ++in;
12810  *out |= ((*in - in[-1]) % (1U << 2)) << 20;
12811  ++in;
12812  *out |= ((*in - in[-1]) % (1U << 2)) << 22;
12813  ++in;
12814  *out |= ((*in - in[-1]) % (1U << 2)) << 24;
12815  ++in;
12816  *out |= ((*in - in[-1]) % (1U << 2)) << 26;
12817  ++in;
12818  *out |= ((*in - in[-1]) % (1U << 2)) << 28;
12819  ++in;
12820  *out |= ((*in - in[-1])) << 30;
12821  ++out;
12822  ++in;
12823  *out = (*in - in[-1]) % (1U << 2);
12824  ++in;
12825  *out |= ((*in - in[-1]) % (1U << 2)) << 2;
12826  ++in;
12827  *out |= ((*in - in[-1]) % (1U << 2)) << 4;
12828  ++in;
12829  *out |= ((*in - in[-1]) % (1U << 2)) << 6;
12830  ++in;
12831  *out |= ((*in - in[-1]) % (1U << 2)) << 8;
12832  ++in;
12833  *out |= ((*in - in[-1]) % (1U << 2)) << 10;
12834  ++in;
12835  *out |= ((*in - in[-1]) % (1U << 2)) << 12;
12836  ++in;
12837  *out |= ((*in - in[-1]) % (1U << 2)) << 14;
12838  ++in;
12839  *out |= ((*in - in[-1]) % (1U << 2)) << 16;
12840  ++in;
12841  *out |= ((*in - in[-1]) % (1U << 2)) << 18;
12842  ++in;
12843  *out |= ((*in - in[-1]) % (1U << 2)) << 20;
12844  ++in;
12845  *out |= ((*in - in[-1]) % (1U << 2)) << 22;
12846  ++in;
12847  *out |= ((*in - in[-1]) % (1U << 2)) << 24;
12848  ++in;
12849  *out |= ((*in - in[-1]) % (1U << 2)) << 26;
12850  ++in;
12851  *out |= ((*in - in[-1]) % (1U << 2)) << 28;
12852  ++in;
12853  *out |= ((*in - in[-1])) << 30;
12854 }
12855 
12856 void __integratedfastpack3(const uint32_t initoffset,
12857  const uint32_t * in,
12858  uint32_t * out) {
12859  *out = (*in - initoffset) % (1U << 3);
12860  ++in;
12861  *out |= ((*in - in[-1]) % (1U << 3)) << 3;
12862  ++in;
12863  *out |= ((*in - in[-1]) % (1U << 3)) << 6;
12864  ++in;
12865  *out |= ((*in - in[-1]) % (1U << 3)) << 9;
12866  ++in;
12867  *out |= ((*in - in[-1]) % (1U << 3)) << 12;
12868  ++in;
12869  *out |= ((*in - in[-1]) % (1U << 3)) << 15;
12870  ++in;
12871  *out |= ((*in - in[-1]) % (1U << 3)) << 18;
12872  ++in;
12873  *out |= ((*in - in[-1]) % (1U << 3)) << 21;
12874  ++in;
12875  *out |= ((*in - in[-1]) % (1U << 3)) << 24;
12876  ++in;
12877  *out |= ((*in - in[-1]) % (1U << 3)) << 27;
12878  ++in;
12879  *out |= ((*in - in[-1])) << 30;
12880  ++out;
12881  *out = ((*in - in[-1]) % (1U << 3)) >> (3 - 1);
12882  ++in;
12883  *out |= ((*in - in[-1]) % (1U << 3)) << 1;
12884  ++in;
12885  *out |= ((*in - in[-1]) % (1U << 3)) << 4;
12886  ++in;
12887  *out |= ((*in - in[-1]) % (1U << 3)) << 7;
12888  ++in;
12889  *out |= ((*in - in[-1]) % (1U << 3)) << 10;
12890  ++in;
12891  *out |= ((*in - in[-1]) % (1U << 3)) << 13;
12892  ++in;
12893  *out |= ((*in - in[-1]) % (1U << 3)) << 16;
12894  ++in;
12895  *out |= ((*in - in[-1]) % (1U << 3)) << 19;
12896  ++in;
12897  *out |= ((*in - in[-1]) % (1U << 3)) << 22;
12898  ++in;
12899  *out |= ((*in - in[-1]) % (1U << 3)) << 25;
12900  ++in;
12901  *out |= ((*in - in[-1]) % (1U << 3)) << 28;
12902  ++in;
12903  *out |= ((*in - in[-1])) << 31;
12904  ++out;
12905  *out = ((*in - in[-1]) % (1U << 3)) >> (3 - 2);
12906  ++in;
12907  *out |= ((*in - in[-1]) % (1U << 3)) << 2;
12908  ++in;
12909  *out |= ((*in - in[-1]) % (1U << 3)) << 5;
12910  ++in;
12911  *out |= ((*in - in[-1]) % (1U << 3)) << 8;
12912  ++in;
12913  *out |= ((*in - in[-1]) % (1U << 3)) << 11;
12914  ++in;
12915  *out |= ((*in - in[-1]) % (1U << 3)) << 14;
12916  ++in;
12917  *out |= ((*in - in[-1]) % (1U << 3)) << 17;
12918  ++in;
12919  *out |= ((*in - in[-1]) % (1U << 3)) << 20;
12920  ++in;
12921  *out |= ((*in - in[-1]) % (1U << 3)) << 23;
12922  ++in;
12923  *out |= ((*in - in[-1]) % (1U << 3)) << 26;
12924  ++in;
12925  *out |= ((*in - in[-1])) << 29;
12926 }
12927 
12928 void __integratedfastpack5(const uint32_t initoffset,
12929  const uint32_t * in,
12930  uint32_t * out) {
12931  *out = (*in - initoffset) % (1U << 5);
12932  ++in;
12933  *out |= ((*in - in[-1]) % (1U << 5)) << 5;
12934  ++in;
12935  *out |= ((*in - in[-1]) % (1U << 5)) << 10;
12936  ++in;
12937  *out |= ((*in - in[-1]) % (1U << 5)) << 15;
12938  ++in;
12939  *out |= ((*in - in[-1]) % (1U << 5)) << 20;
12940  ++in;
12941  *out |= ((*in - in[-1]) % (1U << 5)) << 25;
12942  ++in;
12943  *out |= ((*in - in[-1])) << 30;
12944  ++out;
12945  *out = ((*in - in[-1]) % (1U << 5)) >> (5 - 3);
12946  ++in;
12947  *out |= ((*in - in[-1]) % (1U << 5)) << 3;
12948  ++in;
12949  *out |= ((*in - in[-1]) % (1U << 5)) << 8;
12950  ++in;
12951  *out |= ((*in - in[-1]) % (1U << 5)) << 13;
12952  ++in;
12953  *out |= ((*in - in[-1]) % (1U << 5)) << 18;
12954  ++in;
12955  *out |= ((*in - in[-1]) % (1U << 5)) << 23;
12956  ++in;
12957  *out |= ((*in - in[-1])) << 28;
12958  ++out;
12959  *out = ((*in - in[-1]) % (1U << 5)) >> (5 - 1);
12960  ++in;
12961  *out |= ((*in - in[-1]) % (1U << 5)) << 1;
12962  ++in;
12963  *out |= ((*in - in[-1]) % (1U << 5)) << 6;
12964  ++in;
12965  *out |= ((*in - in[-1]) % (1U << 5)) << 11;
12966  ++in;
12967  *out |= ((*in - in[-1]) % (1U << 5)) << 16;
12968  ++in;
12969  *out |= ((*in - in[-1]) % (1U << 5)) << 21;
12970  ++in;
12971  *out |= ((*in - in[-1]) % (1U << 5)) << 26;
12972  ++in;
12973  *out |= ((*in - in[-1])) << 31;
12974  ++out;
12975  *out = ((*in - in[-1]) % (1U << 5)) >> (5 - 4);
12976  ++in;
12977  *out |= ((*in - in[-1]) % (1U << 5)) << 4;
12978  ++in;
12979  *out |= ((*in - in[-1]) % (1U << 5)) << 9;
12980  ++in;
12981  *out |= ((*in - in[-1]) % (1U << 5)) << 14;
12982  ++in;
12983  *out |= ((*in - in[-1]) % (1U << 5)) << 19;
12984  ++in;
12985  *out |= ((*in - in[-1]) % (1U << 5)) << 24;
12986  ++in;
12987  *out |= ((*in - in[-1])) << 29;
12988  ++out;
12989  *out = ((*in - in[-1]) % (1U << 5)) >> (5 - 2);
12990  ++in;
12991  *out |= ((*in - in[-1]) % (1U << 5)) << 2;
12992  ++in;
12993  *out |= ((*in - in[-1]) % (1U << 5)) << 7;
12994  ++in;
12995  *out |= ((*in - in[-1]) % (1U << 5)) << 12;
12996  ++in;
12997  *out |= ((*in - in[-1]) % (1U << 5)) << 17;
12998  ++in;
12999  *out |= ((*in - in[-1]) % (1U << 5)) << 22;
13000  ++in;
13001  *out |= ((*in - in[-1])) << 27;
13002 }
13003 
13004 void __integratedfastpack6(const uint32_t initoffset,
13005  const uint32_t * in,
13006  uint32_t * out) {
13007  *out = (*in - initoffset) % (1U << 6);
13008  ++in;
13009  *out |= ((*in - in[-1]) % (1U << 6)) << 6;
13010  ++in;
13011  *out |= ((*in - in[-1]) % (1U << 6)) << 12;
13012  ++in;
13013  *out |= ((*in - in[-1]) % (1U << 6)) << 18;
13014  ++in;
13015  *out |= ((*in - in[-1]) % (1U << 6)) << 24;
13016  ++in;
13017  *out |= ((*in - in[-1])) << 30;
13018  ++out;
13019  *out = ((*in - in[-1]) % (1U << 6)) >> (6 - 4);
13020  ++in;
13021  *out |= ((*in - in[-1]) % (1U << 6)) << 4;
13022  ++in;
13023  *out |= ((*in - in[-1]) % (1U << 6)) << 10;
13024  ++in;
13025  *out |= ((*in - in[-1]) % (1U << 6)) << 16;
13026  ++in;
13027  *out |= ((*in - in[-1]) % (1U << 6)) << 22;
13028  ++in;
13029  *out |= ((*in - in[-1])) << 28;
13030  ++out;
13031  *out = ((*in - in[-1]) % (1U << 6)) >> (6 - 2);
13032  ++in;
13033  *out |= ((*in - in[-1]) % (1U << 6)) << 2;
13034  ++in;
13035  *out |= ((*in - in[-1]) % (1U << 6)) << 8;
13036  ++in;
13037  *out |= ((*in - in[-1]) % (1U << 6)) << 14;
13038  ++in;
13039  *out |= ((*in - in[-1]) % (1U << 6)) << 20;
13040  ++in;
13041  *out |= ((*in - in[-1])) << 26;
13042  ++out;
13043  ++in;
13044  *out = (*in - in[-1]) % (1U << 6);
13045  ++in;
13046  *out |= ((*in - in[-1]) % (1U << 6)) << 6;
13047  ++in;
13048  *out |= ((*in - in[-1]) % (1U << 6)) << 12;
13049  ++in;
13050  *out |= ((*in - in[-1]) % (1U << 6)) << 18;
13051  ++in;
13052  *out |= ((*in - in[-1]) % (1U << 6)) << 24;
13053  ++in;
13054  *out |= ((*in - in[-1])) << 30;
13055  ++out;
13056  *out = ((*in - in[-1]) % (1U << 6)) >> (6 - 4);
13057  ++in;
13058  *out |= ((*in - in[-1]) % (1U << 6)) << 4;
13059  ++in;
13060  *out |= ((*in - in[-1]) % (1U << 6)) << 10;
13061  ++in;
13062  *out |= ((*in - in[-1]) % (1U << 6)) << 16;
13063  ++in;
13064  *out |= ((*in - in[-1]) % (1U << 6)) << 22;
13065  ++in;
13066  *out |= ((*in - in[-1])) << 28;
13067  ++out;
13068  *out = ((*in - in[-1]) % (1U << 6)) >> (6 - 2);
13069  ++in;
13070  *out |= ((*in - in[-1]) % (1U << 6)) << 2;
13071  ++in;
13072  *out |= ((*in - in[-1]) % (1U << 6)) << 8;
13073  ++in;
13074  *out |= ((*in - in[-1]) % (1U << 6)) << 14;
13075  ++in;
13076  *out |= ((*in - in[-1]) % (1U << 6)) << 20;
13077  ++in;
13078  *out |= ((*in - in[-1])) << 26;
13079 }
13080 
13081 void __integratedfastpack7(const uint32_t initoffset,
13082  const uint32_t * in,
13083  uint32_t * out) {
13084  *out = (*in - initoffset) % (1U << 7);
13085  ++in;
13086  *out |= ((*in - in[-1]) % (1U << 7)) << 7;
13087  ++in;
13088  *out |= ((*in - in[-1]) % (1U << 7)) << 14;
13089  ++in;
13090  *out |= ((*in - in[-1]) % (1U << 7)) << 21;
13091  ++in;
13092  *out |= ((*in - in[-1])) << 28;
13093  ++out;
13094  *out = ((*in - in[-1]) % (1U << 7)) >> (7 - 3);
13095  ++in;
13096  *out |= ((*in - in[-1]) % (1U << 7)) << 3;
13097  ++in;
13098  *out |= ((*in - in[-1]) % (1U << 7)) << 10;
13099  ++in;
13100  *out |= ((*in - in[-1]) % (1U << 7)) << 17;
13101  ++in;
13102  *out |= ((*in - in[-1]) % (1U << 7)) << 24;
13103  ++in;
13104  *out |= ((*in - in[-1])) << 31;
13105  ++out;
13106  *out = ((*in - in[-1]) % (1U << 7)) >> (7 - 6);
13107  ++in;
13108  *out |= ((*in - in[-1]) % (1U << 7)) << 6;
13109  ++in;
13110  *out |= ((*in - in[-1]) % (1U << 7)) << 13;
13111  ++in;
13112  *out |= ((*in - in[-1]) % (1U << 7)) << 20;
13113  ++in;
13114  *out |= ((*in - in[-1])) << 27;
13115  ++out;
13116  *out = ((*in - in[-1]) % (1U << 7)) >> (7 - 2);
13117  ++in;
13118  *out |= ((*in - in[-1]) % (1U << 7)) << 2;
13119  ++in;
13120  *out |= ((*in - in[-1]) % (1U << 7)) << 9;
13121  ++in;
13122  *out |= ((*in - in[-1]) % (1U << 7)) << 16;
13123  ++in;
13124  *out |= ((*in - in[-1]) % (1U << 7)) << 23;
13125  ++in;
13126  *out |= ((*in - in[-1])) << 30;
13127  ++out;
13128  *out = ((*in - in[-1]) % (1U << 7)) >> (7 - 5);
13129  ++in;
13130  *out |= ((*in - in[-1]) % (1U << 7)) << 5;
13131  ++in;
13132  *out |= ((*in - in[-1]) % (1U << 7)) << 12;
13133  ++in;
13134  *out |= ((*in - in[-1]) % (1U << 7)) << 19;
13135  ++in;
13136  *out |= ((*in - in[-1])) << 26;
13137  ++out;
13138  *out = ((*in - in[-1]) % (1U << 7)) >> (7 - 1);
13139  ++in;
13140  *out |= ((*in - in[-1]) % (1U << 7)) << 1;
13141  ++in;
13142  *out |= ((*in - in[-1]) % (1U << 7)) << 8;
13143  ++in;
13144  *out |= ((*in - in[-1]) % (1U << 7)) << 15;
13145  ++in;
13146  *out |= ((*in - in[-1]) % (1U << 7)) << 22;
13147  ++in;
13148  *out |= ((*in - in[-1])) << 29;
13149  ++out;
13150  *out = ((*in - in[-1]) % (1U << 7)) >> (7 - 4);
13151  ++in;
13152  *out |= ((*in - in[-1]) % (1U << 7)) << 4;
13153  ++in;
13154  *out |= ((*in - in[-1]) % (1U << 7)) << 11;
13155  ++in;
13156  *out |= ((*in - in[-1]) % (1U << 7)) << 18;
13157  ++in;
13158  *out |= ((*in - in[-1])) << 25;
13159 }
13160 
13161 void __integratedfastpack9(const uint32_t initoffset,
13162  const uint32_t * in,
13163  uint32_t * out) {
13164  *out = (*in - initoffset) % (1U << 9);
13165  ++in;
13166  *out |= ((*in - in[-1]) % (1U << 9)) << 9;
13167  ++in;
13168  *out |= ((*in - in[-1]) % (1U << 9)) << 18;
13169  ++in;
13170  *out |= ((*in - in[-1])) << 27;
13171  ++out;
13172  *out = ((*in - in[-1]) % (1U << 9)) >> (9 - 4);
13173  ++in;
13174  *out |= ((*in - in[-1]) % (1U << 9)) << 4;
13175  ++in;
13176  *out |= ((*in - in[-1]) % (1U << 9)) << 13;
13177  ++in;
13178  *out |= ((*in - in[-1]) % (1U << 9)) << 22;
13179  ++in;
13180  *out |= ((*in - in[-1])) << 31;
13181  ++out;
13182  *out = ((*in - in[-1]) % (1U << 9)) >> (9 - 8);
13183  ++in;
13184  *out |= ((*in - in[-1]) % (1U << 9)) << 8;
13185  ++in;
13186  *out |= ((*in - in[-1]) % (1U << 9)) << 17;
13187  ++in;
13188  *out |= ((*in - in[-1])) << 26;
13189  ++out;
13190  *out = ((*in - in[-1]) % (1U << 9)) >> (9 - 3);
13191  ++in;
13192  *out |= ((*in - in[-1]) % (1U << 9)) << 3;
13193  ++in;
13194  *out |= ((*in - in[-1]) % (1U << 9)) << 12;
13195  ++in;
13196  *out |= ((*in - in[-1]) % (1U << 9)) << 21;
13197  ++in;
13198  *out |= ((*in - in[-1])) << 30;
13199  ++out;
13200  *out = ((*in - in[-1]) % (1U << 9)) >> (9 - 7);
13201  ++in;
13202  *out |= ((*in - in[-1]) % (1U << 9)) << 7;
13203  ++in;
13204  *out |= ((*in - in[-1]) % (1U << 9)) << 16;
13205  ++in;
13206  *out |= ((*in - in[-1])) << 25;
13207  ++out;
13208  *out = ((*in - in[-1]) % (1U << 9)) >> (9 - 2);
13209  ++in;
13210  *out |= ((*in - in[-1]) % (1U << 9)) << 2;
13211  ++in;
13212  *out |= ((*in - in[-1]) % (1U << 9)) << 11;
13213  ++in;
13214  *out |= ((*in - in[-1]) % (1U << 9)) << 20;
13215  ++in;
13216  *out |= ((*in - in[-1])) << 29;
13217  ++out;
13218  *out = ((*in - in[-1]) % (1U << 9)) >> (9 - 6);
13219  ++in;
13220  *out |= ((*in - in[-1]) % (1U << 9)) << 6;
13221  ++in;
13222  *out |= ((*in - in[-1]) % (1U << 9)) << 15;
13223  ++in;
13224  *out |= ((*in - in[-1])) << 24;
13225  ++out;
13226  *out = ((*in - in[-1]) % (1U << 9)) >> (9 - 1);
13227  ++in;
13228  *out |= ((*in - in[-1]) % (1U << 9)) << 1;
13229  ++in;
13230  *out |= ((*in - in[-1]) % (1U << 9)) << 10;
13231  ++in;
13232  *out |= ((*in - in[-1]) % (1U << 9)) << 19;
13233  ++in;
13234  *out |= ((*in - in[-1])) << 28;
13235  ++out;
13236  *out = ((*in - in[-1]) % (1U << 9)) >> (9 - 5);
13237  ++in;
13238  *out |= ((*in - in[-1]) % (1U << 9)) << 5;
13239  ++in;
13240  *out |= ((*in - in[-1]) % (1U << 9)) << 14;
13241  ++in;
13242  *out |= ((*in - in[-1])) << 23;
13243 }
13244 
13245 void __integratedfastpack10(const uint32_t initoffset,
13246  const uint32_t * in,
13247  uint32_t * out) {
13248  *out = (*in - initoffset) % (1U << 10);
13249  ++in;
13250  *out |= ((*in - in[-1]) % (1U << 10)) << 10;
13251  ++in;
13252  *out |= ((*in - in[-1]) % (1U << 10)) << 20;
13253  ++in;
13254  *out |= ((*in - in[-1])) << 30;
13255  ++out;
13256  *out = ((*in - in[-1]) % (1U << 10)) >> (10 - 8);
13257  ++in;
13258  *out |= ((*in - in[-1]) % (1U << 10)) << 8;
13259  ++in;
13260  *out |= ((*in - in[-1]) % (1U << 10)) << 18;
13261  ++in;
13262  *out |= ((*in - in[-1])) << 28;
13263  ++out;
13264  *out = ((*in - in[-1]) % (1U << 10)) >> (10 - 6);
13265  ++in;
13266  *out |= ((*in - in[-1]) % (1U << 10)) << 6;
13267  ++in;
13268  *out |= ((*in - in[-1]) % (1U << 10)) << 16;
13269  ++in;
13270  *out |= ((*in - in[-1])) << 26;
13271  ++out;
13272  *out = ((*in - in[-1]) % (1U << 10)) >> (10 - 4);
13273  ++in;
13274  *out |= ((*in - in[-1]) % (1U << 10)) << 4;
13275  ++in;
13276  *out |= ((*in - in[-1]) % (1U << 10)) << 14;
13277  ++in;
13278  *out |= ((*in - in[-1])) << 24;
13279  ++out;
13280  *out = ((*in - in[-1]) % (1U << 10)) >> (10 - 2);
13281  ++in;
13282  *out |= ((*in - in[-1]) % (1U << 10)) << 2;
13283  ++in;
13284  *out |= ((*in - in[-1]) % (1U << 10)) << 12;
13285  ++in;
13286  *out |= ((*in - in[-1])) << 22;
13287  ++out;
13288  ++in;
13289  *out = (*in - in[-1]) % (1U << 10);
13290  ++in;
13291  *out |= ((*in - in[-1]) % (1U << 10)) << 10;
13292  ++in;
13293  *out |= ((*in - in[-1]) % (1U << 10)) << 20;
13294  ++in;
13295  *out |= ((*in - in[-1])) << 30;
13296  ++out;
13297  *out = ((*in - in[-1]) % (1U << 10)) >> (10 - 8);
13298  ++in;
13299  *out |= ((*in - in[-1]) % (1U << 10)) << 8;
13300  ++in;
13301  *out |= ((*in - in[-1]) % (1U << 10)) << 18;
13302  ++in;
13303  *out |= ((*in - in[-1])) << 28;
13304  ++out;
13305  *out = ((*in - in[-1]) % (1U << 10)) >> (10 - 6);
13306  ++in;
13307  *out |= ((*in - in[-1]) % (1U << 10)) << 6;
13308  ++in;
13309  *out |= ((*in - in[-1]) % (1U << 10)) << 16;
13310  ++in;
13311  *out |= ((*in - in[-1])) << 26;
13312  ++out;
13313  *out = ((*in - in[-1]) % (1U << 10)) >> (10 - 4);
13314  ++in;
13315  *out |= ((*in - in[-1]) % (1U << 10)) << 4;
13316  ++in;
13317  *out |= ((*in - in[-1]) % (1U << 10)) << 14;
13318  ++in;
13319  *out |= ((*in - in[-1])) << 24;
13320  ++out;
13321  *out = ((*in - in[-1]) % (1U << 10)) >> (10 - 2);
13322  ++in;
13323  *out |= ((*in - in[-1]) % (1U << 10)) << 2;
13324  ++in;
13325  *out |= ((*in - in[-1]) % (1U << 10)) << 12;
13326  ++in;
13327  *out |= ((*in - in[-1])) << 22;
13328 }
13329 
13330 void __integratedfastpack11(const uint32_t initoffset,
13331  const uint32_t * in,
13332  uint32_t * out) {
13333  *out = (*in - initoffset) % (1U << 11);
13334  ++in;
13335  *out |= ((*in - in[-1]) % (1U << 11)) << 11;
13336  ++in;
13337  *out |= ((*in - in[-1])) << 22;
13338  ++out;
13339  *out = ((*in - in[-1]) % (1U << 11)) >> (11 - 1);
13340  ++in;
13341  *out |= ((*in - in[-1]) % (1U << 11)) << 1;
13342  ++in;
13343  *out |= ((*in - in[-1]) % (1U << 11)) << 12;
13344  ++in;
13345  *out |= ((*in - in[-1])) << 23;
13346  ++out;
13347  *out = ((*in - in[-1]) % (1U << 11)) >> (11 - 2);
13348  ++in;
13349  *out |= ((*in - in[-1]) % (1U << 11)) << 2;
13350  ++in;
13351  *out |= ((*in - in[-1]) % (1U << 11)) << 13;
13352  ++in;
13353  *out |= ((*in - in[-1])) << 24;
13354  ++out;
13355  *out = ((*in - in[-1]) % (1U << 11)) >> (11 - 3);
13356  ++in;
13357  *out |= ((*in - in[-1]) % (1U << 11)) << 3;
13358  ++in;
13359  *out |= ((*in - in[-1]) % (1U << 11)) << 14;
13360  ++in;
13361  *out |= ((*in - in[-1])) << 25;
13362  ++out;
13363  *out = ((*in - in[-1]) % (1U << 11)) >> (11 - 4);
13364  ++in;
13365  *out |= ((*in - in[-1]) % (1U << 11)) << 4;
13366  ++in;
13367  *out |= ((*in - in[-1]) % (1U << 11)) << 15;
13368  ++in;
13369  *out |= ((*in - in[-1])) << 26;
13370  ++out;
13371  *out = ((*in - in[-1]) % (1U << 11)) >> (11 - 5);
13372  ++in;
13373  *out |= ((*in - in[-1]) % (1U << 11)) << 5;
13374  ++in;
13375  *out |= ((*in - in[-1]) % (1U << 11)) << 16;
13376  ++in;
13377  *out |= ((*in - in[-1])) << 27;
13378  ++out;
13379  *out = ((*in - in[-1]) % (1U << 11)) >> (11 - 6);
13380  ++in;
13381  *out |= ((*in - in[-1]) % (1U << 11)) << 6;
13382  ++in;
13383  *out |= ((*in - in[-1]) % (1U << 11)) << 17;
13384  ++in;
13385  *out |= ((*in - in[-1])) << 28;
13386  ++out;
13387  *out = ((*in - in[-1]) % (1U << 11)) >> (11 - 7);
13388  ++in;
13389  *out |= ((*in - in[-1]) % (1U << 11)) << 7;
13390  ++in;
13391  *out |= ((*in - in[-1]) % (1U << 11)) << 18;
13392  ++in;
13393  *out |= ((*in - in[-1])) << 29;
13394  ++out;
13395  *out = ((*in - in[-1]) % (1U << 11)) >> (11 - 8);
13396  ++in;
13397  *out |= ((*in - in[-1]) % (1U << 11)) << 8;
13398  ++in;
13399  *out |= ((*in - in[-1]) % (1U << 11)) << 19;
13400  ++in;
13401  *out |= ((*in - in[-1])) << 30;
13402  ++out;
13403  *out = ((*in - in[-1]) % (1U << 11)) >> (11 - 9);
13404  ++in;
13405  *out |= ((*in - in[-1]) % (1U << 11)) << 9;
13406  ++in;
13407  *out |= ((*in - in[-1]) % (1U << 11)) << 20;
13408  ++in;
13409  *out |= ((*in - in[-1])) << 31;
13410  ++out;
13411  *out = ((*in - in[-1]) % (1U << 11)) >> (11 - 10);
13412  ++in;
13413  *out |= ((*in - in[-1]) % (1U << 11)) << 10;
13414  ++in;
13415  *out |= ((*in - in[-1])) << 21;
13416 }
13417 
13418 void __integratedfastpack12(const uint32_t initoffset,
13419  const uint32_t * in,
13420  uint32_t * out) {
13421  *out = (*in - initoffset) % (1U << 12);
13422  ++in;
13423  *out |= ((*in - in[-1]) % (1U << 12)) << 12;
13424  ++in;
13425  *out |= ((*in - in[-1])) << 24;
13426  ++out;
13427  *out = ((*in - in[-1]) % (1U << 12)) >> (12 - 4);
13428  ++in;
13429  *out |= ((*in - in[-1]) % (1U << 12)) << 4;
13430  ++in;
13431  *out |= ((*in - in[-1]) % (1U << 12)) << 16;
13432  ++in;
13433  *out |= ((*in - in[-1])) << 28;
13434  ++out;
13435  *out = ((*in - in[-1]) % (1U << 12)) >> (12 - 8);
13436  ++in;
13437  *out |= ((*in - in[-1]) % (1U << 12)) << 8;
13438  ++in;
13439  *out |= ((*in - in[-1])) << 20;
13440  ++out;
13441  ++in;
13442  *out = (*in - in[-1]) % (1U << 12);
13443  ++in;
13444  *out |= ((*in - in[-1]) % (1U << 12)) << 12;
13445  ++in;
13446  *out |= ((*in - in[-1])) << 24;
13447  ++out;
13448  *out = ((*in - in[-1]) % (1U << 12)) >> (12 - 4);
13449  ++in;
13450  *out |= ((*in - in[-1]) % (1U << 12)) << 4;
13451  ++in;
13452  *out |= ((*in - in[-1]) % (1U << 12)) << 16;
13453  ++in;
13454  *out |= ((*in - in[-1])) << 28;
13455  ++out;
13456  *out = ((*in - in[-1]) % (1U << 12)) >> (12 - 8);
13457  ++in;
13458  *out |= ((*in - in[-1]) % (1U << 12)) << 8;
13459  ++in;
13460  *out |= ((*in - in[-1])) << 20;
13461  ++out;
13462  ++in;
13463  *out = (*in - in[-1]) % (1U << 12);
13464  ++in;
13465  *out |= ((*in - in[-1]) % (1U << 12)) << 12;
13466  ++in;
13467  *out |= ((*in - in[-1])) << 24;
13468  ++out;
13469  *out = ((*in - in[-1]) % (1U << 12)) >> (12 - 4);
13470  ++in;
13471  *out |= ((*in - in[-1]) % (1U << 12)) << 4;
13472  ++in;
13473  *out |= ((*in - in[-1]) % (1U << 12)) << 16;
13474  ++in;
13475  *out |= ((*in - in[-1])) << 28;
13476  ++out;
13477  *out = ((*in - in[-1]) % (1U << 12)) >> (12 - 8);
13478  ++in;
13479  *out |= ((*in - in[-1]) % (1U << 12)) << 8;
13480  ++in;
13481  *out |= ((*in - in[-1])) << 20;
13482  ++out;
13483  ++in;
13484  *out = (*in - in[-1]) % (1U << 12);
13485  ++in;
13486  *out |= ((*in - in[-1]) % (1U << 12)) << 12;
13487  ++in;
13488  *out |= ((*in - in[-1])) << 24;
13489  ++out;
13490  *out = ((*in - in[-1]) % (1U << 12)) >> (12 - 4);
13491  ++in;
13492  *out |= ((*in - in[-1]) % (1U << 12)) << 4;
13493  ++in;
13494  *out |= ((*in - in[-1]) % (1U << 12)) << 16;
13495  ++in;
13496  *out |= ((*in - in[-1])) << 28;
13497  ++out;
13498  *out = ((*in - in[-1]) % (1U << 12)) >> (12 - 8);
13499  ++in;
13500  *out |= ((*in - in[-1]) % (1U << 12)) << 8;
13501  ++in;
13502  *out |= ((*in - in[-1])) << 20;
13503 }
13504 
13505 void __integratedfastpack13(const uint32_t initoffset,
13506  const uint32_t * in,
13507  uint32_t * out) {
13508  *out = (*in - initoffset) % (1U << 13);
13509  ++in;
13510  *out |= ((*in - in[-1]) % (1U << 13)) << 13;
13511  ++in;
13512  *out |= ((*in - in[-1])) << 26;
13513  ++out;
13514  *out = ((*in - in[-1]) % (1U << 13)) >> (13 - 7);
13515  ++in;
13516  *out |= ((*in - in[-1]) % (1U << 13)) << 7;
13517  ++in;
13518  *out |= ((*in - in[-1])) << 20;
13519  ++out;
13520  *out = ((*in - in[-1]) % (1U << 13)) >> (13 - 1);
13521  ++in;
13522  *out |= ((*in - in[-1]) % (1U << 13)) << 1;
13523  ++in;
13524  *out |= ((*in - in[-1]) % (1U << 13)) << 14;
13525  ++in;
13526  *out |= ((*in - in[-1])) << 27;
13527  ++out;
13528  *out = ((*in - in[-1]) % (1U << 13)) >> (13 - 8);
13529  ++in;
13530  *out |= ((*in - in[-1]) % (1U << 13)) << 8;
13531  ++in;
13532  *out |= ((*in - in[-1])) << 21;
13533  ++out;
13534  *out = ((*in - in[-1]) % (1U << 13)) >> (13 - 2);
13535  ++in;
13536  *out |= ((*in - in[-1]) % (1U << 13)) << 2;
13537  ++in;
13538  *out |= ((*in - in[-1]) % (1U << 13)) << 15;
13539  ++in;
13540  *out |= ((*in - in[-1])) << 28;
13541  ++out;
13542  *out = ((*in - in[-1]) % (1U << 13)) >> (13 - 9);
13543  ++in;
13544  *out |= ((*in - in[-1]) % (1U << 13)) << 9;
13545  ++in;
13546  *out |= ((*in - in[-1])) << 22;
13547  ++out;
13548  *out = ((*in - in[-1]) % (1U << 13)) >> (13 - 3);
13549  ++in;
13550  *out |= ((*in - in[-1]) % (1U << 13)) << 3;
13551  ++in;
13552  *out |= ((*in - in[-1]) % (1U << 13)) << 16;
13553  ++in;
13554  *out |= ((*in - in[-1])) << 29;
13555  ++out;
13556  *out = ((*in - in[-1]) % (1U << 13)) >> (13 - 10);
13557  ++in;
13558  *out |= ((*in - in[-1]) % (1U << 13)) << 10;
13559  ++in;
13560  *out |= ((*in - in[-1])) << 23;
13561  ++out;
13562  *out = ((*in - in[-1]) % (1U << 13)) >> (13 - 4);
13563  ++in;
13564  *out |= ((*in - in[-1]) % (1U << 13)) << 4;
13565  ++in;
13566  *out |= ((*in - in[-1]) % (1U << 13)) << 17;
13567  ++in;
13568  *out |= ((*in - in[-1])) << 30;
13569  ++out;
13570  *out = ((*in - in[-1]) % (1U << 13)) >> (13 - 11);
13571  ++in;
13572  *out |= ((*in - in[-1]) % (1U << 13)) << 11;
13573  ++in;
13574  *out |= ((*in - in[-1])) << 24;
13575  ++out;
13576  *out = ((*in - in[-1]) % (1U << 13)) >> (13 - 5);
13577  ++in;
13578  *out |= ((*in - in[-1]) % (1U << 13)) << 5;
13579  ++in;
13580  *out |= ((*in - in[-1]) % (1U << 13)) << 18;
13581  ++in;
13582  *out |= ((*in - in[-1])) << 31;
13583  ++out;
13584  *out = ((*in - in[-1]) % (1U << 13)) >> (13 - 12);
13585  ++in;
13586  *out |= ((*in - in[-1]) % (1U << 13)) << 12;
13587  ++in;
13588  *out |= ((*in - in[-1])) << 25;
13589  ++out;
13590  *out = ((*in - in[-1]) % (1U << 13)) >> (13 - 6);
13591  ++in;
13592  *out |= ((*in - in[-1]) % (1U << 13)) << 6;
13593  ++in;
13594  *out |= ((*in - in[-1])) << 19;
13595 }
13596 
13597 void __integratedfastpack14(const uint32_t initoffset,
13598  const uint32_t * in,
13599  uint32_t * out) {
13600  *out = (*in - initoffset) % (1U << 14);
13601  ++in;
13602  *out |= ((*in - in[-1]) % (1U << 14)) << 14;
13603  ++in;
13604  *out |= ((*in - in[-1])) << 28;
13605  ++out;
13606  *out = ((*in - in[-1]) % (1U << 14)) >> (14 - 10);
13607  ++in;
13608  *out |= ((*in - in[-1]) % (1U << 14)) << 10;
13609  ++in;
13610  *out |= ((*in - in[-1])) << 24;
13611  ++out;
13612  *out = ((*in - in[-1]) % (1U << 14)) >> (14 - 6);
13613  ++in;
13614  *out |= ((*in - in[-1]) % (1U << 14)) << 6;
13615  ++in;
13616  *out |= ((*in - in[-1])) << 20;
13617  ++out;
13618  *out = ((*in - in[-1]) % (1U << 14)) >> (14 - 2);
13619  ++in;
13620  *out |= ((*in - in[-1]) % (1U << 14)) << 2;
13621  ++in;
13622  *out |= ((*in - in[-1]) % (1U << 14)) << 16;
13623  ++in;
13624  *out |= ((*in - in[-1])) << 30;
13625  ++out;
13626  *out = ((*in - in[-1]) % (1U << 14)) >> (14 - 12);
13627  ++in;
13628  *out |= ((*in - in[-1]) % (1U << 14)) << 12;
13629  ++in;
13630  *out |= ((*in - in[-1])) << 26;
13631  ++out;
13632  *out = ((*in - in[-1]) % (1U << 14)) >> (14 - 8);
13633  ++in;
13634  *out |= ((*in - in[-1]) % (1U << 14)) << 8;
13635  ++in;
13636  *out |= ((*in - in[-1])) << 22;
13637  ++out;
13638  *out = ((*in - in[-1]) % (1U << 14)) >> (14 - 4);
13639  ++in;
13640  *out |= ((*in - in[-1]) % (1U << 14)) << 4;
13641  ++in;
13642  *out |= ((*in - in[-1])) << 18;
13643  ++out;
13644  ++in;
13645  *out = (*in - in[-1]) % (1U << 14);
13646  ++in;
13647  *out |= ((*in - in[-1]) % (1U << 14)) << 14;
13648  ++in;
13649  *out |= ((*in - in[-1])) << 28;
13650  ++out;
13651  *out = ((*in - in[-1]) % (1U << 14)) >> (14 - 10);
13652  ++in;
13653  *out |= ((*in - in[-1]) % (1U << 14)) << 10;
13654  ++in;
13655  *out |= ((*in - in[-1])) << 24;
13656  ++out;
13657  *out = ((*in - in[-1]) % (1U << 14)) >> (14 - 6);
13658  ++in;
13659  *out |= ((*in - in[-1]) % (1U << 14)) << 6;
13660  ++in;
13661  *out |= ((*in - in[-1])) << 20;
13662  ++out;
13663  *out = ((*in - in[-1]) % (1U << 14)) >> (14 - 2);
13664  ++in;
13665  *out |= ((*in - in[-1]) % (1U << 14)) << 2;
13666  ++in;
13667  *out |= ((*in - in[-1]) % (1U << 14)) << 16;
13668  ++in;
13669  *out |= ((*in - in[-1])) << 30;
13670  ++out;
13671  *out = ((*in - in[-1]) % (1U << 14)) >> (14 - 12);
13672  ++in;
13673  *out |= ((*in - in[-1]) % (1U << 14)) << 12;
13674  ++in;
13675  *out |= ((*in - in[-1])) << 26;
13676  ++out;
13677  *out = ((*in - in[-1]) % (1U << 14)) >> (14 - 8);
13678  ++in;
13679  *out |= ((*in - in[-1]) % (1U << 14)) << 8;
13680  ++in;
13681  *out |= ((*in - in[-1])) << 22;
13682  ++out;
13683  *out = ((*in - in[-1]) % (1U << 14)) >> (14 - 4);
13684  ++in;
13685  *out |= ((*in - in[-1]) % (1U << 14)) << 4;
13686  ++in;
13687  *out |= ((*in - in[-1])) << 18;
13688 }
13689 
13690 void __integratedfastpack15(const uint32_t initoffset,
13691  const uint32_t * in,
13692  uint32_t * out) {
13693  *out = (*in - initoffset) % (1U << 15);
13694  ++in;
13695  *out |= ((*in - in[-1]) % (1U << 15)) << 15;
13696  ++in;
13697  *out |= ((*in - in[-1])) << 30;
13698  ++out;
13699  *out = ((*in - in[-1]) % (1U << 15)) >> (15 - 13);
13700  ++in;
13701  *out |= ((*in - in[-1]) % (1U << 15)) << 13;
13702  ++in;
13703  *out |= ((*in - in[-1])) << 28;
13704  ++out;
13705  *out = ((*in - in[-1]) % (1U << 15)) >> (15 - 11);
13706  ++in;
13707  *out |= ((*in - in[-1]) % (1U << 15)) << 11;
13708  ++in;
13709  *out |= ((*in - in[-1])) << 26;
13710  ++out;
13711  *out = ((*in - in[-1]) % (1U << 15)) >> (15 - 9);
13712  ++in;
13713  *out |= ((*in - in[-1]) % (1U << 15)) << 9;
13714  ++in;
13715  *out |= ((*in - in[-1])) << 24;
13716  ++out;
13717  *out = ((*in - in[-1]) % (1U << 15)) >> (15 - 7);
13718  ++in;
13719  *out |= ((*in - in[-1]) % (1U << 15)) << 7;
13720  ++in;
13721  *out |= ((*in - in[-1])) << 22;
13722  ++out;
13723  *out = ((*in - in[-1]) % (1U << 15)) >> (15 - 5);
13724  ++in;
13725  *out |= ((*in - in[-1]) % (1U << 15)) << 5;
13726  ++in;
13727  *out |= ((*in - in[-1])) << 20;
13728  ++out;
13729  *out = ((*in - in[-1]) % (1U << 15)) >> (15 - 3);
13730  ++in;
13731  *out |= ((*in - in[-1]) % (1U << 15)) << 3;
13732  ++in;
13733  *out |= ((*in - in[-1])) << 18;
13734  ++out;
13735  *out = ((*in - in[-1]) % (1U << 15)) >> (15 - 1);
13736  ++in;
13737  *out |= ((*in - in[-1]) % (1U << 15)) << 1;
13738  ++in;
13739  *out |= ((*in - in[-1]) % (1U << 15)) << 16;
13740  ++in;
13741  *out |= ((*in - in[-1])) << 31;
13742  ++out;
13743  *out = ((*in - in[-1]) % (1U << 15)) >> (15 - 14);
13744  ++in;
13745  *out |= ((*in - in[-1]) % (1U << 15)) << 14;
13746  ++in;
13747  *out |= ((*in - in[-1])) << 29;
13748  ++out;
13749  *out = ((*in - in[-1]) % (1U << 15)) >> (15 - 12);
13750  ++in;
13751  *out |= ((*in - in[-1]) % (1U << 15)) << 12;
13752  ++in;
13753  *out |= ((*in - in[-1])) << 27;
13754  ++out;
13755  *out = ((*in - in[-1]) % (1U << 15)) >> (15 - 10);
13756  ++in;
13757  *out |= ((*in - in[-1]) % (1U << 15)) << 10;
13758  ++in;
13759  *out |= ((*in - in[-1])) << 25;
13760  ++out;
13761  *out = ((*in - in[-1]) % (1U << 15)) >> (15 - 8);
13762  ++in;
13763  *out |= ((*in - in[-1]) % (1U << 15)) << 8;
13764  ++in;
13765  *out |= ((*in - in[-1])) << 23;
13766  ++out;
13767  *out = ((*in - in[-1]) % (1U << 15)) >> (15 - 6);
13768  ++in;
13769  *out |= ((*in - in[-1]) % (1U << 15)) << 6;
13770  ++in;
13771  *out |= ((*in - in[-1])) << 21;
13772  ++out;
13773  *out = ((*in - in[-1]) % (1U << 15)) >> (15 - 4);
13774  ++in;
13775  *out |= ((*in - in[-1]) % (1U << 15)) << 4;
13776  ++in;
13777  *out |= ((*in - in[-1])) << 19;
13778  ++out;
13779  *out = ((*in - in[-1]) % (1U << 15)) >> (15 - 2);
13780  ++in;
13781  *out |= ((*in - in[-1]) % (1U << 15)) << 2;
13782  ++in;
13783  *out |= ((*in - in[-1])) << 17;
13784 }
13785 
13786 void __integratedfastpack17(const uint32_t initoffset,
13787  const uint32_t * in,
13788  uint32_t * out) {
13789  *out = (*in - initoffset) % (1U << 17);
13790  ++in;
13791  *out |= ((*in - in[-1])) << 17;
13792  ++out;
13793  *out = ((*in - in[-1]) % (1U << 17)) >> (17 - 2);
13794  ++in;
13795  *out |= ((*in - in[-1]) % (1U << 17)) << 2;
13796  ++in;
13797  *out |= ((*in - in[-1])) << 19;
13798  ++out;
13799  *out = ((*in - in[-1]) % (1U << 17)) >> (17 - 4);
13800  ++in;
13801  *out |= ((*in - in[-1]) % (1U << 17)) << 4;
13802  ++in;
13803  *out |= ((*in - in[-1])) << 21;
13804  ++out;
13805  *out = ((*in - in[-1]) % (1U << 17)) >> (17 - 6);
13806  ++in;
13807  *out |= ((*in - in[-1]) % (1U << 17)) << 6;
13808  ++in;
13809  *out |= ((*in - in[-1])) << 23;
13810  ++out;
13811  *out = ((*in - in[-1]) % (1U << 17)) >> (17 - 8);
13812  ++in;
13813  *out |= ((*in - in[-1]) % (1U << 17)) << 8;
13814  ++in;
13815  *out |= ((*in - in[-1])) << 25;
13816  ++out;
13817  *out = ((*in - in[-1]) % (1U << 17)) >> (17 - 10);
13818  ++in;
13819  *out |= ((*in - in[-1]) % (1U << 17)) << 10;
13820  ++in;
13821  *out |= ((*in - in[-1])) << 27;
13822  ++out;
13823  *out = ((*in - in[-1]) % (1U << 17)) >> (17 - 12);
13824  ++in;
13825  *out |= ((*in - in[-1]) % (1U << 17)) << 12;
13826  ++in;
13827  *out |= ((*in - in[-1])) << 29;
13828  ++out;
13829  *out = ((*in - in[-1]) % (1U << 17)) >> (17 - 14);
13830  ++in;
13831  *out |= ((*in - in[-1]) % (1U << 17)) << 14;
13832  ++in;
13833  *out |= ((*in - in[-1])) << 31;
13834  ++out;
13835  *out = ((*in - in[-1]) % (1U << 17)) >> (17 - 16);
13836  ++in;
13837  *out |= ((*in - in[-1])) << 16;
13838  ++out;
13839  *out = ((*in - in[-1]) % (1U << 17)) >> (17 - 1);
13840  ++in;
13841  *out |= ((*in - in[-1]) % (1U << 17)) << 1;
13842  ++in;
13843  *out |= ((*in - in[-1])) << 18;
13844  ++out;
13845  *out = ((*in - in[-1]) % (1U << 17)) >> (17 - 3);
13846  ++in;
13847  *out |= ((*in - in[-1]) % (1U << 17)) << 3;
13848  ++in;
13849  *out |= ((*in - in[-1])) << 20;
13850  ++out;
13851  *out = ((*in - in[-1]) % (1U << 17)) >> (17 - 5);
13852  ++in;
13853  *out |= ((*in - in[-1]) % (1U << 17)) << 5;
13854  ++in;
13855  *out |= ((*in - in[-1])) << 22;
13856  ++out;
13857  *out = ((*in - in[-1]) % (1U << 17)) >> (17 - 7);
13858  ++in;
13859  *out |= ((*in - in[-1]) % (1U << 17)) << 7;
13860  ++in;
13861  *out |= ((*in - in[-1])) << 24;
13862  ++out;
13863  *out = ((*in - in[-1]) % (1U << 17)) >> (17 - 9);
13864  ++in;
13865  *out |= ((*in - in[-1]) % (1U << 17)) << 9;
13866  ++in;
13867  *out |= ((*in - in[-1])) << 26;
13868  ++out;
13869  *out = ((*in - in[-1]) % (1U << 17)) >> (17 - 11);
13870  ++in;
13871  *out |= ((*in - in[-1]) % (1U << 17)) << 11;
13872  ++in;
13873  *out |= ((*in - in[-1])) << 28;
13874  ++out;
13875  *out = ((*in - in[-1]) % (1U << 17)) >> (17 - 13);
13876  ++in;
13877  *out |= ((*in - in[-1]) % (1U << 17)) << 13;
13878  ++in;
13879  *out |= ((*in - in[-1])) << 30;
13880  ++out;
13881  *out = ((*in - in[-1]) % (1U << 17)) >> (17 - 15);
13882  ++in;
13883  *out |= ((*in - in[-1])) << 15;
13884 }
13885 
13886 void __integratedfastpack18(const uint32_t initoffset,
13887  const uint32_t * in,
13888  uint32_t * out) {
13889  *out = (*in - initoffset) % (1U << 18);
13890  ++in;
13891  *out |= ((*in - in[-1])) << 18;
13892  ++out;
13893  *out = ((*in - in[-1]) % (1U << 18)) >> (18 - 4);
13894  ++in;
13895  *out |= ((*in - in[-1]) % (1U << 18)) << 4;
13896  ++in;
13897  *out |= ((*in - in[-1])) << 22;
13898  ++out;
13899  *out = ((*in - in[-1]) % (1U << 18)) >> (18 - 8);
13900  ++in;
13901  *out |= ((*in - in[-1]) % (1U << 18)) << 8;
13902  ++in;
13903  *out |= ((*in - in[-1])) << 26;
13904  ++out;
13905  *out = ((*in - in[-1]) % (1U << 18)) >> (18 - 12);
13906  ++in;
13907  *out |= ((*in - in[-1]) % (1U << 18)) << 12;
13908  ++in;
13909  *out |= ((*in - in[-1])) << 30;
13910  ++out;
13911  *out = ((*in - in[-1]) % (1U << 18)) >> (18 - 16);
13912  ++in;
13913  *out |= ((*in - in[-1])) << 16;
13914  ++out;
13915  *out = ((*in - in[-1]) % (1U << 18)) >> (18 - 2);
13916  ++in;
13917  *out |= ((*in - in[-1]) % (1U << 18)) << 2;
13918  ++in;
13919  *out |= ((*in - in[-1])) << 20;
13920  ++out;
13921  *out = ((*in - in[-1]) % (1U << 18)) >> (18 - 6);
13922  ++in;
13923  *out |= ((*in - in[-1]) % (1U << 18)) << 6;
13924  ++in;
13925  *out |= ((*in - in[-1])) << 24;
13926  ++out;
13927  *out = ((*in - in[-1]) % (1U << 18)) >> (18 - 10);
13928  ++in;
13929  *out |= ((*in - in[-1]) % (1U << 18)) << 10;
13930  ++in;
13931  *out |= ((*in - in[-1])) << 28;
13932  ++out;
13933  *out = ((*in - in[-1]) % (1U << 18)) >> (18 - 14);
13934  ++in;
13935  *out |= ((*in - in[-1])) << 14;
13936  ++out;
13937  ++in;
13938  *out = (*in - in[-1]) % (1U << 18);
13939  ++in;
13940  *out |= ((*in - in[-1])) << 18;
13941  ++out;
13942  *out = ((*in - in[-1]) % (1U << 18)) >> (18 - 4);
13943  ++in;
13944  *out |= ((*in - in[-1]) % (1U << 18)) << 4;
13945  ++in;
13946  *out |= ((*in - in[-1])) << 22;
13947  ++out;
13948  *out = ((*in - in[-1]) % (1U << 18)) >> (18 - 8);
13949  ++in;
13950  *out |= ((*in - in[-1]) % (1U << 18)) << 8;
13951  ++in;
13952  *out |= ((*in - in[-1])) << 26;
13953  ++out;
13954  *out = ((*in - in[-1]) % (1U << 18)) >> (18 - 12);
13955  ++in;
13956  *out |= ((*in - in[-1]) % (1U << 18)) << 12;
13957  ++in;
13958  *out |= ((*in - in[-1])) << 30;
13959  ++out;
13960  *out = ((*in - in[-1]) % (1U << 18)) >> (18 - 16);
13961  ++in;
13962  *out |= ((*in - in[-1])) << 16;
13963  ++out;
13964  *out = ((*in - in[-1]) % (1U << 18)) >> (18 - 2);
13965  ++in;
13966  *out |= ((*in - in[-1]) % (1U << 18)) << 2;
13967  ++in;
13968  *out |= ((*in - in[-1])) << 20;
13969  ++out;
13970  *out = ((*in - in[-1]) % (1U << 18)) >> (18 - 6);
13971  ++in;
13972  *out |= ((*in - in[-1]) % (1U << 18)) << 6;
13973  ++in;
13974  *out |= ((*in - in[-1])) << 24;
13975  ++out;
13976  *out = ((*in - in[-1]) % (1U << 18)) >> (18 - 10);
13977  ++in;
13978  *out |= ((*in - in[-1]) % (1U << 18)) << 10;
13979  ++in;
13980  *out |= ((*in - in[-1])) << 28;
13981  ++out;
13982  *out = ((*in - in[-1]) % (1U << 18)) >> (18 - 14);
13983  ++in;
13984  *out |= ((*in - in[-1])) << 14;
13985 }
13986 
13987 void __integratedfastpack19(const uint32_t initoffset,
13988  const uint32_t * in,
13989  uint32_t * out) {
13990  *out = (*in - initoffset) % (1U << 19);
13991  ++in;
13992  *out |= ((*in - in[-1])) << 19;
13993  ++out;
13994  *out = ((*in - in[-1]) % (1U << 19)) >> (19 - 6);
13995  ++in;
13996  *out |= ((*in - in[-1]) % (1U << 19)) << 6;
13997  ++in;
13998  *out |= ((*in - in[-1])) << 25;
13999  ++out;
14000  *out = ((*in - in[-1]) % (1U << 19)) >> (19 - 12);
14001  ++in;
14002  *out |= ((*in - in[-1]) % (1U << 19)) << 12;
14003  ++in;
14004  *out |= ((*in - in[-1])) << 31;
14005  ++out;
14006  *out = ((*in - in[-1]) % (1U << 19)) >> (19 - 18);
14007  ++in;
14008  *out |= ((*in - in[-1])) << 18;
14009  ++out;
14010  *out = ((*in - in[-1]) % (1U << 19)) >> (19 - 5);
14011  ++in;
14012  *out |= ((*in - in[-1]) % (1U << 19)) << 5;
14013  ++in;
14014  *out |= ((*in - in[-1])) << 24;
14015  ++out;
14016  *out = ((*in - in[-1]) % (1U << 19)) >> (19 - 11);
14017  ++in;
14018  *out |= ((*in - in[-1]) % (1U << 19)) << 11;
14019  ++in;
14020  *out |= ((*in - in[-1])) << 30;
14021  ++out;
14022  *out = ((*in - in[-1]) % (1U << 19)) >> (19 - 17);
14023  ++in;
14024  *out |= ((*in - in[-1])) << 17;
14025  ++out;
14026  *out = ((*in - in[-1]) % (1U << 19)) >> (19 - 4);
14027  ++in;
14028  *out |= ((*in - in[-1]) % (1U << 19)) << 4;
14029  ++in;
14030  *out |= ((*in - in[-1])) << 23;
14031  ++out;
14032  *out = ((*in - in[-1]) % (1U << 19)) >> (19 - 10);
14033  ++in;
14034  *out |= ((*in - in[-1]) % (1U << 19)) << 10;
14035  ++in;
14036  *out |= ((*in - in[-1])) << 29;
14037  ++out;
14038  *out = ((*in - in[-1]) % (1U << 19)) >> (19 - 16);
14039  ++in;
14040  *out |= ((*in - in[-1])) << 16;
14041  ++out;
14042  *out = ((*in - in[-1]) % (1U << 19)) >> (19 - 3);
14043  ++in;
14044  *out |= ((*in - in[-1]) % (1U << 19)) << 3;
14045  ++in;
14046  *out |= ((*in - in[-1])) << 22;
14047  ++out;
14048  *out = ((*in - in[-1]) % (1U << 19)) >> (19 - 9);
14049  ++in;
14050  *out |= ((*in - in[-1]) % (1U << 19)) << 9;
14051  ++in;
14052  *out |= ((*in - in[-1])) << 28;
14053  ++out;
14054  *out = ((*in - in[-1]) % (1U << 19)) >> (19 - 15);
14055  ++in;
14056  *out |= ((*in - in[-1])) << 15;
14057  ++out;
14058  *out = ((*in - in[-1]) % (1U << 19)) >> (19 - 2);
14059  ++in;
14060  *out |= ((*in - in[-1]) % (1U << 19)) << 2;
14061  ++in;
14062  *out |= ((*in - in[-1])) << 21;
14063  ++out;
14064  *out = ((*in - in[-1]) % (1U << 19)) >> (19 - 8);
14065  ++in;
14066  *out |= ((*in - in[-1]) % (1U << 19)) << 8;
14067  ++in;
14068  *out |= ((*in - in[-1])) << 27;
14069  ++out;
14070  *out = ((*in - in[-1]) % (1U << 19)) >> (19 - 14);
14071  ++in;
14072  *out |= ((*in - in[-1])) << 14;
14073  ++out;
14074  *out = ((*in - in[-1]) % (1U << 19)) >> (19 - 1);
14075  ++in;
14076  *out |= ((*in - in[-1]) % (1U << 19)) << 1;
14077  ++in;
14078  *out |= ((*in - in[-1])) << 20;
14079  ++out;
14080  *out = ((*in - in[-1]) % (1U << 19)) >> (19 - 7);
14081  ++in;
14082  *out |= ((*in - in[-1]) % (1U << 19)) << 7;
14083  ++in;
14084  *out |= ((*in - in[-1])) << 26;
14085  ++out;
14086  *out = ((*in - in[-1]) % (1U << 19)) >> (19 - 13);
14087  ++in;
14088  *out |= ((*in - in[-1])) << 13;
14089 }
14090 
14091 void __integratedfastpack20(const uint32_t initoffset,
14092  const uint32_t * in,
14093  uint32_t * out) {
14094  *out = (*in - initoffset) % (1U << 20);
14095  ++in;
14096  *out |= ((*in - in[-1])) << 20;
14097  ++out;
14098  *out = ((*in - in[-1]) % (1U << 20)) >> (20 - 8);
14099  ++in;
14100  *out |= ((*in - in[-1]) % (1U << 20)) << 8;
14101  ++in;
14102  *out |= ((*in - in[-1])) << 28;
14103  ++out;
14104  *out = ((*in - in[-1]) % (1U << 20)) >> (20 - 16);
14105  ++in;
14106  *out |= ((*in - in[-1])) << 16;
14107  ++out;
14108  *out = ((*in - in[-1]) % (1U << 20)) >> (20 - 4);
14109  ++in;
14110  *out |= ((*in - in[-1]) % (1U << 20)) << 4;
14111  ++in;
14112  *out |= ((*in - in[-1])) << 24;
14113  ++out;
14114  *out = ((*in - in[-1]) % (1U << 20)) >> (20 - 12);
14115  ++in;
14116  *out |= ((*in - in[-1])) << 12;
14117  ++out;
14118  ++in;
14119  *out = (*in - in[-1]) % (1U << 20);
14120  ++in;
14121  *out |= ((*in - in[-1])) << 20;
14122  ++out;
14123  *out = ((*in - in[-1]) % (1U << 20)) >> (20 - 8);
14124  ++in;
14125  *out |= ((*in - in[-1]) % (1U << 20)) << 8;
14126  ++in;
14127  *out |= ((*in - in[-1])) << 28;
14128  ++out;
14129  *out = ((*in - in[-1]) % (1U << 20)) >> (20 - 16);
14130  ++in;
14131  *out |= ((*in - in[-1])) << 16;
14132  ++out;
14133  *out = ((*in - in[-1]) % (1U << 20)) >> (20 - 4);
14134  ++in;
14135  *out |= ((*in - in[-1]) % (1U << 20)) << 4;
14136  ++in;
14137  *out |= ((*in - in[-1])) << 24;
14138  ++out;
14139  *out = ((*in - in[-1]) % (1U << 20)) >> (20 - 12);
14140  ++in;
14141  *out |= ((*in - in[-1])) << 12;
14142  ++out;
14143  ++in;
14144  *out = (*in - in[-1]) % (1U << 20);
14145  ++in;
14146  *out |= ((*in - in[-1])) << 20;
14147  ++out;
14148  *out = ((*in - in[-1]) % (1U << 20)) >> (20 - 8);
14149  ++in;
14150  *out |= ((*in - in[-1]) % (1U << 20)) << 8;
14151  ++in;
14152  *out |= ((*in - in[-1])) << 28;
14153  ++out;
14154  *out = ((*in - in[-1]) % (1U << 20)) >> (20 - 16);
14155  ++in;
14156  *out |= ((*in - in[-1])) << 16;
14157  ++out;
14158  *out = ((*in - in[-1]) % (1U << 20)) >> (20 - 4);
14159  ++in;
14160  *out |= ((*in - in[-1]) % (1U << 20)) << 4;
14161  ++in;
14162  *out |= ((*in - in[-1])) << 24;
14163  ++out;
14164  *out = ((*in - in[-1]) % (1U << 20)) >> (20 - 12);
14165  ++in;
14166  *out |= ((*in - in[-1])) << 12;
14167  ++out;
14168  ++in;
14169  *out = (*in - in[-1]) % (1U << 20);
14170  ++in;
14171  *out |= ((*in - in[-1])) << 20;
14172  ++out;
14173  *out = ((*in - in[-1]) % (1U << 20)) >> (20 - 8);
14174  ++in;
14175  *out |= ((*in - in[-1]) % (1U << 20)) << 8;
14176  ++in;
14177  *out |= ((*in - in[-1])) << 28;
14178  ++out;
14179  *out = ((*in - in[-1]) % (1U << 20)) >> (20 - 16);
14180  ++in;
14181  *out |= ((*in - in[-1])) << 16;
14182  ++out;
14183  *out = ((*in - in[-1]) % (1U << 20)) >> (20 - 4);
14184  ++in;
14185  *out |= ((*in - in[-1]) % (1U << 20)) << 4;
14186  ++in;
14187  *out |= ((*in - in[-1])) << 24;
14188  ++out;
14189  *out = ((*in - in[-1]) % (1U << 20)) >> (20 - 12);
14190  ++in;
14191  *out |= ((*in - in[-1])) << 12;
14192 }
14193 
14194 void __integratedfastpack21(const uint32_t initoffset,
14195  const uint32_t * in,
14196  uint32_t * out) {
14197  *out = (*in - initoffset) % (1U << 21);
14198  ++in;
14199  *out |= ((*in - in[-1])) << 21;
14200  ++out;
14201  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 10);
14202  ++in;
14203  *out |= ((*in - in[-1]) % (1U << 21)) << 10;
14204  ++in;
14205  *out |= ((*in - in[-1])) << 31;
14206  ++out;
14207  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 20);
14208  ++in;
14209  *out |= ((*in - in[-1])) << 20;
14210  ++out;
14211  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 9);
14212  ++in;
14213  *out |= ((*in - in[-1]) % (1U << 21)) << 9;
14214  ++in;
14215  *out |= ((*in - in[-1])) << 30;
14216  ++out;
14217  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 19);
14218  ++in;
14219  *out |= ((*in - in[-1])) << 19;
14220  ++out;
14221  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 8);
14222  ++in;
14223  *out |= ((*in - in[-1]) % (1U << 21)) << 8;
14224  ++in;
14225  *out |= ((*in - in[-1])) << 29;
14226  ++out;
14227  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 18);
14228  ++in;
14229  *out |= ((*in - in[-1])) << 18;
14230  ++out;
14231  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 7);
14232  ++in;
14233  *out |= ((*in - in[-1]) % (1U << 21)) << 7;
14234  ++in;
14235  *out |= ((*in - in[-1])) << 28;
14236  ++out;
14237  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 17);
14238  ++in;
14239  *out |= ((*in - in[-1])) << 17;
14240  ++out;
14241  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 6);
14242  ++in;
14243  *out |= ((*in - in[-1]) % (1U << 21)) << 6;
14244  ++in;
14245  *out |= ((*in - in[-1])) << 27;
14246  ++out;
14247  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 16);
14248  ++in;
14249  *out |= ((*in - in[-1])) << 16;
14250  ++out;
14251  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 5);
14252  ++in;
14253  *out |= ((*in - in[-1]) % (1U << 21)) << 5;
14254  ++in;
14255  *out |= ((*in - in[-1])) << 26;
14256  ++out;
14257  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 15);
14258  ++in;
14259  *out |= ((*in - in[-1])) << 15;
14260  ++out;
14261  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 4);
14262  ++in;
14263  *out |= ((*in - in[-1]) % (1U << 21)) << 4;
14264  ++in;
14265  *out |= ((*in - in[-1])) << 25;
14266  ++out;
14267  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 14);
14268  ++in;
14269  *out |= ((*in - in[-1])) << 14;
14270  ++out;
14271  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 3);
14272  ++in;
14273  *out |= ((*in - in[-1]) % (1U << 21)) << 3;
14274  ++in;
14275  *out |= ((*in - in[-1])) << 24;
14276  ++out;
14277  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 13);
14278  ++in;
14279  *out |= ((*in - in[-1])) << 13;
14280  ++out;
14281  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 2);
14282  ++in;
14283  *out |= ((*in - in[-1]) % (1U << 21)) << 2;
14284  ++in;
14285  *out |= ((*in - in[-1])) << 23;
14286  ++out;
14287  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 12);
14288  ++in;
14289  *out |= ((*in - in[-1])) << 12;
14290  ++out;
14291  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 1);
14292  ++in;
14293  *out |= ((*in - in[-1]) % (1U << 21)) << 1;
14294  ++in;
14295  *out |= ((*in - in[-1])) << 22;
14296  ++out;
14297  *out = ((*in - in[-1]) % (1U << 21)) >> (21 - 11);
14298  ++in;
14299  *out |= ((*in - in[-1])) << 11;
14300 }
14301 
14302 void __integratedfastpack22(const uint32_t initoffset,
14303  const uint32_t * in,
14304  uint32_t * out) {
14305  *out = (*in - initoffset) % (1U << 22);
14306  ++in;
14307  *out |= ((*in - in[-1])) << 22;
14308  ++out;
14309  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 12);
14310  ++in;
14311  *out |= ((*in - in[-1])) << 12;
14312  ++out;
14313  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 2);
14314  ++in;
14315  *out |= ((*in - in[-1]) % (1U << 22)) << 2;
14316  ++in;
14317  *out |= ((*in - in[-1])) << 24;
14318  ++out;
14319  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 14);
14320  ++in;
14321  *out |= ((*in - in[-1])) << 14;
14322  ++out;
14323  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 4);
14324  ++in;
14325  *out |= ((*in - in[-1]) % (1U << 22)) << 4;
14326  ++in;
14327  *out |= ((*in - in[-1])) << 26;
14328  ++out;
14329  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 16);
14330  ++in;
14331  *out |= ((*in - in[-1])) << 16;
14332  ++out;
14333  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 6);
14334  ++in;
14335  *out |= ((*in - in[-1]) % (1U << 22)) << 6;
14336  ++in;
14337  *out |= ((*in - in[-1])) << 28;
14338  ++out;
14339  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 18);
14340  ++in;
14341  *out |= ((*in - in[-1])) << 18;
14342  ++out;
14343  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 8);
14344  ++in;
14345  *out |= ((*in - in[-1]) % (1U << 22)) << 8;
14346  ++in;
14347  *out |= ((*in - in[-1])) << 30;
14348  ++out;
14349  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 20);
14350  ++in;
14351  *out |= ((*in - in[-1])) << 20;
14352  ++out;
14353  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 10);
14354  ++in;
14355  *out |= ((*in - in[-1])) << 10;
14356  ++out;
14357  ++in;
14358  *out = (*in - in[-1]) % (1U << 22);
14359  ++in;
14360  *out |= ((*in - in[-1])) << 22;
14361  ++out;
14362  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 12);
14363  ++in;
14364  *out |= ((*in - in[-1])) << 12;
14365  ++out;
14366  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 2);
14367  ++in;
14368  *out |= ((*in - in[-1]) % (1U << 22)) << 2;
14369  ++in;
14370  *out |= ((*in - in[-1])) << 24;
14371  ++out;
14372  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 14);
14373  ++in;
14374  *out |= ((*in - in[-1])) << 14;
14375  ++out;
14376  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 4);
14377  ++in;
14378  *out |= ((*in - in[-1]) % (1U << 22)) << 4;
14379  ++in;
14380  *out |= ((*in - in[-1])) << 26;
14381  ++out;
14382  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 16);
14383  ++in;
14384  *out |= ((*in - in[-1])) << 16;
14385  ++out;
14386  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 6);
14387  ++in;
14388  *out |= ((*in - in[-1]) % (1U << 22)) << 6;
14389  ++in;
14390  *out |= ((*in - in[-1])) << 28;
14391  ++out;
14392  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 18);
14393  ++in;
14394  *out |= ((*in - in[-1])) << 18;
14395  ++out;
14396  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 8);
14397  ++in;
14398  *out |= ((*in - in[-1]) % (1U << 22)) << 8;
14399  ++in;
14400  *out |= ((*in - in[-1])) << 30;
14401  ++out;
14402  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 20);
14403  ++in;
14404  *out |= ((*in - in[-1])) << 20;
14405  ++out;
14406  *out = ((*in - in[-1]) % (1U << 22)) >> (22 - 10);
14407  ++in;
14408  *out |= ((*in - in[-1])) << 10;
14409 }
14410 
14411 void __integratedfastpack23(const uint32_t initoffset,
14412  const uint32_t * in,
14413  uint32_t * out) {
14414  *out = (*in - initoffset) % (1U << 23);
14415  ++in;
14416  *out |= ((*in - in[-1])) << 23;
14417  ++out;
14418  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 14);
14419  ++in;
14420  *out |= ((*in - in[-1])) << 14;
14421  ++out;
14422  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 5);
14423  ++in;
14424  *out |= ((*in - in[-1]) % (1U << 23)) << 5;
14425  ++in;
14426  *out |= ((*in - in[-1])) << 28;
14427  ++out;
14428  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 19);
14429  ++in;
14430  *out |= ((*in - in[-1])) << 19;
14431  ++out;
14432  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 10);
14433  ++in;
14434  *out |= ((*in - in[-1])) << 10;
14435  ++out;
14436  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 1);
14437  ++in;
14438  *out |= ((*in - in[-1]) % (1U << 23)) << 1;
14439  ++in;
14440  *out |= ((*in - in[-1])) << 24;
14441  ++out;
14442  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 15);
14443  ++in;
14444  *out |= ((*in - in[-1])) << 15;
14445  ++out;
14446  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 6);
14447  ++in;
14448  *out |= ((*in - in[-1]) % (1U << 23)) << 6;
14449  ++in;
14450  *out |= ((*in - in[-1])) << 29;
14451  ++out;
14452  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 20);
14453  ++in;
14454  *out |= ((*in - in[-1])) << 20;
14455  ++out;
14456  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 11);
14457  ++in;
14458  *out |= ((*in - in[-1])) << 11;
14459  ++out;
14460  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 2);
14461  ++in;
14462  *out |= ((*in - in[-1]) % (1U << 23)) << 2;
14463  ++in;
14464  *out |= ((*in - in[-1])) << 25;
14465  ++out;
14466  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 16);
14467  ++in;
14468  *out |= ((*in - in[-1])) << 16;
14469  ++out;
14470  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 7);
14471  ++in;
14472  *out |= ((*in - in[-1]) % (1U << 23)) << 7;
14473  ++in;
14474  *out |= ((*in - in[-1])) << 30;
14475  ++out;
14476  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 21);
14477  ++in;
14478  *out |= ((*in - in[-1])) << 21;
14479  ++out;
14480  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 12);
14481  ++in;
14482  *out |= ((*in - in[-1])) << 12;
14483  ++out;
14484  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 3);
14485  ++in;
14486  *out |= ((*in - in[-1]) % (1U << 23)) << 3;
14487  ++in;
14488  *out |= ((*in - in[-1])) << 26;
14489  ++out;
14490  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 17);
14491  ++in;
14492  *out |= ((*in - in[-1])) << 17;
14493  ++out;
14494  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 8);
14495  ++in;
14496  *out |= ((*in - in[-1]) % (1U << 23)) << 8;
14497  ++in;
14498  *out |= ((*in - in[-1])) << 31;
14499  ++out;
14500  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 22);
14501  ++in;
14502  *out |= ((*in - in[-1])) << 22;
14503  ++out;
14504  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 13);
14505  ++in;
14506  *out |= ((*in - in[-1])) << 13;
14507  ++out;
14508  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 4);
14509  ++in;
14510  *out |= ((*in - in[-1]) % (1U << 23)) << 4;
14511  ++in;
14512  *out |= ((*in - in[-1])) << 27;
14513  ++out;
14514  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 18);
14515  ++in;
14516  *out |= ((*in - in[-1])) << 18;
14517  ++out;
14518  *out = ((*in - in[-1]) % (1U << 23)) >> (23 - 9);
14519  ++in;
14520  *out |= ((*in - in[-1])) << 9;
14521 }
14522 
14523 void __integratedfastpack24(const uint32_t initoffset,
14524  const uint32_t * in,
14525  uint32_t * out) {
14526  *out = (*in - initoffset) % (1U << 24);
14527  ++in;
14528  *out |= ((*in - in[-1])) << 24;
14529  ++out;
14530  *out = ((*in - in[-1]) % (1U << 24)) >> (24 - 16);
14531  ++in;
14532  *out |= ((*in - in[-1])) << 16;
14533  ++out;
14534  *out = ((*in - in[-1]) % (1U << 24)) >> (24 - 8);
14535  ++in;
14536  *out |= ((*in - in[-1])) << 8;
14537  ++out;
14538  ++in;
14539  *out = (*in - in[-1]) % (1U << 24);
14540  ++in;
14541  *out |= ((*in - in[-1])) << 24;
14542  ++out;
14543  *out = ((*in - in[-1]) % (1U << 24)) >> (24 - 16);
14544  ++in;
14545  *out |= ((*in - in[-1])) << 16;
14546  ++out;
14547  *out = ((*in - in[-1]) % (1U << 24)) >> (24 - 8);
14548  ++in;
14549  *out |= ((*in - in[-1])) << 8;
14550  ++out;
14551  ++in;
14552  *out = (*in - in[-1]) % (1U << 24);
14553  ++in;
14554  *out |= ((*in - in[-1])) << 24;
14555  ++out;
14556  *out = ((*in - in[-1]) % (1U << 24)) >> (24 - 16);
14557  ++in;
14558  *out |= ((*in - in[-1])) << 16;
14559  ++out;
14560  *out = ((*in - in[-1]) % (1U << 24)) >> (24 - 8);
14561  ++in;
14562  *out |= ((*in - in[-1])) << 8;
14563  ++out;
14564  ++in;
14565  *out = (*in - in[-1]) % (1U << 24);
14566  ++in;
14567  *out |= ((*in - in[-1])) << 24;
14568  ++out;
14569  *out = ((*in - in[-1]) % (1U << 24)) >> (24 - 16);
14570  ++in;
14571  *out |= ((*in - in[-1])) << 16;
14572  ++out;
14573  *out = ((*in - in[-1]) % (1U << 24)) >> (24 - 8);
14574  ++in;
14575  *out |= ((*in - in[-1])) << 8;
14576  ++out;
14577  ++in;
14578  *out = (*in - in[-1]) % (1U << 24);
14579  ++in;
14580  *out |= ((*in - in[-1])) << 24;
14581  ++out;
14582  *out = ((*in - in[-1]) % (1U << 24)) >> (24 - 16);
14583  ++in;
14584  *out |= ((*in - in[-1])) << 16;
14585  ++out;
14586  *out = ((*in - in[-1]) % (1U << 24)) >> (24 - 8);
14587  ++in;
14588  *out |= ((*in - in[-1])) << 8;
14589  ++out;
14590  ++in;
14591  *out = (*in - in[-1]) % (1U << 24);
14592  ++in;
14593  *out |= ((*in - in[-1])) << 24;
14594  ++out;
14595  *out = ((*in - in[-1]) % (1U << 24)) >> (24 - 16);
14596  ++in;
14597  *out |= ((*in - in[-1])) << 16;
14598  ++out;
14599  *out = ((*in - in[-1]) % (1U << 24)) >> (24 - 8);
14600  ++in;
14601  *out |= ((*in - in[-1])) << 8;
14602  ++out;
14603  ++in;
14604  *out = (*in - in[-1]) % (1U << 24);
14605  ++in;
14606  *out |= ((*in - in[-1])) << 24;
14607  ++out;
14608  *out = ((*in - in[-1]) % (1U << 24)) >> (24 - 16);
14609  ++in;
14610  *out |= ((*in - in[-1])) << 16;
14611  ++out;
14612  *out = ((*in - in[-1]) % (1U << 24)) >> (24 - 8);
14613  ++in;
14614  *out |= ((*in - in[-1])) << 8;
14615  ++out;
14616  ++in;
14617  *out = (*in - in[-1]) % (1U << 24);
14618  ++in;
14619  *out |= ((*in - in[-1])) << 24;
14620  ++out;
14621  *out = ((*in - in[-1]) % (1U << 24)) >> (24 - 16);
14622  ++in;
14623  *out |= ((*in - in[-1])) << 16;
14624  ++out;
14625  *out = ((*in - in[-1]) % (1U << 24)) >> (24 - 8);
14626  ++in;
14627  *out |= ((*in - in[-1])) << 8;
14628 }
14629 
14630 void __integratedfastpack25(const uint32_t initoffset,
14631  const uint32_t * in,
14632  uint32_t * out) {
14633  *out = (*in - initoffset) % (1U << 25);
14634  ++in;
14635  *out |= ((*in - in[-1])) << 25;
14636  ++out;
14637  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 18);
14638  ++in;
14639  *out |= ((*in - in[-1])) << 18;
14640  ++out;
14641  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 11);
14642  ++in;
14643  *out |= ((*in - in[-1])) << 11;
14644  ++out;
14645  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 4);
14646  ++in;
14647  *out |= ((*in - in[-1]) % (1U << 25)) << 4;
14648  ++in;
14649  *out |= ((*in - in[-1])) << 29;
14650  ++out;
14651  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 22);
14652  ++in;
14653  *out |= ((*in - in[-1])) << 22;
14654  ++out;
14655  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 15);
14656  ++in;
14657  *out |= ((*in - in[-1])) << 15;
14658  ++out;
14659  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 8);
14660  ++in;
14661  *out |= ((*in - in[-1])) << 8;
14662  ++out;
14663  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 1);
14664  ++in;
14665  *out |= ((*in - in[-1]) % (1U << 25)) << 1;
14666  ++in;
14667  *out |= ((*in - in[-1])) << 26;
14668  ++out;
14669  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 19);
14670  ++in;
14671  *out |= ((*in - in[-1])) << 19;
14672  ++out;
14673  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 12);
14674  ++in;
14675  *out |= ((*in - in[-1])) << 12;
14676  ++out;
14677  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 5);
14678  ++in;
14679  *out |= ((*in - in[-1]) % (1U << 25)) << 5;
14680  ++in;
14681  *out |= ((*in - in[-1])) << 30;
14682  ++out;
14683  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 23);
14684  ++in;
14685  *out |= ((*in - in[-1])) << 23;
14686  ++out;
14687  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 16);
14688  ++in;
14689  *out |= ((*in - in[-1])) << 16;
14690  ++out;
14691  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 9);
14692  ++in;
14693  *out |= ((*in - in[-1])) << 9;
14694  ++out;
14695  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 2);
14696  ++in;
14697  *out |= ((*in - in[-1]) % (1U << 25)) << 2;
14698  ++in;
14699  *out |= ((*in - in[-1])) << 27;
14700  ++out;
14701  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 20);
14702  ++in;
14703  *out |= ((*in - in[-1])) << 20;
14704  ++out;
14705  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 13);
14706  ++in;
14707  *out |= ((*in - in[-1])) << 13;
14708  ++out;
14709  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 6);
14710  ++in;
14711  *out |= ((*in - in[-1]) % (1U << 25)) << 6;
14712  ++in;
14713  *out |= ((*in - in[-1])) << 31;
14714  ++out;
14715  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 24);
14716  ++in;
14717  *out |= ((*in - in[-1])) << 24;
14718  ++out;
14719  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 17);
14720  ++in;
14721  *out |= ((*in - in[-1])) << 17;
14722  ++out;
14723  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 10);
14724  ++in;
14725  *out |= ((*in - in[-1])) << 10;
14726  ++out;
14727  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 3);
14728  ++in;
14729  *out |= ((*in - in[-1]) % (1U << 25)) << 3;
14730  ++in;
14731  *out |= ((*in - in[-1])) << 28;
14732  ++out;
14733  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 21);
14734  ++in;
14735  *out |= ((*in - in[-1])) << 21;
14736  ++out;
14737  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 14);
14738  ++in;
14739  *out |= ((*in - in[-1])) << 14;
14740  ++out;
14741  *out = ((*in - in[-1]) % (1U << 25)) >> (25 - 7);
14742  ++in;
14743  *out |= ((*in - in[-1])) << 7;
14744 }
14745 
14746 void __integratedfastpack26(const uint32_t initoffset,
14747  const uint32_t * in,
14748  uint32_t * out) {
14749  *out = (*in - initoffset) % (1U << 26);
14750  ++in;
14751  *out |= ((*in - in[-1])) << 26;
14752  ++out;
14753  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 20);
14754  ++in;
14755  *out |= ((*in - in[-1])) << 20;
14756  ++out;
14757  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 14);
14758  ++in;
14759  *out |= ((*in - in[-1])) << 14;
14760  ++out;
14761  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 8);
14762  ++in;
14763  *out |= ((*in - in[-1])) << 8;
14764  ++out;
14765  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 2);
14766  ++in;
14767  *out |= ((*in - in[-1]) % (1U << 26)) << 2;
14768  ++in;
14769  *out |= ((*in - in[-1])) << 28;
14770  ++out;
14771  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 22);
14772  ++in;
14773  *out |= ((*in - in[-1])) << 22;
14774  ++out;
14775  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 16);
14776  ++in;
14777  *out |= ((*in - in[-1])) << 16;
14778  ++out;
14779  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 10);
14780  ++in;
14781  *out |= ((*in - in[-1])) << 10;
14782  ++out;
14783  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 4);
14784  ++in;
14785  *out |= ((*in - in[-1]) % (1U << 26)) << 4;
14786  ++in;
14787  *out |= ((*in - in[-1])) << 30;
14788  ++out;
14789  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 24);
14790  ++in;
14791  *out |= ((*in - in[-1])) << 24;
14792  ++out;
14793  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 18);
14794  ++in;
14795  *out |= ((*in - in[-1])) << 18;
14796  ++out;
14797  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 12);
14798  ++in;
14799  *out |= ((*in - in[-1])) << 12;
14800  ++out;
14801  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 6);
14802  ++in;
14803  *out |= ((*in - in[-1])) << 6;
14804  ++out;
14805  ++in;
14806  *out = (*in - in[-1]) % (1U << 26);
14807  ++in;
14808  *out |= ((*in - in[-1])) << 26;
14809  ++out;
14810  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 20);
14811  ++in;
14812  *out |= ((*in - in[-1])) << 20;
14813  ++out;
14814  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 14);
14815  ++in;
14816  *out |= ((*in - in[-1])) << 14;
14817  ++out;
14818  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 8);
14819  ++in;
14820  *out |= ((*in - in[-1])) << 8;
14821  ++out;
14822  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 2);
14823  ++in;
14824  *out |= ((*in - in[-1]) % (1U << 26)) << 2;
14825  ++in;
14826  *out |= ((*in - in[-1])) << 28;
14827  ++out;
14828  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 22);
14829  ++in;
14830  *out |= ((*in - in[-1])) << 22;
14831  ++out;
14832  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 16);
14833  ++in;
14834  *out |= ((*in - in[-1])) << 16;
14835  ++out;
14836  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 10);
14837  ++in;
14838  *out |= ((*in - in[-1])) << 10;
14839  ++out;
14840  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 4);
14841  ++in;
14842  *out |= ((*in - in[-1]) % (1U << 26)) << 4;
14843  ++in;
14844  *out |= ((*in - in[-1])) << 30;
14845  ++out;
14846  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 24);
14847  ++in;
14848  *out |= ((*in - in[-1])) << 24;
14849  ++out;
14850  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 18);
14851  ++in;
14852  *out |= ((*in - in[-1])) << 18;
14853  ++out;
14854  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 12);
14855  ++in;
14856  *out |= ((*in - in[-1])) << 12;
14857  ++out;
14858  *out = ((*in - in[-1]) % (1U << 26)) >> (26 - 6);
14859  ++in;
14860  *out |= ((*in - in[-1])) << 6;
14861 }
14862 
14863 void __integratedfastpack27(const uint32_t initoffset,
14864  const uint32_t * in,
14865  uint32_t * out) {
14866  *out = (*in - initoffset) % (1U << 27);
14867  ++in;
14868  *out |= ((*in - in[-1])) << 27;
14869  ++out;
14870  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 22);
14871  ++in;
14872  *out |= ((*in - in[-1])) << 22;
14873  ++out;
14874  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 17);
14875  ++in;
14876  *out |= ((*in - in[-1])) << 17;
14877  ++out;
14878  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 12);
14879  ++in;
14880  *out |= ((*in - in[-1])) << 12;
14881  ++out;
14882  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 7);
14883  ++in;
14884  *out |= ((*in - in[-1])) << 7;
14885  ++out;
14886  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 2);
14887  ++in;
14888  *out |= ((*in - in[-1]) % (1U << 27)) << 2;
14889  ++in;
14890  *out |= ((*in - in[-1])) << 29;
14891  ++out;
14892  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 24);
14893  ++in;
14894  *out |= ((*in - in[-1])) << 24;
14895  ++out;
14896  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 19);
14897  ++in;
14898  *out |= ((*in - in[-1])) << 19;
14899  ++out;
14900  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 14);
14901  ++in;
14902  *out |= ((*in - in[-1])) << 14;
14903  ++out;
14904  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 9);
14905  ++in;
14906  *out |= ((*in - in[-1])) << 9;
14907  ++out;
14908  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 4);
14909  ++in;
14910  *out |= ((*in - in[-1]) % (1U << 27)) << 4;
14911  ++in;
14912  *out |= ((*in - in[-1])) << 31;
14913  ++out;
14914  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 26);
14915  ++in;
14916  *out |= ((*in - in[-1])) << 26;
14917  ++out;
14918  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 21);
14919  ++in;
14920  *out |= ((*in - in[-1])) << 21;
14921  ++out;
14922  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 16);
14923  ++in;
14924  *out |= ((*in - in[-1])) << 16;
14925  ++out;
14926  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 11);
14927  ++in;
14928  *out |= ((*in - in[-1])) << 11;
14929  ++out;
14930  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 6);
14931  ++in;
14932  *out |= ((*in - in[-1])) << 6;
14933  ++out;
14934  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 1);
14935  ++in;
14936  *out |= ((*in - in[-1]) % (1U << 27)) << 1;
14937  ++in;
14938  *out |= ((*in - in[-1])) << 28;
14939  ++out;
14940  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 23);
14941  ++in;
14942  *out |= ((*in - in[-1])) << 23;
14943  ++out;
14944  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 18);
14945  ++in;
14946  *out |= ((*in - in[-1])) << 18;
14947  ++out;
14948  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 13);
14949  ++in;
14950  *out |= ((*in - in[-1])) << 13;
14951  ++out;
14952  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 8);
14953  ++in;
14954  *out |= ((*in - in[-1])) << 8;
14955  ++out;
14956  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 3);
14957  ++in;
14958  *out |= ((*in - in[-1]) % (1U << 27)) << 3;
14959  ++in;
14960  *out |= ((*in - in[-1])) << 30;
14961  ++out;
14962  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 25);
14963  ++in;
14964  *out |= ((*in - in[-1])) << 25;
14965  ++out;
14966  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 20);
14967  ++in;
14968  *out |= ((*in - in[-1])) << 20;
14969  ++out;
14970  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 15);
14971  ++in;
14972  *out |= ((*in - in[-1])) << 15;
14973  ++out;
14974  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 10);
14975  ++in;
14976  *out |= ((*in - in[-1])) << 10;
14977  ++out;
14978  *out = ((*in - in[-1]) % (1U << 27)) >> (27 - 5);
14979  ++in;
14980  *out |= ((*in - in[-1])) << 5;
14981 }
14982 
14983 void __integratedfastpack28(const uint32_t initoffset,
14984  const uint32_t * in,
14985  uint32_t * out) {
14986  *out = (*in - initoffset) % (1U << 28);
14987  ++in;
14988  *out |= ((*in - in[-1])) << 28;
14989  ++out;
14990  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 24);
14991  ++in;
14992  *out |= ((*in - in[-1])) << 24;
14993  ++out;
14994  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 20);
14995  ++in;
14996  *out |= ((*in - in[-1])) << 20;
14997  ++out;
14998  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 16);
14999  ++in;
15000  *out |= ((*in - in[-1])) << 16;
15001  ++out;
15002  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 12);
15003  ++in;
15004  *out |= ((*in - in[-1])) << 12;
15005  ++out;
15006  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 8);
15007  ++in;
15008  *out |= ((*in - in[-1])) << 8;
15009  ++out;
15010  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 4);
15011  ++in;
15012  *out |= ((*in - in[-1])) << 4;
15013  ++out;
15014  ++in;
15015  *out = (*in - in[-1]) % (1U << 28);
15016  ++in;
15017  *out |= ((*in - in[-1])) << 28;
15018  ++out;
15019  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 24);
15020  ++in;
15021  *out |= ((*in - in[-1])) << 24;
15022  ++out;
15023  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 20);
15024  ++in;
15025  *out |= ((*in - in[-1])) << 20;
15026  ++out;
15027  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 16);
15028  ++in;
15029  *out |= ((*in - in[-1])) << 16;
15030  ++out;
15031  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 12);
15032  ++in;
15033  *out |= ((*in - in[-1])) << 12;
15034  ++out;
15035  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 8);
15036  ++in;
15037  *out |= ((*in - in[-1])) << 8;
15038  ++out;
15039  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 4);
15040  ++in;
15041  *out |= ((*in - in[-1])) << 4;
15042  ++out;
15043  ++in;
15044  *out = (*in - in[-1]) % (1U << 28);
15045  ++in;
15046  *out |= ((*in - in[-1])) << 28;
15047  ++out;
15048  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 24);
15049  ++in;
15050  *out |= ((*in - in[-1])) << 24;
15051  ++out;
15052  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 20);
15053  ++in;
15054  *out |= ((*in - in[-1])) << 20;
15055  ++out;
15056  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 16);
15057  ++in;
15058  *out |= ((*in - in[-1])) << 16;
15059  ++out;
15060  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 12);
15061  ++in;
15062  *out |= ((*in - in[-1])) << 12;
15063  ++out;
15064  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 8);
15065  ++in;
15066  *out |= ((*in - in[-1])) << 8;
15067  ++out;
15068  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 4);
15069  ++in;
15070  *out |= ((*in - in[-1])) << 4;
15071  ++out;
15072  ++in;
15073  *out = (*in - in[-1]) % (1U << 28);
15074  ++in;
15075  *out |= ((*in - in[-1])) << 28;
15076  ++out;
15077  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 24);
15078  ++in;
15079  *out |= ((*in - in[-1])) << 24;
15080  ++out;
15081  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 20);
15082  ++in;
15083  *out |= ((*in - in[-1])) << 20;
15084  ++out;
15085  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 16);
15086  ++in;
15087  *out |= ((*in - in[-1])) << 16;
15088  ++out;
15089  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 12);
15090  ++in;
15091  *out |= ((*in - in[-1])) << 12;
15092  ++out;
15093  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 8);
15094  ++in;
15095  *out |= ((*in - in[-1])) << 8;
15096  ++out;
15097  *out = ((*in - in[-1]) % (1U << 28)) >> (28 - 4);
15098  ++in;
15099  *out |= ((*in - in[-1])) << 4;
15100 }
15101 
15102 void __integratedfastpack29(const uint32_t initoffset,
15103  const uint32_t * in,
15104  uint32_t * out) {
15105  *out = (*in - initoffset) % (1U << 29);
15106  ++in;
15107  *out |= ((*in - in[-1])) << 29;
15108  ++out;
15109  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 26);
15110  ++in;
15111  *out |= ((*in - in[-1])) << 26;
15112  ++out;
15113  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 23);
15114  ++in;
15115  *out |= ((*in - in[-1])) << 23;
15116  ++out;
15117  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 20);
15118  ++in;
15119  *out |= ((*in - in[-1])) << 20;
15120  ++out;
15121  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 17);
15122  ++in;
15123  *out |= ((*in - in[-1])) << 17;
15124  ++out;
15125  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 14);
15126  ++in;
15127  *out |= ((*in - in[-1])) << 14;
15128  ++out;
15129  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 11);
15130  ++in;
15131  *out |= ((*in - in[-1])) << 11;
15132  ++out;
15133  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 8);
15134  ++in;
15135  *out |= ((*in - in[-1])) << 8;
15136  ++out;
15137  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 5);
15138  ++in;
15139  *out |= ((*in - in[-1])) << 5;
15140  ++out;
15141  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 2);
15142  ++in;
15143  *out |= ((*in - in[-1]) % (1U << 29)) << 2;
15144  ++in;
15145  *out |= ((*in - in[-1])) << 31;
15146  ++out;
15147  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 28);
15148  ++in;
15149  *out |= ((*in - in[-1])) << 28;
15150  ++out;
15151  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 25);
15152  ++in;
15153  *out |= ((*in - in[-1])) << 25;
15154  ++out;
15155  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 22);
15156  ++in;
15157  *out |= ((*in - in[-1])) << 22;
15158  ++out;
15159  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 19);
15160  ++in;
15161  *out |= ((*in - in[-1])) << 19;
15162  ++out;
15163  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 16);
15164  ++in;
15165  *out |= ((*in - in[-1])) << 16;
15166  ++out;
15167  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 13);
15168  ++in;
15169  *out |= ((*in - in[-1])) << 13;
15170  ++out;
15171  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 10);
15172  ++in;
15173  *out |= ((*in - in[-1])) << 10;
15174  ++out;
15175  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 7);
15176  ++in;
15177  *out |= ((*in - in[-1])) << 7;
15178  ++out;
15179  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 4);
15180  ++in;
15181  *out |= ((*in - in[-1])) << 4;
15182  ++out;
15183  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 1);
15184  ++in;
15185  *out |= ((*in - in[-1]) % (1U << 29)) << 1;
15186  ++in;
15187  *out |= ((*in - in[-1])) << 30;
15188  ++out;
15189  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 27);
15190  ++in;
15191  *out |= ((*in - in[-1])) << 27;
15192  ++out;
15193  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 24);
15194  ++in;
15195  *out |= ((*in - in[-1])) << 24;
15196  ++out;
15197  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 21);
15198  ++in;
15199  *out |= ((*in - in[-1])) << 21;
15200  ++out;
15201  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 18);
15202  ++in;
15203  *out |= ((*in - in[-1])) << 18;
15204  ++out;
15205  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 15);
15206  ++in;
15207  *out |= ((*in - in[-1])) << 15;
15208  ++out;
15209  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 12);
15210  ++in;
15211  *out |= ((*in - in[-1])) << 12;
15212  ++out;
15213  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 9);
15214  ++in;
15215  *out |= ((*in - in[-1])) << 9;
15216  ++out;
15217  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 6);
15218  ++in;
15219  *out |= ((*in - in[-1])) << 6;
15220  ++out;
15221  *out = ((*in - in[-1]) % (1U << 29)) >> (29 - 3);
15222  ++in;
15223  *out |= ((*in - in[-1])) << 3;
15224 }
15225 
15226 void __integratedfastpack30(const uint32_t initoffset,
15227  const uint32_t * in,
15228  uint32_t * out) {
15229  *out = (*in - initoffset) % (1U << 30);
15230  ++in;
15231  *out |= ((*in - in[-1])) << 30;
15232  ++out;
15233  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 28);
15234  ++in;
15235  *out |= ((*in - in[-1])) << 28;
15236  ++out;
15237  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 26);
15238  ++in;
15239  *out |= ((*in - in[-1])) << 26;
15240  ++out;
15241  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 24);
15242  ++in;
15243  *out |= ((*in - in[-1])) << 24;
15244  ++out;
15245  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 22);
15246  ++in;
15247  *out |= ((*in - in[-1])) << 22;
15248  ++out;
15249  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 20);
15250  ++in;
15251  *out |= ((*in - in[-1])) << 20;
15252  ++out;
15253  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 18);
15254  ++in;
15255  *out |= ((*in - in[-1])) << 18;
15256  ++out;
15257  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 16);
15258  ++in;
15259  *out |= ((*in - in[-1])) << 16;
15260  ++out;
15261  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 14);
15262  ++in;
15263  *out |= ((*in - in[-1])) << 14;
15264  ++out;
15265  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 12);
15266  ++in;
15267  *out |= ((*in - in[-1])) << 12;
15268  ++out;
15269  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 10);
15270  ++in;
15271  *out |= ((*in - in[-1])) << 10;
15272  ++out;
15273  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 8);
15274  ++in;
15275  *out |= ((*in - in[-1])) << 8;
15276  ++out;
15277  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 6);
15278  ++in;
15279  *out |= ((*in - in[-1])) << 6;
15280  ++out;
15281  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 4);
15282  ++in;
15283  *out |= ((*in - in[-1])) << 4;
15284  ++out;
15285  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 2);
15286  ++in;
15287  *out |= ((*in - in[-1])) << 2;
15288  ++out;
15289  ++in;
15290  *out = (*in - in[-1]) % (1U << 30);
15291  ++in;
15292  *out |= ((*in - in[-1])) << 30;
15293  ++out;
15294  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 28);
15295  ++in;
15296  *out |= ((*in - in[-1])) << 28;
15297  ++out;
15298  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 26);
15299  ++in;
15300  *out |= ((*in - in[-1])) << 26;
15301  ++out;
15302  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 24);
15303  ++in;
15304  *out |= ((*in - in[-1])) << 24;
15305  ++out;
15306  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 22);
15307  ++in;
15308  *out |= ((*in - in[-1])) << 22;
15309  ++out;
15310  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 20);
15311  ++in;
15312  *out |= ((*in - in[-1])) << 20;
15313  ++out;
15314  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 18);
15315  ++in;
15316  *out |= ((*in - in[-1])) << 18;
15317  ++out;
15318  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 16);
15319  ++in;
15320  *out |= ((*in - in[-1])) << 16;
15321  ++out;
15322  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 14);
15323  ++in;
15324  *out |= ((*in - in[-1])) << 14;
15325  ++out;
15326  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 12);
15327  ++in;
15328  *out |= ((*in - in[-1])) << 12;
15329  ++out;
15330  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 10);
15331  ++in;
15332  *out |= ((*in - in[-1])) << 10;
15333  ++out;
15334  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 8);
15335  ++in;
15336  *out |= ((*in - in[-1])) << 8;
15337  ++out;
15338  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 6);
15339  ++in;
15340  *out |= ((*in - in[-1])) << 6;
15341  ++out;
15342  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 4);
15343  ++in;
15344  *out |= ((*in - in[-1])) << 4;
15345  ++out;
15346  *out = ((*in - in[-1]) % (1U << 30)) >> (30 - 2);
15347  ++in;
15348  *out |= ((*in - in[-1])) << 2;
15349 }
15350 
15351 void __integratedfastpack31(const uint32_t initoffset,
15352  const uint32_t * in,
15353  uint32_t * out) {
15354  *out = (*in - initoffset) % (1U << 31);
15355  ++in;
15356  *out |= ((*in - in[-1])) << 31;
15357  ++out;
15358  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 30);
15359  ++in;
15360  *out |= ((*in - in[-1])) << 30;
15361  ++out;
15362  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 29);
15363  ++in;
15364  *out |= ((*in - in[-1])) << 29;
15365  ++out;
15366  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 28);
15367  ++in;
15368  *out |= ((*in - in[-1])) << 28;
15369  ++out;
15370  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 27);
15371  ++in;
15372  *out |= ((*in - in[-1])) << 27;
15373  ++out;
15374  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 26);
15375  ++in;
15376  *out |= ((*in - in[-1])) << 26;
15377  ++out;
15378  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 25);
15379  ++in;
15380  *out |= ((*in - in[-1])) << 25;
15381  ++out;
15382  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 24);
15383  ++in;
15384  *out |= ((*in - in[-1])) << 24;
15385  ++out;
15386  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 23);
15387  ++in;
15388  *out |= ((*in - in[-1])) << 23;
15389  ++out;
15390  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 22);
15391  ++in;
15392  *out |= ((*in - in[-1])) << 22;
15393  ++out;
15394  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 21);
15395  ++in;
15396  *out |= ((*in - in[-1])) << 21;
15397  ++out;
15398  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 20);
15399  ++in;
15400  *out |= ((*in - in[-1])) << 20;
15401  ++out;
15402  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 19);
15403  ++in;
15404  *out |= ((*in - in[-1])) << 19;
15405  ++out;
15406  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 18);
15407  ++in;
15408  *out |= ((*in - in[-1])) << 18;
15409  ++out;
15410  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 17);
15411  ++in;
15412  *out |= ((*in - in[-1])) << 17;
15413  ++out;
15414  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 16);
15415  ++in;
15416  *out |= ((*in - in[-1])) << 16;
15417  ++out;
15418  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 15);
15419  ++in;
15420  *out |= ((*in - in[-1])) << 15;
15421  ++out;
15422  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 14);
15423  ++in;
15424  *out |= ((*in - in[-1])) << 14;
15425  ++out;
15426  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 13);
15427  ++in;
15428  *out |= ((*in - in[-1])) << 13;
15429  ++out;
15430  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 12);
15431  ++in;
15432  *out |= ((*in - in[-1])) << 12;
15433  ++out;
15434  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 11);
15435  ++in;
15436  *out |= ((*in - in[-1])) << 11;
15437  ++out;
15438  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 10);
15439  ++in;
15440  *out |= ((*in - in[-1])) << 10;
15441  ++out;
15442  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 9);
15443  ++in;
15444  *out |= ((*in - in[-1])) << 9;
15445  ++out;
15446  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 8);
15447  ++in;
15448  *out |= ((*in - in[-1])) << 8;
15449  ++out;
15450  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 7);
15451  ++in;
15452  *out |= ((*in - in[-1])) << 7;
15453  ++out;
15454  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 6);
15455  ++in;
15456  *out |= ((*in - in[-1])) << 6;
15457  ++out;
15458  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 5);
15459  ++in;
15460  *out |= ((*in - in[-1])) << 5;
15461  ++out;
15462  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 4);
15463  ++in;
15464  *out |= ((*in - in[-1])) << 4;
15465  ++out;
15466  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 3);
15467  ++in;
15468  *out |= ((*in - in[-1])) << 3;
15469  ++out;
15470  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 2);
15471  ++in;
15472  *out |= ((*in - in[-1])) << 2;
15473  ++out;
15474  *out = ((*in - in[-1]) % (1U << 31)) >> (31 - 1);
15475  ++in;
15476  *out |= ((*in - in[-1])) << 1;
15477 }
15478 
15479 /*assumes that integers fit in the prescribed number of bits*/
15480 void __integratedfastpack1(const uint32_t initoffset,
15481  const uint32_t * in,
15482  uint32_t * out) {
15483  *out = *(in++) - initoffset;
15484  for (uint32_t i = 1; i < 32; i += 1) {
15485  *out |= (*in - in[-1]) << i;
15486  ++in;
15487  }
15488 }
15489 
15490 /*assumes that integers fit in the prescribed number of bits*/
15491 void __integratedfastpack4(const uint32_t initoffset,
15492  const uint32_t * in,
15493  uint32_t * out) {
15494  *out = *(in++) - initoffset;
15495  for (uint32_t i = 4; i < 32; i += 4) {
15496  *out |= (*in - in[-1]) << i;
15497  ++in;
15498  }
15499  ++out;
15500  *out = *in - in[-1];
15501  ++in;
15502  for (uint32_t i = 4; i < 32; i += 4) {
15503  *out |= (*in - in[-1]) << i;
15504  ++in;
15505  }
15506  ++out;
15507  *out = *in - in[-1];
15508  ++in;
15509  for (uint32_t i = 4; i < 32; i += 4) {
15510  *out |= (*in - in[-1]) << i;
15511  ++in;
15512  }
15513  ++out;
15514  *out = *in - in[-1];
15515  ++in;
15516  for (uint32_t i = 4; i < 32; i += 4) {
15517  *out |= (*in - in[-1]) << i;
15518  ++in;
15519  }
15520  ++out;
15521 }
15522 
15523 /*assumes that integers fit in the prescribed number of bits*/
15524 void __integratedfastpack8(const uint32_t initoffset,
15525  const uint32_t * in,
15526  uint32_t * out) {
15527  *out = *(in++) - initoffset;
15528  for (uint32_t i = 8; i < 32; i += 8) {
15529  *out |= (*in - in[-1]) << i;
15530  ++in;
15531  }
15532  ++out;
15533  *out = *in - in[-1];
15534  ++in;
15535  for (uint32_t i = 8; i < 32; i += 8) {
15536  *out |= (*in - in[-1]) << i;
15537  ++in;
15538  }
15539  ++out;
15540  *out = *in - in[-1];
15541  ++in;
15542  for (uint32_t i = 8; i < 32; i += 8) {
15543  *out |= (*in - in[-1]) << i;
15544  ++in;
15545  }
15546  ++out;
15547  *out = *in - in[-1];
15548  ++in;
15549  for (uint32_t i = 8; i < 32; i += 8) {
15550  *out |= (*in - in[-1]) << i;
15551  ++in;
15552  }
15553  ++out;
15554  *out = *in - in[-1];
15555  ++in;
15556  for (uint32_t i = 8; i < 32; i += 8) {
15557  *out |= (*in - in[-1]) << i;
15558  ++in;
15559  }
15560  ++out;
15561  *out = *in - in[-1];
15562  ++in;
15563  for (uint32_t i = 8; i < 32; i += 8) {
15564  *out |= (*in - in[-1]) << i;
15565  ++in;
15566  }
15567  ++out;
15568  *out = *in - in[-1];
15569  ++in;
15570  for (uint32_t i = 8; i < 32; i += 8) {
15571  *out |= (*in - in[-1]) << i;
15572  ++in;
15573  }
15574  ++out;
15575  *out = *in - in[-1];
15576  ++in;
15577  for (uint32_t i = 8; i < 32; i += 8) {
15578  *out |= (*in - in[-1]) << i;
15579  ++in;
15580  }
15581  ++out;
15582 }
15583 
15584 /*assumes that integers fit in the prescribed number of bits*/
15585 void __integratedfastpack16(const uint32_t initoffset,
15586  const uint32_t * in,
15587  uint32_t * out) {
15588  *out = *(in++) - initoffset;
15589  for (uint32_t i = 16; i < 32; i += 16) {
15590  *out |= (*in - in[-1]) << i;
15591  ++in;
15592  }
15593  ++out;
15594  *out = *in - in[-1];
15595  ++in;
15596  for (uint32_t i = 16; i < 32; i += 16) {
15597  *out |= (*in - in[-1]) << i;
15598  ++in;
15599  }
15600  ++out;
15601  *out = *in - in[-1];
15602  ++in;
15603  for (uint32_t i = 16; i < 32; i += 16) {
15604  *out |= (*in - in[-1]) << i;
15605  ++in;
15606  }
15607  ++out;
15608  *out = *in - in[-1];
15609  ++in;
15610  for (uint32_t i = 16; i < 32; i += 16) {
15611  *out |= (*in - in[-1]) << i;
15612  ++in;
15613  }
15614  ++out;
15615  *out = *in - in[-1];
15616  ++in;
15617  for (uint32_t i = 16; i < 32; i += 16) {
15618  *out |= (*in - in[-1]) << i;
15619  ++in;
15620  }
15621  ++out;
15622  *out = *in - in[-1];
15623  ++in;
15624  for (uint32_t i = 16; i < 32; i += 16) {
15625  *out |= (*in - in[-1]) << i;
15626  ++in;
15627  }
15628  ++out;
15629  *out = *in - in[-1];
15630  ++in;
15631  for (uint32_t i = 16; i < 32; i += 16) {
15632  *out |= (*in - in[-1]) << i;
15633  ++in;
15634  }
15635  ++out;
15636  *out = *in - in[-1];
15637  ++in;
15638  for (uint32_t i = 16; i < 32; i += 16) {
15639  *out |= (*in - in[-1]) << i;
15640  ++in;
15641  }
15642  ++out;
15643  *out = *in - in[-1];
15644  ++in;
15645  for (uint32_t i = 16; i < 32; i += 16) {
15646  *out |= (*in - in[-1]) << i;
15647  ++in;
15648  }
15649  ++out;
15650  *out = *in - in[-1];
15651  ++in;
15652  for (uint32_t i = 16; i < 32; i += 16) {
15653  *out |= (*in - in[-1]) << i;
15654  ++in;
15655  }
15656  ++out;
15657  *out = *in - in[-1];
15658  ++in;
15659  for (uint32_t i = 16; i < 32; i += 16) {
15660  *out |= (*in - in[-1]) << i;
15661  ++in;
15662  }
15663  ++out;
15664  *out = *in - in[-1];
15665  ++in;
15666  for (uint32_t i = 16; i < 32; i += 16) {
15667  *out |= (*in - in[-1]) << i;
15668  ++in;
15669  }
15670  ++out;
15671  *out = *in - in[-1];
15672  ++in;
15673  for (uint32_t i = 16; i < 32; i += 16) {
15674  *out |= (*in - in[-1]) << i;
15675  ++in;
15676  }
15677  ++out;
15678  *out = *in - in[-1];
15679  ++in;
15680  for (uint32_t i = 16; i < 32; i += 16) {
15681  *out |= (*in - in[-1]) << i;
15682  ++in;
15683  }
15684  ++out;
15685  *out = *in - in[-1];
15686  ++in;
15687  for (uint32_t i = 16; i < 32; i += 16) {
15688  *out |= (*in - in[-1]) << i;
15689  ++in;
15690  }
15691  ++out;
15692  *out = *in - in[-1];
15693  ++in;
15694  for (uint32_t i = 16; i < 32; i += 16) {
15695  *out |= (*in - in[-1]) << i;
15696  ++in;
15697  }
15698  ++out;
15699 }
15700 
15701 
15702 } // namespace compression
15703 } // namespace genie
void __device__ __host__ __integratedfastunpack28(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack2(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpack29(const uint32_t *in, uint32_t *out)
void __integratedfastpack14(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack20(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack12(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack5(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack32(const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack14(const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask3(const uint32_t *in, uint32_t *out)
void __fastpack20(const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack31(const uint32_t *in, uint32_t *out)
void __integratedfastpack1(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpack14(const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack25(const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack32(const uint32_t, const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack15(const uint32_t *in, uint32_t *out)
This is the top-level namespace of the project.
void __device__ __host__ __fastunpack23(const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack18(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack4(const uint32_t *in, uint32_t *out)
void __integratedfastpack10(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __integratedfastpack18(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack17(const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack7(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask6(const uint32_t *in, uint32_t *out)
void __fastpack7(const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack20(const uint32_t *in, uint32_t *out)
void __fastpack22(const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask1(const uint32_t *in, uint32_t *out)
void __integratedfastpack23(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask16(const uint32_t *in, uint32_t *out)
void __integratedfastpack28(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack4(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack27(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void fastpackwithoutmask(const uint32_t *in, uint32_t *out, const uint32_t bit)
void __fastpackwithoutmask23(const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask24(const uint32_t *in, uint32_t *out)
void __fastpack21(const uint32_t *in, uint32_t *out)
void __integratedfastpack19(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask22(const uint32_t *in, uint32_t *out)
void __fastpack30(const uint32_t *in, uint32_t *out)
void __fastpack5(const uint32_t *in, uint32_t *out)
void __fastpack9(const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack8(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpack19(const uint32_t *in, uint32_t *out)
void __integratedfastpack15(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack1(const uint32_t *in, uint32_t *out)
void __fastpack23(const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack12(const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack26(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __integratedfastpack27(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack21(const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack19(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __integratedfastpack12(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask11(const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack25(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask18(const uint32_t *in, uint32_t *out)
void __fastpack26(const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack26(const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask9(const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack16(const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack30(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpack15(const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack17(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack24(const uint32_t *in, uint32_t *out)
void __fastpack32(const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack11(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask31(const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack27(const uint32_t *in, uint32_t *out)
void __integratedfastpack24(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack3(const uint32_t *in, uint32_t *out)
void __integratedfastpack5(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack13(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack15(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack13(const uint32_t *in, uint32_t *out)
void __integratedfastpack22(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack2(const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack11(const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack18(const uint32_t *in, uint32_t *out)
void __fastpack10(const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask4(const uint32_t *in, uint32_t *out)
void __fastpack2(const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack29(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask19(const uint32_t *in, uint32_t *out)
void __fastpack4(const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask8(const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack14(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpack11(const uint32_t *in, uint32_t *out)
void __integratedfastpack11(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpack31(const uint32_t *in, uint32_t *out)
void __integratedfastpack20(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask28(const uint32_t *in, uint32_t *out)
void __integratedfastpack29(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpack8(const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask13(const uint32_t *in, uint32_t *out)
void fastunpack(const uint32_t *in, uint32_t *out, const uint32_t bit)
void __fastpack16(const uint32_t *in, uint32_t *out)
void __fastpack1(const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack22(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __integratedfastpack30(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask12(const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack31(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack3(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack5(const uint32_t *in, uint32_t *out)
void __integratedfastpack25(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpack17(const uint32_t *in, uint32_t *out)
void __integratedfastpack32(const uint32_t, const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask2(const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask14(const uint32_t *in, uint32_t *out)
void __fastpack12(const uint32_t *in, uint32_t *out)
void __fastpack18(const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask0(const uint32_t *, uint32_t *)
void __device__ __host__ __integratedfastunpack24(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack23(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask20(const uint32_t *in, uint32_t *out)
void __integratedfastpack7(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpack3(const uint32_t *in, uint32_t *out)
void __fastpack13(const uint32_t *in, uint32_t *out)
void __integratedfastpack0(const uint32_t, const uint32_t *, uint32_t *)
void __device__ __host__ __fastunpack22(const uint32_t *in, uint32_t *out)
void __integratedfastpack17(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __integratedfastpack21(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask15(const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask7(const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask29(const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack10(const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask32(const uint32_t *in, uint32_t *out)
void __integratedfastpack8(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack0(const uint32_t *, uint32_t *out)
void __fastpackwithoutmask30(const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack1(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __integratedfastpack3(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack9(const uint32_t *in, uint32_t *out)
void __fastpack6(const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask5(const uint32_t *in, uint32_t *out)
void __integratedfastpack31(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void fastpack(const uint32_t *in, uint32_t *out, const uint32_t bit)
void __integratedfastpack26(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask26(const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack6(const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack19(const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask27(const uint32_t *in, uint32_t *out)
void __integratedfastpack9(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask21(const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack7(const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack29(const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack8(const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask10(const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack16(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack28(const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack21(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack9(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask17(const uint32_t *in, uint32_t *out)
void __integratedfastpack6(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpack25(const uint32_t *in, uint32_t *out)
void __device__ __host__ __integratedfastunpack6(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpack24(const uint32_t *in, uint32_t *out)
void __integratedfastpack4(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __device__ __host__ __fastunpack30(const uint32_t *in, uint32_t *out)
void __host__ __device__ __integratedfastunpack0(const uint32_t initoffset, const uint32_t *__restrict__, uint32_t *__restrict__ out)
void __fastpack0(const uint32_t *, uint32_t *)
void __device__ __host__ __integratedfastunpack10(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __integratedfastpack16(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpackwithoutmask25(const uint32_t *in, uint32_t *out)
void __integratedfastpack13(const uint32_t initoffset, const uint32_t *in, uint32_t *out)
void __fastpack28(const uint32_t *in, uint32_t *out)
void __fastpack27(const uint32_t *in, uint32_t *out)
void __integratedfastpack2(const uint32_t initoffset, const uint32_t *in, uint32_t *out)