Author: Russell Reagan
Date: 01:26:12 02/20/03
Go up one level in this thread
This is just a guess, but maybe you could do some kind of trick with
redefinition? On your webpage, you describe it.
"HINT: WB and BB are zeroed at the beginning of EVAL, this is a costly operation
in C, here is a trick to speed it up using redefinition:
unsigned char WB[64],BB[64];
long *PWB = (long *) WB; // redefine char (8-bit) to long
(32-bit)
long *PBB = (long *) BB;
PWB[0]=PWB[1]=PWB[2] ..... =PWB[15]=0; // 16 x 32-bit stores, clear WB
PBB[0]=PBB[1]=PBB[2] ..... =PBB[15]=0; // 16 x 32-bit stores, clear BB
This is about 8-10 times faster then the usual:
for (x=0; x<=63; x++) { WB[x]=0; BB[x]=0; }
Make sure that your compiler's alignment at least is set to 32 bit so that the
generated memory addresses of WB and BB are divisible by 4. In most compilers
the default setting is 32 or 64 bit which is okay."
Since your values are 8-bit chars, it is possible that there could be a trick to
speed up the search, by looking at 4 bytes at a time. Or maybe not :)
Russell
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.