aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2025-05-27 09:03:51 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2025-05-27 09:03:51 +0200
commit7c934801f88c640970ad41b5ddd39f4e39609f28 (patch)
tree76a065db76fbcbdec818b8b6cc8b108ac1c9eb49
parent243a852d31483d10983c50978d1d4471efd0e553 (diff)
downloadnissy-core-7c934801f88c640970ad41b5ddd39f4e39609f28.tar.gz
nissy-core-7c934801f88c640970ad41b5ddd39f4e39609f28.zip
Removed VLA notation from function parameters.
I found out that this gives undefined behavior when then size is 0. Better not to have it at all, it is confusing for other developers anyway.
Diffstat (limited to '')
-rw-r--r--src/core/moves.h24
-rw-r--r--src/nissy.c8
-rw-r--r--src/nissy.h8
-rw-r--r--src/solvers/coord/checkdata.h4
-rw-r--r--src/solvers/coord/common.h4
-rw-r--r--src/solvers/coord/solve.h19
-rw-r--r--src/solvers/coord/utils.h4
-rw-r--r--src/solvers/dispatch.h2
-rw-r--r--src/solvers/h48/checkdata.h4
-rw-r--r--src/solvers/h48/solve.h12
-rw-r--r--src/solvers/solutions.h9
-rw-r--r--src/solvers/tables.h18
-rw-r--r--src/utils/math.h24
13 files changed, 70 insertions, 70 deletions
diff --git a/src/core/moves.h b/src/core/moves.h
index 5f48f8d..d3ff4a3 100644
--- a/src/core/moves.h
+++ b/src/core/moves.h
@@ -3,13 +3,13 @@
3 3
4STATIC uint8_t readmove(char); 4STATIC uint8_t readmove(char);
5STATIC int64_t readmoves(const char *, 5STATIC int64_t readmoves(const char *,
6 size_t n, size_t m, uint64_t *, uint64_t *, uint8_t [n], uint8_t [m]); 6 size_t, size_t, uint64_t *, uint64_t *, uint8_t *, uint8_t *);
7STATIC int64_t countmoves(const char *); 7STATIC int64_t countmoves(const char *);
8STATIC uint8_t readmodifier(char); 8STATIC uint8_t readmodifier(char);
9STATIC int64_t writemoves(size_t n, const uint8_t [n], size_t m, char [m]); 9STATIC int64_t writemoves(size_t, const uint8_t *, size_t, char *);
10 10
11STATIC_INLINE bool allowednextmove(uint8_t, uint8_t); 11STATIC_INLINE bool allowednextmove(uint8_t, uint8_t);
12STATIC bool allowedmoves(size_t n, const uint8_t [n]); 12STATIC bool allowedmoves(size_t, const uint8_t *);
13 13
14STATIC_INLINE uint8_t movebase(uint8_t); 14STATIC_INLINE uint8_t movebase(uint8_t);
15STATIC_INLINE uint8_t moveaxis(uint8_t); 15STATIC_INLINE uint8_t moveaxis(uint8_t);
@@ -24,8 +24,8 @@ STATIC uint8_t transform_move(uint8_t, uint8_t);
24STATIC cube_t move(cube_t, uint8_t); 24STATIC cube_t move(cube_t, uint8_t);
25STATIC cube_t premove(cube_t, uint8_t); 25STATIC cube_t premove(cube_t, uint8_t);
26STATIC uint8_t inverse_move(uint8_t); 26STATIC uint8_t inverse_move(uint8_t);
27STATIC void sortparallel_moves(size_t n, uint8_t [n]); 27STATIC void sortparallel_moves(size_t, uint8_t*);
28STATIC bool are_lastmoves_singlecw(size_t n, const uint8_t [n]); 28STATIC bool are_lastmoves_singlecw(size_t, const uint8_t*);
29 29
30#define FOREACH_READMOVE(ARG_BUF, ARG_MOVE, ARG_C, ARG_MAX, \ 30#define FOREACH_READMOVE(ARG_BUF, ARG_MOVE, ARG_C, ARG_MAX, \
31 RET_ERROR, ARG_ACTION) \ 31 RET_ERROR, ARG_ACTION) \
@@ -126,8 +126,8 @@ readmoves(
126 size_t invsize, 126 size_t invsize,
127 uint64_t *n, 127 uint64_t *n,
128 uint64_t *i, 128 uint64_t *i,
129 uint8_t normal[nsize], 129 uint8_t *normal,
130 uint8_t inverse[invsize] 130 uint8_t *inverse
131) 131)
132{ 132{
133 uint8_t m; 133 uint8_t m;
@@ -171,9 +171,9 @@ countmoves(const char *buf)
171STATIC int64_t 171STATIC int64_t
172writemoves( 172writemoves(
173 size_t nmoves, 173 size_t nmoves,
174 const uint8_t m[nmoves], 174 const uint8_t *m,
175 size_t buf_size, 175 size_t buf_size,
176 char buf[buf_size] 176 char *buf
177) 177)
178{ 178{
179 size_t i, len, w; 179 size_t i, len, w;
@@ -214,7 +214,7 @@ allowednextmove(uint8_t m1, uint8_t m2)
214} 214}
215 215
216STATIC bool 216STATIC bool
217allowedmoves(size_t n, const uint8_t m[n]) 217allowedmoves(size_t n, const uint8_t *m)
218{ 218{
219 uint8_t j; 219 uint8_t j;
220 220
@@ -422,7 +422,7 @@ inverse_move(uint8_t m)
422} 422}
423 423
424STATIC void 424STATIC void
425sortparallel_moves(size_t n, uint8_t moves[n]) 425sortparallel_moves(size_t n, uint8_t *moves)
426{ 426{
427 uint8_t i; 427 uint8_t i;
428 428
@@ -435,7 +435,7 @@ sortparallel_moves(size_t n, uint8_t moves[n])
435} 435}
436 436
437STATIC bool 437STATIC bool
438are_lastmoves_singlecw(size_t n, const uint8_t moves[n]) 438are_lastmoves_singlecw(size_t n, const uint8_t *moves)
439{ 439{
440 bool two; 440 bool two;
441 441
diff --git a/src/nissy.c b/src/nissy.c
index aaa5c2a..3190e55 100644
--- a/src/nissy.c
+++ b/src/nissy.c
@@ -215,7 +215,7 @@ long long
215nissy_gendata( 215nissy_gendata(
216 const char *solver, 216 const char *solver,
217 unsigned long long data_size, 217 unsigned long long data_size,
218 unsigned char data[data_size] 218 unsigned char *data
219) 219)
220{ 220{
221 return nissy_gendata_unsafe(solver, data_size, data); 221 return nissy_gendata_unsafe(solver, data_size, data);
@@ -253,7 +253,7 @@ long long
253nissy_checkdata( 253nissy_checkdata(
254 const char *solver, 254 const char *solver,
255 unsigned long long data_size, 255 unsigned long long data_size,
256 const unsigned char data[data_size] 256 const unsigned char *data
257) 257)
258{ 258{
259 solver_dispatch_t *dispatch; 259 solver_dispatch_t *dispatch;
@@ -278,9 +278,9 @@ nissy_solve(
278 unsigned optimal, 278 unsigned optimal,
279 unsigned threads, 279 unsigned threads,
280 unsigned long long data_size, 280 unsigned long long data_size,
281 const unsigned char data[data_size], 281 const unsigned char *data,
282 unsigned sols_size, 282 unsigned sols_size,
283 char sols[sols_size], 283 char *sols,
284 long long stats[static NISSY_SIZE_SOLVE_STATS], 284 long long stats[static NISSY_SIZE_SOLVE_STATS],
285 int (*poll_status)(void *), 285 int (*poll_status)(void *),
286 void *poll_status_data 286 void *poll_status_data
diff --git a/src/nissy.h b/src/nissy.h
index 0447d66..0c1d18d 100644
--- a/src/nissy.h
+++ b/src/nissy.h
@@ -276,7 +276,7 @@ long long
276nissy_gendata( 276nissy_gendata(
277 const char *solver, 277 const char *solver,
278 unsigned long long data_size, 278 unsigned long long data_size,
279 unsigned char data[data_size] 279 unsigned char *data
280); 280);
281 281
282/* 282/*
@@ -296,7 +296,7 @@ long long
296nissy_checkdata( 296nissy_checkdata(
297 const char *solver, 297 const char *solver,
298 unsigned long long data_size, 298 unsigned long long data_size,
299 const unsigned char data[data_size] 299 const unsigned char *data
300); 300);
301 301
302/* 302/*
@@ -352,9 +352,9 @@ nissy_solve(
352 unsigned optimal, 352 unsigned optimal,
353 unsigned threads, 353 unsigned threads,
354 unsigned long long data_size, 354 unsigned long long data_size,
355 const unsigned char data[data_size], 355 const unsigned char *data,
356 unsigned sols_size, 356 unsigned sols_size,
357 char sols[sols_size], 357 char *sols,
358 long long stats[static NISSY_SIZE_SOLVE_STATS], 358 long long stats[static NISSY_SIZE_SOLVE_STATS],
359 int (*poll_status)(void *), 359 int (*poll_status)(void *),
360 void *poll_status_data 360 void *poll_status_data
diff --git a/src/solvers/coord/checkdata.h b/src/solvers/coord/checkdata.h
index 81394c7..791761f 100644
--- a/src/solvers/coord/checkdata.h
+++ b/src/solvers/coord/checkdata.h
@@ -1,11 +1,11 @@
1STATIC long long checkdata_coord( 1STATIC long long checkdata_coord(
2 const char *, unsigned long long n, const unsigned char [n]); 2 const char *, unsigned long long, const unsigned char *);
3 3
4STATIC long long 4STATIC long long
5checkdata_coord( 5checkdata_coord(
6 const char *solver, 6 const char *solver,
7 unsigned long long data_size, 7 unsigned long long data_size,
8 const unsigned char data[data_size] 8 const unsigned char *data
9) 9)
10{ 10{
11 coord_t *coord; 11 coord_t *coord;
diff --git a/src/solvers/coord/common.h b/src/solvers/coord/common.h
index 8fd405c..c512b33 100644
--- a/src/solvers/coord/common.h
+++ b/src/solvers/coord/common.h
@@ -9,7 +9,7 @@ STATIC size_t coord_gendata_generic(const coord_t [static 1], unsigned char *);
9STATIC void append_coord_name(const coord_t [static 1], char *); 9STATIC void append_coord_name(const coord_t [static 1], char *);
10STATIC bool solution_lastqt_cw(const solution_moves_t [static 1]); 10STATIC bool solution_lastqt_cw(const solution_moves_t [static 1]);
11STATIC bool coord_can_switch(const coord_t [static 1], const unsigned char *, 11STATIC bool coord_can_switch(const coord_t [static 1], const unsigned char *,
12 size_t n, const uint8_t [n]); 12 size_t, const uint8_t *);
13 13
14STATIC uint64_t 14STATIC uint64_t
15coord_coord_generic( 15coord_coord_generic(
@@ -164,7 +164,7 @@ coord_can_switch(
164 const coord_t coord[static 1], 164 const coord_t coord[static 1],
165 const unsigned char *data, 165 const unsigned char *data,
166 size_t n, 166 size_t n,
167 const uint8_t moves[n] 167 const uint8_t *moves
168) 168)
169{ 169{
170 /* 170 /*
diff --git a/src/solvers/coord/solve.h b/src/solvers/coord/solve.h
index 018aa90..a2f89db 100644
--- a/src/solvers/coord/solve.h
+++ b/src/solvers/coord/solve.h
@@ -13,13 +13,12 @@ typedef struct {
13} dfsarg_solve_coord_t; 13} dfsarg_solve_coord_t;
14 14
15STATIC int64_t solve_coord(oriented_cube_t, coord_t [static 1], uint8_t, 15STATIC int64_t solve_coord(oriented_cube_t, coord_t [static 1], uint8_t,
16 uint8_t, uint8_t, uint8_t, uint64_t, uint8_t, uint8_t, uint64_t n, 16 uint8_t, uint8_t, uint8_t, uint64_t, uint8_t, uint8_t, uint64_t,
17 const unsigned char [n], size_t m, char [m], int (*)(void *), void *); 17 const unsigned char *, size_t, char *, int (*)(void *), void *);
18STATIC long long solve_coord_dispatch(oriented_cube_t, const char *, unsigned, 18STATIC long long solve_coord_dispatch(oriented_cube_t, const char *, unsigned,
19 unsigned, unsigned, unsigned, unsigned, unsigned, unsigned long long n, 19 unsigned, unsigned, unsigned, unsigned, unsigned, unsigned long long,
20 const unsigned char [n], unsigned m, char [m], 20 const unsigned char *, unsigned, char *,
21 long long [static NISSY_SIZE_SOLVE_STATS], 21 long long [static NISSY_SIZE_SOLVE_STATS], int (*)(void *), void *);
22 int (*)(void *), void *);
23STATIC bool coord_solution_admissible(const dfsarg_solve_coord_t [static 1]); 22STATIC bool coord_solution_admissible(const dfsarg_solve_coord_t [static 1]);
24STATIC bool solve_coord_dfs_stop(const dfsarg_solve_coord_t [static 1]); 23STATIC bool solve_coord_dfs_stop(const dfsarg_solve_coord_t [static 1]);
25STATIC bool coord_continue_onnormal(const dfsarg_solve_coord_t [static 1]); 24STATIC bool coord_continue_onnormal(const dfsarg_solve_coord_t [static 1]);
@@ -210,9 +209,9 @@ solve_coord_dispatch(
210 unsigned optimal, 209 unsigned optimal,
211 unsigned threads, 210 unsigned threads,
212 unsigned long long data_size, 211 unsigned long long data_size,
213 const unsigned char data[data_size], 212 const unsigned char *data,
214 unsigned solutions_size, 213 unsigned solutions_size,
215 char sols[solutions_size], 214 char *sols,
216 long long stats[static NISSY_SIZE_SOLVE_STATS], 215 long long stats[static NISSY_SIZE_SOLVE_STATS],
217 int (*poll_status)(void *), 216 int (*poll_status)(void *),
218 void *poll_status_data 217 void *poll_status_data
@@ -251,9 +250,9 @@ solve_coord(
251 uint8_t optimal, 250 uint8_t optimal,
252 uint8_t threads, 251 uint8_t threads,
253 uint64_t data_size, 252 uint64_t data_size,
254 const unsigned char data[data_size], 253 const unsigned char *data,
255 size_t solutions_size, 254 size_t solutions_size,
256 char sols[solutions_size], 255 char *sols,
257 int (*poll_status)(void *), 256 int (*poll_status)(void *),
258 void *poll_status_data 257 void *poll_status_data
259) 258)
diff --git a/src/solvers/coord/utils.h b/src/solvers/coord/utils.h
index 6066049..5b8f538 100644
--- a/src/solvers/coord/utils.h
+++ b/src/solvers/coord/utils.h
@@ -1,10 +1,10 @@
1STATIC coord_t *parse_coord(size_t n, const char [n]); 1STATIC coord_t *parse_coord(size_t, const char *);
2STATIC uint8_t parse_axis(const char [static 2]); 2STATIC uint8_t parse_axis(const char [static 2]);
3STATIC void parse_coord_and_axis(const char *, coord_t **, uint8_t *); 3STATIC void parse_coord_and_axis(const char *, coord_t **, uint8_t *);
4STATIC long long dataid_coord(const char *, char [static NISSY_SIZE_DATAID]); 4STATIC long long dataid_coord(const char *, char [static NISSY_SIZE_DATAID]);
5 5
6STATIC coord_t * 6STATIC coord_t *
7parse_coord(size_t n, const char coord[n]) 7parse_coord(size_t n, const char *coord)
8{ 8{
9 int i; 9 int i;
10 10
diff --git a/src/solvers/dispatch.h b/src/solvers/dispatch.h
index 7cf4441..484983e 100644
--- a/src/solvers/dispatch.h
+++ b/src/solvers/dispatch.h
@@ -2,7 +2,7 @@ typedef struct {
2 const char *prefix; 2 const char *prefix;
3 long long (*dataid)(const char *, char [static NISSY_SIZE_DATAID]); 3 long long (*dataid)(const char *, char [static NISSY_SIZE_DATAID]);
4 long long (*gendata)( 4 long long (*gendata)(
5 const char *, unsigned long long n, unsigned char [n]); 5 const char *, unsigned long long, unsigned char *);
6 long long (*checkdata)( 6 long long (*checkdata)(
7 const char *, unsigned long long, const unsigned char *); 7 const char *, unsigned long long, const unsigned char *);
8 long long (*solve)(oriented_cube_t, const char *, unsigned, unsigned, 8 long long (*solve)(oriented_cube_t, const char *, unsigned, unsigned,
diff --git a/src/solvers/h48/checkdata.h b/src/solvers/h48/checkdata.h
index 53e616b..d36d8cc 100644
--- a/src/solvers/h48/checkdata.h
+++ b/src/solvers/h48/checkdata.h
@@ -1,5 +1,5 @@
1STATIC long long checkdata_h48( 1STATIC long long checkdata_h48(
2 const char *, unsigned long long n, const unsigned char [n]); 2 const char *, unsigned long long, const unsigned char *);
3 3
4/* 4/*
5Currently unused. 5Currently unused.
@@ -178,7 +178,7 @@ STATIC long long
178checkdata_h48( 178checkdata_h48(
179 const char *solver, 179 const char *solver,
180 unsigned long long data_size, 180 unsigned long long data_size,
181 const unsigned char data[data_size] 181 const unsigned char *data
182) 182)
183{ 183{
184 const unsigned char *table; 184 const unsigned char *table;
diff --git a/src/solvers/h48/solve.h b/src/solvers/h48/solve.h
index 7e2e5c1..bf34a2b 100644
--- a/src/solvers/h48/solve.h
+++ b/src/solvers/h48/solve.h
@@ -49,8 +49,8 @@ typedef struct {
49} dfsarg_solve_h48_maketasks_t; 49} dfsarg_solve_h48_maketasks_t;
50 50
51STATIC long long solve_h48_dispatch(oriented_cube_t, const char *, unsigned, 51STATIC long long solve_h48_dispatch(oriented_cube_t, const char *, unsigned,
52 unsigned, unsigned, unsigned, unsigned, unsigned, unsigned long long n, 52 unsigned, unsigned, unsigned, unsigned, unsigned, unsigned long long,
53 const unsigned char [n], unsigned m, char [m], 53 const unsigned char *, unsigned, char *,
54 long long [static NISSY_SIZE_SOLVE_STATS], int (*)(void *), void *); 54 long long [static NISSY_SIZE_SOLVE_STATS], int (*)(void *), void *);
55STATIC_INLINE bool solve_h48_stop(dfsarg_solve_h48_t [static 1]); 55STATIC_INLINE bool solve_h48_stop(dfsarg_solve_h48_t [static 1]);
56STATIC int64_t solve_h48_maketasks( 56STATIC int64_t solve_h48_maketasks(
@@ -60,7 +60,7 @@ STATIC void *solve_h48_runthread(void *);
60STATIC int64_t solve_h48_dfs(dfsarg_solve_h48_t [static 1]); 60STATIC int64_t solve_h48_dfs(dfsarg_solve_h48_t [static 1]);
61STATIC void solve_h48_log_solutions(solution_list_t [static 1], size_t); 61STATIC void solve_h48_log_solutions(solution_list_t [static 1], size_t);
62STATIC int64_t solve_h48(oriented_cube_t, uint8_t, uint8_t, uint8_t, uint8_t, 62STATIC int64_t solve_h48(oriented_cube_t, uint8_t, uint8_t, uint8_t, uint8_t,
63 uint8_t, uint64_t, const unsigned char *, size_t n, char [n], 63 uint8_t, uint64_t, const unsigned char *, size_t, char *,
64 long long [static NISSY_SIZE_SOLVE_STATS], int (*)(void *), void *); 64 long long [static NISSY_SIZE_SOLVE_STATS], int (*)(void *), void *);
65 65
66STATIC long long solve_h48_dispatch( 66STATIC long long solve_h48_dispatch(
@@ -73,9 +73,9 @@ STATIC long long solve_h48_dispatch(
73 unsigned optimal, 73 unsigned optimal,
74 unsigned threads, 74 unsigned threads,
75 unsigned long long data_size, 75 unsigned long long data_size,
76 const unsigned char data[data_size], 76 const unsigned char *data,
77 unsigned sols_size, 77 unsigned sols_size,
78 char sols[sols_size], 78 char *sols,
79 long long stats[static NISSY_SIZE_SOLVE_STATS], 79 long long stats[static NISSY_SIZE_SOLVE_STATS],
80 int (*poll_status)(void *), 80 int (*poll_status)(void *),
81 void *poll_status_data 81 void *poll_status_data
@@ -410,7 +410,7 @@ solve_h48(
410 uint64_t data_size, 410 uint64_t data_size,
411 const unsigned char *data, 411 const unsigned char *data,
412 size_t solutions_size, 412 size_t solutions_size,
413 char solutions[solutions_size], 413 char *solutions,
414 long long stats[static NISSY_SIZE_SOLVE_STATS], 414 long long stats[static NISSY_SIZE_SOLVE_STATS],
415 int (*poll_status)(void *), 415 int (*poll_status)(void *),
416 void *poll_status_data 416 void *poll_status_data
diff --git a/src/solvers/solutions.h b/src/solvers/solutions.h
index 182ae18..cdb1fdb 100644
--- a/src/solvers/solutions.h
+++ b/src/solvers/solutions.h
@@ -1,11 +1,10 @@
1STATIC void solution_moves_reset(solution_moves_t [static 1]); 1STATIC void solution_moves_reset(solution_moves_t [static 1]);
2STATIC void solution_moves_transform(solution_moves_t [static 1], uint8_t); 2STATIC void solution_moves_transform(solution_moves_t [static 1], uint8_t);
3STATIC void solution_moves_reorient(solution_moves_t [static 1], uint8_t); 3STATIC void solution_moves_reorient(solution_moves_t [static 1], uint8_t);
4STATIC bool solution_list_init( 4STATIC bool solution_list_init(solution_list_t [static 1], size_t, char *);
5 solution_list_t [static 1], size_t n, char [n]);
6STATIC bool solution_moves_equal( 5STATIC bool solution_moves_equal(
7 const solution_moves_t [static 1], const solution_moves_t [static 1]); 6 const solution_moves_t [static 1], const solution_moves_t [static 1]);
8STATIC bool solution_moves_is_duplicate(size_t n, const solution_moves_t[n+1]); 7STATIC bool solution_moves_is_duplicate(size_t, const solution_moves_t *);
9STATIC bool appendchar(solution_list_t [static 1], char); 8STATIC bool appendchar(solution_list_t [static 1], char);
10STATIC bool appendnormal( 9STATIC bool appendnormal(
11 const solution_moves_t [static 1], solution_list_t [static 1]); 10 const solution_moves_t [static 1], solution_list_t [static 1]);
@@ -50,7 +49,7 @@ solution_moves_reorient(solution_moves_t moves[static 1], uint8_t or)
50} 49}
51 50
52STATIC bool 51STATIC bool
53solution_list_init(solution_list_t sols[static 1], size_t n, char buf[n]) 52solution_list_init(solution_list_t sols[static 1], size_t n, char *buf)
54{ 53{
55 if (n == 0) 54 if (n == 0)
56 return false; 55 return false;
@@ -88,7 +87,7 @@ solution_moves_equal(
88} 87}
89 88
90STATIC bool 89STATIC bool
91solution_moves_is_duplicate(size_t n, const solution_moves_t s[n+1]) 90solution_moves_is_duplicate(size_t n, const solution_moves_t *s)
92{ 91{
93 size_t i; 92 size_t i;
94 93
diff --git a/src/solvers/tables.h b/src/solvers/tables.h
index 53091f9..1e76fc1 100644
--- a/src/solvers/tables.h
+++ b/src/solvers/tables.h
@@ -1,11 +1,13 @@
1STATIC uint64_t read_unaligned_u64(const unsigned char [static sizeof(uint64_t)]); 1STATIC uint64_t read_unaligned_u64(
2STATIC void write_unaligned_u64(unsigned char [static sizeof(uint64_t)], uint64_t); 2 const unsigned char [static sizeof(uint64_t)]);
3STATIC void write_unaligned_u64(
4 unsigned char [static sizeof(uint64_t)], uint64_t);
3STATIC int64_t readtableinfo( 5STATIC int64_t readtableinfo(
4 size_t n, const unsigned char [n], tableinfo_t [static 1]); 6 size_t, const unsigned char *, tableinfo_t [static 1]);
5STATIC int64_t readtableinfo_n( 7STATIC int64_t readtableinfo_n(
6 size_t n, const unsigned char [n], uint8_t, tableinfo_t [static 1]); 8 size_t, const unsigned char *, uint8_t, tableinfo_t [static 1]);
7STATIC int64_t writetableinfo( 9STATIC int64_t writetableinfo(
8 const tableinfo_t [static 1], size_t n, unsigned char [n]); 10 const tableinfo_t [static 1], size_t, unsigned char *);
9 11
10STATIC uint64_t 12STATIC uint64_t
11read_unaligned_u64(const unsigned char buf[static sizeof(uint64_t)]) 13read_unaligned_u64(const unsigned char buf[static sizeof(uint64_t)])
@@ -26,7 +28,7 @@ write_unaligned_u64(unsigned char buf[static sizeof(uint64_t)], uint64_t x)
26STATIC int64_t 28STATIC int64_t
27readtableinfo( 29readtableinfo(
28 size_t buf_size, 30 size_t buf_size,
29 const unsigned char buf[buf_size], 31 const unsigned char *buf,
30 tableinfo_t info[static 1] 32 tableinfo_t info[static 1]
31) 33)
32{ 34{
@@ -70,7 +72,7 @@ readtableinfo(
70STATIC int64_t 72STATIC int64_t
71readtableinfo_n( 73readtableinfo_n(
72 size_t buf_size, 74 size_t buf_size,
73 const unsigned char buf[buf_size], 75 const unsigned char *buf,
74 uint8_t n, 76 uint8_t n,
75 tableinfo_t info[static 1] 77 tableinfo_t info[static 1]
76) 78)
@@ -88,7 +90,7 @@ STATIC int64_t
88writetableinfo( 90writetableinfo(
89 const tableinfo_t info[static 1], 91 const tableinfo_t info[static 1],
90 size_t data_size, 92 size_t data_size,
91 unsigned char buf[data_size] 93 unsigned char *buf
92) 94)
93{ 95{
94 size_t i; 96 size_t i;
diff --git a/src/utils/math.h b/src/utils/math.h
index 3ecd313..732a031 100644
--- a/src/utils/math.h
+++ b/src/utils/math.h
@@ -4,12 +4,12 @@
4#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d)) 4#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
5 5
6STATIC int64_t factorial(int64_t); 6STATIC int64_t factorial(int64_t);
7STATIC bool isperm(size_t n, const uint8_t [n]); 7STATIC bool isperm(size_t, const uint8_t *);
8STATIC int64_t permtoindex(size_t n, const uint8_t [n]); 8STATIC int64_t permtoindex(size_t, const uint8_t *);
9STATIC void indextoperm(int64_t, size_t n, uint8_t [n]); 9STATIC void indextoperm(int64_t, size_t, uint8_t *);
10STATIC int permsign(size_t n, const uint8_t [n]); 10STATIC int permsign(size_t, const uint8_t *);
11STATIC int64_t digitstosumzero(size_t n, const uint8_t [n], uint8_t); 11STATIC int64_t digitstosumzero(size_t, const uint8_t *, uint8_t);
12STATIC void sumzerotodigits(int64_t, size_t n, uint8_t, uint8_t [n]); 12STATIC void sumzerotodigits(int64_t, size_t, uint8_t, uint8_t *);
13STATIC double intpow(double, uint64_t); 13STATIC double intpow(double, uint64_t);
14 14
15STATIC int64_t 15STATIC int64_t
@@ -33,7 +33,7 @@ factorial(int64_t n)
33} 33}
34 34
35STATIC bool 35STATIC bool
36isperm(size_t n, const uint8_t a[n]) 36isperm(size_t n, const uint8_t *a)
37{ 37{
38 size_t i; 38 size_t i;
39 bool aux[FACTORIAL_MAX+1]; 39 bool aux[FACTORIAL_MAX+1];
@@ -61,7 +61,7 @@ isperm(size_t n, const uint8_t a[n])
61} 61}
62 62
63STATIC int64_t 63STATIC int64_t
64permtoindex(size_t n, const uint8_t a[n]) 64permtoindex(size_t n, const uint8_t *a)
65{ 65{
66 size_t i, j; 66 size_t i, j;
67 int64_t c, ret; 67 int64_t c, ret;
@@ -85,7 +85,7 @@ permtoindex(size_t n, const uint8_t a[n])
85} 85}
86 86
87STATIC void 87STATIC void
88indextoperm(int64_t p, size_t n, uint8_t r[n]) 88indextoperm(int64_t p, size_t n, uint8_t *r)
89{ 89{
90 int64_t c; 90 int64_t c;
91 size_t i, j; 91 size_t i, j;
@@ -120,7 +120,7 @@ indextoperm_error:
120} 120}
121 121
122STATIC int 122STATIC int
123permsign(size_t n, const uint8_t a[n]) 123permsign(size_t n, const uint8_t *a)
124{ 124{
125 size_t i, j, ret; 125 size_t i, j, ret;
126 126
@@ -132,7 +132,7 @@ permsign(size_t n, const uint8_t a[n])
132} 132}
133 133
134STATIC int64_t 134STATIC int64_t
135digitstosumzero(size_t n, const uint8_t a[n], uint8_t b) 135digitstosumzero(size_t n, const uint8_t *a, uint8_t b)
136{ 136{
137 int64_t ret, p; 137 int64_t ret, p;
138 size_t i, sum; 138 size_t i, sum;
@@ -162,7 +162,7 @@ digitstosumzero(size_t n, const uint8_t a[n], uint8_t b)
162} 162}
163 163
164STATIC void 164STATIC void
165sumzerotodigits(int64_t d, size_t n, uint8_t b, uint8_t a[n]) 165sumzerotodigits(int64_t d, size_t n, uint8_t b, uint8_t *a)
166{ 166{
167 uint8_t sum; 167 uint8_t sum;
168 size_t i; 168 size_t i;

Generated with cgit - Back to sebastiano.tronto.net