Struct myopic_brain::negascout::Scout [−][src]
pub struct Scout<'a, T, B, M> where
T: SearchTerminator,
B: EvalChessBoard,
M: MoveQualityEstimator<B>, { pub terminator: &'a T, pub ordering_hints: &'a OrderingHints<B>, pub transposition_table: &'a mut TranspositionTable, pub move_quality_estimator: M, pub board_type: PhantomData<B>, }
Fields
terminator: &'a T
The terminator is responsible for deciding when the search is complete
ordering_hints: &'a OrderingHints<B>
Precomputed hints for helping to order moves generated for positions in the search tree. These can be thought of as ‘pure’ hints which aren’t changed during the search.
transposition_table: &'a mut TranspositionTable
Cache of search information for all nodes in the tree which is shared across searches during an iterative deepening run. It can be thought of as transient information to give further hints for ordering and to skip searches if we already have sufficient information for that part of the tree.
move_quality_estimator: M
Used for performing an initial sort on the moves generated in each position for optimising the search
board_type: PhantomData<B>
Placeholder to satisfy the compiler because of the ‘unused’ type parameter for the board
Implementations
impl<T, B, M> Scout<'_, T, B, M> where
T: SearchTerminator,
B: EvalChessBoard,
M: MoveQualityEstimator<B>,
[src]
impl<T, B, M> Scout<'_, T, B, M> where
T: SearchTerminator,
B: EvalChessBoard,
M: MoveQualityEstimator<B>,
[src]pub fn search(
&mut self,
root: &mut B,
ctx: SearchContext
) -> Result<SearchResponse>
[src]
pub fn search(
&mut self,
root: &mut B,
ctx: SearchContext
) -> Result<SearchResponse>
[src]Auto Trait Implementations
impl<'a, T, B, M> RefUnwindSafe for Scout<'a, T, B, M> where
B: RefUnwindSafe,
M: RefUnwindSafe,
T: RefUnwindSafe,
B: RefUnwindSafe,
M: RefUnwindSafe,
T: RefUnwindSafe,
impl<'a, T, B, M> Send for Scout<'a, T, B, M> where
B: Sync,
M: Send,
T: Sync,
B: Sync,
M: Send,
T: Sync,
impl<'a, T, B, M> Sync for Scout<'a, T, B, M> where
B: Sync,
M: Sync,
T: Sync,
B: Sync,
M: Sync,
T: Sync,
impl<'a, T, B, M> Unpin for Scout<'a, T, B, M> where
B: Unpin,
M: Unpin,
B: Unpin,
M: Unpin,
impl<'a, T, B, M> !UnwindSafe for Scout<'a, T, B, M>
Blanket Implementations
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut Tⓘ
[src]
pub fn borrow_mut(&mut self) -> &mut Tⓘ
[src]Mutably borrows from an owned value. Read more