diff options
Diffstat (limited to 'src/nissy.c')
| -rw-r--r-- | src/nissy.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/nissy.c b/src/nissy.c index f933cab..5d009ba 100644 --- a/src/nissy.c +++ b/src/nissy.c | |||
| @@ -489,6 +489,7 @@ nissy_solve( | |||
| 489 | unsigned maxmoves, | 489 | unsigned maxmoves, |
| 490 | unsigned maxsols, | 490 | unsigned maxsols, |
| 491 | int optimal, | 491 | int optimal, |
| 492 | int threads, | ||
| 492 | unsigned long long data_size, | 493 | unsigned long long data_size, |
| 493 | const char data[data_size], | 494 | const char data[data_size], |
| 494 | unsigned sols_size, | 495 | unsigned sols_size, |
| @@ -499,6 +500,7 @@ nissy_solve( | |||
| 499 | cube_t c; | 500 | cube_t c; |
| 500 | long long parse_ret; | 501 | long long parse_ret; |
| 501 | uint8_t h, k; | 502 | uint8_t h, k; |
| 503 | int t; | ||
| 502 | 504 | ||
| 503 | if (solver == NULL) { | 505 | if (solver == NULL) { |
| 504 | LOG("Error: 'solver' argument is NULL\n"); | 506 | LOG("Error: 'solver' argument is NULL\n"); |
| @@ -522,10 +524,22 @@ nissy_solve( | |||
| 522 | return 0; | 524 | return 0; |
| 523 | } | 525 | } |
| 524 | 526 | ||
| 527 | t = threads == 0 ? THREADS : threads; | ||
| 528 | if (t < 0) { | ||
| 529 | LOG("solve: 'threads' is negative. Please provide a " | ||
| 530 | "number of threads between 1 and %d\n", THREADS); | ||
| 531 | return NISSY_ERROR_OPTIONS; | ||
| 532 | } | ||
| 533 | if (t > THREADS) { | ||
| 534 | LOG("solve: 'threads' is above the maximum value of %d\n", | ||
| 535 | THREADS); | ||
| 536 | return NISSY_ERROR_OPTIONS; | ||
| 537 | } | ||
| 538 | |||
| 525 | if (!strncmp(solver, "h48", 3)) { | 539 | if (!strncmp(solver, "h48", 3)) { |
| 526 | parse_ret = parse_h48_solver(solver, &h, &k); | 540 | parse_ret = parse_h48_solver(solver, &h, &k); |
| 527 | if (parse_ret == NISSY_OK) | 541 | if (parse_ret == NISSY_OK) |
| 528 | return solve_h48(c, minmoves, maxmoves, maxsols, | 542 | return solve_h48(c, minmoves, maxmoves, maxsols, t, |
| 529 | data_size, data, sols_size, sols, stats); | 543 | data_size, data, sols_size, sols, stats); |
| 530 | else | 544 | else |
| 531 | return parse_ret; | 545 | return parse_ret; |
