class SplittableRandom

Guy Steele guy.steele at oracle.com
Tue Jul 16 16:01:45 UTC 2013


On Jul 16, 2013, at 3:07 AM, Martin Buchholz <martinrb at google.com> wrote:
> 
> Read Appleby and Stafford ...
> 
> Hmmm.... mix32 has almost the same job as mix64 - have all the bits in the seed affect all the bits in the output, so the obvious implementation is 
> 
> mix32() { return (int) mix64(); }
> or more conservatively
> mix32() { m = mix64(); return (int)m ^ (int)(m >>> 32); }
> although it would be slightly distressing to have nextInt be more expensive than nextLong.

Yes---at first I used exactly
   mix32() { return (int) mix64(); }
but was worried about the time it took, which is why I searched for a cheaper mixing function.

> There might be some clever way of doing murmurhash-style mixing when the input is 64-bit and the output is 32-bit that can do better, but I don't think the current mix32 is it.

Again, I was astonished that so simply a mixing function seemed to do the job as far as Dieharder is concerned.  I agree that it does appear to perform poorly for sparse gamma values.  So now the question is: do such sparse gamma values arise in practice?

As Doug has pointed out, we carefully made the two-argument constructor private so that the user cannot specify gamma values.  The gamma values are derived only from the gamma-seed 0, using the gamma value GAMMA_GAMMA, and always running the seed through mix64.

I wrote a little test (code and output below) to generate the first 16 billion (well, 2^34+1) gamma values actually generated and gather certain statistics:
(1) the number of 1-bits in the gamma value (output of Long.bitCount)
(2) the "width" of the gamma value (64 - Long.numberOfLeadingBits(gamma) - Long.numberOfTrailingBits(gamma))
Then it histograms the bit counts, and for each possible bit count tracks the minimum width for gammas having that same bit count.
Whenever the number of of gammas examined is one more than a power of 2, it prints a report consisting of those two tables and the min over the minwidth table.

Here's a brief summary:

For the first 65 gamma values, no gamma value has fewer than 21 1-bits or more than 41 1-bits.  The minimum width is 57.  So I predict there will be no weird mixing problems at all when using SplittableRandom to do a balanced split of a stream of generated randoms.

For the first 2^16+1 = 65537 gamma values, the minimum bit count is 15, the maximum bit count is 50 and the minimum width is 45.

For the first 2^24+1 gamma values, the minimum bit count is 12, the maximum bit count is 52 and the minimum width is 35.

For the first 2^32+1 gamma values, the minimum bit count is 9, the maximum bit count is 55 and the minimum width is 28.

For the first 2^34+1 gamma values, the minimum bit count is 8, the maximum bit count is 56 and the minimum width is 28.

So I think we will not hit any really bad gamma values in practice.

--Guy

---------------------------------------------------------------------------------------------
class GammaTest {

    private static final long GAMMA_GAMMA = 0xF2281E2DBA6606F3L;

    private static long addGammaModGeorge(long sx, long g) {
        long px = sx + g;
        return (px >= sx) ? px :
            ((px >= Long.MIN_VALUE + 13L) ? px : px + g) - 13L;
    }

    private static long mix64(long z) {
        z ^= (z >>> 33);
        z *= 0xff51afd7ed558ccdL;
        z ^= (z >>> 33);
        z *= 0xc4ceb9fe1a85ec53L;
        z ^= (z >>> 33);
        return z;
    }

