X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fmaterial.cpp;h=e2c64ff76e40006e9f93b4fb0c31c013c5e955dd;hp=a0097d135c2a9b5e8741df74f37a7fc0bc503e5d;hb=553655eb073cdd59c726dd77fcf368d499029467;hpb=a695ed65a8b98c94a928862be76500485b38c414 diff --git a/src/material.cpp b/src/material.cpp index a0097d13..e2c64ff7 100644 --- a/src/material.cpp +++ b/src/material.cpp @@ -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-2010 Marco Costalba, Joona Kiiski, Tord Romstad + Copyright (C) 2008-2012 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 @@ -84,12 +84,6 @@ namespace { } // namespace -/// MaterialInfoTable c'tor and d'tor allocate and free the space for Endgames - -void MaterialInfoTable::init() { Base::init(); if (!funcs) funcs = new Endgames(); } -MaterialInfoTable::~MaterialInfoTable() { delete funcs; } - - /// MaterialInfoTable::material_info() takes a position object as input, /// computes or looks up a MaterialInfo object, and returns a pointer to it. /// If the material configuration is not already present in the table, it @@ -203,13 +197,13 @@ MaterialInfo* MaterialInfoTable::material_info(const Position& pos) const { // No pawns makes it difficult to win, even with a material advantage if (pos.piece_count(WHITE, PAWN) == 0 && npm_w - npm_b <= BishopValueMidgame) { - mi->factor[WHITE] = uint8_t + mi->factor[WHITE] = (uint8_t) (npm_w == npm_b || npm_w < RookValueMidgame ? 0 : NoPawnsSF[std::min(pos.piece_count(WHITE, BISHOP), 2)]); } if (pos.piece_count(BLACK, PAWN) == 0 && npm_b - npm_w <= BishopValueMidgame) { - mi->factor[BLACK] = uint8_t + mi->factor[BLACK] = (uint8_t) (npm_w == npm_b || npm_b < RookValueMidgame ? 0 : NoPawnsSF[std::min(pos.piece_count(BLACK, BISHOP), 2)]); } @@ -231,7 +225,7 @@ MaterialInfo* MaterialInfoTable::material_info(const Position& pos) const { { pos.piece_count(BLACK, BISHOP) > 1, pos.piece_count(BLACK, PAWN), pos.piece_count(BLACK, KNIGHT), pos.piece_count(BLACK, BISHOP) , pos.piece_count(BLACK, ROOK), pos.piece_count(BLACK, QUEEN) } }; - mi->value = int16_t((imbalance(pieceCount) - imbalance(pieceCount)) / 16); + mi->value = (int16_t)((imbalance(pieceCount) - imbalance(pieceCount)) / 16); return mi; }