X-Git-Url: https://git.sesse.net/?p=stockfish;a=blobdiff_plain;f=src%2Fvalue.h;h=f4db35e5d2a9583c517f4624ddf503e22918ecc1;hp=512cc2f90aef7a8d725782a258922ba40bfd8b81;hb=391e176274ecf39ea76550f443ae302687eeaf71;hpb=0e800c527a9773ab986e185dae291695a4ca83ee diff --git a/src/value.h b/src/value.h index 512cc2f9..f4db35e5 100644 --- a/src/value.h +++ b/src/value.h @@ -41,6 +41,7 @@ enum ValueType { enum Value { + VALUE_ZERO = 0, VALUE_DRAW = 0, VALUE_KNOWN_WIN = 15000, VALUE_MATE = 30000, @@ -49,6 +50,8 @@ enum Value { VALUE_ENSURE_SIGNED = -1 }; +ENABLE_OPERATORS_ON(Value); + enum ScaleFactor { SCALE_FACTOR_ZERO = 0, @@ -64,7 +67,14 @@ enum ScaleFactor { // Compiler is free to choose the enum type as long as can keep // its data, so ensure Score to be an integer type. -enum Score { ENSURE_32_BITS_SIZE_P = (1 << 16), ENSURE_32_BITS_SIZE_N = -(1 << 16)}; +enum Score { + SCORE_ZERO = 0, + SCORE_ENSURE_32_BITS_SIZE_P = (1 << 16), + SCORE_ENSURE_32_BITS_SIZE_N = -(1 << 16) +}; + +ENABLE_OPERATORS_ON(Score); + // Extracting the _signed_ lower and upper 16 bits it not so trivial // because according to the standard a simple cast to short is @@ -113,23 +123,23 @@ const Value QueenValueMidgame = Value(0x9D9); const Value QueenValueEndgame = Value(0x9FE); const Value PieceValueMidgame[17] = { - Value(0), + VALUE_ZERO, PawnValueMidgame, KnightValueMidgame, BishopValueMidgame, RookValueMidgame, QueenValueMidgame, - Value(0), Value(0), Value(0), + VALUE_ZERO, VALUE_ZERO, VALUE_ZERO, PawnValueMidgame, KnightValueMidgame, BishopValueMidgame, RookValueMidgame, QueenValueMidgame, - Value(0), Value(0), Value(0) + VALUE_ZERO, VALUE_ZERO, VALUE_ZERO }; const Value PieceValueEndgame[17] = { - Value(0), + VALUE_ZERO, PawnValueEndgame, KnightValueEndgame, BishopValueEndgame, RookValueEndgame, QueenValueEndgame, - Value(0), Value(0), Value(0), + VALUE_ZERO, VALUE_ZERO, VALUE_ZERO, PawnValueEndgame, KnightValueEndgame, BishopValueEndgame, RookValueEndgame, QueenValueEndgame, - Value(0), Value(0), Value(0) + VALUE_ZERO, VALUE_ZERO, VALUE_ZERO }; /// Bonus for having the side to move (modified by Joona Kiiski) @@ -153,28 +163,12 @@ inline Value value_mated_in(int ply) { return -VALUE_MATE + ply; } -inline bool is_upper_bound(ValueType vt) { - return (int(vt) & int(VALUE_TYPE_UPPER)) != 0; -} - -inline bool is_lower_bound(ValueType vt) { - return (int(vt) & int(VALUE_TYPE_LOWER)) != 0; -} - -inline Value piece_value_midgame(PieceType pt) { - return PieceValueMidgame[pt]; -} - -inline Value piece_value_endgame(PieceType pt) { - return PieceValueEndgame[pt]; -} - -inline Value piece_value_midgame(Piece p) { - return PieceValueMidgame[p]; +inline int is_upper_bound(ValueType vt) { + return vt & VALUE_TYPE_UPPER; } -inline Value piece_value_endgame(Piece p) { - return PieceValueEndgame[p]; +inline int is_lower_bound(ValueType vt) { + return vt & VALUE_TYPE_LOWER; } #endif // !defined(VALUE_H_INCLUDED)