X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.h;h=067baa3cf2e0c717f98a3f136f6f13ece186a6bf;hp=fd0c27803ef4537be4ea0c87fd765c11a6eb8bfd;hb=35ada63174bbec6289d6dea6d3cfc5b5f14d1d27;hpb=74160ac60266f9e6824a5a6417d8a0ac8c0b39cf;ds=sidebyside diff --git a/src/evaluate.h b/src/evaluate.h index fd0c2780..067baa3c 100644 --- a/src/evaluate.h +++ b/src/evaluate.h @@ -1,7 +1,7 @@ /* Stockfish, a UCI chess playing engine derived from Glaurung 2.1 Copyright (C) 2004-2008 Tord Romstad (Glaurung author) - Copyright (C) 2008 Marco Costalba + Copyright (C) 2008-2009 Marco Costalba Stockfish is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -25,6 +25,8 @@ //// Includes //// +#include + #include "material.h" #include "pawns.h" @@ -39,30 +41,32 @@ /// arguments to the evaluation function, and the search can make use of its /// contents to make intelligent search decisions. /// -/// At the moment, this is not utilized very much: The only part of the +/// At the moment, this is not utilized very much: The only part of the /// EvalInfo object which is used by the search is futilityMargin. class Position; struct EvalInfo { + EvalInfo() { futilityMargin[0] = futilityMargin[1] = Value(0); } + // Middle game and endgame evaluations - Value mgValue, egValue; + Score value; // Pointers to material and pawn hash table entries MaterialInfo* mi; PawnInfo* pi; // attackedBy[color][piece type] is a bitboard representing all squares - // attacked by a given color and piece type. attackedBy[color][0] contains + // attacked by a given color and piece type, attackedBy[color][0] contains // all squares attacked by the given color. Bitboard attackedBy[2][8]; Bitboard attacked_by(Color c) const { return attackedBy[c][0]; } Bitboard attacked_by(Color c, PieceType pt) const { return attackedBy[c][pt]; } // kingZone[color] is the zone around the enemy king which is considered - // by the king safety evaluation. This consists of the squares directly + // by the king safety evaluation. This consists of the squares directly // adjacent to the king, and the three (or two, for a king on an edge file) - // squares two ranks in front of the king. For instance, if black's king + // squares two ranks in front of the king. For instance, if black's king // is on g8, kingZone[WHITE] is a bitboard containing the squares f8, h8, // f7, g7, h7, f6, g6 and h6. Bitboard kingZone[2]; @@ -89,11 +93,11 @@ struct EvalInfo { Move mateThreat[2]; // Middle game and endgame mobility scores. - Value mgMobility, egMobility; + Score mobility; - // Extra futility margin. This is added to the standard futility margin - // in the quiescence search. - Value futilityMargin; + // Extra futility margin. This is added to the standard futility margin + // in the quiescence search. One for each color. + Value futilityMargin[2]; }; @@ -102,7 +106,6 @@ struct EvalInfo { //// extern Value evaluate(const Position& pos, EvalInfo& ei, int threadID); -extern Value quick_evaluate(const Position& pos); extern void init_eval(int threads); extern void quit_eval(); extern void read_weights(Color sideToMove);