Thanks, that helps. So item 3) is the situation where we have an alpha write. I understand your post, where I have a problem is as follows....Aaron Becker wrote:Ignoring quiescence for now, (hashing inside quiescent search is a whole other discussion) there are three cases for hash writes:
1) The search failed high (ie, a move returned a value above the search window). The resulting score is a lower bound on the true, infinite window score of the node.
2) The search returned a value inside the search window. The result is exact.
3) The search failed low (ie, no move returned a value greater than alpha). The result is an upper bound on the true score of the node.
Unless you record this information in the hash table, you don't know what the number you record as the node's score actually means, and therefore you can't ensure that your transposition cutoffs are sound.
In the situation where a hash probe turns up a match on the key, but the stored depth that the position has been searched to is less than the current depth to be searched, then instead of returning a value, we have a hashMove to play, right? Can we be sure that there will be a hash move to play. Is it possible that this could be an alpha entry? if the answer is yes, then how could there be a move stored if there was no move which caused an alpha update? make sense?