aboutsummaryrefslogtreecommitdiff
path: root/src/solvers
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2024-09-27 08:22:55 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2024-09-27 08:25:41 +0200
commitcee9856b2cb151f705acf6d27454ec08ef2b9a4e (patch)
tree4616e5c59e01be16e96103f9e9897ef004434eb7 /src/solvers
parent0b32395de2500ad87e15fbb0ff4a852e313037e9 (diff)
parent79500f46632ba50b1640d16983942b940dd7955f (diff)
downloadnissy-core-cee9856b2cb151f705acf6d27454ec08ef2b9a4e.tar.gz
nissy-core-cee9856b2cb151f705acf6d27454ec08ef2b9a4e.zip
Merge branch 'master' of tronto.net:h48
Diffstat (limited to 'src/solvers')
-rw-r--r--src/solvers/h48/gendata_cocsep.h12
-rw-r--r--src/solvers/h48/gendata_h48.h24
2 files changed, 35 insertions, 1 deletions
diff --git a/src/solvers/h48/gendata_cocsep.h b/src/solvers/h48/gendata_cocsep.h
index 2189145..262793b 100644
--- a/src/solvers/h48/gendata_cocsep.h
+++ b/src/solvers/h48/gendata_cocsep.h
@@ -25,6 +25,7 @@ STATIC_INLINE void set_visited(uint8_t *, int64_t);
25 25
26STATIC size_t gendata_cocsep(void *, uint64_t *, cube_t *); 26STATIC size_t gendata_cocsep(void *, uint64_t *, cube_t *);
27STATIC uint32_t gendata_cocsep_dfs(cocsep_dfs_arg_t *); 27STATIC uint32_t gendata_cocsep_dfs(cocsep_dfs_arg_t *);
28STATIC void getdistribution_cocsep(const uint32_t *, uint64_t [static 21]);
28 29
29STATIC_INLINE int8_t get_h48_cdata(cube_t, uint32_t *, uint32_t *); 30STATIC_INLINE int8_t get_h48_cdata(cube_t, uint32_t *, uint32_t *);
30 31
@@ -157,6 +158,17 @@ gendata_cocsep_dfs(cocsep_dfs_arg_t *arg)
157 return cc; 158 return cc;
158} 159}
159 160
161STATIC void
162getdistribution_cocsep(const uint32_t *table, uint64_t distr[static 21])
163{
164 size_t i;
165
166 memset(distr, 0, 21 * sizeof(uint64_t));
167
168 for (i = 0; i < COCSEP_TABLESIZE; i++)
169 distr[CBOUND(table[i])]++;
170}
171
160STATIC_INLINE bool 172STATIC_INLINE bool
161get_visited(const uint8_t *a, int64_t i) 173get_visited(const uint8_t *a, int64_t i)
162{ 174{
diff --git a/src/solvers/h48/gendata_h48.h b/src/solvers/h48/gendata_h48.h
index a88eb4f..48d5582 100644
--- a/src/solvers/h48/gendata_h48.h
+++ b/src/solvers/h48/gendata_h48.h
@@ -104,13 +104,16 @@ STATIC size_t gendata_h48k2_realcoord(gendata_h48_arg_t *);
104STATIC void gendata_h48k2_dfs(h48k2_dfs_arg_t *arg); 104STATIC void gendata_h48k2_dfs(h48k2_dfs_arg_t *arg);
105STATIC void * gendata_h48k2_runthread(void *); 105STATIC void * gendata_h48k2_runthread(void *);
106STATIC tableinfo_t makeinfo_h48k2(gendata_h48_arg_t *); 106STATIC tableinfo_t makeinfo_h48k2(gendata_h48_arg_t *);
107STATIC void getdistribution_h48(
108 const uint8_t *, uint64_t [static 21], uint8_t, uint8_t);
107 109
108STATIC uint32_t *get_cocsepdata_ptr(const void *); 110STATIC uint32_t *get_cocsepdata_ptr(const void *);
109STATIC uint8_t *get_h48data_ptr(const void *); 111STATIC uint8_t *get_h48data_ptr(const void *);
110 112
111STATIC_INLINE uint8_t get_h48_pval(const uint8_t *, int64_t, uint8_t); 113STATIC_INLINE uint8_t get_h48_pval(const uint8_t *, int64_t, uint8_t);
112STATIC_INLINE void set_h48_pval(uint8_t *, int64_t, uint8_t, uint8_t); 114STATIC_INLINE void set_h48_pval(uint8_t *, int64_t, uint8_t, uint8_t);
113STATIC_INLINE uint8_t get_h48_bound(cube_t, uint32_t, uint8_t, uint8_t, uint8_t *); 115STATIC_INLINE uint8_t get_h48_bound(
116 cube_t, uint32_t, uint8_t, uint8_t, uint8_t *);
114 117
115size_t gendata_h48_derive(uint8_t, const void *, void *); 118size_t gendata_h48_derive(uint8_t, const void *, void *);
116 119
@@ -665,6 +668,25 @@ makeinfo_h48k2(gendata_h48_arg_t *arg)
665 return info; 668 return info;
666} 669}
667 670
671STATIC void
672getdistribution_h48(
673 const uint8_t *table,
674 uint64_t distr[static 21],
675 uint8_t h,
676 uint8_t k
677) {
678 uint8_t val;
679 int64_t i, h48max;
680
681 memset(distr, 0, 21 * sizeof(uint64_t));
682
683 h48max = H48_COORDMAX(h);
684 for (i = 0; i < h48max; i++) {
685 val = get_h48_pval(table, i, k);
686 distr[val]++;
687 }
688}
689
668STATIC uint32_t * 690STATIC uint32_t *
669get_cocsepdata_ptr(const void *data) 691get_cocsepdata_ptr(const void *data)
670{ 692{

Generated with cgit - Back to sebastiano.tronto.net