Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
official-stockfish
GitHub Repository: official-stockfish/Stockfish
Path: blob/master/src/nnue/nnue_misc.h
375 views
1
/*
2
Stockfish, a UCI chess playing engine derived from Glaurung 2.1
3
Copyright (C) 2004-2025 The Stockfish developers (see AUTHORS file)
4
5
Stockfish is free software: you can redistribute it and/or modify
6
it under the terms of the GNU General Public License as published by
7
the Free Software Foundation, either version 3 of the License, or
8
(at your option) any later version.
9
10
Stockfish is distributed in the hope that it will be useful,
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
GNU General Public License for more details.
14
15
You should have received a copy of the GNU General Public License
16
along with this program. If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
#ifndef NNUE_MISC_H_INCLUDED
20
#define NNUE_MISC_H_INCLUDED
21
22
#include <cstddef>
23
#include <string>
24
25
#include "../types.h"
26
#include "nnue_architecture.h"
27
28
namespace Stockfish {
29
30
class Position;
31
32
namespace Eval::NNUE {
33
34
struct EvalFile {
35
// Default net name, will use one of the EvalFileDefaultName* macros defined
36
// in evaluate.h
37
std::string defaultName;
38
// Selected net name, either via uci option or default
39
std::string current;
40
// Net description extracted from the net file
41
std::string netDescription;
42
};
43
44
45
struct NnueEvalTrace {
46
static_assert(LayerStacks == PSQTBuckets);
47
48
Value psqt[LayerStacks];
49
Value positional[LayerStacks];
50
std::size_t correctBucket;
51
};
52
53
struct Networks;
54
struct AccumulatorCaches;
55
56
std::string trace(Position& pos, const Networks& networks, AccumulatorCaches& caches);
57
58
} // namespace Stockfish::Eval::NNUE
59
} // namespace Stockfish
60
61
#endif // #ifndef NNUE_MISC_H_INCLUDED
62
63