コード例 #1
0
ファイル: test.c プロジェクト: jimmahoney/codesnips
int main() {
  int good_queens[] = {4, 1, 3, 5, 7, 2, 0, 6};
  int bad_queens[] = {4, 3, 1, 5, 7, 2, 0, 6};
  board good_board = new_board_from_queens(8, good_queens);
  board bad_board = new_board_from_queens(8, bad_queens);
  boards solutions, diagonals;
  int n;

  printf("==== print_board(good_board) ====\n");
  print_board(good_board);
  printf("==== print_board_as_perm(good_board) ====\n");
  print_board_as_perm(good_board);
  printf("==== valid_diagonals ====\n");
  printf(" good board : %i \n", valid_diagonals(8, good_queens));
  printf(" bad board  : %i \n", valid_diagonals(8, bad_queens));
  free_board(good_board);
  free_board(bad_board);

  printf("==== small n behavior ====\n");
  for (n=0; n<4; n++){
    printf(" n=%i : ", n); 
    solutions = queens_search(n);
    print_boards_as_perms(solutions);
    free_boards(solutions);
  }

  printf("==== queens_search n=4 ====\n");
  solutions = queens_search(4);
  print_boards(solutions);
  free_boards(solutions);

  printf("==== search n=8 ====\n");
  solutions = queens_search(8);
  printf(" number of solutions = %i \n", solutions->count);
  free_boards(solutions);
  diagonals = queens_search_diagonals(8);
  printf(" number of queens_search_diagonals = %i \n", diagonals->count);
  free_boards(diagonals);

  diagonals = in_both_diagonals(solutions);  // same, another way
  printf(" number of in_both_diagonals = %i \n", diagonals->count);
  free_boards(diagonals);

  printf("==== queens_search_diagonals for various n ====\n", n);
  for (n=4; n<15; n++){
    reset_timer();
    diagonals = queens_search_diagonals(n);
    printf(" n = %2i ; count = %7i ; time = ", n, diagonals->count);
    print_elapsed(); printf("\n"); fflush(stdout);
    free_boards(diagonals);
  }

  printf("=== memory check ===\n");
  printf(" malloc() + calloc() - free() = %i \n\n", get_allocation_count());

  return 0;
}
コード例 #2
0
ファイル: flx_collector.cpp プロジェクト: arowM/felix
unsigned long flx_collector_t::reap ()
{
  unsigned long count = 0;
  Word_t next=(Word_t)NULL;
  int res = Judy1First(j_tmp,&next,&je);
  while(res) {
    delete_frame((void *)(void*)next);
    ++count;
    res = Judy1Next(j_tmp,&next,&je);
  }
  Judy1FreeArray(&j_tmp,&je);
  if(debug) {
    fprintf(stderr,"Reaped %lu objects\n",count);
    fprintf(stderr,"Still allocated %lu objects occupying %lu bytes\n", get_allocation_count(), get_allocation_amt());
  }
  return count;
}