X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fevaluate.cpp;h=1d52d30cd9ccdb8f746d11eb10d89ebc26ed3dc4;hp=121f2c603293845e3b2ff29998a9e4a4e8c89fbb;hb=7bce8831d361317e0cf5156a888ca2d3e568a2ff;hpb=2f92e3b5251e8da1c573a9860b8f42afca4f9366 diff --git a/src/evaluate.cpp b/src/evaluate.cpp index 121f2c60..1d52d30c 100644 --- a/src/evaluate.cpp +++ b/src/evaluate.cpp @@ -207,7 +207,7 @@ namespace { Score KingDanger[COLOR_NB][128]; - // apply_weight() weights score v by score w trying to prevent overflow + // apply_weight() weighs score 'v' by weight 'w' trying to prevent overflow Score apply_weight(Score v, const Weight& w) { return make_score(mg_value(v) * w.mg / 256, eg_value(v) * w.eg / 256); } @@ -379,10 +379,10 @@ namespace { } // Give a bonus for a rook on a open or semi-open file - if (ei.pi->semiopen(Us, file_of(s))) - score += ei.pi->semiopen(Them, file_of(s)) ? RookOpenFile : RookSemiopenFile; + if (ei.pi->semiopen_file(Us, file_of(s))) + score += ei.pi->semiopen_file(Them, file_of(s)) ? RookOpenFile : RookSemiopenFile; - if (mob > 3 || ei.pi->semiopen(Us, file_of(s))) + if (mob > 3 || ei.pi->semiopen_file(Us, file_of(s))) continue; Square ksq = pos.king_square(Us); @@ -391,8 +391,8 @@ namespace { // king has lost its castling capability. if ( ((file_of(ksq) < FILE_E) == (file_of(s) < file_of(ksq))) && (rank_of(ksq) == rank_of(s) || relative_rank(Us, ksq) == RANK_1) - && !ei.pi->semiopen_on_side(Us, file_of(ksq), file_of(ksq) < FILE_E)) - score -= (TrappedRook - make_score(mob * 8, 0)) * (pos.can_castle(Us) ? 1 : 2); + && !ei.pi->semiopen_side(Us, file_of(ksq), file_of(s) < file_of(ksq))) + score -= (TrappedRook - make_score(mob * 8, 0)) * (1 + !pos.can_castle(Us)); } // An important Chess960 pattern: A cornered bishop blocked by a friendly @@ -924,9 +924,8 @@ namespace { namespace Eval { - /// evaluate() is the main evaluation function. It always computes two - /// values, an endgame score and a middlegame score, and interpolates - /// between them based on the remaining material. + /// evaluate() is the main evaluation function. It returns a static evaluation + /// of the position always from the point of view of the side to move. Value evaluate(const Position& pos) { return do_evaluate(pos);