aboutsummaryrefslogtreecommitdiff
path: root/src/solvers/h48/gendata_h48.h
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2024-09-11 10:25:39 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2024-09-11 10:25:39 +0200
commitdd6078288b5d7af4a4c0cdd1377a2976af569c9a (patch)
tree127e8e3e01505d3b91c1e3bbf6abbadfce08fc38 /src/solvers/h48/gendata_h48.h
parent4b5ab5d1808949661b4b449af914f3659596ef73 (diff)
downloadnissy-core-dd6078288b5d7af4a4c0cdd1377a2976af569c9a.tar.gz
nissy-core-dd6078288b5d7af4a4c0cdd1377a2976af569c9a.zip
Better way to read tables for solver
Diffstat (limited to 'src/solvers/h48/gendata_h48.h')
-rw-r--r--src/solvers/h48/gendata_h48.h23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/solvers/h48/gendata_h48.h b/src/solvers/h48/gendata_h48.h
index 0d7fada..f276eca 100644
--- a/src/solvers/h48/gendata_h48.h
+++ b/src/solvers/h48/gendata_h48.h
@@ -71,10 +71,6 @@ typedef struct {
71 h48map_t *shortcubes; 71 h48map_t *shortcubes;
72} h48k2_dfs_arg_t; 72} h48k2_dfs_arg_t;
73 73
74STATIC_INLINE uint8_t get_h48_pval(const uint8_t *, int64_t, uint8_t);
75STATIC_INLINE void set_h48_pval(uint8_t *, int64_t, uint8_t, uint8_t);
76STATIC_INLINE uint8_t get_h48_bound(cube_t, uint32_t, uint8_t, uint8_t, uint8_t *);
77
78STATIC uint64_t gen_h48short(gendata_h48short_arg_t *); 74STATIC uint64_t gen_h48short(gendata_h48short_arg_t *);
79STATIC size_t gendata_h48(gendata_h48_arg_t *); 75STATIC size_t gendata_h48(gendata_h48_arg_t *);
80STATIC size_t gendata_h48h0k4(gendata_h48_arg_t *); 76STATIC size_t gendata_h48h0k4(gendata_h48_arg_t *);
@@ -86,6 +82,13 @@ STATIC_INLINE void gendata_h48k2_mark(cube_t, int8_t, h48k2_dfs_arg_t *);
86STATIC_INLINE bool gendata_h48k2_dfs_stop(cube_t, uint8_t, h48k2_dfs_arg_t *); 82STATIC_INLINE bool gendata_h48k2_dfs_stop(cube_t, uint8_t, h48k2_dfs_arg_t *);
87STATIC void gendata_h48k2_dfs(h48k2_dfs_arg_t *arg); 83STATIC void gendata_h48k2_dfs(h48k2_dfs_arg_t *arg);
88 84
85STATIC uint32_t *get_cocsepdata_ptr(const void *);
86STATIC uint8_t *get_h48data_ptr(const void *);
87
88STATIC_INLINE uint8_t get_h48_pval(const uint8_t *, int64_t, uint8_t);
89STATIC_INLINE void set_h48_pval(uint8_t *, int64_t, uint8_t, uint8_t);
90STATIC_INLINE uint8_t get_h48_bound(cube_t, uint32_t, uint8_t, uint8_t, uint8_t *);
91
89STATIC uint64_t 92STATIC uint64_t
90gen_h48short(gendata_h48short_arg_t *arg) 93gen_h48short(gendata_h48short_arg_t *arg)
91{ 94{
@@ -529,3 +532,15 @@ get_h48_bound(cube_t cube, uint32_t cdata, uint8_t h, uint8_t k, uint8_t *table)
529 coord = coord_h48_edges(cube, COCLASS(cdata), TTREP(cdata), h); 532 coord = coord_h48_edges(cube, COCLASS(cdata), TTREP(cdata), h);
530 return get_h48_pval(table, coord, k); 533 return get_h48_pval(table, coord, k);
531} 534}
535
536STATIC uint32_t *
537get_cocsepdata_ptr(const void *data)
538{
539 return (uint32_t *)((char *)data + INFOSIZE);
540}
541
542STATIC uint8_t *
543get_h48data_ptr(const void *data)
544{
545 return (uint8_t *)data + COCSEP_FULLSIZE + INFOSIZE;
546}

Generated with cgit - Back to sebastiano.tronto.net