Page 1 of 1

Transposition tables in Cray Blitz

Posted: Tue Sep 27, 2016 1:22 am
by zenpawn
In Computer Chess II, David E. Welsch, Boris Baczynskyj, 1985, the first chapter on Cray Blitz, had this surprising (to me) description of how it used the main transposition table:

"...it first checks the transposition table to determine whether the position is stored. If so, it then checks to see whether the score is valid and if it was generated at a search depth at least two plies greater than the ply depth at which the position is now encountered; ..."

Isn't the usual comparison tt.depth >= depth?

Re: Transposition tables in Cray Blitz

Posted: Tue Sep 27, 2016 3:57 am
by bob
zenpawn wrote:In Computer Chess II, David E. Welsch, Boris Baczynskyj, 1985, the first chapter on Cray Blitz, had this surprising (to me) description of how it used the main transposition table:

"...it first checks the transposition table to determine whether the position is stored. If so, it then checks to see whether the score is valid and if it was generated at a search depth at least two plies greater than the ply depth at which the position is now encountered; ..."

Isn't the usual comparison tt.depth >= depth?
Yep. That's wrong. Don't know where David came up with that. CB did it just like everyone else does it today. The source code is available. Here's a peek:



if(and(ishft(htab2,-(25+hshft)),127)-64.lt.rdepth-ply)

if the above is true (the table depth is LESS_THAN current depth) we do not use the entry. If it is greater-than-or-equal, we do...

So no idea where that came from.

Wait. That might be a mis-interpretation. This sounds like the "hash table to avoid null-move search trick." Which simply asks "if we don't have enough depth to stop the search, do we have enough depth to note that the current entry says "fail low" which says "we should not try a null-move since a real search won't fail high here..."

So perhaps he mangled that???