Blame view

bench/magic-seq.c 936 Bytes
965dadaa   Salvador Abreu   initial commit fr...
1
#include <stdio.h>
eef94371   Vasco Pedro   Update to PaCCS v...
2
3

#include "fdc_int.h"
965dadaa   Salvador Abreu   initial commit fr...
4

eef94371   Vasco Pedro   Update to PaCCS v...
5
#define MAX_N 512
965dadaa   Salvador Abreu   initial commit fr...
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

main(int argc, char *argv[])
{
  fd_int vs[MAX_N];
  int N = 9;
  int solutions = 0, one_solution = 1;
  int i;

  fd_init(&argc, &argv);

  for (i = 1; i < argc; ++i)
    if (!strcmp(argv[i], "--all"))
      one_solution = 0;
    else
      N = atoi(argv[i]);

  if (N > MAX_N)
    _fd_fatal("N > MAX_N");

eef94371   Vasco Pedro   Update to PaCCS v...
25
  for (i = 0; i < N; ++i)
965dadaa   Salvador Abreu   initial commit fr...
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
    vs[i] = fd_new(0, N - 1);

  for (i = 0; i < N; ++i)
    fd_exactly_var(vs, N, vs[i], i);

  fd_sum(vs, N, N);

  while (fd_solve() == FD_OK)
    {
      printf("solution %d:\n", ++solutions);

      for (i = 0; i < N; ++i)
	{
	  fd_print(vs[i]);
	  putchar(' ');
	}
      putchar('\n');

#if !(defined(LOCAL_SEARCH) || defined(DISTRIBUTED_SOLVER))
      if (one_solution)
#endif
	break;
    }

  if (solutions)
    printf("%d solutions found\n", solutions);
  else
    printf("inconsistent CSP\n");

  fd_end();

  return !solutions;
}