/*
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 <sstream>
#include <map>
#include "material.h"
+using std::string;
////
//// Local definitions
namespace {
+ // Values modified by Joona Kiiski
const Value BishopPairMidgameBonus = Value(109);
const Value BishopPairEndgameBonus = Value(97);
EndgameScalingFunctionBase* getESF(Key key, Color* c) const;
private:
- void add(const std::string& keyCode, EndgameEvaluationFunctionBase* f);
- void add(const std::string& keyCode, Color c, EndgameScalingFunctionBase* f);
- Key buildKey(const std::string& keyCode);
+ void add(const string& keyCode, EndgameEvaluationFunctionBase* f);
+ void add(const string& keyCode, Color c, EndgameScalingFunctionBase* f);
+ Key buildKey(const string& keyCode);
struct ScalingInfo
{
<< " bytes for material hash table." << std::endl;
Application::exit_with_failure();
}
- clear();
}
MaterialInfoTable::~MaterialInfoTable() {
- delete [] entries;
delete funcs;
-}
-
-
-/// MaterialInfoTable::clear() clears a material hash table by setting
-/// all entries to 0.
-
-void MaterialInfoTable::clear() {
-
- memset(entries, 0, size * sizeof(MaterialInfo));
+ delete [] entries;
}
add("KRPKRPP", BLACK, &ScaleKRPKRPP);
}
-Key EndgameFunctions::buildKey(const std::string& keyCode) {
+Key EndgameFunctions::buildKey(const string& keyCode) {
assert(keyCode.length() > 0 && keyCode[0] == 'K');
assert(keyCode.length() < 8);
return Position(s.str()).get_material_key();
}
-void EndgameFunctions::add(const std::string& keyCode, EndgameEvaluationFunctionBase* f) {
+void EndgameFunctions::add(const string& keyCode, EndgameEvaluationFunctionBase* f) {
EEFmap.insert(std::pair<Key, EndgameEvaluationFunctionBase*>(buildKey(keyCode), f));
}
-void EndgameFunctions::add(const std::string& keyCode, Color c, EndgameScalingFunctionBase* f) {
+void EndgameFunctions::add(const string& keyCode, Color c, EndgameScalingFunctionBase* f) {
ScalingInfo s = {c, f};
ESFmap.insert(std::pair<Key, ScalingInfo>(buildKey(keyCode), s));