Rev 96 | Rev 169 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 96 | Rev 154 | ||
---|---|---|---|
Line 74... | Line 74... | ||
74 | "8/8/1P6/5pr1/8/4R3/7k/2K5 w - - 0 1", // Re5 - mate |
74 | "8/8/1P6/5pr1/8/4R3/7k/2K5 w - - 0 1", // Re5 - mate |
75 | "8/2p4P/8/kr6/6R1/8/8/1K6 w - - 0 1", // Ka2 - mate |
75 | "8/2p4P/8/kr6/6R1/8/8/1K6 w - - 0 1", // Ka2 - mate |
76 | "8/8/3P3k/8/1p6/8/1P6/1K3n2 b - - 0 1", // Nd2 - draw |
76 | "8/8/3P3k/8/1p6/8/1P6/1K3n2 b - - 0 1", // Nd2 - draw |
77 | 77 | ||
78 | // 7-man positions |
78 | // 7-man positions |
79 | "8/R7/2q5/8/6k1/8/1P5p/K6R w - - 0 124" |
79 | "8/R7/2q5/8/6k1/8/1P5p/K6R w - - 0 124", // Draw |
- | 80 | ||
- | 81 | // Mate and stalemate positions |
|
- | 82 | "8/8/8/8/8/6k1/6p1/6K1 w - -", |
|
- | 83 | "5k2/5P2/5K2/8/8/8/8/8 b - -", |
|
- | 84 | "8/8/8/8/8/4k3/4p3/4K3 w - -", |
|
- | 85 | "8/8/8/8/8/5K2/8/3Q1k2 b - -", |
|
- | 86 | "7k/7P/6K1/8/3B4/8/8/8 b - -" |
|
80 | }; |
87 | }; |
81 | 88 | ||
82 | } // namespace |
89 | } // namespace |
83 | 90 | ||
84 | /// benchmark() runs a simple benchmark by letting Stockfish analyze a set |
91 | /// benchmark() runs a simple benchmark by letting Stockfish analyze a set |
Line 142... | Line 149... | ||
142 | file.close(); |
149 | file.close(); |
143 | } |
150 | } |
144 | 151 | ||
145 | uint64_t nodes = 0; |
152 | uint64_t nodes = 0; |
146 | TimePoint elapsed = now(); |
153 | TimePoint elapsed = now(); |
- | 154 | Position pos; |
|
147 | 155 | ||
148 | for (size_t i = 0; i < fens.size(); ++i) |
156 | for (size_t i = 0; i < fens.size(); ++i) |
149 | { |
157 | { |
- | 158 | StateListPtr states(new std::deque<StateInfo>(1)); |
|
150 |
|
159 | pos.set(fens[i], Options["UCI_Chess960"], &states->back(), Threads.main()); |
151 | 160 | ||
152 | cerr << "\nPosition: " << i + 1 << '/' << fens.size() << endl; |
161 | cerr << "\nPosition: " << i + 1 << '/' << fens.size() << endl; |
153 | 162 | ||
154 | if (limitType == "perft") |
163 | if (limitType == "perft") |
155 | nodes += Search::perft(pos, limits.depth * ONE_PLY); |
164 | nodes += Search::perft(pos, limits.depth * ONE_PLY); |
156 | 165 | ||
157 | else |
166 | else |
158 | { |
167 | { |
159 | Search::StateStackPtr st; |
- | |
160 | limits.startTime = now(); |
168 | limits.startTime = now(); |
161 | Threads.start_thinking(pos, |
169 | Threads.start_thinking(pos, states, limits); |
162 | Threads.main()->wait_for_search_finished(); |
170 | Threads.main()->wait_for_search_finished(); |
163 | nodes += Threads.nodes_searched(); |
171 | nodes += Threads.nodes_searched(); |
164 | } |
172 | } |
165 | } |
173 | } |
166 | 174 |