diff options
| author | Simon Tatham <anakin@pobox.com> | 2006-10-28 15:38:53 +0000 |
|---|---|---|
| committer | Simon Tatham <anakin@pobox.com> | 2006-10-28 15:38:53 +0000 |
| commit | b9547673c6462bf73e642328300479df6df71d7b (patch) | |
| tree | ccb654a74a3045b96244c3124aca2abab8d3f11a /puzzles.h | |
| parent | 04e3e09b8743acd1fffc7b756d876f47cbb35a88 (diff) | |
| download | puzzles-b9547673c6462bf73e642328300479df6df71d7b.zip puzzles-b9547673c6462bf73e642328300479df6df71d7b.tar.gz puzzles-b9547673c6462bf73e642328300479df6df71d7b.tar.bz2 puzzles-b9547673c6462bf73e642328300479df6df71d7b.tar.xz | |
Mike Pinna has done some major reworking of the Loopy solver, giving
rise to a new Hard difficulty level.
[originally from svn r6880]
Diffstat (limited to 'puzzles.h')
| -rw-r--r-- | puzzles.h | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -278,7 +278,22 @@ void draw_rect_outline(drawing *dr, int x, int y, int w, int h, /* * dsf.c */ +int *snew_dsf(int size); + +void print_dsf(int *dsf, int size); + +/* Return the canonical element of the equivalence class containing element + * val. If 'inverse' is non-NULL, this function will put into it a flag + * indicating whether the canonical element is inverse to val. */ +int edsf_canonify(int *dsf, int val, int *inverse); int dsf_canonify(int *dsf, int val); + +/* Allow the caller to specify that two elements should be in the same + * equivalence class. If 'inverse' is TRUE, the elements are actually opposite + * to one another in some sense. This function will fail an assertion if the + * caller gives it self-contradictory data, ie if two elements are claimed to + * be both opposite and non-opposite. */ +void edsf_merge(int *dsf, int v1, int v2, int inverse); void dsf_merge(int *dsf, int v1, int v2); void dsf_init(int *dsf, int len); |