Author: Steven Edwards
Date: 00:58:33 08/31/03
Go up one level in this thread
On August 31, 2003 at 03:19:07, Uri Blass wrote:
>On August 31, 2003 at 02:21:03, Steven Edwards wrote:
>>11. A two way linked list of the moves leading to the position.
>>
>>12. A two way linked list of the main transposition table hash keys of the
>>previous positions.
>What do you mean by 11 and 12(can you give an example)?
class CTMove includes various flags and:
CTSq myFrSq;
CTSq myToSq;
CTMan myFrMan;
CTMan myToMan;
class CTMoveNode includes CTMove along with:
CTMoveNode *myPrev;
CTMoveNode *myNext;
class CTMoveList has various flags plus:
CTMoveNode *myHead;
CTMoveNode *myTail;
class CTTrack has:
CTHash myMPDHash; // Hash key for main transposition table
class CTTrackNode includes CTTrack along with:
CTTrackNode *myPrev;
CTTrackNode *myNext;
class CTTrackList has;
CTTrackNode *myHead;
CTTrackNode *myTail;
class CTSearch has:
CTMoveList myHistoryMoveList;
CTTrackList myHistoryTrackList;
(There's other items for thread control, parent/child links, and storage
management not mentioned in the above.)
Each class that has CTSearch as a base class gets the two history lists
mentioned above. The move history is useful for accessing the previous moves to
help with move ordering and in other areas. The track history list is used for
position repetition detection. These lists, like other CTSearch instance
variables (e.g., myPly and myDepth), are maintained by the Execute and Retract
methods associated with the CTSearch class. This minimizes the number of formal
parameters that appear in recursive calls to the search. However, a pointer to
the PV, also represented by a CTMoveList object, is passed as a formal parameter
as it is a property of each search node rather than of the search object as a
whole.
All of the above list classes, and some others, use custom allocation routines
for speed and thread safety. Unlike programs with a fixed ply limit, the CT
toolkit does not rely upon fixed length arrays for storing ply indexed items; it
uses lists instead. The special allocation routines ensure quick and efficient
storage recycling and minimal total storage requirements.
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.