chinwag 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,541 @@
1
+ // Implementation of the generator file
2
+ //
3
+ // Contents are confined to object synthesis,
4
+ // and randomized object conversions
5
+ //
6
+ // Created by Chris Calo on 7.3.2013
7
+ // Copyright (c) 2012 - 2014, Vulcan Creative, LLC.
8
+ // Original "mother" term coined by George Marsaglia, RIP
9
+
10
+ #include "generator.h"
11
+
12
+ static const U32 crc32_table[8][256] =
13
+ {
14
+ { 0x00000000,0x77073096,0xEE0E612C,0x990951BA,0x076DC419,0x706AF48F,
15
+ 0xE963A535,0x9E6495A3,0x0EDB8832,0x79DCB8A4,0xE0D5E91E,0x97D2D988,
16
+ 0x09B64C2B,0x7EB17CBD,0xE7B82D07,0x90BF1D91,0x1DB71064,0x6AB020F2,
17
+ 0xF3B97148,0x84BE41DE,0x1ADAD47D,0x6DDDE4EB,0xF4D4B551,0x83D385C7,
18
+ 0x136C9856,0x646BA8C0,0xFD62F97A,0x8A65C9EC,0x14015C4F,0x63066CD9,
19
+ 0xFA0F3D63,0x8D080DF5,0x3B6E20C8,0x4C69105E,0xD56041E4,0xA2677172,
20
+ 0x3C03E4D1,0x4B04D447,0xD20D85FD,0xA50AB56B,0x35B5A8FA,0x42B2986C,
21
+ 0xDBBBC9D6,0xACBCF940,0x32D86CE3,0x45DF5C75,0xDCD60DCF,0xABD13D59,
22
+ 0x26D930AC,0x51DE003A,0xC8D75180,0xBFD06116,0x21B4F4B5,0x56B3C423,
23
+ 0xCFBA9599,0xB8BDA50F,0x2802B89E,0x5F058808,0xC60CD9B2,0xB10BE924,
24
+ 0x2F6F7C87,0x58684C11,0xC1611DAB,0xB6662D3D,0x76DC4190,0x01DB7106,
25
+ 0x98D220BC,0xEFD5102A,0x71B18589,0x06B6B51F,0x9FBFE4A5,0xE8B8D433,
26
+ 0x7807C9A2,0x0F00F934,0x9609A88E,0xE10E9818,0x7F6A0DBB,0x086D3D2D,
27
+ 0x91646C97,0xE6635C01,0x6B6B51F4,0x1C6C6162,0x856530D8,0xF262004E,
28
+ 0x6C0695ED,0x1B01A57B,0x8208F4C1,0xF50FC457,0x65B0D9C6,0x12B7E950,
29
+ 0x8BBEB8EA,0xFCB9887C,0x62DD1DDF,0x15DA2D49,0x8CD37CF3,0xFBD44C65,
30
+ 0x4DB26158,0x3AB551CE,0xA3BC0074,0xD4BB30E2,0x4ADFA541,0x3DD895D7,
31
+ 0xA4D1C46D,0xD3D6F4FB,0x4369E96A,0x346ED9FC,0xAD678846,0xDA60B8D0,
32
+ 0x44042D73,0x33031DE5,0xAA0A4C5F,0xDD0D7CC9,0x5005713C,0x270241AA,
33
+ 0xBE0B1010,0xC90C2086,0x5768B525,0x206F85B3,0xB966D409,0xCE61E49F,
34
+ 0x5EDEF90E,0x29D9C998,0xB0D09822,0xC7D7A8B4,0x59B33D17,0x2EB40D81,
35
+ 0xB7BD5C3B,0xC0BA6CAD,0xEDB88320,0x9ABFB3B6,0x03B6E20C,0x74B1D29A,
36
+ 0xEAD54739,0x9DD277AF,0x04DB2615,0x73DC1683,0xE3630B12,0x94643B84,
37
+ 0x0D6D6A3E,0x7A6A5AA8,0xE40ECF0B,0x9309FF9D,0x0A00AE27,0x7D079EB1,
38
+ 0xF00F9344,0x8708A3D2,0x1E01F268,0x6906C2FE,0xF762575D,0x806567CB,
39
+ 0x196C3671,0x6E6B06E7,0xFED41B76,0x89D32BE0,0x10DA7A5A,0x67DD4ACC,
40
+ 0xF9B9DF6F,0x8EBEEFF9,0x17B7BE43,0x60B08ED5,0xD6D6A3E8,0xA1D1937E,
41
+ 0x38D8C2C4,0x4FDFF252,0xD1BB67F1,0xA6BC5767,0x3FB506DD,0x48B2364B,
42
+ 0xD80D2BDA,0xAF0A1B4C,0x36034AF6,0x41047A60,0xDF60EFC3,0xA867DF55,
43
+ 0x316E8EEF,0x4669BE79,0xCB61B38C,0xBC66831A,0x256FD2A0,0x5268E236,
44
+ 0xCC0C7795,0xBB0B4703,0x220216B9,0x5505262F,0xC5BA3BBE,0xB2BD0B28,
45
+ 0x2BB45A92,0x5CB36A04,0xC2D7FFA7,0xB5D0CF31,0x2CD99E8B,0x5BDEAE1D,
46
+ 0x9B64C2B0,0xEC63F226,0x756AA39C,0x026D930A,0x9C0906A9,0xEB0E363F,
47
+ 0x72076785,0x05005713,0x95BF4A82,0xE2B87A14,0x7BB12BAE,0x0CB61B38,
48
+ 0x92D28E9B,0xE5D5BE0D,0x7CDCEFB7,0x0BDBDF21,0x86D3D2D4,0xF1D4E242,
49
+ 0x68DDB3F8,0x1FDA836E,0x81BE16CD,0xF6B9265B,0x6FB077E1,0x18B74777,
50
+ 0x88085AE6,0xFF0F6A70,0x66063BCA,0x11010B5C,0x8F659EFF,0xF862AE69,
51
+ 0x616BFFD3,0x166CCF45,0xA00AE278,0xD70DD2EE,0x4E048354,0x3903B3C2,
52
+ 0xA7672661,0xD06016F7,0x4969474D,0x3E6E77DB,0xAED16A4A,0xD9D65ADC,
53
+ 0x40DF0B66,0x37D83BF0,0xA9BCAE53,0xDEBB9EC5,0x47B2CF7F,0x30B5FFE9,
54
+ 0xBDBDF21C,0xCABAC28A,0x53B39330,0x24B4A3A6,0xBAD03605,0xCDD70693,
55
+ 0x54DE5729,0x23D967BF,0xB3667A2E,0xC4614AB8,0x5D681B02,0x2A6F2B94,
56
+ 0xB40BBE37,0xC30C8EA1,0x5A05DF1B,0x2D02EF8D },
57
+
58
+ { 0x00000000,0x191B3141,0x32366282,0x2B2D53C3,0x646CC504,0x7D77F445,
59
+ 0x565AA786,0x4F4196C7,0xC8D98A08,0xD1C2BB49,0xFAEFE88A,0xE3F4D9CB,
60
+ 0xACB54F0C,0xB5AE7E4D,0x9E832D8E,0x87981CCF,0x4AC21251,0x53D92310,
61
+ 0x78F470D3,0x61EF4192,0x2EAED755,0x37B5E614,0x1C98B5D7,0x05838496,
62
+ 0x821B9859,0x9B00A918,0xB02DFADB,0xA936CB9A,0xE6775D5D,0xFF6C6C1C,
63
+ 0xD4413FDF,0xCD5A0E9E,0x958424A2,0x8C9F15E3,0xA7B24620,0xBEA97761,
64
+ 0xF1E8E1A6,0xE8F3D0E7,0xC3DE8324,0xDAC5B265,0x5D5DAEAA,0x44469FEB,
65
+ 0x6F6BCC28,0x7670FD69,0x39316BAE,0x202A5AEF,0x0B07092C,0x121C386D,
66
+ 0xDF4636F3,0xC65D07B2,0xED705471,0xF46B6530,0xBB2AF3F7,0xA231C2B6,
67
+ 0x891C9175,0x9007A034,0x179FBCFB,0x0E848DBA,0x25A9DE79,0x3CB2EF38,
68
+ 0x73F379FF,0x6AE848BE,0x41C51B7D,0x58DE2A3C,0xF0794F05,0xE9627E44,
69
+ 0xC24F2D87,0xDB541CC6,0x94158A01,0x8D0EBB40,0xA623E883,0xBF38D9C2,
70
+ 0x38A0C50D,0x21BBF44C,0x0A96A78F,0x138D96CE,0x5CCC0009,0x45D73148,
71
+ 0x6EFA628B,0x77E153CA,0xBABB5D54,0xA3A06C15,0x888D3FD6,0x91960E97,
72
+ 0xDED79850,0xC7CCA911,0xECE1FAD2,0xF5FACB93,0x7262D75C,0x6B79E61D,
73
+ 0x4054B5DE,0x594F849F,0x160E1258,0x0F152319,0x243870DA,0x3D23419B,
74
+ 0x65FD6BA7,0x7CE65AE6,0x57CB0925,0x4ED03864,0x0191AEA3,0x188A9FE2,
75
+ 0x33A7CC21,0x2ABCFD60,0xAD24E1AF,0xB43FD0EE,0x9F12832D,0x8609B26C,
76
+ 0xC94824AB,0xD05315EA,0xFB7E4629,0xE2657768,0x2F3F79F6,0x362448B7,
77
+ 0x1D091B74,0x04122A35,0x4B53BCF2,0x52488DB3,0x7965DE70,0x607EEF31,
78
+ 0xE7E6F3FE,0xFEFDC2BF,0xD5D0917C,0xCCCBA03D,0x838A36FA,0x9A9107BB,
79
+ 0xB1BC5478,0xA8A76539,0x3B83984B,0x2298A90A,0x09B5FAC9,0x10AECB88,
80
+ 0x5FEF5D4F,0x46F46C0E,0x6DD93FCD,0x74C20E8C,0xF35A1243,0xEA412302,
81
+ 0xC16C70C1,0xD8774180,0x9736D747,0x8E2DE606,0xA500B5C5,0xBC1B8484,
82
+ 0x71418A1A,0x685ABB5B,0x4377E898,0x5A6CD9D9,0x152D4F1E,0x0C367E5F,
83
+ 0x271B2D9C,0x3E001CDD,0xB9980012,0xA0833153,0x8BAE6290,0x92B553D1,
84
+ 0xDDF4C516,0xC4EFF457,0xEFC2A794,0xF6D996D5,0xAE07BCE9,0xB71C8DA8,
85
+ 0x9C31DE6B,0x852AEF2A,0xCA6B79ED,0xD37048AC,0xF85D1B6F,0xE1462A2E,
86
+ 0x66DE36E1,0x7FC507A0,0x54E85463,0x4DF36522,0x02B2F3E5,0x1BA9C2A4,
87
+ 0x30849167,0x299FA026,0xE4C5AEB8,0xFDDE9FF9,0xD6F3CC3A,0xCFE8FD7B,
88
+ 0x80A96BBC,0x99B25AFD,0xB29F093E,0xAB84387F,0x2C1C24B0,0x350715F1,
89
+ 0x1E2A4632,0x07317773,0x4870E1B4,0x516BD0F5,0x7A468336,0x635DB277,
90
+ 0xCBFAD74E,0xD2E1E60F,0xF9CCB5CC,0xE0D7848D,0xAF96124A,0xB68D230B,
91
+ 0x9DA070C8,0x84BB4189,0x03235D46,0x1A386C07,0x31153FC4,0x280E0E85,
92
+ 0x674F9842,0x7E54A903,0x5579FAC0,0x4C62CB81,0x8138C51F,0x9823F45E,
93
+ 0xB30EA79D,0xAA1596DC,0xE554001B,0xFC4F315A,0xD7626299,0xCE7953D8,
94
+ 0x49E14F17,0x50FA7E56,0x7BD72D95,0x62CC1CD4,0x2D8D8A13,0x3496BB52,
95
+ 0x1FBBE891,0x06A0D9D0,0x5E7EF3EC,0x4765C2AD,0x6C48916E,0x7553A02F,
96
+ 0x3A1236E8,0x230907A9,0x0824546A,0x113F652B,0x96A779E4,0x8FBC48A5,
97
+ 0xA4911B66,0xBD8A2A27,0xF2CBBCE0,0xEBD08DA1,0xC0FDDE62,0xD9E6EF23,
98
+ 0x14BCE1BD,0x0DA7D0FC,0x268A833F,0x3F91B27E,0x70D024B9,0x69CB15F8,
99
+ 0x42E6463B,0x5BFD777A,0xDC656BB5,0xC57E5AF4,0xEE530937,0xF7483876,
100
+ 0xB809AEB1,0xA1129FF0,0x8A3FCC33,0x9324FD72 },
101
+
102
+ { 0x00000000,0x01C26A37,0x0384D46E,0x0246BE59,0x0709A8DC,0x06CBC2EB,
103
+ 0x048D7CB2,0x054F1685,0x0E1351B8,0x0FD13B8F,0x0D9785D6,0x0C55EFE1,
104
+ 0x091AF964,0x08D89353,0x0A9E2D0A,0x0B5C473D,0x1C26A370,0x1DE4C947,
105
+ 0x1FA2771E,0x1E601D29,0x1B2F0BAC,0x1AED619B,0x18ABDFC2,0x1969B5F5,
106
+ 0x1235F2C8,0x13F798FF,0x11B126A6,0x10734C91,0x153C5A14,0x14FE3023,
107
+ 0x16B88E7A,0x177AE44D,0x384D46E0,0x398F2CD7,0x3BC9928E,0x3A0BF8B9,
108
+ 0x3F44EE3C,0x3E86840B,0x3CC03A52,0x3D025065,0x365E1758,0x379C7D6F,
109
+ 0x35DAC336,0x3418A901,0x3157BF84,0x3095D5B3,0x32D36BEA,0x331101DD,
110
+ 0x246BE590,0x25A98FA7,0x27EF31FE,0x262D5BC9,0x23624D4C,0x22A0277B,
111
+ 0x20E69922,0x2124F315,0x2A78B428,0x2BBADE1F,0x29FC6046,0x283E0A71,
112
+ 0x2D711CF4,0x2CB376C3,0x2EF5C89A,0x2F37A2AD,0x709A8DC0,0x7158E7F7,
113
+ 0x731E59AE,0x72DC3399,0x7793251C,0x76514F2B,0x7417F172,0x75D59B45,
114
+ 0x7E89DC78,0x7F4BB64F,0x7D0D0816,0x7CCF6221,0x798074A4,0x78421E93,
115
+ 0x7A04A0CA,0x7BC6CAFD,0x6CBC2EB0,0x6D7E4487,0x6F38FADE,0x6EFA90E9,
116
+ 0x6BB5866C,0x6A77EC5B,0x68315202,0x69F33835,0x62AF7F08,0x636D153F,
117
+ 0x612BAB66,0x60E9C151,0x65A6D7D4,0x6464BDE3,0x662203BA,0x67E0698D,
118
+ 0x48D7CB20,0x4915A117,0x4B531F4E,0x4A917579,0x4FDE63FC,0x4E1C09CB,
119
+ 0x4C5AB792,0x4D98DDA5,0x46C49A98,0x4706F0AF,0x45404EF6,0x448224C1,
120
+ 0x41CD3244,0x400F5873,0x4249E62A,0x438B8C1D,0x54F16850,0x55330267,
121
+ 0x5775BC3E,0x56B7D609,0x53F8C08C,0x523AAABB,0x507C14E2,0x51BE7ED5,
122
+ 0x5AE239E8,0x5B2053DF,0x5966ED86,0x58A487B1,0x5DEB9134,0x5C29FB03,
123
+ 0x5E6F455A,0x5FAD2F6D,0xE1351B80,0xE0F771B7,0xE2B1CFEE,0xE373A5D9,
124
+ 0xE63CB35C,0xE7FED96B,0xE5B86732,0xE47A0D05,0xEF264A38,0xEEE4200F,
125
+ 0xECA29E56,0xED60F461,0xE82FE2E4,0xE9ED88D3,0xEBAB368A,0xEA695CBD,
126
+ 0xFD13B8F0,0xFCD1D2C7,0xFE976C9E,0xFF5506A9,0xFA1A102C,0xFBD87A1B,
127
+ 0xF99EC442,0xF85CAE75,0xF300E948,0xF2C2837F,0xF0843D26,0xF1465711,
128
+ 0xF4094194,0xF5CB2BA3,0xF78D95FA,0xF64FFFCD,0xD9785D60,0xD8BA3757,
129
+ 0xDAFC890E,0xDB3EE339,0xDE71F5BC,0xDFB39F8B,0xDDF521D2,0xDC374BE5,
130
+ 0xD76B0CD8,0xD6A966EF,0xD4EFD8B6,0xD52DB281,0xD062A404,0xD1A0CE33,
131
+ 0xD3E6706A,0xD2241A5D,0xC55EFE10,0xC49C9427,0xC6DA2A7E,0xC7184049,
132
+ 0xC25756CC,0xC3953CFB,0xC1D382A2,0xC011E895,0xCB4DAFA8,0xCA8FC59F,
133
+ 0xC8C97BC6,0xC90B11F1,0xCC440774,0xCD866D43,0xCFC0D31A,0xCE02B92D,
134
+ 0x91AF9640,0x906DFC77,0x922B422E,0x93E92819,0x96A63E9C,0x976454AB,
135
+ 0x9522EAF2,0x94E080C5,0x9FBCC7F8,0x9E7EADCF,0x9C381396,0x9DFA79A1,
136
+ 0x98B56F24,0x99770513,0x9B31BB4A,0x9AF3D17D,0x8D893530,0x8C4B5F07,
137
+ 0x8E0DE15E,0x8FCF8B69,0x8A809DEC,0x8B42F7DB,0x89044982,0x88C623B5,
138
+ 0x839A6488,0x82580EBF,0x801EB0E6,0x81DCDAD1,0x8493CC54,0x8551A663,
139
+ 0x8717183A,0x86D5720D,0xA9E2D0A0,0xA820BA97,0xAA6604CE,0xABA46EF9,
140
+ 0xAEEB787C,0xAF29124B,0xAD6FAC12,0xACADC625,0xA7F18118,0xA633EB2F,
141
+ 0xA4755576,0xA5B73F41,0xA0F829C4,0xA13A43F3,0xA37CFDAA,0xA2BE979D,
142
+ 0xB5C473D0,0xB40619E7,0xB640A7BE,0xB782CD89,0xB2CDDB0C,0xB30FB13B,
143
+ 0xB1490F62,0xB08B6555,0xBBD72268,0xBA15485F,0xB853F606,0xB9919C31,
144
+ 0xBCDE8AB4,0xBD1CE083,0xBF5A5EDA,0xBE9834ED },
145
+
146
+ { 0x00000000,0xB8BC6765,0xAA09C88B,0x12B5AFEE,0x8F629757,0x37DEF032,
147
+ 0x256B5FDC,0x9DD738B9,0xC5B428EF,0x7D084F8A,0x6FBDE064,0xD7018701,
148
+ 0x4AD6BFB8,0xF26AD8DD,0xE0DF7733,0x58631056,0x5019579F,0xE8A530FA,
149
+ 0xFA109F14,0x42ACF871,0xDF7BC0C8,0x67C7A7AD,0x75720843,0xCDCE6F26,
150
+ 0x95AD7F70,0x2D111815,0x3FA4B7FB,0x8718D09E,0x1ACFE827,0xA2738F42,
151
+ 0xB0C620AC,0x087A47C9,0xA032AF3E,0x188EC85B,0x0A3B67B5,0xB28700D0,
152
+ 0x2F503869,0x97EC5F0C,0x8559F0E2,0x3DE59787,0x658687D1,0xDD3AE0B4,
153
+ 0xCF8F4F5A,0x7733283F,0xEAE41086,0x525877E3,0x40EDD80D,0xF851BF68,
154
+ 0xF02BF8A1,0x48979FC4,0x5A22302A,0xE29E574F,0x7F496FF6,0xC7F50893,
155
+ 0xD540A77D,0x6DFCC018,0x359FD04E,0x8D23B72B,0x9F9618C5,0x272A7FA0,
156
+ 0xBAFD4719,0x0241207C,0x10F48F92,0xA848E8F7,0x9B14583D,0x23A83F58,
157
+ 0x311D90B6,0x89A1F7D3,0x1476CF6A,0xACCAA80F,0xBE7F07E1,0x06C36084,
158
+ 0x5EA070D2,0xE61C17B7,0xF4A9B859,0x4C15DF3C,0xD1C2E785,0x697E80E0,
159
+ 0x7BCB2F0E,0xC377486B,0xCB0D0FA2,0x73B168C7,0x6104C729,0xD9B8A04C,
160
+ 0x446F98F5,0xFCD3FF90,0xEE66507E,0x56DA371B,0x0EB9274D,0xB6054028,
161
+ 0xA4B0EFC6,0x1C0C88A3,0x81DBB01A,0x3967D77F,0x2BD27891,0x936E1FF4,
162
+ 0x3B26F703,0x839A9066,0x912F3F88,0x299358ED,0xB4446054,0x0CF80731,
163
+ 0x1E4DA8DF,0xA6F1CFBA,0xFE92DFEC,0x462EB889,0x549B1767,0xEC277002,
164
+ 0x71F048BB,0xC94C2FDE,0xDBF98030,0x6345E755,0x6B3FA09C,0xD383C7F9,
165
+ 0xC1366817,0x798A0F72,0xE45D37CB,0x5CE150AE,0x4E54FF40,0xF6E89825,
166
+ 0xAE8B8873,0x1637EF16,0x048240F8,0xBC3E279D,0x21E91F24,0x99557841,
167
+ 0x8BE0D7AF,0x335CB0CA,0xED59B63B,0x55E5D15E,0x47507EB0,0xFFEC19D5,
168
+ 0x623B216C,0xDA874609,0xC832E9E7,0x708E8E82,0x28ED9ED4,0x9051F9B1,
169
+ 0x82E4565F,0x3A58313A,0xA78F0983,0x1F336EE6,0x0D86C108,0xB53AA66D,
170
+ 0xBD40E1A4,0x05FC86C1,0x1749292F,0xAFF54E4A,0x322276F3,0x8A9E1196,
171
+ 0x982BBE78,0x2097D91D,0x78F4C94B,0xC048AE2E,0xD2FD01C0,0x6A4166A5,
172
+ 0xF7965E1C,0x4F2A3979,0x5D9F9697,0xE523F1F2,0x4D6B1905,0xF5D77E60,
173
+ 0xE762D18E,0x5FDEB6EB,0xC2098E52,0x7AB5E937,0x680046D9,0xD0BC21BC,
174
+ 0x88DF31EA,0x3063568F,0x22D6F961,0x9A6A9E04,0x07BDA6BD,0xBF01C1D8,
175
+ 0xADB46E36,0x15080953,0x1D724E9A,0xA5CE29FF,0xB77B8611,0x0FC7E174,
176
+ 0x9210D9CD,0x2AACBEA8,0x38191146,0x80A57623,0xD8C66675,0x607A0110,
177
+ 0x72CFAEFE,0xCA73C99B,0x57A4F122,0xEF189647,0xFDAD39A9,0x45115ECC,
178
+ 0x764DEE06,0xCEF18963,0xDC44268D,0x64F841E8,0xF92F7951,0x41931E34,
179
+ 0x5326B1DA,0xEB9AD6BF,0xB3F9C6E9,0x0B45A18C,0x19F00E62,0xA14C6907,
180
+ 0x3C9B51BE,0x842736DB,0x96929935,0x2E2EFE50,0x2654B999,0x9EE8DEFC,
181
+ 0x8C5D7112,0x34E11677,0xA9362ECE,0x118A49AB,0x033FE645,0xBB838120,
182
+ 0xE3E09176,0x5B5CF613,0x49E959FD,0xF1553E98,0x6C820621,0xD43E6144,
183
+ 0xC68BCEAA,0x7E37A9CF,0xD67F4138,0x6EC3265D,0x7C7689B3,0xC4CAEED6,
184
+ 0x591DD66F,0xE1A1B10A,0xF3141EE4,0x4BA87981,0x13CB69D7,0xAB770EB2,
185
+ 0xB9C2A15C,0x017EC639,0x9CA9FE80,0x241599E5,0x36A0360B,0x8E1C516E,
186
+ 0x866616A7,0x3EDA71C2,0x2C6FDE2C,0x94D3B949,0x090481F0,0xB1B8E695,
187
+ 0xA30D497B,0x1BB12E1E,0x43D23E48,0xFB6E592D,0xE9DBF6C3,0x516791A6,
188
+ 0xCCB0A91F,0x740CCE7A,0x66B96194,0xDE0506F1 },
189
+
190
+ { 0x00000000,0x3D6029B0,0x7AC05360,0x47A07AD0,0xF580A6C0,0xC8E08F70,
191
+ 0x8F40F5A0,0xB220DC10,0x30704BC1,0x0D106271,0x4AB018A1,0x77D03111,
192
+ 0xC5F0ED01,0xF890C4B1,0xBF30BE61,0x825097D1,0x60E09782,0x5D80BE32,
193
+ 0x1A20C4E2,0x2740ED52,0x95603142,0xA80018F2,0xEFA06222,0xD2C04B92,
194
+ 0x5090DC43,0x6DF0F5F3,0x2A508F23,0x1730A693,0xA5107A83,0x98705333,
195
+ 0xDFD029E3,0xE2B00053,0xC1C12F04,0xFCA106B4,0xBB017C64,0x866155D4,
196
+ 0x344189C4,0x0921A074,0x4E81DAA4,0x73E1F314,0xF1B164C5,0xCCD14D75,
197
+ 0x8B7137A5,0xB6111E15,0x0431C205,0x3951EBB5,0x7EF19165,0x4391B8D5,
198
+ 0xA121B886,0x9C419136,0xDBE1EBE6,0xE681C256,0x54A11E46,0x69C137F6,
199
+ 0x2E614D26,0x13016496,0x9151F347,0xAC31DAF7,0xEB91A027,0xD6F18997,
200
+ 0x64D15587,0x59B17C37,0x1E1106E7,0x23712F57,0x58F35849,0x659371F9,
201
+ 0x22330B29,0x1F532299,0xAD73FE89,0x9013D739,0xD7B3ADE9,0xEAD38459,
202
+ 0x68831388,0x55E33A38,0x124340E8,0x2F236958,0x9D03B548,0xA0639CF8,
203
+ 0xE7C3E628,0xDAA3CF98,0x3813CFCB,0x0573E67B,0x42D39CAB,0x7FB3B51B,
204
+ 0xCD93690B,0xF0F340BB,0xB7533A6B,0x8A3313DB,0x0863840A,0x3503ADBA,
205
+ 0x72A3D76A,0x4FC3FEDA,0xFDE322CA,0xC0830B7A,0x872371AA,0xBA43581A,
206
+ 0x9932774D,0xA4525EFD,0xE3F2242D,0xDE920D9D,0x6CB2D18D,0x51D2F83D,
207
+ 0x167282ED,0x2B12AB5D,0xA9423C8C,0x9422153C,0xD3826FEC,0xEEE2465C,
208
+ 0x5CC29A4C,0x61A2B3FC,0x2602C92C,0x1B62E09C,0xF9D2E0CF,0xC4B2C97F,
209
+ 0x8312B3AF,0xBE729A1F,0x0C52460F,0x31326FBF,0x7692156F,0x4BF23CDF,
210
+ 0xC9A2AB0E,0xF4C282BE,0xB362F86E,0x8E02D1DE,0x3C220DCE,0x0142247E,
211
+ 0x46E25EAE,0x7B82771E,0xB1E6B092,0x8C869922,0xCB26E3F2,0xF646CA42,
212
+ 0x44661652,0x79063FE2,0x3EA64532,0x03C66C82,0x8196FB53,0xBCF6D2E3,
213
+ 0xFB56A833,0xC6368183,0x74165D93,0x49767423,0x0ED60EF3,0x33B62743,
214
+ 0xD1062710,0xEC660EA0,0xABC67470,0x96A65DC0,0x248681D0,0x19E6A860,
215
+ 0x5E46D2B0,0x6326FB00,0xE1766CD1,0xDC164561,0x9BB63FB1,0xA6D61601,
216
+ 0x14F6CA11,0x2996E3A1,0x6E369971,0x5356B0C1,0x70279F96,0x4D47B626,
217
+ 0x0AE7CCF6,0x3787E546,0x85A73956,0xB8C710E6,0xFF676A36,0xC2074386,
218
+ 0x4057D457,0x7D37FDE7,0x3A978737,0x07F7AE87,0xB5D77297,0x88B75B27,
219
+ 0xCF1721F7,0xF2770847,0x10C70814,0x2DA721A4,0x6A075B74,0x576772C4,
220
+ 0xE547AED4,0xD8278764,0x9F87FDB4,0xA2E7D404,0x20B743D5,0x1DD76A65,
221
+ 0x5A7710B5,0x67173905,0xD537E515,0xE857CCA5,0xAFF7B675,0x92979FC5,
222
+ 0xE915E8DB,0xD475C16B,0x93D5BBBB,0xAEB5920B,0x1C954E1B,0x21F567AB,
223
+ 0x66551D7B,0x5B3534CB,0xD965A31A,0xE4058AAA,0xA3A5F07A,0x9EC5D9CA,
224
+ 0x2CE505DA,0x11852C6A,0x562556BA,0x6B457F0A,0x89F57F59,0xB49556E9,
225
+ 0xF3352C39,0xCE550589,0x7C75D999,0x4115F029,0x06B58AF9,0x3BD5A349,
226
+ 0xB9853498,0x84E51D28,0xC34567F8,0xFE254E48,0x4C059258,0x7165BBE8,
227
+ 0x36C5C138,0x0BA5E888,0x28D4C7DF,0x15B4EE6F,0x521494BF,0x6F74BD0F,
228
+ 0xDD54611F,0xE03448AF,0xA794327F,0x9AF41BCF,0x18A48C1E,0x25C4A5AE,
229
+ 0x6264DF7E,0x5F04F6CE,0xED242ADE,0xD044036E,0x97E479BE,0xAA84500E,
230
+ 0x4834505D,0x755479ED,0x32F4033D,0x0F942A8D,0xBDB4F69D,0x80D4DF2D,
231
+ 0xC774A5FD,0xFA148C4D,0x78441B9C,0x4524322C,0x028448FC,0x3FE4614C,
232
+ 0x8DC4BD5C,0xB0A494EC,0xF704EE3C,0xCA64C78C },
233
+
234
+ { 0x00000000,0xCB5CD3A5,0x4DC8A10B,0x869472AE,0x9B914216,0x50CD91B3,
235
+ 0xD659E31D,0x1D0530B8,0xEC53826D,0x270F51C8,0xA19B2366,0x6AC7F0C3,
236
+ 0x77C2C07B,0xBC9E13DE,0x3A0A6170,0xF156B2D5,0x03D6029B,0xC88AD13E,
237
+ 0x4E1EA390,0x85427035,0x9847408D,0x531B9328,0xD58FE186,0x1ED33223,
238
+ 0xEF8580F6,0x24D95353,0xA24D21FD,0x6911F258,0x7414C2E0,0xBF481145,
239
+ 0x39DC63EB,0xF280B04E,0x07AC0536,0xCCF0D693,0x4A64A43D,0x81387798,
240
+ 0x9C3D4720,0x57619485,0xD1F5E62B,0x1AA9358E,0xEBFF875B,0x20A354FE,
241
+ 0xA6372650,0x6D6BF5F5,0x706EC54D,0xBB3216E8,0x3DA66446,0xF6FAB7E3,
242
+ 0x047A07AD,0xCF26D408,0x49B2A6A6,0x82EE7503,0x9FEB45BB,0x54B7961E,
243
+ 0xD223E4B0,0x197F3715,0xE82985C0,0x23755665,0xA5E124CB,0x6EBDF76E,
244
+ 0x73B8C7D6,0xB8E41473,0x3E7066DD,0xF52CB578,0x0F580A6C,0xC404D9C9,
245
+ 0x4290AB67,0x89CC78C2,0x94C9487A,0x5F959BDF,0xD901E971,0x125D3AD4,
246
+ 0xE30B8801,0x28575BA4,0xAEC3290A,0x659FFAAF,0x789ACA17,0xB3C619B2,
247
+ 0x35526B1C,0xFE0EB8B9,0x0C8E08F7,0xC7D2DB52,0x4146A9FC,0x8A1A7A59,
248
+ 0x971F4AE1,0x5C439944,0xDAD7EBEA,0x118B384F,0xE0DD8A9A,0x2B81593F,
249
+ 0xAD152B91,0x6649F834,0x7B4CC88C,0xB0101B29,0x36846987,0xFDD8BA22,
250
+ 0x08F40F5A,0xC3A8DCFF,0x453CAE51,0x8E607DF4,0x93654D4C,0x58399EE9,
251
+ 0xDEADEC47,0x15F13FE2,0xE4A78D37,0x2FFB5E92,0xA96F2C3C,0x6233FF99,
252
+ 0x7F36CF21,0xB46A1C84,0x32FE6E2A,0xF9A2BD8F,0x0B220DC1,0xC07EDE64,
253
+ 0x46EAACCA,0x8DB67F6F,0x90B34FD7,0x5BEF9C72,0xDD7BEEDC,0x16273D79,
254
+ 0xE7718FAC,0x2C2D5C09,0xAAB92EA7,0x61E5FD02,0x7CE0CDBA,0xB7BC1E1F,
255
+ 0x31286CB1,0xFA74BF14,0x1EB014D8,0xD5ECC77D,0x5378B5D3,0x98246676,
256
+ 0x852156CE,0x4E7D856B,0xC8E9F7C5,0x03B52460,0xF2E396B5,0x39BF4510,
257
+ 0xBF2B37BE,0x7477E41B,0x6972D4A3,0xA22E0706,0x24BA75A8,0xEFE6A60D,
258
+ 0x1D661643,0xD63AC5E6,0x50AEB748,0x9BF264ED,0x86F75455,0x4DAB87F0,
259
+ 0xCB3FF55E,0x006326FB,0xF135942E,0x3A69478B,0xBCFD3525,0x77A1E680,
260
+ 0x6AA4D638,0xA1F8059D,0x276C7733,0xEC30A496,0x191C11EE,0xD240C24B,
261
+ 0x54D4B0E5,0x9F886340,0x828D53F8,0x49D1805D,0xCF45F2F3,0x04192156,
262
+ 0xF54F9383,0x3E134026,0xB8873288,0x73DBE12D,0x6EDED195,0xA5820230,
263
+ 0x2316709E,0xE84AA33B,0x1ACA1375,0xD196C0D0,0x5702B27E,0x9C5E61DB,
264
+ 0x815B5163,0x4A0782C6,0xCC93F068,0x07CF23CD,0xF6999118,0x3DC542BD,
265
+ 0xBB513013,0x700DE3B6,0x6D08D30E,0xA65400AB,0x20C07205,0xEB9CA1A0,
266
+ 0x11E81EB4,0xDAB4CD11,0x5C20BFBF,0x977C6C1A,0x8A795CA2,0x41258F07,
267
+ 0xC7B1FDA9,0x0CED2E0C,0xFDBB9CD9,0x36E74F7C,0xB0733DD2,0x7B2FEE77,
268
+ 0x662ADECF,0xAD760D6A,0x2BE27FC4,0xE0BEAC61,0x123E1C2F,0xD962CF8A,
269
+ 0x5FF6BD24,0x94AA6E81,0x89AF5E39,0x42F38D9C,0xC467FF32,0x0F3B2C97,
270
+ 0xFE6D9E42,0x35314DE7,0xB3A53F49,0x78F9ECEC,0x65FCDC54,0xAEA00FF1,
271
+ 0x28347D5F,0xE368AEFA,0x16441B82,0xDD18C827,0x5B8CBA89,0x90D0692C,
272
+ 0x8DD55994,0x46898A31,0xC01DF89F,0x0B412B3A,0xFA1799EF,0x314B4A4A,
273
+ 0xB7DF38E4,0x7C83EB41,0x6186DBF9,0xAADA085C,0x2C4E7AF2,0xE712A957,
274
+ 0x15921919,0xDECECABC,0x585AB812,0x93066BB7,0x8E035B0F,0x455F88AA,
275
+ 0xC3CBFA04,0x089729A1,0xF9C19B74,0x329D48D1,0xB4093A7F,0x7F55E9DA,
276
+ 0x6250D962,0xA90C0AC7,0x2F987869,0xE4C4ABCC },
277
+
278
+ { 0x00000000,0xA6770BB4,0x979F1129,0x31E81A9D,0xF44F2413,0x52382FA7,
279
+ 0x63D0353A,0xC5A73E8E,0x33EF4E67,0x959845D3,0xA4705F4E,0x020754FA,
280
+ 0xC7A06A74,0x61D761C0,0x503F7B5D,0xF64870E9,0x67DE9CCE,0xC1A9977A,
281
+ 0xF0418DE7,0x56368653,0x9391B8DD,0x35E6B369,0x040EA9F4,0xA279A240,
282
+ 0x5431D2A9,0xF246D91D,0xC3AEC380,0x65D9C834,0xA07EF6BA,0x0609FD0E,
283
+ 0x37E1E793,0x9196EC27,0xCFBD399C,0x69CA3228,0x582228B5,0xFE552301,
284
+ 0x3BF21D8F,0x9D85163B,0xAC6D0CA6,0x0A1A0712,0xFC5277FB,0x5A257C4F,
285
+ 0x6BCD66D2,0xCDBA6D66,0x081D53E8,0xAE6A585C,0x9F8242C1,0x39F54975,
286
+ 0xA863A552,0x0E14AEE6,0x3FFCB47B,0x998BBFCF,0x5C2C8141,0xFA5B8AF5,
287
+ 0xCBB39068,0x6DC49BDC,0x9B8CEB35,0x3DFBE081,0x0C13FA1C,0xAA64F1A8,
288
+ 0x6FC3CF26,0xC9B4C492,0xF85CDE0F,0x5E2BD5BB,0x440B7579,0xE27C7ECD,
289
+ 0xD3946450,0x75E36FE4,0xB044516A,0x16335ADE,0x27DB4043,0x81AC4BF7,
290
+ 0x77E43B1E,0xD19330AA,0xE07B2A37,0x460C2183,0x83AB1F0D,0x25DC14B9,
291
+ 0x14340E24,0xB2430590,0x23D5E9B7,0x85A2E203,0xB44AF89E,0x123DF32A,
292
+ 0xD79ACDA4,0x71EDC610,0x4005DC8D,0xE672D739,0x103AA7D0,0xB64DAC64,
293
+ 0x87A5B6F9,0x21D2BD4D,0xE47583C3,0x42028877,0x73EA92EA,0xD59D995E,
294
+ 0x8BB64CE5,0x2DC14751,0x1C295DCC,0xBA5E5678,0x7FF968F6,0xD98E6342,
295
+ 0xE86679DF,0x4E11726B,0xB8590282,0x1E2E0936,0x2FC613AB,0x89B1181F,
296
+ 0x4C162691,0xEA612D25,0xDB8937B8,0x7DFE3C0C,0xEC68D02B,0x4A1FDB9F,
297
+ 0x7BF7C102,0xDD80CAB6,0x1827F438,0xBE50FF8C,0x8FB8E511,0x29CFEEA5,
298
+ 0xDF879E4C,0x79F095F8,0x48188F65,0xEE6F84D1,0x2BC8BA5F,0x8DBFB1EB,
299
+ 0xBC57AB76,0x1A20A0C2,0x8816EAF2,0x2E61E146,0x1F89FBDB,0xB9FEF06F,
300
+ 0x7C59CEE1,0xDA2EC555,0xEBC6DFC8,0x4DB1D47C,0xBBF9A495,0x1D8EAF21,
301
+ 0x2C66B5BC,0x8A11BE08,0x4FB68086,0xE9C18B32,0xD82991AF,0x7E5E9A1B,
302
+ 0xEFC8763C,0x49BF7D88,0x78576715,0xDE206CA1,0x1B87522F,0xBDF0599B,
303
+ 0x8C184306,0x2A6F48B2,0xDC27385B,0x7A5033EF,0x4BB82972,0xEDCF22C6,
304
+ 0x28681C48,0x8E1F17FC,0xBFF70D61,0x198006D5,0x47ABD36E,0xE1DCD8DA,
305
+ 0xD034C247,0x7643C9F3,0xB3E4F77D,0x1593FCC9,0x247BE654,0x820CEDE0,
306
+ 0x74449D09,0xD23396BD,0xE3DB8C20,0x45AC8794,0x800BB91A,0x267CB2AE,
307
+ 0x1794A833,0xB1E3A387,0x20754FA0,0x86024414,0xB7EA5E89,0x119D553D,
308
+ 0xD43A6BB3,0x724D6007,0x43A57A9A,0xE5D2712E,0x139A01C7,0xB5ED0A73,
309
+ 0x840510EE,0x22721B5A,0xE7D525D4,0x41A22E60,0x704A34FD,0xD63D3F49,
310
+ 0xCC1D9F8B,0x6A6A943F,0x5B828EA2,0xFDF58516,0x3852BB98,0x9E25B02C,
311
+ 0xAFCDAAB1,0x09BAA105,0xFFF2D1EC,0x5985DA58,0x686DC0C5,0xCE1ACB71,
312
+ 0x0BBDF5FF,0xADCAFE4B,0x9C22E4D6,0x3A55EF62,0xABC30345,0x0DB408F1,
313
+ 0x3C5C126C,0x9A2B19D8,0x5F8C2756,0xF9FB2CE2,0xC813367F,0x6E643DCB,
314
+ 0x982C4D22,0x3E5B4696,0x0FB35C0B,0xA9C457BF,0x6C636931,0xCA146285,
315
+ 0xFBFC7818,0x5D8B73AC,0x03A0A617,0xA5D7ADA3,0x943FB73E,0x3248BC8A,
316
+ 0xF7EF8204,0x519889B0,0x6070932D,0xC6079899,0x304FE870,0x9638E3C4,
317
+ 0xA7D0F959,0x01A7F2ED,0xC400CC63,0x6277C7D7,0x539FDD4A,0xF5E8D6FE,
318
+ 0x647E3AD9,0xC209316D,0xF3E12BF0,0x55962044,0x90311ECA,0x3646157E,
319
+ 0x07AE0FE3,0xA1D90457,0x579174BE,0xF1E67F0A,0xC00E6597,0x66796E23,
320
+ 0xA3DE50AD,0x05A95B19,0x34414184,0x92364A30 },
321
+
322
+ { 0x00000000,0xCCAA009E,0x4225077D,0x8E8F07E3,0x844A0EFA,0x48E00E64,
323
+ 0xC66F0987,0x0AC50919,0xD3E51BB5,0x1F4F1B2B,0x91C01CC8,0x5D6A1C56,
324
+ 0x57AF154F,0x9B0515D1,0x158A1232,0xD92012AC,0x7CBB312B,0xB01131B5,
325
+ 0x3E9E3656,0xF23436C8,0xF8F13FD1,0x345B3F4F,0xBAD438AC,0x767E3832,
326
+ 0xAF5E2A9E,0x63F42A00,0xED7B2DE3,0x21D12D7D,0x2B142464,0xE7BE24FA,
327
+ 0x69312319,0xA59B2387,0xF9766256,0x35DC62C8,0xBB53652B,0x77F965B5,
328
+ 0x7D3C6CAC,0xB1966C32,0x3F196BD1,0xF3B36B4F,0x2A9379E3,0xE639797D,
329
+ 0x68B67E9E,0xA41C7E00,0xAED97719,0x62737787,0xECFC7064,0x205670FA,
330
+ 0x85CD537D,0x496753E3,0xC7E85400,0x0B42549E,0x01875D87,0xCD2D5D19,
331
+ 0x43A25AFA,0x8F085A64,0x562848C8,0x9A824856,0x140D4FB5,0xD8A74F2B,
332
+ 0xD2624632,0x1EC846AC,0x9047414F,0x5CED41D1,0x299DC2ED,0xE537C273,
333
+ 0x6BB8C590,0xA712C50E,0xADD7CC17,0x617DCC89,0xEFF2CB6A,0x2358CBF4,
334
+ 0xFA78D958,0x36D2D9C6,0xB85DDE25,0x74F7DEBB,0x7E32D7A2,0xB298D73C,
335
+ 0x3C17D0DF,0xF0BDD041,0x5526F3C6,0x998CF358,0x1703F4BB,0xDBA9F425,
336
+ 0xD16CFD3C,0x1DC6FDA2,0x9349FA41,0x5FE3FADF,0x86C3E873,0x4A69E8ED,
337
+ 0xC4E6EF0E,0x084CEF90,0x0289E689,0xCE23E617,0x40ACE1F4,0x8C06E16A,
338
+ 0xD0EBA0BB,0x1C41A025,0x92CEA7C6,0x5E64A758,0x54A1AE41,0x980BAEDF,
339
+ 0x1684A93C,0xDA2EA9A2,0x030EBB0E,0xCFA4BB90,0x412BBC73,0x8D81BCED,
340
+ 0x8744B5F4,0x4BEEB56A,0xC561B289,0x09CBB217,0xAC509190,0x60FA910E,
341
+ 0xEE7596ED,0x22DF9673,0x281A9F6A,0xE4B09FF4,0x6A3F9817,0xA6959889,
342
+ 0x7FB58A25,0xB31F8ABB,0x3D908D58,0xF13A8DC6,0xFBFF84DF,0x37558441,
343
+ 0xB9DA83A2,0x7570833C,0x533B85DA,0x9F918544,0x111E82A7,0xDDB48239,
344
+ 0xD7718B20,0x1BDB8BBE,0x95548C5D,0x59FE8CC3,0x80DE9E6F,0x4C749EF1,
345
+ 0xC2FB9912,0x0E51998C,0x04949095,0xC83E900B,0x46B197E8,0x8A1B9776,
346
+ 0x2F80B4F1,0xE32AB46F,0x6DA5B38C,0xA10FB312,0xABCABA0B,0x6760BA95,
347
+ 0xE9EFBD76,0x2545BDE8,0xFC65AF44,0x30CFAFDA,0xBE40A839,0x72EAA8A7,
348
+ 0x782FA1BE,0xB485A120,0x3A0AA6C3,0xF6A0A65D,0xAA4DE78C,0x66E7E712,
349
+ 0xE868E0F1,0x24C2E06F,0x2E07E976,0xE2ADE9E8,0x6C22EE0B,0xA088EE95,
350
+ 0x79A8FC39,0xB502FCA7,0x3B8DFB44,0xF727FBDA,0xFDE2F2C3,0x3148F25D,
351
+ 0xBFC7F5BE,0x736DF520,0xD6F6D6A7,0x1A5CD639,0x94D3D1DA,0x5879D144,
352
+ 0x52BCD85D,0x9E16D8C3,0x1099DF20,0xDC33DFBE,0x0513CD12,0xC9B9CD8C,
353
+ 0x4736CA6F,0x8B9CCAF1,0x8159C3E8,0x4DF3C376,0xC37CC495,0x0FD6C40B,
354
+ 0x7AA64737,0xB60C47A9,0x3883404A,0xF42940D4,0xFEEC49CD,0x32464953,
355
+ 0xBCC94EB0,0x70634E2E,0xA9435C82,0x65E95C1C,0xEB665BFF,0x27CC5B61,
356
+ 0x2D095278,0xE1A352E6,0x6F2C5505,0xA386559B,0x061D761C,0xCAB77682,
357
+ 0x44387161,0x889271FF,0x825778E6,0x4EFD7878,0xC0727F9B,0x0CD87F05,
358
+ 0xD5F86DA9,0x19526D37,0x97DD6AD4,0x5B776A4A,0x51B26353,0x9D1863CD,
359
+ 0x1397642E,0xDF3D64B0,0x83D02561,0x4F7A25FF,0xC1F5221C,0x0D5F2282,
360
+ 0x079A2B9B,0xCB302B05,0x45BF2CE6,0x89152C78,0x50353ED4,0x9C9F3E4A,
361
+ 0x121039A9,0xDEBA3937,0xD47F302E,0x18D530B0,0x965A3753,0x5AF037CD,
362
+ 0xFF6B144A,0x33C114D4,0xBD4E1337,0x71E413A9,0x7B211AB0,0xB78B1A2E,
363
+ 0x39041DCD,0xF5AE1D53,0x2C8E0FFF,0xE0240F61,0x6EAB0882,0xA201081C,
364
+ 0xA8C40105,0x646E019B,0xEAE10678,0x264B06E6 }
365
+ };
366
+ /*
367
+ U32 powint(U32 value, U32 exponent)
368
+ {
369
+ if (exponent == 0) return 1;
370
+ if (exponent == 1) return value;
371
+
372
+ U32 temp = powint(value, exponent / 2);
373
+
374
+ if (exponent % 2 == 0)
375
+ {
376
+ return temp * temp;
377
+ }
378
+ else
379
+ {
380
+ return value * temp * temp;
381
+ }
382
+ }
383
+
384
+ U32 hash(const char* string)
385
+ {
386
+ U8 i;
387
+ U32 base = 0, alphas = 0, digits = 0, digitsum = 0;
388
+ U32 count[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
389
+ char b = string[base];
390
+
391
+ while(b != '\0')
392
+ {
393
+ ++count[0];
394
+
395
+ if(base > 4 && base <= 8) count[1] += b;
396
+
397
+ if(isalpha(b))
398
+ {
399
+ ++count[2];
400
+ ++alphas;
401
+ }
402
+
403
+ if(base == 1 || base == 4 || base == 6 || base == 10)
404
+ {
405
+ count[3] += b;
406
+ }
407
+
408
+ if(ispunct(b)) ++count[4];
409
+ if(isdigit(b))
410
+ {
411
+ ++count[4];
412
+ ++digits;
413
+ digitsum += atoi(&b);
414
+ }
415
+
416
+ if(base > 0 && base <= 3) count[5] += b;
417
+
418
+ count[7] += b;
419
+ if(b == 'e') ++count[8];
420
+
421
+ count[9] += b;
422
+ if(isdigit(b)) count[9] += atoi(&b);
423
+
424
+ ++base;
425
+ b = string[base];
426
+ }
427
+
428
+ count[0] = count[0] % 4;
429
+ count[6] = (count[0] * 1991) % 10;
430
+
431
+ for(i = 0; i != 9; ++i)
432
+ {
433
+ base += count[i] * (1000000000 / powint(10, i));
434
+ }
435
+
436
+ return base;
437
+
438
+ //
439
+ ret[0] = string character count % 4;
440
+ ret[1] = sum of char's str[5]-str[8] cast to U32's;
441
+ ret[2] = alpha character count;
442
+ ret[3] = sum of first, fourth, sixth, and tenth char's cast to U32's;
443
+ ret[4] = punctuation or digit character count;
444
+ ret[5] = sum of char's str[1]-str[3] cast to U32's;
445
+ ret[6] = (ret[0] * 1991) % 10;
446
+ ret[7] = sum of all char's cast to U32's;
447
+ ret[8] = number of times the letter 'e' occured;
448
+ ret[9] = ret[7] + sum of all digits that occured;
449
+ //
450
+ }
451
+ */
452
+ U32 hash(const char* string)
453
+ {
454
+ U32 length = strlen(string);
455
+ U32* current = (U32*) string;
456
+ U32 crc = ~0;
457
+
458
+ // process eight bytes at once
459
+ while (length >= 8)
460
+ {
461
+ U32 one = *current++ ^ crc;
462
+ U32 two = *current++;
463
+
464
+ crc = crc32_table[7][one& 0xFF] ^
465
+ crc32_table[6][(one >> 8) & 0xFF] ^
466
+ crc32_table[5][(one >> 16) & 0xFF] ^
467
+ crc32_table[4][one >> 24] ^
468
+ crc32_table[3][two & 0xFF] ^
469
+ crc32_table[2][(two >> 8) & 0xFF] ^
470
+ crc32_table[1][(two >> 16) & 0xFF] ^
471
+ crc32_table[0][two >> 24];
472
+
473
+ length -= 8;
474
+ }
475
+ unsigned char* currentChar = (unsigned char*) current;
476
+
477
+ while (length--)
478
+ {
479
+ crc = (crc >> 8) ^ crc32_table[0][(crc & 0xFF) ^ *currentChar++];
480
+ }
481
+
482
+ return ~crc;
483
+ }
484
+
485
+ U32 hashr(const char* string, U32 min, U32 max)
486
+ {
487
+ if(min == max) return min;
488
+
489
+ return min + (hash(string) % (max - min + 1));
490
+ }
491
+
492
+ U32 mother()
493
+ {
494
+ static U8 start = 1;
495
+ static U32 number, matka[5] = { 199112345, 177667890, 444454321,
496
+ 196409876, 987654321 };
497
+
498
+ // initialize on first run
499
+ if(start)
500
+ {
501
+ // get seed val based on milliseconds (previously seconds)
502
+ struct timeval time;
503
+ gettimeofday(&time, NULL);
504
+
505
+ U32 seed = time.tv_usec;
506
+
507
+ // one-line, seed-based, multiply-with-carry
508
+ // assignment loop...whew!
509
+ for(I8 i = 0; i != 4; ++i) matka[i] ^= (seed >> (i * 2));
510
+ start = 0;
511
+ }
512
+
513
+ // perform linear bitshift combinations; mere nanoseconds
514
+ // slower than xorshift, but yields better randoms due to
515
+ // a more globalized array processing technique
516
+ number += (matka[1] << 12) + (matka[2] >> 6)
517
+ + (matka[3] << 10) + (matka[4] >> 8)
518
+ + (matka[0]^(matka[0] >> 7));
519
+
520
+ // shift values in the array toward the front (i.e. "[0]")
521
+ matka[0] = matka[1]; matka[1] = matka[2];
522
+ matka[2] = matka[3]; matka[3] = matka[4];
523
+
524
+ // push new working number onto the back of the array (i.e. "[4]")
525
+ matka[4] = (matka[4]^(matka[4] << 6))^(number^(number << 13));
526
+
527
+ // combine two array indices for further randomization
528
+ return matka[4] + (matka[2] + matka[2] + 4);
529
+ }
530
+
531
+ U32 motherr(U32 min, U32 max)
532
+ {
533
+ if(min == max) return min;
534
+
535
+ return min + (mother() % (max - min + 1));
536
+ }
537
+
538
+ F32 motherf()
539
+ {
540
+ return (F32)(mother() / 4294967295.0);
541
+ }
@@ -0,0 +1,25 @@
1
+ // Interface of the generator file
2
+ //
3
+ // Contents are confined to object synthesis,
4
+ // and randomized object conversions
5
+ //
6
+ // Created by Chris Calo on 7.3.2013
7
+ // Copyright (c) 2012 - 2014, Vulcan Creative, LLC.
8
+ // Original "mother" term coined by George Marsaglia, RIP
9
+
10
+ #ifndef __GENERATOR_Z21Z1VE3_H
11
+ #define __GENERATOR_Z21Z1VE3_H
12
+
13
+ #include "chinwag.h"
14
+
15
+ // custom string to 32-bit integer hashing function
16
+ U32 hash(const char* string);
17
+ U32 hashr(const char* string, U32 min, U32 max);
18
+
19
+ // custom mother-ish RNG; it is mother-like in terms
20
+ // of the quality of the random numbers, but 2.5 times as fast.
21
+ U32 mother();
22
+ U32 motherr(U32 min, U32 max);
23
+ F32 motherf();
24
+
25
+ #endif
@@ -0,0 +1,69 @@
1
+ // Interface of the custom atomics abstraction layer
2
+ //
3
+ // Standardized/hybridized, cross-platform, atomic
4
+ // abstract types. Should be used in place of normal
5
+ // C/C++ built-ins!
6
+ //
7
+ // Created by Chris Calo on 7.3.2013
8
+ // Copyright (c) 2012 - 2014, Vulcan Creative, LLC.
9
+
10
+ #ifndef __INGREDIENT_9TPR28FI_H
11
+ #define __INGREDIENT_9TPR28FI_H
12
+
13
+ #include <xmmintrin.h>
14
+
15
+ #include "chinwag.h"
16
+
17
+ // byte values
18
+ typedef unsigned char Byte;
19
+
20
+ // bool values
21
+ typedef bool B8;
22
+
23
+ // floating-point values
24
+ typedef float F32;
25
+
26
+ // signed integer values
27
+ typedef int8_t I8;
28
+ typedef int16_t I16;
29
+ typedef int32_t I32;
30
+ typedef int64_t I64;
31
+
32
+ // unsigned integer values
33
+ typedef uint8_t U8;
34
+ typedef uint16_t U16;
35
+ typedef uint32_t U32;
36
+ typedef uint64_t U64;
37
+
38
+ // packed 128-bit values
39
+ /*
40
+ class VF128
41
+ {
42
+ public:
43
+ VF128(const __m128& vf);
44
+ VF128(const F32& xyzw = 0.0);
45
+ VF128(const F32& x, const F32& y, const F32& z, const F32& w);
46
+ VF128& operator=(const VF128& righthand);
47
+
48
+ B8 operator!=(const VF128& righthand) const;
49
+ // F32 operator[] (const int& index) const;
50
+ VF128 operator+(const VF128& addend);
51
+ VF128 operator-(const VF128& subtrahend);
52
+ VF128 operator*(const VF128& factor);
53
+ VF128 operator/(const VF128& divisor);
54
+
55
+ __m128 cvalue();
56
+ // F32* as_array();
57
+ void set_zero();
58
+
59
+ private:
60
+ __m128 p_vecfloat;
61
+ };
62
+ */
63
+ // global constants
64
+ // const U32 BYTES = 1;
65
+ // const U32 KILOBYTES = 1024;
66
+ // const U32 MEGABYTES = 1048576;
67
+ // const U32 GIGABYTES = 1073741824;
68
+
69
+ #endif