    public static void main(String[] args) {
	long[] hist = new long[65];
	int[] minwidth = new int[65];
	long splitSeed = 0;
	for (int j = 0; j < minwidth.length; j++) minwidth[j] = 99;
        for (long i = 0; i <= (1L << 34); i++) {
	    long gamma;
	    do { // ensure gamma >= 13, considered as an unsigned integer
		splitSeed = addGammaModGeorge(splitSeed, GAMMA_GAMMA);
		gamma = mix64(splitSeed);
	    } while (gamma < (Long.MIN_VALUE + 13L));
	    int idx = Long.bitCount(gamma);
	    if (hist[idx]++ == 0) System.out.printf("%ni=%d bitcount=%d gamma=%016x%n", i, idx, gamma);
	    int width = 64 - Long.numberOfLeadingZeros(gamma) - Long.numberOfTrailingZeros(gamma);
	    minwidth[idx] = Math.min(minwidth[idx], width);
	    if ((i&(i-1)) == 0) {
		System.out.println();
		System.out.println(i);
		for (int k = 0; k < hist.length; k++) System.out.print(hist[k] + " ");
		System.out.println();
		int minmin = 99;
		for (int k = 0; k < minwidth.length; k++) {
		    System.out.print(minwidth[k] + " ");
		    minmin = Math.min(minmin, minwidth[k]);
		}
		System.out.println();
		System.out.println("minmin=" + minmin);
	    }
	}
    }
}
---------------------------------------------------------------------------------------------
gls% java GammaTest

i=0 bitcount=35 gamma=3fa6b99a3e987361

0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 62 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=62

i=1 bitcount=30 gamma=a8820f7e1a84f29b

1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 64 99 99 99 99 62 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=62

i=2 bitcount=41 gamma=bcfbccf85745d3df

2
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 64 99 99 99 99 62 99 99 99 99 99 64 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=62

i=3 bitcount=26 gamma=13202372bd17408b

i=4 bitcount=33 gamma=96772afc7533890c

4
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 61 99 99 99 64 99 99 62 99 62 99 99 99 99 99 64 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=61

i=5 bitcount=32 gamma=9ed441b7174f5461

i=7 bitcount=22 gamma=155aad13408a1028

i=8 bitcount=29 gamma=a0529a00afd4d6f1

8
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 2 0 1 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 58 99 99 99 61 99 99 64 63 99 64 62 99 62 99 99 99 99 99 64 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=58

i=12 bitcount=34 gamma=a760afe257da5958

i=13 bitcount=36 gamma=f52cbcdce12ac7f1

i=15 bitcount=28 gamma=c4e492cb810f16b8

i=16 bitcount=31 gamma=a1ccecf62b4013ad

16
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 1 2 3 1 1 2 1 1 1 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 58 99 99 99 61 99 61 62 63 64 64 62 61 62 64 99 99 99 99 64 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=58

i=17 bitcount=25 gamma=9ac4aa4f70601a20

i=22 bitcount=37 gamma=daddf74e873c9943

i=28 bitcount=39 gamma=d9e7c776cef211ed

32
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 3 1 0 1 2 3 3 2 2 6 1 2 2 0 1 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 58 99 99 57 61 99 61 62 63 58 63 62 57 62 63 63 99 64 99 62 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=57

i=34 bitcount=21 gamma=7504ca488308c301

i=35 bitcount=27 gamma=43430ada33d4324c

i=43 bitcount=38 gamma=b924c57b2e7eabdb

i=54 bitcount=24 gamma=04912780a6716634

64
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 3 1 3 2 4 7 7 4 5 7 5 4 2 2 3 0 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 63 58 99 57 57 61 59 60 62 61 58 61 60 57 59 62 63 63 62 99 62 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=57

i=78 bitcount=23 gamma=0207077294708744

i=95 bitcount=40 gamma=ffdeafaa1cb578e1

128
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 7 3 5 4 11 15 14 6 13 16 12 5 3 2 3 1 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 63 58 56 57 57 61 59 60 57 58 58 61 60 57 59 62 63 63 62 64 61 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=56

i=170 bitcount=42 gamma=faf70c36cefcffb4

i=196 bitcount=43 gamma=6876bfb25ef5f3fd

256
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 1 2 7 3 10 12 20 20 34 26 26 27 21 12 8 6 7 2 5 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 63 58 56 57 57 61 56 56 54 58 53 55 59 57 59 60 60 62 62 61 61 62 63 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=53

i=338 bitcount=44 gamma=3bff2f8ff4f63b79

