Subversion Repositories Games.Chess Giants

Rev

Rev 154 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 154 Rev 169
Line 4... Line 4...
4
  Copyright (C) 2008-2015 Marco Costalba, Joona Kiiski, Tord Romstad
4
  Copyright (C) 2008-2015 Marco Costalba, Joona Kiiski, Tord Romstad
5
  Copyright (C) 2015-2016 Marco Costalba, Joona Kiiski, Gary Linscott, Tord Romstad
5
  Copyright (C) 2015-2018 Marco Costalba, Joona Kiiski, Gary Linscott, Tord Romstad
6
 
6
 
7
  Stockfish is free software: you can redistribute it and/or modify
7
  Stockfish is free software: you can redistribute it and/or modify
8
  it under the terms of the GNU General Public License as published by
8
  it under the terms of the GNU General Public License as published by
9
  the Free Software Foundation, either version 3 of the License, or
9
  the Free Software Foundation, either version 3 of the License, or
10
  (at your option) any later version.
10
  (at your option) any later version.
Line 102... Line 102...
102
  TTEntry* probe(const Key key, bool& found) const;
102
  TTEntry* probe(const Key key, bool& found) const;
103
  int hashfull() const;
103
  int hashfull() const;
104
  void resize(size_t mbSize);
104
  void resize(size_t mbSize);
105
  void clear();
105
  void clear();
106
 
106
 
107
  // The lowest order bits of the key are used to get the index of the cluster
107
  // The 32 lowest order bits of the key are used to get the index of the cluster
108
  TTEntry* first_entry(const Key key) const {
108
  TTEntry* first_entry(const Key key) const {
109
    return &table[(size_t)key & (clusterCount - 1)].entry[0];
109
    return &table[(uint32_t(key) * uint64_t(clusterCount)) >> 32].entry[0];
110
  }
110
  }
111
 
111
 
112
private:
112
private:
113
  size_t clusterCount;
113
  size_t clusterCount;
114
  Cluster* table;
114
  Cluster* table;