1
0
Fork 0

Introduce namespace Bitbases

Let's continue this namespace galore...

No functional change.

Signed-off-by: Marco Costalba <mcostalba@gmail.com>
sf_2.3.1_base
Marco Costalba 2012-08-18 13:04:43 +01:00
parent 2c1ba2ab0d
commit 7c1f8dbde9
4 changed files with 15 additions and 11 deletions

View File

@ -62,14 +62,14 @@ namespace {
}
uint32_t probe_kpk_bitbase(Square wksq, Square wpsq, Square bksq, Color stm) {
uint32_t Bitbases::probe_kpk(Square wksq, Square wpsq, Square bksq, Color stm) {
int idx = index(wksq, bksq, wpsq, stm);
return KPKBitbase[idx / 32] & (1 << (idx & 31));
}
void kpk_bitbase_init() {
void Bitbases::init_kpk() {
Result db[IndexMax];
KPKPosition pos;

View File

@ -25,8 +25,15 @@
namespace Bitboards {
extern void init();
extern void print(Bitboard b);
void init();
void print(Bitboard b);
}
namespace Bitbases {
void init_kpk();
uint32_t probe_kpk(Square wksq, Square wpsq, Square bksq, Color stm);
}

View File

@ -20,14 +20,13 @@
#include <algorithm>
#include <cassert>
#include "bitboard.h"
#include "bitcount.h"
#include "endgame.h"
#include "movegen.h"
using std::string;
extern uint32_t probe_kpk_bitbase(Square wksq, Square wpsq, Square bksq, Color stm);
namespace {
// Table used to drive the defending king towards the edge of the board
@ -223,7 +222,7 @@ Value Endgame<KPK>::operator()(const Position& pos) const {
wpsq = mirror(wpsq);
}
if (!probe_kpk_bitbase(wksq, wpsq, bksq, stm))
if (!Bitbases::probe_kpk(wksq, wpsq, bksq, stm))
return VALUE_DRAW;
Value result = VALUE_KNOWN_WIN
@ -893,5 +892,5 @@ ScaleFactor Endgame<KPKP>::operator()(const Position& pos) const {
// Probe the KPK bitbase with the weakest side's pawn removed. If it's a draw,
// it's probably at least a draw even with the pawn.
return probe_kpk_bitbase(wksq, wpsq, bksq, stm) ? SCALE_FACTOR_NONE : SCALE_FACTOR_DRAW;
return Bitbases::probe_kpk(wksq, wpsq, bksq, stm) ? SCALE_FACTOR_NONE : SCALE_FACTOR_DRAW;
}

View File

@ -28,8 +28,6 @@
#include "tt.h"
#include "ucioption.h"
void kpk_bitbase_init();
int main(int argc, char* argv[]) {
std::cout << engine_info() << std::endl;
@ -37,7 +35,7 @@ int main(int argc, char* argv[]) {
UCI::init(Options);
Bitboards::init();
Position::init();
kpk_bitbase_init();
Bitbases::init_kpk();
Search::init();
Threads.init();
Eval::init();