mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 16:53:09 +00:00
rm misc.h
This commit is contained in:
parent
45295d3718
commit
c0fb31cac3
2 changed files with 3 additions and 93 deletions
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
#include "bitboard.h"
|
#include "bitboard.h"
|
||||||
#include "bitcount.h"
|
#include "bitcount.h"
|
||||||
#include "misc.h"
|
//#include "misc.h"
|
||||||
|
|
||||||
int SquareDistance[SQUARE_NB][SQUARE_NB];
|
int SquareDistance[SQUARE_NB][SQUARE_NB];
|
||||||
|
|
||||||
|
@ -245,9 +245,6 @@ namespace {
|
||||||
void init_magics(Bitboard table[], Bitboard* attacks[], Bitboard magics[],
|
void init_magics(Bitboard table[], Bitboard* attacks[], Bitboard magics[],
|
||||||
Bitboard masks[], unsigned shifts[], Square deltas[], Fn index) {
|
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;
|
Bitboard occupancy[4096], reference[4096], edges, b;
|
||||||
int i, size;
|
int i, size;
|
||||||
|
|
||||||
|
@ -289,13 +286,11 @@ namespace {
|
||||||
if (HasPext)
|
if (HasPext)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
PRNG rng(seeds[Is64Bit][rank_of(s)]);
|
|
||||||
|
|
||||||
// Find a magic for square 's' picking up an (almost) random number
|
// Find a magic for square 's' picking up an (almost) random number
|
||||||
// until we find the one that passes the verification test.
|
// until we find the one that passes the verification test.
|
||||||
do {
|
do {
|
||||||
do
|
do
|
||||||
magics[s] = rng.sparse_rand<Bitboard>();
|
magics[s] = 0ULL;
|
||||||
while (popcount<Max15>((magics[s] * masks[s]) >> 56) < 6);
|
while (popcount<Max15>((magics[s] * masks[s]) >> 56) < 6);
|
||||||
|
|
||||||
std::memset(attacks[s], 0, size * sizeof(Bitboard));
|
std::memset(attacks[s], 0, size * sizeof(Bitboard));
|
||||||
|
|
85
src/misc.h
85
src/misc.h
|
@ -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 <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef MISC_H_INCLUDED
|
|
||||||
#define MISC_H_INCLUDED
|
|
||||||
|
|
||||||
#include <cassert>
|
|
||||||
#include <ostream>
|
|
||||||
#include <string>
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#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<class Entry, int Size>
|
|
||||||
struct HashTable {
|
|
||||||
HashTable() : table(Size, Entry()) {}
|
|
||||||
Entry* operator[](Key key) { return &table[(uint32_t)key & (Size - 1)]; }
|
|
||||||
|
|
||||||
private:
|
|
||||||
std::vector<Entry> 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
|
|
||||||
/// <http://vigna.di.unimi.it/ftp/papers/xorshift.pdf>
|
|
||||||
|
|
||||||
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<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()); }
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // #ifndef MISC_H_INCLUDED
|
|
Loading…
Add table
Reference in a new issue