512
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 3 4 5 12 12 17 21 43 44 53 58 58 54 38 33 20 12 8 2 7 2 4 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 63 58 53 57 52 55 56 56 54 58 53 55 58 57 59 60 59 60 62 61 61 62 60 62 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=52

1024
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 4 8 15 22 35 41 59 83 87 105 115 104 98 71 60 39 32 13 8 14 3 5 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 63 58 53 56 52 55 56 52 54 58 53 55 56 57 59 59 59 58 62 61 57 62 60 62 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=52

i=1163 bitcount=19 gamma=10210841be5090c1

i=1211 bitcount=20 gamma=430484628436034a

2048
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 5 6 16 24 46 73 91 122 169 162 207 219 217 181 137 132 79 56 39 25 24 7 7 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 61 62 57 58 53 56 52 55 47 52 54 52 53 55 56 55 58 58 59 58 58 61 57 60 60 62 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=47

i=2120 bitcount=45 gamma=fbfbed9f9dd593ae

i=4064 bitcount=17 gamma=0c1420320c028b14

4096
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 2 4 9 12 29 54 93 140 173 248 322 348 407 424 414 379 302 263 176 120 66 48 40 10 9 3 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 58 99 61 52 52 55 53 55 52 53 47 52 52 52 53 55 56 54 57 57 59 58 58 61 57 58 60 62 63 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=47

i=4209 bitcount=47 gamma=5bff6f9ebfe2eee7

8192
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 5 8 20 29 65 95 200 275 348 485 634 741 778 836 807 719 609 525 373 261 139 102 73 26 25 7 4 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 58 99 51 52 51 54 53 52 51 53 47 52 52 52 52 55 54 53 52 57 58 57 58 59 57 58 60 62 61 99 63 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=47

i=8797 bitcount=48 gamma=5fdf4b78df9ff6ff

i=9220 bitcount=46 gamma=54ffd9abdf7c7ff3

i=10520 bitcount=18 gamma=10082a154f10201a

16384
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1 12 24 35 65 145 203 376 516 731 987 1221 1474 1606 1647 1631 1454 1186 1011 717 520 314 227 142 53 50 18 8 5 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 58 60 51 50 50 54 53 52 51 51 47 52 52 51 50 52 54 53 52 52 56 56 58 58 56 58 60 61 61 63 63 63 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=47

i=22427 bitcount=50 gamma=7ffeb5fbecb9effd

32768
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 2 19 46 70 131 280 398 727 999 1447 1977 2448 2975 3144 3300 3246 2905 2406 2013 1468 1068 678 469 259 125 91 39 21 7 3 2 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 58 60 51 47 45 51 50 52 50 50 47 49 52 51 50 49 49 52 52 51 55 56 58 57 56 58 60 60 59 63 63 63 99 63 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=45

i=33389 bitcount=49 gamma=fef6ef4fd7cdedf7

i=61883 bitcount=15 gamma=2009274214160080

65536
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 11 14 41 88 137 281 548 824 1409 2078 2942 3895 4880 5835 6287 6578 6384 5819 4862 4055 2971 2174 1426 909 512 250 180 83 35 18 5 3 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 55 99 51 47 51 47 45 51 45 50 48 48 47 49 48 48 50 49 49 50 52 51 55 55 54 55 56 58 59 60 59 61 61 63 64 63 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=45

i=97510 bitcount=16 gamma=0480158017905c00

131072
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 20 24 69 158 297 581 1025 1714 2845 4169 5995 7923 9852 11777 12554 12941 12683 11525 9805 8050 5976 4316 2832 1793 1017 526 333 157 65 31 8 5 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 55 43 51 47 49 47 45 45 45 49 48 48 47 48 48 48 50 49 49 50 52 51 55 51 54 55 54 58 55 59 59 61 61 63 63 63 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=43

262144
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 13 29 38 130 305 563 1167 2056 3385 5717 8388 12027 15813 19885 23362 24906 25993 25369 22994 19803 16057 12044 8569 5572 3613 2109 1099 634 297 121 54 18 7 3 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 99 35 43 42 47 44 44 45 45 45 47 47 48 46 43 47 48 50 49 49 47 52 51 54 51 54 55 54 57 55 59 59 61 59 63 63 63 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=35

