MCPcopy Create free account
hub / github.com/NVIDIA/stdexec / examine_potentials

Function examine_potentials

examples/sudoku.cpp:217–289  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

215}
216
217bool examine_potentials(board_element *b, bool *progress)
218{
219 bool singletons = false;
220 for (unsigned i = 0; i < BOARD_SIZE; ++i)
221 {
222 if (b[i].solved_element == 0 && b[i].potential_set == 0) // empty set
223 return false;
224 switch (b[i].potential_set)
225 {
226 case 1:
227 {
228 b[i].solved_element = 1;
229 singletons = true;
230 break;
231 }
232 case 2:
233 {
234 b[i].solved_element = 2;
235 singletons = true;
236 break;
237 }
238 case 4:
239 {
240 b[i].solved_element = 3;
241 singletons = true;
242 break;
243 }
244 case 8:
245 {
246 b[i].solved_element = 4;
247 singletons = true;
248 break;
249 }
250 case 16:
251 {
252 b[i].solved_element = 5;
253 singletons = true;
254 break;
255 }
256 case 32:
257 {
258 b[i].solved_element = 6;
259 singletons = true;
260 break;
261 }
262 case 64:
263 {
264 b[i].solved_element = 7;
265 singletons = true;
266 break;
267 }
268 case 128:
269 {
270 b[i].solved_element = 8;
271 singletons = true;
272 break;
273 }
274 case 256:

Callers 1

partial_solveFunction · 0.85

Calls 1

valid_boardFunction · 0.85

Tested by

no test coverage detected