This directory holds data files with maximal length LFSR feedback polynomials. LFSRs have uses as pseudo-random number generators in several application domains. It is not my intent to teach or support LFSR design -- just to make available some feedback terms I computed.
If you want to know more about LFSR usage, some starting points are:
For more on primitive polynomials, see:
The following table is probably may be updated from time to time as my workstations have spare cycles to do more computations. You may use these results as you like, but since this is free I give no warrantee on them for any purpose whatsoever. If you find a problem, please let me know and I will fix it if/when I have time.
SIZE (# bits in feedback term) |
# Feedback terms found | Text file (First hundred entries) |
Gzip'ed file (complete list) |
4 | 2 | 4.txt | 4.dat.gz |
5 | 6 | 5.txt | 5.dat.gz |
6 | 6 | 6.txt | 6.dat.gz |
7 | 18 | 7.txt | 7.dat.gz |
8 | 16 | 8.txt | 8.dat.gz |
9 | 48 | 9.txt | 9.dat.gz |
10 | 60 | 10.txt | 10.dat.gz |
11 | 176 | 11.txt | 11.dat.gz |
12 | 144 | 12.txt | 12.dat.gz |
13 | 630 | 13.txt | 13.dat.gz |
14 | 756 | 14.txt | 14.dat.gz |
15 | 1,800 | 15.txt | 15.dat.gz |
16 | 2,048 | 16.txt | 16.dat.gz |
17 | 7,710 | 17.txt | 17.dat.gz |
18 | 7,776 | 18.txt | 18.dat.gz |
19 | 27,594 | 19.txt | 19.dat.gz |
20 | 24,000 | 20.txt | 20.dat.gz |
21 | 84,672 | 21.txt | 21.dat.gz |
22 | 120,032 | 22.txt | 22.dat.gz |
23 | 356,960 | 23.txt | 23.dat.gz |
24 | 276,480 | 24.txt | 24.dat.gz |
25 | 1,296,000 | 25.txt | 25.dat.gz |
26 | 1,719,900 | 26.txt | 26.dat.gz |
27 | 4,202,496 | 27.txt | 27.dat.gz |
28 | 4,741,632 | 28.txt | 28.dat.gz |
29 | 18,407,808 | 29.txt | 29.dat.gz |
30 | 17,820,000 | 30.txt | 30.dat.gz |
31 | 69,273,666 | 31.txt | 31.dat.gz (184 MB!) |
32 | 67,108,864 | 32.txt | 32.dat.gz (186 MB!) |
33 | -- | 33.txt | |
34 | -- | 34.txt | |
35 | -- | 35.txt | |
36 | -- | 36.txt | |
37 | -- | 37.txt | |
38 | -- | 38.txt | |
39 | -- | 39.txt | |
40 | -- | 40.txt | |
41 | -- | 41.txt | |
42 | -- | 42.txt | |
43 | -- | 43.txt | |
44 | -- | 44.txt | |
45 | -- | 45.txt | |
46 | -- | 46.txt | |
47 | -- | 47.txt | |
48 | -- | 48.txt | |
49 | -- | 49.txt | |
50 | -- | 50.txt | |
51 | -- | 51.txt | |
52 | -- | 52.txt | |
53 | -- | 53.txt | |
54 | -- | 54.txt | |
55 | -- | 55.txt | |
56 | -- | 56.txt | |
57 | -- | 57.txt | |
58 | -- | 58.txt | |
59 | -- | 59.txt | |
60 | -- | 60.txt | |
61 | -- | 61.txt | |
62 | -- | 62.txt | |
63 | -- | 63.txt | |
64 | -- | 64.txt |
In the above data files, the feedback term is the hexadecimal number that represents the feedback polynomial for a right-shifted LFSR per the following C code LFSR inner loop implementation:
if (i & 1) { i = (i >> 1) ^ feed; } else { i = (i >> 1); }
Philip Koopman