From c0fb31cac340ce59451ea11bf8c82aa0fe8126f8 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 10 Jan 2015 11:53:59 +0000 Subject: [PATCH] rm misc.h --- src/bitboard.cpp | 11 ++----- src/misc.h | 85 ------------------------------------------------ 2 files changed, 3 insertions(+), 93 deletions(-) delete mode 100644 src/misc.h diff --git a/src/bitboard.cpp b/src/bitboard.cpp index 6ab90124..34e04001 100644 --- a/src/bitboard.cpp +++ b/src/bitboard.cpp @@ -22,7 +22,7 @@ #include "bitboard.h" #include "bitcount.h" -#include "misc.h" +//#include "misc.h" int SquareDistance[SQUARE_NB][SQUARE_NB]; @@ -245,9 +245,6 @@ namespace { void init_magics(Bitboard table[], Bitboard* attacks[], Bitboard magics[], Bitboard masks[], unsigned shifts[], Square deltas[], Fn index) { - 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; @@ -288,14 +285,12 @@ namespace { if (HasPext) continue; - - PRNG rng(seeds[Is64Bit][rank_of(s)]); - + // Find a magic for square 's' picking up an (almost) random number // until we find the one that passes the verification test. do { do - magics[s] = rng.sparse_rand(); + magics[s] = 0ULL; while (popcount((magics[s] * masks[s]) >> 56) < 6); std::memset(attacks[s], 0, size * sizeof(Bitboard)); diff --git a/src/misc.h b/src/misc.h deleted file mode 100644 index d8b1f9d6..00000000 --- a/src/misc.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - Stockfish, a UCI chess playing engine derived from Glaurung 2.1 - Copyright (C) 2004-2008 Tord Romstad (Glaurung author) - Copyright (C) 2008-2014 Marco Costalba, Joona Kiiski, Tord Romstad - - Stockfish is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - Stockfish is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -#ifndef MISC_H_INCLUDED -#define MISC_H_INCLUDED - -#include -#include -#include -#include - -#include "types.h" - -const std::string engine_info(bool to_uci = false); -void prefetch(char* addr); -void start_logger(bool b); - -void dbg_hit_on(bool b); -void dbg_hit_on_c(bool c, bool b); -void dbg_mean_of(int v); -void dbg_print(); - -template -struct HashTable { - HashTable() : table(Size, Entry()) {} - Entry* operator[](Key key) { return &table[(uint32_t)key & (Size - 1)]; } - -private: - std::vector table; -}; - - -/// xorshift64star Pseudo-Random Number Generator -/// 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 -/// - -class PRNG { - - uint64_t s; - - uint64_t rand64() { - - s ^= s >> 12, s ^= s << 25, s ^= s >> 27; - return s * 2685821657736338717LL; - } - -public: - PRNG(uint64_t seed) : s(seed) { assert(seed); } - - template 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 T sparse_rand() - { return T(rand64() & rand64() & rand64()); } -}; - -#endif // #ifndef MISC_H_INCLUDED