projects
/
stockfish
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d2acdac
)
Minor cleanup to recent 'Flag critical search tree in hash table' patch
author
mstembera
<MissingEmail@email>
Wed, 9 Jan 2019 15:27:47 +0000
(07:27 -0800)
committer
Stéphane Nicolet
<cassio@free.fr>
Thu, 10 Jan 2019 15:36:59 +0000
(16:36 +0100)
No functional change
src/search.cpp
patch
|
blob
|
history
src/tt.cpp
patch
|
blob
|
history
diff --git
a/src/search.cpp
b/src/search.cpp
index b7e04fad2b22484ec2237e9d1f3ecdd81aece60a..519782f8471349ec765a3f6682db054482525601 100644
(file)
--- a/
src/search.cpp
+++ b/
src/search.cpp
@@
-643,7
+643,7
@@
namespace {
ttValue = ttHit ? value_from_tt(tte->value(), ss->ply) : VALUE_NONE;
ttMove = rootNode ? thisThread->rootMoves[thisThread->pvIdx].pv[0]
: ttHit ? tte->move() : MOVE_NONE;
ttValue = ttHit ? value_from_tt(tte->value(), ss->ply) : VALUE_NONE;
ttMove = rootNode ? thisThread->rootMoves[thisThread->pvIdx].pv[0]
: ttHit ? tte->move() : MOVE_NONE;
- pvHit = ttHit
? tte->pv_hit() : false
;
+ pvHit = ttHit
&& tte->pv_hit()
;
// At non-PV nodes we check for an early TT cutoff
if ( !PvNode
// At non-PV nodes we check for an early TT cutoff
if ( !PvNode
@@
-881,7
+881,7
@@
namespace {
tte = TT.probe(posKey, ttHit);
ttValue = ttHit ? value_from_tt(tte->value(), ss->ply) : VALUE_NONE;
ttMove = ttHit ? tte->move() : MOVE_NONE;
tte = TT.probe(posKey, ttHit);
ttValue = ttHit ? value_from_tt(tte->value(), ss->ply) : VALUE_NONE;
ttMove = ttHit ? tte->move() : MOVE_NONE;
- pvHit = ttHit
? tte->pv_hit() : false
;
+ pvHit = ttHit
&& tte->pv_hit()
;
}
moves_loop: // When in check, search starts from here
}
moves_loop: // When in check, search starts from here
@@
-1292,7
+1292,7
@@
moves_loop: // When in check, search starts from here
tte = TT.probe(posKey, ttHit);
ttValue = ttHit ? value_from_tt(tte->value(), ss->ply) : VALUE_NONE;
ttMove = ttHit ? tte->move() : MOVE_NONE;
tte = TT.probe(posKey, ttHit);
ttValue = ttHit ? value_from_tt(tte->value(), ss->ply) : VALUE_NONE;
ttMove = ttHit ? tte->move() : MOVE_NONE;
- pvHit = ttHit
? tte->pv_hit() : false
;
+ pvHit = ttHit
&& tte->pv_hit()
;
if ( !PvNode
&& ttHit
if ( !PvNode
&& ttHit
diff --git
a/src/tt.cpp
b/src/tt.cpp
index d05de9163164faa62f307c3ae16565094c62f152..aa57efb600d062b4d772ef3cc20e661f38bb9c92 100644
(file)
--- a/
src/tt.cpp
+++ b/
src/tt.cpp
@@
-122,7
+122,7
@@
TTEntry* TranspositionTable::probe(const Key key, bool& found) const {
for (int i = 0; i < ClusterSize; ++i)
if (!tte[i].key16 || tte[i].key16 == key16)
{
for (int i = 0; i < ClusterSize; ++i)
if (!tte[i].key16 || tte[i].key16 == key16)
{
- tte[i].genBound8 = uint8_t(generation8 |
tte[i].pv_hit() << 2 | tte[i].bound(
)); // Refresh
+ tte[i].genBound8 = uint8_t(generation8 |
(tte[i].genBound8 & 0x7
)); // Refresh
return found = (bool)tte[i].key16, &tte[i];
}
return found = (bool)tte[i].key16, &tte[i];
}
@@
-131,8
+131,8
@@
TTEntry* TranspositionTable::probe(const Key key, bool& found) const {
TTEntry* replace = tte;
for (int i = 1; i < ClusterSize; ++i)
// Due to our packed storage format for generation and its cyclic
TTEntry* replace = tte;
for (int i = 1; i < ClusterSize; ++i)
// Due to our packed storage format for generation and its cyclic
- // nature we add 263 (2
63 is the modulus plus 7 to keep the lowest
- //
two bound
bits from affecting the result) to calculate the entry
+ // nature we add 263 (2
56 is the modulus plus 7 to keep the unrelated
+ //
lowest three
bits from affecting the result) to calculate the entry
// age correctly even after generation8 overflows into the next cycle.
if ( replace->depth8 - ((263 + generation8 - replace->genBound8) & 0xF8)
> tte[i].depth8 - ((263 + generation8 - tte[i].genBound8) & 0xF8))
// age correctly even after generation8 overflows into the next cycle.
if ( replace->depth8 - ((263 + generation8 - replace->genBound8) & 0xF8)
> tte[i].depth8 - ((263 + generation8 - tte[i].genBound8) & 0xF8))
@@
-150,7
+150,7
@@
int TranspositionTable::hashfull() const {
int cnt = 0;
for (int i = 0; i < 1000 / ClusterSize; ++i)
for (int j = 0; j < ClusterSize; ++j)
int cnt = 0;
for (int i = 0; i < 1000 / ClusterSize; ++i)
for (int j = 0; j < ClusterSize; ++j)
- cnt += (table[i].entry[j].genBound8 & 0xF
C
) == generation8;
+ cnt += (table[i].entry[j].genBound8 & 0xF
8
) == generation8;
return cnt * 1000 / (ClusterSize * (1000 / ClusterSize));
}
return cnt * 1000 / (ClusterSize * (1000 / ClusterSize));
}