Page 1 of 1

UnMakeMove

PostPosted: 29 Sep 2006, 21:05
by smcracraft
Hi -

I am rewriting my program (from scratch alas) and want to
consider (and will test) two types of UnMakeMove.

The first UnMakeMove will do the normal things, downdating
the piece location words (all bitboard).

The second UnMakeMove would simply restore the Board
which consists of the 12 64-bit words, and any other relevant
data, via copying, or changing a link-pointer.

My question is if others have tested the above two ideas
with a bitboard program.

Does removing N IF's, M AND's, and O OR's cost more or
less than copying say 12-20 64-bit words where N, M, and O
are non-trivial numbers say around 5-10.

I'll do the test both ways.

Stuart

Re: UnMakeMove

PostPosted: 29 Sep 2006, 22:13
by bob
smcracraft wrote:Hi -

I am rewriting my program (from scratch alas) and want to
consider (and will test) two types of UnMakeMove.

The first UnMakeMove will do the normal things, downdating
the piece location words (all bitboard).

The second UnMakeMove would simply restore the Board
which consists of the 12 64-bit words, and any other relevant
data, via copying, or changing a link-pointer.

My question is if others have tested the above two ideas
with a bitboard program.

Does removing N IF's, M AND's, and O OR's cost more or
less than copying say 12-20 64-bit words where N, M, and O
are non-trivial numbers say around 5-10.

I'll do the test both ways.

Stuart


The PC has low memory bandwith. The two approaches are known as "Make/Unmake" and "copy/make". In the later, you copy the data structures to ply N+1 and then update them. Eliminating the need for the Unmake. But the cost of the copy is enormous compared to just keeping one set of those board structures in cache and updating them...