aboutsummaryrefslogtreecommitdiff
path: root/src/nissy.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/nissy.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/nissy.c b/src/nissy.c
index ffda4b3..ed1d3f4 100644
--- a/src/nissy.c
+++ b/src/nissy.c
@@ -451,14 +451,16 @@ nissy_gendata_unsafe(
451 return NISSY_ERROR_DATA; 451 return NISSY_ERROR_DATA;
452 } 452 }
453 453
454 arg.buf_size = data_size;
455 arg.buf = data;
456 if (!strncmp(solver, "h48", 3)) { 454 if (!strncmp(solver, "h48", 3)) {
455 arg.buf_size = data_size;
456 arg.buf = data;
457 parse_ret = parse_h48_solver(solver, &arg.h, &arg.k); 457 parse_ret = parse_h48_solver(solver, &arg.h, &arg.k);
458 arg.maxdepth = 20; 458 arg.maxdepth = 20;
459 if (parse_ret != NISSY_OK) 459 if (parse_ret != NISSY_OK)
460 return parse_ret; 460 return parse_ret;
461 return gendata_h48(&arg); 461 return gendata_h48(&arg);
462 } else if (!strncmp(solver, "coord_", 6)) {
463 return gendata_coord_dispatch(solver+6, data);
462 } else { 464 } else {
463 LOG("gendata: unknown solver %s\n", solver); 465 LOG("gendata: unknown solver %s\n", solver);
464 return NISSY_ERROR_INVALID_SOLVER; 466 return NISSY_ERROR_INVALID_SOLVER;
@@ -501,6 +503,7 @@ long long
501nissy_solve( 503nissy_solve(
502 const char cube[static NISSY_SIZE_B32], 504 const char cube[static NISSY_SIZE_B32],
503 const char *solver, 505 const char *solver,
506 const char *options,
504 unsigned nissflag, 507 unsigned nissflag,
505 unsigned minmoves, 508 unsigned minmoves,
506 unsigned maxmoves, 509 unsigned maxmoves,
@@ -536,6 +539,8 @@ nissy_solve(
536 return NISSY_ERROR_UNSOLVABLE_CUBE; 539 return NISSY_ERROR_UNSOLVABLE_CUBE;
537 } 540 }
538 541
542/* TODO: checks for minmoves, maxmoves, nissflag */
543
539 if (maxsols == 0) { 544 if (maxsols == 0) {
540 LOG("solve: 'maxsols' is 0, returning no solution\n"); 545 LOG("solve: 'maxsols' is 0, returning no solution\n");
541 return 0; 546 return 0;
@@ -562,11 +567,15 @@ nissy_solve(
562 567
563 if (!strncmp(solver, "h48", 3)) { 568 if (!strncmp(solver, "h48", 3)) {
564 parse_ret = parse_h48_solver(solver, &h, &k); 569 parse_ret = parse_h48_solver(solver, &h, &k);
565 if (parse_ret == NISSY_OK) 570 if (parse_ret != NISSY_OK)
566 return solve_h48(c, minmoves, maxmoves, maxsols, opt,
567 t, data_size, data, sols_size, sols, stats);
568 else
569 return parse_ret; 571 return parse_ret;
572/* TODO give warning if options is not NULL or empty? */
573 return solve_h48(c, minmoves, maxmoves, maxsols,
574 opt, t, data_size, data, sols_size, sols, stats);
575 } else if (!strncmp(solver, "coord_", 6)) {
576 return solve_coord_dispatch(c, solver + 6, options, nissflag,
577 minmoves, maxmoves, maxsols, opt, t, data_size, data,
578 sols_size, sols);
570 } else { 579 } else {
571 LOG("solve: unknown solver '%s'\n", solver); 580 LOG("solve: unknown solver '%s'\n", solver);
572 return NISSY_ERROR_INVALID_SOLVER; 581 return NISSY_ERROR_INVALID_SOLVER;

Generated with cgit - Back to sebastiano.tronto.net