X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmaterial.h;h=7ba3b7de00c4760fe16fa51df00d3d1bef7d4fd3;hp=4ebd78fd5bb033ddb80063db3bced3e93b82114e;hb=a96cba0ec89e5a3bbd435fccca652678c9fd20a7;hpb=6e8bd8bf2d77eeb4414b6e533559dbda1f0211c9 diff --git a/src/material.h b/src/material.h index 4ebd78fd..7ba3b7de 100644 --- a/src/material.h +++ b/src/material.h @@ -7,12 +7,12 @@ it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - + Stockfish is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with this program. If not, see . */ @@ -52,18 +52,20 @@ public: Value mg_value() const; Value eg_value() const; ScaleFactor scale_factor(const Position& pos, Color c) const; + int space_weight() const; bool specialized_eval_exists() const; Value evaluate(const Position& pos) const; private: void clear(); - + Key key; int16_t mgValue; int16_t egValue; uint8_t factor[2]; - EndgameEvaluationFunction* evaluationFunction; - ScalingFunction* scalingFunction[2]; + EndgameEvaluationFunctionBase* evaluationFunction; + EndgameScalingFunctionBase* scalingFunction[2]; + uint8_t spaceWeight; }; @@ -120,6 +122,7 @@ inline void MaterialInfo::clear() { mgValue = egValue = 0; factor[WHITE] = factor[BLACK] = uint8_t(SCALE_FACTOR_NORMAL); + spaceWeight = 0; evaluationFunction = NULL; scalingFunction[WHITE] = scalingFunction[BLACK] = NULL; } @@ -144,6 +147,15 @@ inline ScaleFactor MaterialInfo::scale_factor(const Position& pos, Color c) cons } +/// MaterialInfo::space_weight() simply returns the weight for the space +/// evaluation for this material configuration. + +inline int MaterialInfo::space_weight() const { + + return spaceWeight; +} + + /// MaterialInfo::specialized_eval_exists decides whether there is a /// specialized evaluation function for the current material configuration, /// or if the normal evaluation function should be used.