i=407116 bitcount=14 gamma=2456030052202100

524288
0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 5 20 50 96 243 582 1158 2314 4225 7020 11336 17025 23860 31893 39376 46297 50332 51800 50697 46128 39809 31786 23977 17067 11407 7233 4144 2243 1220 565 234 96 30 13 6 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 99 54 35 43 42 47 44 44 44 45 45 47 47 43 45 43 46 48 50 49 49 47 51 50 53 51 54 55 54 57 55 59 59 61 59 63 63 63 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=35

i=576994 bitcount=13 gamma=920400f024808080

1048576
0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 7 34 83 206 488 1161 2337 4605 8366 14318 22493 34298 47991 63906 78752 92493 100654 104072 100970 92197 79133 63541 47902 34057 22926 14460 8340 4482 2370 1124 487 212 70 26 10 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 99 57 54 35 43 42 47 44 44 44 45 45 46 47 43 45 43 46 48 48 49 46 47 50 50 52 51 51 55 54 56 55 58 59 60 59 61 62 63 99 99 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=35

i=1483317 bitcount=12 gamma=a0181500002c0410

i=2026274 bitcount=52 gamma=9ffdffdfab7bffbc

2097152
0 0 0 0 0 0 0 0 0 0 0 0 1 3 2 20 72 165 418 953 2262 4627 9186 16746 28712 45323 68341 96281 127978 157596 184726 201371 208836 201872 183672 157823 126903 96041 68378 45739 28607 16673 9201 4746 2239 971 439 157 49 18 5 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 60 57 54 35 43 42 44 44 38 44 45 45 41 47 43 45 43 44 45 45 48 46 47 50 50 51 51 51 55 53 56 55 58 59 58 59 61 60 63 99 62 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=35

4194304
0 0 0 0 0 0 0 0 0 0 0 0 1 7 10 35 125 312 824 1934 4487 9229 18274 33290 57289 90995 136825 192494 254986 315663 369601 402732 416949 403992 367988 315428 254190 192389 137063 91413 57008 33397 18213 9474 4412 1965 843 303 118 31 15 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 60 52 51 35 43 38 39 44 38 42 43 42 41 42 43 43 43 44 45 45 46 46 47 49 50 51 51 50 54 53 53 55 57 57 58 59 60 60 61 99 62 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=35

i=5289159 bitcount=51 gamma=fff7bf4feef3edbd

8388608
0 0 0 0 0 0 0 0 0 0 0 0 2 8 19 68 257 619 1577 3966 8988 18626 36391 66562 114416 182251 273859 385240 509615 632157 737773 806492 833917 807419 735145 631256 509264 384796 273801 182738 113834 66706 36653 18828 8879 3877 1694 600 218 70 25 2 1 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 51 52 50 35 43 38 39 43 38 42 40 39 41 42 43 42 43 44 45 45 46 46 47 49 49 49 51 50 51 53 53 54 56 57 58 59 60 60 61 62 62 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=35

16777216
0 0 0 0 0 0 0 0 0 0 0 0 5 9 49 147 485 1261 3293 7964 17769 37576 72859 133191 228598 363804 547300 769253 1019420 1262955 1474958 1613095 1669099 1614448 1472240 1263821 1017709 769610 548410 365327 227763 133219 73158 37467 17769 7924 3384 1265 424 137 42 8 2 0 0 0 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 99 47 51 50 35 37 38 39 38 38 40 40 39 41 42 42 42 43 44 45 43 40 46 47 47 47 49 50 50 51 53 53 54 55 55 58 59 60 58 61 62 62 99 99 99 99 99 99 99 99 99 99 99 99 
minmin=35

i=16820079 bitcount=55 gamma=bfefffd7efdf37ff

i=19132029 bitcount=53 gamma=bfd5fd9fdffbbeff

i=28503406 bitcount=11 gamma=2001800040049298

