diff options
Diffstat (limited to 'modules/benchmark/nqueens.c')
| -rw-r--r-- | modules/benchmark/nqueens.c | 41 | 
1 files changed, 21 insertions, 20 deletions
diff --git a/modules/benchmark/nqueens.c b/modules/benchmark/nqueens.c index 78293abb..6aad7638 100644 --- a/modules/benchmark/nqueens.c +++ b/modules/benchmark/nqueens.c @@ -9,29 +9,30 @@  #include "hardinfo.h"  #include "benchmark.h" -#define QUEENS 11 +/* if anything changes in this block, increment revision */ +#define BENCH_REVISION 2 +#define QUEENS 6 +#define CRUNCH_TIME 5  int row[QUEENS]; -bool safe(int x, int y) -{ +bool safe(int x, int y) {      int i;      for (i = 1; i <= y; i++) -	if (row[y - i] == x || row[y - i] == x - i || row[y - i] == x + i) -	    return false; +        if (row[y - i] == x || row[y - i] == x - i || row[y - i] == x + i) +            return false;      return true;  } -int nqueens(int y) -{ +int nqueens(int y) {      int x;      for (x = 0; x < QUEENS; x++) { -	if (safe((row[y - 1] = x), y - 1)) { -	    if (y < QUEENS) { -		nqueens(y + 1); -	    } else { -	        break; +        if (safe((row[y - 1] = x), y - 1)) { +            if (y < QUEENS) { +                nqueens(y + 1); +            } else { +                break;              }          }      } @@ -39,13 +40,9 @@ int nqueens(int y)      return 0;  } -static gpointer nqueens_for(unsigned int start, unsigned int end, void *data, gint thread_number) +static gpointer nqueens_for(void *data, gint thread_number)  { -    unsigned int i; - -    for (i = start; i <= end; i++) { -        nqueens(0); -    } +    nqueens(0);      return NULL;  } @@ -58,9 +55,13 @@ benchmark_nqueens(void)      shell_view_set_enabled(FALSE);      shell_status_update("Running N-Queens benchmark..."); -    r = benchmark_parallel_for(0, 0, 10, nqueens_for, NULL); -    r.result = r.elapsed_time; +    r = benchmark_crunch_for(CRUNCH_TIME, 0, nqueens_for, NULL); + +    r.revision = BENCH_REVISION; +    snprintf(r.extra, 255, "q:%d", QUEENS); +    r.result /= 25; +          bench_results[BENCHMARK_NQUEENS] = r;  }  | 
