X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmaterial.h;h=b472c3fd266c362cd0b032448908475b20291ec2;hp=21adf964877762b40b793e64c0b8625aaea94f48;hb=e5cfa14f40a38d99d11a9c048c34858e3145fbcd;hpb=42b48b08e81b55e385e55b3074b7c59d81809a45 diff --git a/src/material.h b/src/material.h index 21adf964..b472c3fd 100644 --- a/src/material.h +++ b/src/material.h @@ -2,6 +2,7 @@ Stockfish, a UCI chess playing engine derived from Glaurung 2.1 Copyright (C) 2004-2008 Tord Romstad (Glaurung author) Copyright (C) 2008-2015 Marco Costalba, Joona Kiiski, Tord Romstad + Copyright (C) 2015-2019 Marco Costalba, Joona Kiiski, Gary Linscott, 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 @@ -40,7 +41,7 @@ struct Entry { Score imbalance() const { return make_score(value, value); } Phase game_phase() const { return gamePhase; } - bool specialized_eval_exists() const { return evaluationFunction != NULL; } + bool specialized_eval_exists() const { return evaluationFunction != nullptr; } Value evaluate(const Position& pos) const { return (*evaluationFunction)(pos); } // scale_factor takes a position and a color as input and returns a scale factor @@ -49,17 +50,17 @@ struct Entry { // the position. For instance, in KBP vs K endgames, the scaling function looks // for rook pawns and wrong-colored bishops. ScaleFactor scale_factor(const Position& pos, Color c) const { - - return !scalingFunction[c] || (*scalingFunction[c])(pos) == SCALE_FACTOR_NONE - ? ScaleFactor(factor[c]) : (*scalingFunction[c])(pos); + ScaleFactor sf = scalingFunction[c] ? (*scalingFunction[c])(pos) + : SCALE_FACTOR_NONE; + return sf != SCALE_FACTOR_NONE ? sf : ScaleFactor(factor[c]); } Key key; + const EndgameBase* evaluationFunction; + const EndgameBase* scalingFunction[COLOR_NB]; // Could be one for each + // side (e.g. KPKP, KBPsK) int16_t value; uint8_t factor[COLOR_NB]; - EndgameBase* evaluationFunction; - EndgameBase* scalingFunction[COLOR_NB]; // Could be one for each - // side (e.g. KPKP, KBPsKs) Phase gamePhase; };