33554432
0 0 0 0 0 0 0 0 0 0 0 1 10 16 90 304 946 2560 6632 15909 35451 74884 145325 266390 456181 727540 1094459 1540486 2036140 2525281 2949914 3228751 3336044 3231286 2945900 2527422 2034155 1539153 1097331 730442 455405 266449 146260 75158 35810 15921 6691 2492 848 273 89 27 5 1 0 1 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 99 59 39 49 44 35 37 38 39 37 38 40 40 39 37 39 40 41 42 43 44 43 40 46 47 47 47 48 50 50 51 51 53 54 55 55 57 58 60 58 61 59 62 64 99 64 99 99 99 99 99 99 99 99 99 
minmin=35

i=50248637 bitcount=10 gamma=4121044020000830

67108864
0 0 0 0 0 0 0 0 0 0 1 2 16 41 172 604 1831 5064 13059 31814 71273 149700 291365 533400 912705 1456293 2186907 3079299 4068709 5051784 5895813 6461668 6671725 6465105 5893519 5054788 4070078 3079196 2192646 1459499 910002 533841 293232 150108 71335 31599 13231 4930 1739 528 186 47 7 3 0 1 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 59 45 39 47 44 35 37 38 37 37 38 40 39 39 37 39 39 41 41 43 42 43 40 46 47 47 47 48 50 50 51 51 53 54 55 55 57 58 59 58 61 59 62 63 99 64 99 99 99 99 99 99 99 99 99 
minmin=35

134217728
0 0 0 0 0 0 0 0 0 0 2 5 25 89 355 1192 3664 10179 26375 63351 142557 299491 584340 1065894 1824595 2913971 4374871 6160464 8139540 10104867 11786651 12929321 13335580 12931879 11784785 10110408 8138304 6160629 4380229 2921343 1821989 1068184 584903 299658 143258 63251 26416 10002 3578 1070 343 95 22 3 0 1 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 99 59 45 39 36 39 35 37 37 37 37 35 38 37 39 36 39 39 39 41 42 42 42 40 46 46 46 47 47 50 50 51 51 53 54 55 55 56 56 56 58 61 59 62 63 99 64 99 99 99 99 99 99 99 99 99 
minmin=35

i=211074001 bitcount=9 gamma=0800200488080184

268435456
0 0 0 0 0 0 0 0 0 1 3 10 46 167 703 2371 7196 20131 52310 126809 285119 597977 1168263 2133407 3648390 5832823 8753433 12323859 16280553 20206295 23578264 25862115 26665502 25865551 23576812 20213030 16276008 12320303 8755046 5838509 3644879 2135010 1169787 599077 285846 126847 52606 20153 7139 2202 684 167 47 6 0 1 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 58 59 45 39 36 39 34 35 37 35 34 35 38 37 38 36 39 39 39 38 42 42 42 40 45 46 46 47 47 49 49 51 51 52 53 53 55 56 56 56 58 60 59 61 63 99 64 99 99 99 99 99 99 99 99 99 
minmin=34

i=282126527 bitcount=54 gamma=bfbfe6f77fbfbffb

536870912
0 0 0 0 0 0 0 0 0 1 4 19 111 342 1429 4596 14258 40133 104602 253712 569411 1196148 2336521 4268801 7295925 11670842 17506455 24641126 32562984 40408891 47161008 51727658 53331686 51724259 47155125 40429787 32553864 24638851 17510579 11672761 7292595 4269342 2338147 1196840 572163 253808 105069 40352 14374 4448 1403 375 90 15 2 1 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 58 59 40 39 36 38 34 34 36 35 34 34 34 36 36 36 38 36 39 38 42 42 42 40 44 45 46 46 47 49 49 50 51 51 52 53 54 54 56 56 58 59 59 61 61 64 64 99 99 99 99 99 99 99 99 99 
minmin=34

