diff options
Diffstat (limited to 'src/solve_h48.h')
| -rw-r--r-- | src/solve_h48.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/solve_h48.h b/src/solve_h48.h index 4bf9f78..bfcf585 100644 --- a/src/solve_h48.h +++ b/src/solve_h48.h | |||
| @@ -79,6 +79,7 @@ _static void h48set_destroy(h48set_t *); | |||
| 79 | _static_inline int64_t h48set_lookup(h48set_t *, int64_t); | 79 | _static_inline int64_t h48set_lookup(h48set_t *, int64_t); |
| 80 | _static_inline void h48set_insert(h48set_t *, int64_t); | 80 | _static_inline void h48set_insert(h48set_t *, int64_t); |
| 81 | _static_inline bool h48set_contains(h48set_t *, int64_t); | 81 | _static_inline bool h48set_contains(h48set_t *, int64_t); |
| 82 | _static inline int64_t h48set_save(h48set_t *, int64_t *); | ||
| 82 | 83 | ||
| 83 | _static_inline int64_t coord_h48(cube_t, const uint32_t *, uint8_t); | 84 | _static_inline int64_t coord_h48(cube_t, const uint32_t *, uint8_t); |
| 84 | _static_inline int64_t coord_h48_edges(cube_t, int64_t, uint8_t, uint8_t); | 85 | _static_inline int64_t coord_h48_edges(cube_t, int64_t, uint8_t, uint8_t); |
| @@ -167,6 +168,18 @@ h48set_contains(h48set_t *set, int64_t x) | |||
| 167 | return i == -1; | 168 | return i == -1; |
| 168 | } | 169 | } |
| 169 | 170 | ||
| 171 | _static int64_t | ||
| 172 | h48set_save(h48set_t *set, int64_t *a) | ||
| 173 | { | ||
| 174 | int64_t i, j; | ||
| 175 | |||
| 176 | for (i = 0, j = 0; i < set->capacity; i++) | ||
| 177 | if (set->table[i] != -1) | ||
| 178 | a[j++] = set->table[i]; | ||
| 179 | |||
| 180 | return j; | ||
| 181 | } | ||
| 182 | |||
| 170 | _static_inline int64_t | 183 | _static_inline int64_t |
| 171 | coord_h48(cube_t c, const uint32_t *cocsepdata, uint8_t h) | 184 | coord_h48(cube_t c, const uint32_t *cocsepdata, uint8_t h) |
| 172 | { | 185 | { |
