-// Only declared but not defined. We don't want to multiply two scores due to
-// a very high risk of overflow. So user should explicitly convert to integer.
-inline Score operator*(Score s1, Score s2);
-
-// Following are only declared to prevent erroneus instantations
-inline Score operator*(Score s, int i);
-inline Score operator/(Score s1, Score s2);
-inline Score operator+(Score s, int i);
-inline Score operator+(int i, Score s);
-inline Score operator-(Score s, int i);
-inline Score operator-(int i, Score s);
-
-
-////
-//// Constants and variables
-////
-
-/// Piece values, middle game and endgame
-
-/// Important: If the material values are changed, one must also
-/// adjust the piece square tables, and the method game_phase() in the
-/// Position class!
-///
-/// Values modified by Joona Kiiski
-
-const Value PawnValueMidgame = Value(0x0C6);
-const Value PawnValueEndgame = Value(0x102);
-const Value KnightValueMidgame = Value(0x331);
-const Value KnightValueEndgame = Value(0x34E);
-const Value BishopValueMidgame = Value(0x344);
-const Value BishopValueEndgame = Value(0x359);
-const Value RookValueMidgame = Value(0x4F6);
-const Value RookValueEndgame = Value(0x4FE);
-const Value QueenValueMidgame = Value(0x9D9);
-const Value QueenValueEndgame = Value(0x9FE);
-
-const Value PieceValueMidgame[17] = {
- Value(0),
- PawnValueMidgame, KnightValueMidgame, BishopValueMidgame,
- RookValueMidgame, QueenValueMidgame,
- Value(0), Value(0), Value(0),
- PawnValueMidgame, KnightValueMidgame, BishopValueMidgame,
- RookValueMidgame, QueenValueMidgame,
- Value(0), Value(0), Value(0)
-};
-
-const Value PieceValueEndgame[17] = {
- Value(0),
- PawnValueEndgame, KnightValueEndgame, BishopValueEndgame,
- RookValueEndgame, QueenValueEndgame,
- Value(0), Value(0), Value(0),
- PawnValueEndgame, KnightValueEndgame, BishopValueEndgame,
- RookValueEndgame, QueenValueEndgame,
- Value(0), Value(0), Value(0)