No functional change.
"8/3p3B/5p2/5P2/p7/PP5b/k7/6K1 w - - 0 1",
// 5-man positions
- "8/8/8/8/5kp1/P7/8/1K1N4 w - - 0 1", // Kc2 - mate
- "8/8/8/5N2/8/p7/8/2NK3k w - - 0 1", // Na2 - mate
- "8/3k4/8/8/8/4B3/4KB2/2B5 w - - 0 1", // draw
+ "8/8/8/8/5kp1/P7/8/1K1N4 w - - 0 1", // Kc2 - mate
+ "8/8/8/5N2/8/p7/8/2NK3k w - - 0 1", // Na2 - mate
+ "8/3k4/8/8/8/4B3/4KB2/2B5 w - - 0 1", // draw
+
// 6-man positions
- "8/8/1P6/5pr1/8/4R3/7k/2K5 w - - 0 1", // Re5 - mate
- "8/2p4P/8/kr6/6R1/8/8/1K6 w - - 0 1", // Ka2 - mate
- "8/8/3P3k/8/1p6/8/1P6/1K3n2 b - - 0 1", // Nd2 - draw
+ "8/8/1P6/5pr1/8/4R3/7k/2K5 w - - 0 1", // Re5 - mate
+ "8/2p4P/8/kr6/6R1/8/8/1K6 w - - 0 1", // Ka2 - mate
+ "8/8/3P3k/8/1p6/8/1P6/1K3n2 b - - 0 1", // Nd2 - draw
+
// 7-man positions
"8/R7/2q5/8/6k1/8/1P5p/K6R w - - 0 124", // Draw
};
int seeds[][RANK_NB] = { { 8977, 44560, 54343, 38998, 5731, 95205, 104912, 17020 },
{ 728, 10316, 55013, 32803, 12281, 15100, 16645, 255 } };
+
Bitboard occupancy[4096], reference[4096], edges, b;
int i, size;
#ifndef MISC_H_INCLUDED
#define MISC_H_INCLUDED
+#include <cassert>
#include <ostream>
#include <string>
#include <vector>
/// This class is based on original code written and dedicated
/// to the public domain by Sebastiano Vigna (2014).
/// It has the following characteristics:
+///
/// - Outputs 64-bit numbers
/// - Passes Dieharder and SmallCrush test batteries
/// - Does not require warm-up, no zeroland to escape
/// - Internal state is a single 64-bit integer
/// - Period is 2^64 - 1
/// - Speed: 1.60 ns/call (Core i7 @3.40GHz)
+///
/// For further analysis see
/// <http://vigna.di.unimi.it/ftp/papers/xorshift.pdf>
class PRNG {
- uint64_t x;
+ uint64_t s;
uint64_t rand64() {
- x^=x>>12; x^=x<<25; x^=x>>27;
- return x * 2685821657736338717LL;
+
+ s ^= s >> 12, s ^= s << 25, s ^= s >> 27;
+ return s * 2685821657736338717LL;
}
public:
- PRNG(uint64_t seed) : x(seed) { assert(seed); }
+ PRNG(uint64_t seed) : s(seed) { assert(seed); }
template<typename T> T rand() { return T(rand64()); }
/// Special generator used to fast init magic numbers.
/// Output values only have 1/8th of their bits set on average.
- template<typename T> T sparse_rand() { return T(rand64() & rand64() & rand64()); }
+ template<typename T> T sparse_rand()
+ { return T(rand64() & rand64() & rand64()); }
};
#endif // #ifndef MISC_H_INCLUDED
#include <sstream>
#include "bitcount.h"
+#include "misc.h"
#include "movegen.h"
#include "position.h"
#include "psqtab.h"
-#include "misc.h"
#include "thread.h"
#include "tt.h"
#include "uci.h"
#include <sstream>
#include "evaluate.h"
+#include "misc.h"
#include "movegen.h"
#include "movepick.h"
-#include "misc.h"
#include "search.h"
#include "timeman.h"
#include "thread.h"