-
Notifications
You must be signed in to change notification settings - Fork 0
/
hash.h
209 lines (202 loc) · 18.2 KB
/
hash.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
#ifndef HASH_H_INCLUDED
#define HASH_H_INCLUDED
#define hashfEXACT 0
#define hashfALPHA 1
#define hashfBETA 2
#define valINCONNUE 100000
#define HASH_TABLE_SIZE 2097152
U64 hash_table[2][7][120]; //table de hashage (codes)
U64 droit_aux_roques[16]; //hashcode roques
U64 val_en_passant[120]; //code case en passant (position ^= val_en_passant[ep]
U64 val_couleur[2]; //code couleur noir ou blanc
U64 hash_position; //hash code de la position
//table de hashage
typedef struct tag_HASHE
{
U64 key; //codes positions
int depth; //profondeur
int flag; //exact , alpha ou beta
int value; //evaluation
MOVE *best; //meilleur coup
} HASHE;
HASHE tt[HASH_TABLE_SIZE + 1]; //table de transposition
//nombres 64 bits pour encodage
static const U64 jeu_de_valeurs_64_bits[850] =
{
0x64D79B552A559D7F, 0x44A572665A6EE240, 0xEB2BF6DC3D72135C, 0xE3836981F9F82EA0, 0x43A38212350EE392,
0xCE77502BFFCACF8B, 0x5D8A82D90126F0E7, 0xC0510C6F402C1E3C, 0x48D895BF8B69F77B, 0x8D9FBB371F1DE07F,
0x1126B97BE8C91CE2, 0xF05E1C9DC2674BE2, 0xE4D5327A12874C1E, 0x7C1951EA43A7500D, 0xBBA2BBFBECBC239A,
0xC5704350B17F0215, 0x823A67C5F88337E7, 0xD9BF140BFEB4C1A9, 0x9FBE3CFCD1F08059, 0xDC29309412E352B9,
0x5A0FF7908B1B3C57, 0x46F39CB43B126C55, 0x9648168491F3B126, 0xDD3E72538FD39A1C, 0xD65A3663FC9B0898,
0x421EE7823C2AF2EB, 0xCBA3A4B69B6ED152, 0x0348399B7D2B8428, 0xBDB750BF00C34A38, 0xCF36D95EAE514F52,
0x7B9231D5308D7534, 0xB225E28CFC5AA663, 0xA833F6D5C72448A4, 0xDAA565F5815DE899, 0x4B051D1E4CC78EB8,
0x97FCD1B4D342E575, 0xEF6A48BE001729C7, 0x3982F1FA31AFEAB8, 0xFDC570BA2FE979FB, 0xB57697121DFDFE93,
0x96524E209B767C29, 0x55AAD0EBCA994043, 0xB22687B88856B63E, 0xB313B667A4D999D6, 0x07C7FA1BD6FD7DEA,
0x0EE9F4C15C57E92A, 0xC5FB71B8F4BF5F56, 0xA251F93A4B335492, 0xB9BAD7F9E5B07BEF, 0x62FC9AC35CCDE7AA,
0x933792382B0218A3, 0x7D497D2F7A15EAF8, 0xB2F0624214F522A2, 0xD9895BBB810EC3D6, 0x22D91B683F251121,
0xC8FE9A347247AFFD, 0x3462898A2AE7B001, 0x468BC3A10A34890C, 0x84FF6CE56552B185, 0xED95FF232C511188,
0x4869BE47A8137C83, 0x934606951E6FCD81, 0x1AB5E8E453BDE710, 0x6386B61B30FA1157, 0x97F3A778E242D0CF,
0xD870D281B293AF3D, 0xC3A5F903A836FAFD, 0x088BD6A24D49CD77, 0x4E38DDC2719162A5, 0xF48286B4F22CAD94,
0x080F6F650C337557, 0x05E6DAF6AAE1AD59, 0x7450F7229F336762, 0xB75B43FB4C81784A, 0xEBD37A514F153148,
0x0D4B3A39E0BC52C7, 0x562F36FAE610A2E1, 0x0E0E413E555BD736, 0xD452549EFE08402D, 0xF2E2FF7BE2C75E21,
0xF2385606C18AAF0D, 0xDB609B507D8C6B8B, 0x74AC5663C6C4F45B, 0x0D84C9A356858060, 0x19D5B3643BC029B6,
0x0DD8131E97FFC842, 0xFA7303606BFFFC05, 0xF98C6D63FF48A16E, 0x054987110489B3F0, 0x83490EF054537F7E,
0xE071F833E55EBFE6, 0x0D4B94537ED4A6AA, 0x3CF85E4E333966FD, 0xBA15364649384016, 0xC0E6BD623CA72405,
0xDAE6E879B8EAB74A, 0xE4A41F17E70D3E0A, 0x56E10C00DD580F70, 0xA9A66BB41781D872, 0x58E42DBDFFE21573,
0x69450E1CE9674E6A, 0x47FE345A350AA605, 0xAC958AA80455A5A4, 0xBC1ABCA3FBEEB2F3, 0x08F760D9228900A4,
0x9E1EB8A2DFEC4387, 0xE91BD1321F5FDC89, 0xDA11A24C514B9DC7, 0xB1F63D976E0E639B, 0x41C11098F6123861,
0x3D7736979F978F68, 0x0820685B38C926BE, 0x0E8C3DCAB075B112, 0x5E37299D89089BA4, 0xA1F735EB8235B32F,
0x2289D719E7B146EE, 0x1C9C9D0284D96719, 0x5F8B358546775BE8, 0x317E34C009A07A39, 0xB16B073EB0EE0A19,
0x423B36FD459F2A66, 0x5F45053666F3F84F, 0x63E7074F03C73D92, 0x22080CF23288E895, 0xBA4E71BF61DAC16F,
0x9643B3707DB2CFB5, 0x98E2DB6C665E7178, 0xCBC57DE0EF3EABB6, 0x6239A2197582A8A8, 0xF2AE968E55FDA13D,
0x36E7AC11D1F3A617, 0x508F0ACB609BD756, 0x6F42D435193A1AC2, 0x2DF2CAB9D65E0B00, 0x4584C1FDE5F1AD55,
0x602C500BDC8317C2, 0xC80D5B04F6337337, 0x98ABCF971892A773, 0x5D33CF557E6C4475, 0x05B5A78BE74CCD40,
0x3EC2CCE5290785F4, 0x2EEF1E9C4B36828B, 0xDD274241A0CE8C55, 0x3C4CB919B35C221C, 0xC1FD68D779DB9923,
0x7FF345B4EB7F3639, 0x804D5881B2EEFEF3, 0xA15F9C2826CB34DB, 0x64822B68ADEFA772, 0x761E92F8D279850D,
0xA5D049AB1061DBA3, 0x5F46FB02D10D2219, 0xC1CDAA5F9CA79B19, 0xDD713A74701EBE60, 0x6B626EC963951798,
0x1D3EC8D78B96D16D, 0xDB885D52960E7F34, 0xE39849CF3EA178F8, 0xC1E37ACDF807130B, 0x3645880EBF333913,
0x3AF81A7BEC346C22, 0x871C563E94324804, 0xAC55FB5E2817DB4C, 0x035B04C42565EBE2, 0x5094CAFAB11CBC3A,
0x94D40A57481346B5, 0x0F91A8492DF723E3, 0x126A70B84F779ACC, 0x4409E9A5D5C3F133, 0xB1655339864151EF,
0x6564E506D11E9DE1, 0xD9A06F7B8860B488, 0x0D493E410B68B6C6, 0x4E6FBF4B3B985A07, 0x71C1B0BA9E52A2DE,
0x5775784AD3CB99D9, 0xBAB84CEC312107A6, 0xD9066F5CCD59CF9E, 0x8C656651DBB3ED84, 0xA7448D0059484568,
0x2819237E5E8CB03A, 0xD57EAF5239931B4B, 0x6CD436FD5F7C1E73, 0xF03B845F2A584931, 0x8847B9F1F2D55B7A,
0xD49A38F8E59DB8FA, 0xD5052CC47685DBFA, 0x91E060FB399ECF2C, 0x5748FBEA12DD2869, 0xD0CEE85ADB889226,
0xA35E9DFA5A64F56A, 0x3118398BD0E3CBF0, 0x5E650B9A3CB34308, 0xF575CCBEBF49B91C, 0xB3F8DD73257C80E2,
0x13D7954E8294819B, 0x90B57CCD00F1591D, 0xA8B13EF52CA7E284, 0xE482D24E5B239833, 0xB0648475F2B4D63F,
0x847E8FC889E2389B, 0xA8B501EE1FC59BA6, 0x29702F6ACBA4379E, 0xFABA9600F3D2CD0F, 0x52ED7D9F45C6B578,
0xA02B167546D6E2D0, 0x9A41CB166618A390, 0x83D464D7349D9F3A, 0x805485C9D2C70C6C, 0x332F7CE3E077ECCE,
0x1EAD372C068EBB04, 0xD6866C5B3B5EB82C, 0x5B057C64BDA94A33, 0x11E1388F59653C66, 0xFFD2ACA771C0ABB8,
0x2FABDD0E8E8BA606, 0xE974FFD57219E5E6, 0x2B4E5C1E5F98E506, 0xE7819B2CB44DB4C0, 0x6CBD78C408376520,
0x244285F39307F083, 0xD152927F3A3AF853, 0x5B799885A8BA66E3, 0x9300DA64EA1A0644, 0x67399BF8688A0CAB,
0x047C301AF4A94BB2, 0x6750ECDF35C8471B, 0x7598AE5C876D4080, 0x269E0CF307467534, 0x2EF4D8DCAEDBC549,
0x2C6983C911C958AF, 0xB2FD7C07AE0BFA60, 0x3220A56D67450E80, 0x7385883420EB9F69, 0xDB1FD2951F15B047,
0x0F08B35DF55977BC, 0x42939B9F2E58127E, 0x4D1D77E72414AA9A, 0xFD8137F8B59BD084, 0x167CC7F46A511504,
0x0263DE0C6B50290D, 0x2A1C2FEB488FFAB8, 0x1194815038360D85, 0x36374630D0ECB4E8, 0x609D38E22C59A974,
0xEE23867F7C9B5F54, 0x40E53A7804B0EF15, 0x8F287F1A3BE6E458, 0xBA7334B0F0AF9E75, 0x09F003E8E0E9C6C0,
0xC02DD0D35C42BC56, 0x63DCA83ACD6BE04A, 0x9617B58A79FDD826, 0x563D25E6F891BB33, 0xE3C3D3F3F6D58588,
0x359977BAA315B1B4, 0x0DF431301D9E6BC5, 0x4074BB10D0003CA5, 0xF440159140F2B453, 0x3A6CC6E14820F5E2,
0x4B352BDACF3A37C4, 0x9EF3B8DF89EA4C29, 0x8A1B2495A1414892, 0x670B7F423F78B7C9, 0x7513C7CCF6EE3C3A,
0x9BA96CB53C24408B, 0x3316C3DC4EC859F0, 0x501337E1A7F1E218, 0x9A1544A6029C1EB5, 0x9B43B15859C3E96F,
0x058011E22698BD4B, 0x589B8EAEA60D54A4, 0x68CCB8C6CD7EC24D, 0xE55BEB5896455705, 0xBA6069CF90A8F1E2,
0x896A18C3EB90A6D6, 0x870D3D80AE0B9323, 0x48688D8B457F501B, 0x8F1A8C1B84B3BA62, 0xD1B7B64DC136F6B3,
0x3C6A7025428547E9, 0x199BCC50A190FB6F, 0xA5DE0EED4BDA0979, 0x31041667821CDDB5, 0xE9DF34E2678FB4E3,
0xDD7222EAEE54E524, 0xAAE6488B26C7AF56, 0xE8A560DBBD2EB6B3, 0xE37C99A7F5DEFCEA, 0x1572BE8D78F3AFAC,
0xF69FFB64131633AE, 0xA837AE34963616FB, 0xAF0A9F03D137C170, 0x0D3E02B464018A48, 0x11753AEA03BB0ECD,
0x32D9CCA610DCEB34, 0x2622BB6A6E7A11E3, 0xDC99A44C515EC8B3, 0xD7D720AD0A770B28, 0xE322F742D6D051C2,
0x745F2B6E3EA9CD2B, 0x951F21478E6B9662, 0x227F21D8C0713385, 0x0CB729235E6876EE, 0xD323B857D9721A53,
0xB2F5F599EB743346, 0x0EFB30BABE65A283, 0x94C1190DA321D470, 0x117C63209FBA9EFE, 0x738CF92BAA4BC2CD,
0xC3BDD29B33277165, 0xD78A2FAB38F6DC46, 0x35C44AAFDEFB91E2, 0x321E26BF321FB60B, 0x12DB436288B37172,
0x158A2D49E51C261A, 0xC9202AC8BA71C873, 0xD02FA93DC97CC7B7, 0x1F8BD11B747E901E, 0xF7A17B2F74AA321C,
0x284D02D7552A3E90, 0xEB86A8251533C574, 0xB3FD774EAF4E77F8, 0x31DF2951C3FF37B1, 0x86E38546195A69E7,
0x6737AAF165A1389A, 0x2E2E925079FEEE0F, 0xF7BD5A988596C1BB, 0xCCF835DB6A10D2DF, 0x6F42700F37C94701,
0xA6E86F7BA2779A5C, 0x0A43A4F7036D1EC2, 0xD798BD6D52AD26DA, 0x218F6912AF38B818, 0xD48684F266F2E186,
0x8F675048B7B012E5, 0xE5E469AAC68EAF1D, 0xE2740035697DE79E, 0xC22D6BD6D08BAF1D, 0x341774636BDC8F41,
0x7DFC6B73F7BA322B, 0x7566343607BB525B, 0xAE94D116CCF1E74B, 0x6CA1B59934CC2697, 0x4C2FB1C45B749CED,
0x989999BBDD2EC893, 0xCC4E27AFA81BC8A8, 0x6DDADF15EBF85830, 0x38FA9CB2CE72BC16, 0xACDAFFE39DB4BBDA,
0xBCC4682EBD095D93, 0x1F7495A5F36C34CE, 0x4F0FC9647D99AFD7, 0x5AC375EC59321CF2, 0x5C07CE6DF7E1D9A2,
0x49F211880D688B4C, 0xF85FDD8CCAD0867A, 0x7D510164D8F197A8, 0xC64108C5732CFA0E, 0xB262D660D3A2C648,
0xD5D5614571DD2EFA, 0x0EC1A6D0DD5D5391, 0xBF07D939D2535F02, 0x035BCE3021E51045, 0x423AE115EC99D154,
0x22EA1D3ABD893838, 0x517FC1107EAA6A83, 0xC5967CDF353AEAC6, 0x096AE2C3DFF65CE6, 0xAB1B908B97DC911B,
0xF3D84C286F22611C, 0x256823815030D8A2, 0x3BD9B119887342E4, 0x59926F3401F437D4, 0x74EDF41038D3986F,
0xE2B35BF615038253, 0x4D09740A6B44DB89, 0xA37EDAF089C0EEAB, 0x8263BA2C23E2D62D, 0x8784AFF57D390C3C,
0xFB49AB0635D66C3A, 0xDEBA73C2562BFF1C, 0xE2E6BF8CB6E29717, 0x0E70431C63D86E46, 0x20D717E16AAE6010,
0x031AF57CDCF2CD36, 0xD55FBEEF1C5357FE, 0xD361D871F4E393FE, 0xB3416E718D32D214, 0x7B351F93F909FC00,
0x16916DE7B96A26BD, 0x4FEC1248B5DEDB65, 0xFAE1AA9A62BFA096, 0x92E7910A6B0084A9, 0xD12BBA8672E8AAA9,
0x316558D69EFC8F6B, 0xB0DDE29EB96FEE87, 0x2125A2BE5BF67EB3, 0x5905903F46531FE4, 0x2A9927E8175FF60F,
0x794376F2BB5D6D96, 0xFA9F65D2B4848B12, 0x2B92665A263A5091, 0xABCACCFAB8464C65, 0x05B2FB2A46D1A0BD,
0xA879920D28C0D54C, 0x50394088A8EA4953, 0x61B0C87F0084129D, 0x29EBCD1078D6E2B0, 0x2440C652F6BACF89,
0xBD74D596CF4C8EB1, 0xE4B009E5C334766B, 0x07DB26843CF72CB8, 0x4171D5EDD5468876, 0x608D5C2C348C143C,
0xA19E0A2B81DA6EB5, 0xB65A7BE9354C1390, 0xF4F4C437CB9BB324, 0xFC24806650C823BD, 0x4C2331521E7F2966,
0x54F66E42EB73BAFE, 0xF06C11F3D2FE29AE, 0x8BA8D0F28CBB0FCB, 0xF3617850D1AE7976, 0x96463B47CD9A7286,
0x8EDC2133B35C3779, 0xAE43F70F181D9371, 0xE7628D75C9A3C2E7, 0x978499BA4193B333, 0x99BB4BF79B0A46C1,
0x4C52676D7E4D0A58, 0x2064EE3910693DEE, 0xFC43514D16633997, 0x1BC1741CE05C4CCE, 0x6E9588D40F3396F6,
0x146FE816BB3A3708, 0x2B3DB8EE05EEFA87, 0x6EC21A91189EC0C0, 0xA8A907B34108FAF1, 0x708B80912235684F,
0x2BC8BA70EDFE680C, 0x4D118826481266EF, 0x8F93A3A5DE887175, 0x3308E9133A950FE3, 0x939ED8B0D7E91F87,
0x666BEEE64002B6B0, 0xC8F129EC69CE7811, 0xD57593C68CE93EA0, 0x02D6A3E66EDCC862, 0xBE1D00D16A2271A6,
0x34FBEAF95E0C673F, 0x9845AB59483A0E86, 0x257D47D5ABF88962, 0x28AF39F39319545B, 0xE3FCE03ABD8171EE,
0xA4C5F606DCCC96F1, 0x4D414846267C4962, 0x6CCF77F81D9DBF70, 0x947BF43C729A71EC, 0xFD656C39C4FA824C,
0x8F652CF2D1E04FD6, 0x8CB11929A65B6AEE, 0x094948F16A8064DA, 0x7434E703A4D03D5F, 0x9361D3F63AF4AA35,
0xA998C1EEEC3FB422, 0x51EB94754B5992A2, 0x6E109C0347EF6979, 0xE3C9738D67C582E2, 0x9C735E3857EC57BF,
0xBE6415659E12C64B, 0x73924584E31B9099, 0x8F676821E60B0945, 0x5614E3A695D5289D, 0x7ECD448787517EBA,
0xC96DB02038DBAF5B, 0x03384608FB96024E, 0x0B4ACE5A8EA16AC8, 0xBF2F4F23A6C92295, 0x90BDC4F1E931656C,
0x7CD5B0B95AC34D3A, 0x2032BC59D3DC1710, 0x702C1A0CD5609379, 0x609D33ABC01FF3FE, 0x8AE5D8F283B2748B,
0x2CF3778FA7EAAE1D, 0xE8A0D7B1919DF9E3, 0xE487894F6D602A0B, 0x929858549609626A, 0x46E540CD86BF46E7,
0xD1DAF4382128D9EA, 0xC47239C06B22EF75, 0x8B7AAD8FFEA1B991, 0xD6C1D2E315273FA0, 0x2FDA11CD74177E6B,
0x333CB0A145919FD7, 0x5970B31A49F37B16, 0x7890BC68793BB959, 0x2A060F45A1719347, 0xEB298F0264BF379D,
0xD7C4FD7921707400, 0x374635E7713ED165, 0xC60C008DF0296D05, 0xBF13739A8D3C7DBB, 0xBFB945EF1CF94D1D,
0x75FE953C3A3A8315, 0x09F83064F4150C02, 0x6784A3B452055343, 0x73ED26D185738F51, 0x6C59094E8C998390,
0xEADE93E19D60D4B5, 0x8CF7CC8E62BC869D, 0x22F85626F7F69298, 0x6679C449AC22EDC0, 0x7017D0003E897435,
0x308FC450A6C62BF8, 0x2578B45BC6F34CAB, 0xCBB936C9D253DB39, 0xC4E70E5BBC5E002C, 0x29DB6985BE6C9459,
0x96AFE876F5F6250C, 0x829F766F138F95E6, 0x4369632017C8FA0D, 0x0DA90C817CA890A2, 0x38D160DD675E2376,
0x20DF15AD986408EA, 0xD192623C3D9B3F41, 0xD846F79123BAF4AA, 0x6CB058A0EDFBF056, 0x1B192F0BE8DC77A7,
0x3A11B3DFCC81A441, 0xE914410093AD7767, 0x3126257E578BDF60, 0xD5D5E470410CB6EA, 0x4E1BF5D4209248AE,
0xE1E4C2924F35192E, 0xAC9944825CB7EF5E, 0x8D2CBE6996EB3475, 0x1BC05D2A079592D7, 0x564A9F06755E71F3,
0x9BB767D68E9F2537, 0xE4B045ACF13978A2, 0x4B7519CB9028AC83, 0x9DF655284198B85C, 0xDC32AB4D421A2B61,
0x4C5D7F5323C1960C, 0xE4273FF318F5C7B3, 0xD73EF5EA88A3E99E, 0xDA2FFB6A863C850B, 0x9555A4144E05AD82,
0x950104DC15092EBF, 0x39D121A61F19DBFE, 0xC6804E29D60D7814, 0x7E98BEC5BA17D58B, 0x8B2C6B0E6C3B749A,
0x0301A07C84AACCDB, 0x93DEE719932225A3, 0x381611A50BAC0AE1, 0x572A8816F6E407B4, 0x0420EFE85AA75232,
0xC1F53F78B9FFCF4D, 0xBEDA53BC95B96EC3, 0x9F357114059C8EAB, 0xE38239260B584150, 0xCCBCA17F4EED2AD0,
0x1528080B61F54198, 0x5B8CDC4C40D49F30, 0x1617DB48EB6640D0, 0x6FED27F88A516C99, 0x37056E05B4724179,
0xEC7BC122DA9538D8, 0x9FBFE01CA2C0FD57, 0x2FC96B31DCCAFD9F, 0xE26A72009DAA1249, 0xE9FB2E3998D16A25,
0x4A87DC39D24133AE, 0xD5340E98FDE806DE, 0x272B62B5DD0D7FE3, 0xCA4625581BF9DBE1, 0x8677AF77DE374A90,
0x27DBEC9E28F857ED, 0xB4AEFC44D036612A, 0xCF2E8EBDB0F6BB11, 0x76023506C94E0532, 0x864E72D4488C7A7A,
0x0B81058FDAC18FD3, 0xDF93EE5B6674A0F4, 0xDB30565511789D77, 0xCF5FE22DC0375F30, 0xA6E62E6E4EDB4043,
0xBCE383957A728669, 0xFE4DD4E9633DB2C6, 0x24E68818B2A6D6CD, 0x048A89C5424B4CDB, 0x7FC7BC75BBBE5768,
0x79596343191E0FF2, 0x5510B9CD8306839F, 0xFF2668B4EAE7BB53, 0xB4C03E6363C9E244, 0xC9E3C0C1C015EB6F,
0x52531F5F898A744F, 0x0484005B2A805083, 0x31673B70C6F23C53, 0x5BFFE158F323A7C2, 0xC742BC0D0C55F125,
0xD95C32FE7E18379D, 0xC1F2F613EE3C2E21, 0x3217A43FF0DAAA0E, 0x3A9FA27258257E53, 0x80B42AF5A393BCF2,
0xB6967FD6A302F65E, 0xFDC07BC592DBB125, 0xCB83B8B9F64C3C3B, 0x9CB572B041015355, 0xC12DC512AEDC530C,
0xC8DB824276C083CE, 0x86923B0E2903627F, 0x1385CF2BE22827CD, 0x21B7616CED869EF1, 0xC74D497D079901E6,
0x9E03C843BB13F658, 0x915B89077A81EC7F, 0x288A10B00768D244, 0xD88EB6745A557569, 0xB3C98071A3D13B20,
0x8F23AFF44D352F03, 0x2BF39CA10E45BDBB, 0x0F1BEA47E2C68A4C, 0xF8D5AB01C1AD6B55, 0x679E0601953D1E31,
0xD793F3AACB3C520F, 0x96FC350CCDB76EAB, 0x9FA0178362DF447B, 0xC11C63FEBF83598A, 0x3AA88DF3A1A71323,
0xF2F89F104C9D0B8D, 0x32A2133050A71357, 0xFFECF97CA3FF65E1, 0xFB6FD13318F5CB79, 0x3ACF76875ACAD366,
0xC577FFFF529F74CF, 0x368A90182031DD12, 0xAFBF2311AD656D52, 0x80CD4F9F23FCAFDD, 0x451717A061972D1F,
0x0BBCBDAE779CFBF3, 0x133CA541293FD40D, 0x6F241A21FC40B108, 0x9ADECBCF0C28110B, 0xFAB528D93BAC6D3A,
0xF4EA3D459B0654AA, 0x7E2E9EF35A5AAFBA, 0x28730469EDED0FC7, 0x3CBAE97A12632FBE, 0xDED6960C0BE007A8,
0x2A11758A7C52C43E, 0x289DE4875BDA262D, 0x6E13EEA58CAF3FA7, 0x020C8ED0D5D673C1, 0xDB4B3E7719D523B6,
0x49143C819D111FC3, 0xE07479F9DDF45D8E, 0x68F4654BCC07435B, 0x513BD537AF510064, 0xCF956C3A3933BA38,
0x97E1EAA33F88EECC, 0x18BE860A2504A1C5, 0x84408412FC0BF397, 0x0B6BDBA7E154BDF7, 0x1D8F8B446B544BE6,
0x6F06B3DCDEF17A03, 0x30C6E14DF59F8CEF, 0x01C97BA9910219CF, 0x33DDCC087D1AEB5C, 0xE31B94300CFBCBCF,
0x0ADEB8A98786BB28, 0x3F69D5B0E3EC8F17, 0x99F5A15F635296A6, 0xCE9FAC7526862E86, 0x3A88964201BD7524,
0xEC94D643EA71BE51, 0xC4257084D97AB1C5, 0xF369B10A73B4D382, 0xAC02BB473DBC5FD1, 0x4FE73A86D95D7222,
0x858806616FE3D553, 0x10680DEBCB0693E4, 0xCAA9AAC77C954093, 0xF29C7530415D71E5, 0xC32B319E09DE9E48,
0x1C67107ED497EBC4, 0x731DA71593324021, 0x49774770588C055A, 0xF978DFDC28084220, 0x058B3F2780B5A7EC,
0xE4EBF2CA21410715, 0xD3841ED97708421F, 0x0DBC9401DC51EB4E, 0xF47A96DE499AA2E1, 0x224DA94D8542BA0C,
0xA3426A80B4DD0A4A, 0x857CAEF48EF7E5B6, 0x11356AD6EDE44BF5, 0x1A32471BD26ACD7A, 0x199396E31DE7B358,
0xB7CA7950DBBB4A92, 0x6AB23720409790A7, 0x2ABFDB93A3159D10, 0x23913B403946C4A7, 0xAC7C9F339A822344,
0x12CFFE9625CBE744, 0x89558B98548B1946, 0x77BE65945C191139, 0x3BA8D1FC701F4347, 0xB143664560327F20,
0x48BACCC3EF2081FF, 0x450C379D24BEB8E9, 0x1990B609485DB827, 0x6C6A565D7129CCB4, 0xF9724A82872BD619,
0xCFE629AA56717E20, 0xFDE48D87E844EC93, 0xB32F79E5DC9CE4C1, 0x7C9D88364238519F, 0xE943ACEBA65150F9,
0x5301E8550CBDD076, 0xABB8392364453B3C, 0xDFB4B4A3CF84AA2D, 0x269E45F7A6B48A42, 0xD6783043AB383FCF,
0xE4EC475D296A69E5, 0xE2E273EF65555361, 0x6BD3084210A75AF7, 0xF2EBC493B909D8C7, 0x4D20F3D435E9BC94,
0xA465E41C3C36D433, 0xC1B259456F4341C0, 0x260093703D6CF2EB, 0xDA68D9DEA0AA9BDA, 0x5662A12A210B2A47,
0x54675BD1A1B4B467, 0x9DBD416302EC2468, 0x3C7130A5032D823A, 0xABFDEF2D9A4FD92F, 0xD4034E276021451F,
0x13834D3D0E43AB73, 0xDC181442B438B2D6, 0x1736FFB392C25E23, 0x289B94003A946252, 0x99705629B221CA37,
0xA7B22A5BB26775D6, 0x2DC12F9F04435661, 0xAADD48B556BC9E7C, 0xF6992E8E94B68A49, 0xD50420466C9456E3,
0x0EA8305ECDFB1266, 0xFE0B1D7E4F0EF297, 0x563DE834C4E56A46, 0xC62B8099B5B264C6, 0xF6E76AEAF533C784,
0x0D4680470B790968, 0x288A50754707431E, 0x8AD167ED38DF547E, 0x9052FED81A8CA4FA, 0x5975AC56F0548EF1,
0x588BF7D0130111AE, 0x9EC02036A6688A24, 0x8C9A454AF9E09984, 0x333EE6727BD12DCB, 0x9847468F925DC38C,
0x446ED5203696ABAC, 0x71FDDF9EF5B5DEF6, 0xD4D61614CC333541, 0xD08A0694CD7F72A7, 0x686CFE3EA1889281,
0xF039404E0DD3333F, 0x052C620EB18B4246, 0x4E4DE47F86D84713, 0xFE0450396B209851, 0x99D6E893B01ED92B,
0xD94CF8705F8EBA86, 0x763451110C00291B, 0xDF4F60B9AA45D064, 0xF473D4BFD86AD526, 0x41B9E3FA1A6DBA94,
0xBAA7CDEB00796A4A, 0xF668194C40626450, 0xB894E0AE40A9C87F, 0x5BC1EEA8587D3DDB, 0xC4C0ECB91BB50D75,
0x819FDFD17FF2917B, 0x681484E54B6B12F7, 0x2F510AA2F8977995, 0x7D1582A293B8FA3D, 0x3DAD5A0F0DA45470,
0x33C113AEFB480520, 0xBD524B2DA7CE6C1F, 0xE4CC051D00D8DDC0, 0x2995950E206EFA90, 0x8B0E5DCA588E3F50,
0xAABB3583F7F87082, 0x75DBBECFA34CB4D6, 0xF195977068849AE8, 0x9223CA6FBB72767C, 0xDA7211029D59F04E,
0x18D9987C6566405C, 0x57833AA39EF75A04, 0xD1750E36481F654B, 0x0CE2B66BC8796ACB, 0xC7E79AA76C96B057,
0x68F95B6B3C5CDC1D, 0x2F5725CF5FC583AE, 0x6B973013FD4484A6, 0xAAEB2687F2D8BB96, 0xAD29CCE061BA3934,
0xCB60DD1C437EB1D9, 0x5CD6F46B78181BB4, 0x1561CDC95ACE24D9, 0xBB774E6705806245, 0xDC29C8DF29B2E975,
0x6EE5BA502839DCCD, 0x670869BB64C60F69, 0x008CA2931E927AE7, 0x35CF6C0A27D8DE77, 0x94A3D86209AF3920,
0x4095A276475DF5B7, 0x1119E4C257CCF7FB, 0x33376166D9064FE8, 0xD68C2399F968B905, 0xB7BF2902F40FC101,
0x4EC18604CFD551E0, 0xEB8E7FE1B6678E99, 0xDCFE68FC0E042FA6, 0xD2E58DFB1A8E3866, 0xF4322BC57FB9A35A,
0xE0C665C8CF1FB49B, 0x60DE1F1050684297, 0xF400C04CB00784CD, 0xFC2A216F12016984, 0xA808B477FD65FB4A,
0xD9B614ADFCB5D0F1, 0x50AFDBC66E3EFAD2, 0x82337B3F1764851C, 0xDC98850EB93EF45E, 0xE1C314BBC2C6AF27,
0x8D8325E82C4FDCDC, 0xB47A658DAD8E13A4, 0x88710BF005FDA027, 0x69BD3EDAF7111200, 0x0DCCDD0C65C810FF
};
//fonctions
void init_hash_table();
U64 init_code_position();
int probe_hash(int depth, int alpha, int beta);
void save_hash(int depth, int val, int hashf, MOVE *pbest);
#endif // HASH_H_INCLUDED