/*
Stockfish, a UCI chess playing engine derived from Glaurung 2.1
Copyright (C) 2004-2008 Tord Romstad (Glaurung author)
- Copyright (C) 2008 Marco Costalba
+ Copyright (C) 2008-2009 Marco Costalba
Stockfish is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include <cassert>
#include <cstring>
+#include "bitcount.h"
#include "pawns.h"
#include "position.h"
};
// Pawn storm open file bonuses by file
- const int KStormOpenFileBonus[8] = { 45, 45, 30, 0, 0, 0, 0, 0 };
- const int QStormOpenFileBonus[8] = { 0, 0, 0, 0, 0, 30, 45, 30 };
+ const int16_t KStormOpenFileBonus[8] = { 45, 45, 30, 0, 0, 0, 0, 0 };
+ const int16_t QStormOpenFileBonus[8] = { 0, 0, 0, 0, 0, 30, 45, 30 };
// Pawn storm lever bonuses by file
const int StormLeverBonus[8] = { 20, 20, 10, 0, 0, 10, 20, 20 };
{
std::cerr << "Failed to allocate " << (numOfEntries * sizeof(PawnInfo))
<< " bytes for pawn hash table." << std::endl;
- exit(EXIT_FAILURE);
+ Application::exit_with_failure();
}
clear();
}
// Test for candidate passed pawn
candidate = !passed
&& pos.file_is_half_open(them, f)
- && ( count_1s_max_15(neighboring_files_bb(f) & (behind_bb(us, r) | rank_bb(r)) & ourPawns)
- - count_1s_max_15(neighboring_files_bb(f) & in_front_bb(us, r) & theirPawns)
+ && ( count_1s_max_15<false>(neighboring_files_bb(f) & (behind_bb(us, r) | rank_bb(r)) & ourPawns)
+ - count_1s_max_15<false>(neighboring_files_bb(f) & in_front_bb(us, r) & theirPawns)
>= 0);
// In order to prevent doubled passed pawns from receiving a too big