1073741824
0 0 0 0 0 0 0 0 0 1 9 35 193 714 2768 9260 28593 80305 209383 507586 1140367 2392226 4670934 8538052 14586703 23341013 35019068 49281006 65116940 80830475 94314786 103453333 106666527 103441401 94312110 80848311 65119015 49279042 35027502 23344807 14587303 8538935 4676953 2393834 1142701 507604 210333 80614 28365 8966 2798 731 176 39 7 1 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 58 52 40 39 36 32 32 34 33 33 34 33 31 34 36 36 38 36 39 38 40 37 41 40 44 45 46 46 47 48 48 48 50 51 51 52 53 54 56 56 58 59 59 61 61 62 64 99 99 99 99 99 99 99 99 99 
minmin=31

2147483648
0 0 0 0 0 0 0 0 0 2 15 72 393 1485 5512 18544 56885 160136 419243 1015005 2281755 4786013 9347576 17077350 29175048 46686775 70035013 98562926 130241014 161675823 188629618 206905864 213345687 206858690 188619382 161694929 130232017 98558401 70035558 46690858 29182733 17079355 9353296 4785074 2285312 1016667 420104 160973 56666 18360 5592 1466 359 86 16 1 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 49 43 40 37 35 30 32 32 30 33 32 32 31 34 35 36 37 36 37 38 39 37 41 40 43 44 45 45 46 46 48 48 50 51 51 52 53 54 56 56 57 57 59 61 61 60 64 99 99 99 99 99 99 99 99 99 
minmin=30

4294967296
0 0 0 0 0 0 0 0 0 6 34 144 762 3039 11164 37001 113963 319754 839282 2029319 4566534 9572813 18703458 34158211 58357810 93371052 140075596 197114511 260483011 323353040 377268376 413774341 426695226 413722082 377238576 323403273 260475452 197108741 140074276 93374648 58358580 34159471 18704230 9568392 4572404 2032357 839396 321601 113435 36808 11154 3001 745 187 35 6 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 38 32 38 36 34 30 28 32 30 33 32 32 30 34 32 32 36 35 37 38 39 37 41 40 42 43 42 45 45 46 48 46 50 50 51 52 53 54 55 56 57 57 59 59 61 60 62 99 99 99 99 99 99 99 99 99 
minmin=28

8589934592
0 0 0 0 0 0 0 0 0 13 79 336 1533 6124 22365 74005 227645 641294 1678555 4062563 9135436 19146246 37404346 68314413 116715549 186751961 280133016 394245507 520960980 646704106 754500158 827546025 853392459 827450851 754492700 646779407 520959567 394251447 280136711 186745948 116726667 68325488 37406424 19134945 9144013 4061654 1678931 643565 226826 74188 22395 6159 1556 355 70 12 0 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 99 38 32 37 35 31 29 28 32 30 30 29 31 30 33 32 32 36 35 37 37 38 37 40 40 42 41 42 45 44 46 48 46 48 50 51 52 53 53 55 56 57 57 59 59 61 60 62 99 99 99 99 99 99 99 99 99 
minmin=28

i=9482338239 bitcount=56 gamma=f7dbbffffff3dfef

i=9634895189 bitcount=8 gamma=0001028204004018

17179869184
0 0 0 0 0 0 0 0 2 25 140 684 2965 12140 44648 148477 455842 1283485 3353717 8118203 18272525 38289596 74810797 136630792 233434239 373478236 560261902 788501960 1041906860 1293417460 1508985189 1655070081 1706811030 1654980036 1509017821 1293431895 1041934469 788519174 560269067 373509002 233461129 136631104 74829674 38281590 18285512 8122298 3355225 1286114 454883 148253 44793 12172 3112 702 141 21 3 0 0 0 0 0 0 0 0 
99 99 99 99 99 99 99 99 37 38 32 32 35 30 29 28 30 29 28 29 31 30 30 32 32 34 34 35 37 38 37 40 40 41 41 42 44 44 46 47 46 48 49 50 52 52 53 55 55 56 56 58 59 60 60 62 64 99 99 99 99 99 99 99 99 
minmin=28
---------------------------------------------------------------------------------------------




More information about the core-libs-dev mailing list