/*
Stockfish, a UCI chess playing engine derived from Glaurung 2.1
Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
- Copyright (C) 2008-2009 Marco Costalba
+ Copyright (C) 2008-2010 Marco Costalba, Joona Kiiski, Tord Romstad
Stockfish is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
//// Includes
////
+#include <iostream>
+
#include "material.h"
#include "pawns.h"
struct EvalInfo {
+ EvalInfo() { margin[WHITE] = margin[BLACK] = VALUE_ZERO; }
+
// Middle game and endgame evaluations
- Value mgValue, egValue;
+ Score value;
// Pointers to material and pawn hash table entries
MaterialInfo* mi;
// 2 to kingAdjacentZoneAttacksCount[BLACK].
int kingAdjacentZoneAttacksCount[2];
- // mateThreat[color] is a move for the given side which gives a direct mate.
- Move mateThreat[2];
-
- // Middle game and endgame mobility scores.
- Value mgMobility, egMobility;
-
- // Extra futility margin. This is added to the standard futility margin
- // in the quiescence search.
- Value futilityMargin;
+ // Value of the score margin we should consider for the given color
+ Value margin[2];
};
//// Prototypes
////
-extern Value evaluate(const Position& pos, EvalInfo& ei, int threadID);
-extern Value quick_evaluate(const Position& pos);
+extern Value evaluate(const Position& pos, EvalInfo& ei);
extern void init_eval(int threads);
extern void quit_eval();
extern void read_weights(Color sideToMove);