1
0
Fork 0

Triviality in struct PieceLetters

And little touches in search() too.

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
sf_2.3.1_base
Marco Costalba 2010-12-24 15:25:11 +01:00
parent d55a5a4d81
commit f97c5b6909
2 changed files with 21 additions and 17 deletions

View File

@ -101,20 +101,23 @@ namespace {
operator[]('B') = WB; operator[]('b') = BB;
operator[]('N') = WN; operator[]('n') = BN;
operator[]('P') = WP; operator[]('p') = BP;
operator[](' ') = PIECE_NONE; operator[]('.') = PIECE_NONE_DARK_SQ;
operator[](' ') = PIECE_NONE;
operator[]('.') = PIECE_NONE_DARK_SQ;
}
char from_piece(Piece p) const {
std::map<char, Piece>::const_iterator it;
for (it = begin(); it != end(); ++it)
if (it->second == p)
return it->first;
std::map<char, Piece>::const_iterator it;
for (it = begin(); it != end(); ++it)
if (it->second == p)
return it->first;
assert(false);
return 0;
assert(false);
return 0;
}
} pieceLetters;
};
PieceLetters pieceLetters;
}

View File

@ -993,7 +993,8 @@ namespace {
threatMove = sp->threatMove;
mateThreat = sp->mateThreat;
goto split_point_start;
} else {} // Hack to fix icc's "statement is unreachable" warning
}
else {} // Hack to fix icc's "statement is unreachable" warning
// Step 1. Initialize node and poll. Polling can abort search
ss->currentMove = ss->bestMove = threatMove = MOVE_NONE;
@ -1145,6 +1146,7 @@ namespace {
threatMove = (ss+1)->bestMove;
if ( depth < ThreatDepth
&& (ss-1)->reduction
&& threatMove != MOVE_NONE
&& connected_moves(pos, (ss-1)->currentMove, threatMove))
return beta - 1;
}
@ -1284,7 +1286,7 @@ split_point_start: // At split points actual search starts from here
continue;
}
// Prune neg. see moves at low depths
// Prune moves with negative SEE at low depths
if ( predictedDepth < 2 * ONE_PLY
&& bestValue > value_mated_in(PLY_MAX)
&& pos.see_sign(move) < 0)
@ -1301,7 +1303,7 @@ split_point_start: // At split points actual search starts from here
// Step extra. pv search (only in PV nodes)
// The first move in list is the expected PV
if (!SpNode && PvNode && moveCount == 1)
if (PvNode && moveCount == 1)
value = -search<PV>(pos, ss+1, -beta, -alpha, newDepth, ply+1);
else
{
@ -1313,9 +1315,11 @@ split_point_start: // At split points actual search starts from here
&& !captureOrPromotion
&& !dangerous
&& !move_is_castle(move)
&& !(ss->killers[0] == move || ss->killers[1] == move))
&& ss->killers[0] != move
&& ss->killers[1] != move)
{
ss->reduction = reduction<PvNode>(depth, moveCount);
if (ss->reduction)
{
alpha = SpNode ? sp->alpha : alpha;
@ -1702,11 +1706,8 @@ split_point_start: // At split points actual search starts from here
Square f1, t1, f2, t2;
Piece p;
assert(move_is_ok(m1));
assert(move_is_ok(m2));
if (m2 == MOVE_NONE)
return false;
assert(m1 && move_is_ok(m1));
assert(m2 && move_is_ok(m2));
// Case 1: The moving piece is the same in both moves
f2 = move_from(m2);