aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2024-09-26 14:59:11 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2024-09-26 15:00:16 +0200
commit818186b480d7c05e0c58ff89da2180f5b2476434 (patch)
tree0f6e4919d4001775a4820dffd29448dbd20c00db /tools
parentbb09e52a7481718ae1fe324d16b99970450908f8 (diff)
downloadnissy-core-818186b480d7c05e0c58ff89da2180f5b2476434.tar.gz
nissy-core-818186b480d7c05e0c58ff89da2180f5b2476434.zip
Added TOOLARGS and simplified gendata tool(s)
Diffstat (limited to 'tools')
-rw-r--r--tools/0002_gendata_h48h0k2/gendata_h48h0k2.c21
-rw-r--r--tools/0004_gendata_h48h0k4/gendata_h48h0k4.c29
-rw-r--r--tools/0012_gendata_h48h1k2/gendata_h48h1k2.c21
-rw-r--r--tools/0022_gendata_h48h2k2/gendata_h48h2k2.c21
-rw-r--r--tools/0032_gendata_h48h3k2/gendata_h48h3k2.c21
-rw-r--r--tools/0042_gendata_h48h4k2/gendata_h48h4k2.c21
-rw-r--r--tools/0052_gendata_h48h5k2/gendata_h48h5k2.c21
-rw-r--r--tools/0062_gendata_h48h6k2/gendata_h48h6k2.c21
-rw-r--r--tools/0072_gendata_h48h7k2/gendata_h48h7k2.c21
-rw-r--r--tools/0082_gendata_h48h8k2/gendata_h48h8k2.c21
-rw-r--r--tools/0092_gendata_h48h9k2/gendata_h48h9k2.c21
-rw-r--r--tools/0102_gendata_h48h10k2/gendata_h48h10k2.c21
-rw-r--r--tools/0112_gendata_h48h11k2/gendata_h48h11k2.c21
-rw-r--r--tools/100_gendata/gendata.c80
-rw-r--r--tools/200_stats_tables_h48/stats_tables_h48.c (renamed from tools/100_stats_tables_h48/stats_tables_h48.c)0
-rw-r--r--tools/300_solve_small/solve_small.c (renamed from tools/200_solve_small/solve_small.c)0
-rw-r--r--tools/nissy_extra.h3
-rwxr-xr-xtools/run_tool.sh5
-rw-r--r--tools/tool.h20
19 files changed, 102 insertions, 287 deletions
diff --git a/tools/0002_gendata_h48h0k2/gendata_h48h0k2.c b/tools/0002_gendata_h48h0k2/gendata_h48h0k2.c
deleted file mode 100644
index 14f99ee..0000000
--- a/tools/0002_gendata_h48h0k2/gendata_h48h0k2.c
+++ /dev/null
@@ -1,21 +0,0 @@
1#include "../tool.h"
2
3uint64_t expected[21] = {
4 /* Base value is 8 */
5 [0] = 5473562,
6 [1] = 34776317,
7 [2] = 68566704,
8 [3] = 8750867,
9};
10
11void run(void) {
12 gendata_run("h48", "0;2;20", "tables/h48h0k2", expected);
13}
14
15int main(void) {
16 nissy_setlogger(log_stderr);
17
18 timerun(run, "benchmark gendata_h48 h = 0, k = 2");
19
20 return 0;
21}
diff --git a/tools/0004_gendata_h48h0k4/gendata_h48h0k4.c b/tools/0004_gendata_h48h0k4/gendata_h48h0k4.c
deleted file mode 100644
index ff34bb9..0000000
--- a/tools/0004_gendata_h48h0k4/gendata_h48h0k4.c
+++ /dev/null
@@ -1,29 +0,0 @@
1#include "../tool.h"
2
3uint64_t expected[21] = {
4 [0] = 1,
5 [1] = 1,
6 [2] = 4,
7 [3] = 34,
8 [4] = 331,
9 [5] = 3612,
10 [6] = 41605,
11 [7] = 474128,
12 [8] = 4953846,
13 [9] = 34776317,
14 [10] = 68566704,
15 [11] = 8749194,
16 [12] = 1673,
17};
18
19void run(void) {
20 gendata_run("h48", "0;4;20", "tables/h48h0k4", expected);
21}
22
23int main(void) {
24 nissy_setlogger(log_stderr);
25
26 timerun(run, "benchmark gendata_h48 h = 0, k = 4");
27
28 return 0;
29}
diff --git a/tools/0012_gendata_h48h1k2/gendata_h48h1k2.c b/tools/0012_gendata_h48h1k2/gendata_h48h1k2.c
deleted file mode 100644
index 0ebdcaa..0000000
--- a/tools/0012_gendata_h48h1k2/gendata_h48h1k2.c
+++ /dev/null
@@ -1,21 +0,0 @@
1#include "../tool.h"
2
3uint64_t expected[21] = {
4 /* Base value is 8 */
5 [0] = 0, /* Unknown */
6 [1] = 0, /* Unknown */
7 [2] = 0, /* Unknown */
8 [3] = 0, /* Unknown */
9};
10
11void run(void) {
12 gendata_run("h48", "1;2;20", "tables/h48h1k2", expected);
13}
14
15int main(void) {
16 nissy_setlogger(log_stderr);
17
18 timerun(run, "benchmark gendata_h48 h = 1, k = 2");
19
20 return 0;
21}
diff --git a/tools/0022_gendata_h48h2k2/gendata_h48h2k2.c b/tools/0022_gendata_h48h2k2/gendata_h48h2k2.c
deleted file mode 100644
index f437e98..0000000
--- a/tools/0022_gendata_h48h2k2/gendata_h48h2k2.c
+++ /dev/null
@@ -1,21 +0,0 @@
1#include "../tool.h"
2
3uint64_t expected[21] = {
4 /* Base value is 8 */
5 [0] = 0, /* Unknown */
6 [1] = 0, /* Unknown */
7 [2] = 0, /* Unknown */
8 [3] = 0, /* Unknown */
9};
10
11void run(void) {
12 gendata_run("h48", "2;2;20", "tables/h48h2k2", expected);
13}
14
15int main(void) {
16 nissy_setlogger(log_stderr);
17
18 timerun(run, "benchmark gendata_h48 h = 2, k = 2");
19
20 return 0;
21}
diff --git a/tools/0032_gendata_h48h3k2/gendata_h48h3k2.c b/tools/0032_gendata_h48h3k2/gendata_h48h3k2.c
deleted file mode 100644
index 2e0eab5..0000000
--- a/tools/0032_gendata_h48h3k2/gendata_h48h3k2.c
+++ /dev/null
@@ -1,21 +0,0 @@
1#include "../tool.h"
2
3uint64_t expected[21] = {
4 /* Base value is 8 */
5 [0] = 0, /* Unknown */
6 [1] = 0, /* Unknown */
7 [2] = 0, /* Unknown */
8 [3] = 0, /* Unknown */
9};
10
11void run(void) {
12 gendata_run("h48", "3;2;20", "tables/h48h3k2", expected);
13}
14
15int main(void) {
16 nissy_setlogger(log_stderr);
17
18 timerun(run, "benchmark gendata_h48 h = 3, k = 2");
19
20 return 0;
21}
diff --git a/tools/0042_gendata_h48h4k2/gendata_h48h4k2.c b/tools/0042_gendata_h48h4k2/gendata_h48h4k2.c
deleted file mode 100644
index 868c360..0000000
--- a/tools/0042_gendata_h48h4k2/gendata_h48h4k2.c
+++ /dev/null
@@ -1,21 +0,0 @@
1#include "../tool.h"
2
3uint64_t expected[21] = {
4 /* Base value is 8 */
5 [0] = 0, /* Unknown */
6 [1] = 0, /* Unknown */
7 [2] = 0, /* Unknown */
8 [3] = 0, /* Unknown */
9};
10
11void run(void) {
12 gendata_run("h48", "4;2;20", "tables/h48h4k2", expected);
13}
14
15int main(void) {
16 nissy_setlogger(log_stderr);
17
18 timerun(run, "benchmark gendata_h48 h = 4, k = 2");
19
20 return 0;
21}
diff --git a/tools/0052_gendata_h48h5k2/gendata_h48h5k2.c b/tools/0052_gendata_h48h5k2/gendata_h48h5k2.c
deleted file mode 100644
index d292d49..0000000
--- a/tools/0052_gendata_h48h5k2/gendata_h48h5k2.c
+++ /dev/null
@@ -1,21 +0,0 @@
1#include "../tool.h"
2
3uint64_t expected[21] = {
4 /* Base value is 8 */
5 [0] = 0, /* Unknown */
6 [1] = 0, /* Unknown */
7 [2] = 0, /* Unknown */
8 [3] = 0, /* Unknown */
9};
10
11void run(void) {
12 gendata_run("h48", "5;2;20", "tables/h48h5k2", expected);
13}
14
15int main(void) {
16 nissy_setlogger(log_stderr);
17
18 timerun(run, "benchmark gendata_h48 h = 5, k = 2");
19
20 return 0;
21}
diff --git a/tools/0062_gendata_h48h6k2/gendata_h48h6k2.c b/tools/0062_gendata_h48h6k2/gendata_h48h6k2.c
deleted file mode 100644
index 910d514..0000000
--- a/tools/0062_gendata_h48h6k2/gendata_h48h6k2.c
+++ /dev/null
@@ -1,21 +0,0 @@
1#include "../tool.h"
2
3uint64_t expected[21] = {
4 /* Base value is 8 */
5 [0] = 0, /* Unknown */
6 [1] = 0, /* Unknown */
7 [2] = 0, /* Unknown */
8 [3] = 0, /* Unknown */
9};
10
11void run(void) {
12 gendata_run("h48", "6;2;20", "tables/h48h6k2", expected);
13}
14
15int main(void) {
16 nissy_setlogger(log_stderr);
17
18 timerun(run, "benchmark gendata_h48 h = 6, k = 2");
19
20 return 0;
21}
diff --git a/tools/0072_gendata_h48h7k2/gendata_h48h7k2.c b/tools/0072_gendata_h48h7k2/gendata_h48h7k2.c
deleted file mode 100644
index b803328..0000000
--- a/tools/0072_gendata_h48h7k2/gendata_h48h7k2.c
+++ /dev/null
@@ -1,21 +0,0 @@
1#include "../tool.h"
2
3uint64_t expected[21] = {
4 /* Base value is 8 */
5 [0] = 0, /* Unknown */
6 [1] = 0, /* Unknown */
7 [2] = 0, /* Unknown */
8 [3] = 0, /* Unknown */
9};
10
11void run(void) {
12 gendata_run("h48", "7;2;20", "tables/h48h7k2", expected);
13}
14
15int main(void) {
16 nissy_setlogger(log_stderr);
17
18 timerun(run, "benchmark gendata_h48 h = 7, k = 2");
19
20 return 0;
21}
diff --git a/tools/0082_gendata_h48h8k2/gendata_h48h8k2.c b/tools/0082_gendata_h48h8k2/gendata_h48h8k2.c
deleted file mode 100644
index 52c377a..0000000
--- a/tools/0082_gendata_h48h8k2/gendata_h48h8k2.c
+++ /dev/null
@@ -1,21 +0,0 @@
1#include "../tool.h"
2
3uint64_t expected[21] = {
4 /* Base value is 8 */
5 [0] = 0, /* Unknown */
6 [1] = 0, /* Unknown */
7 [2] = 0, /* Unknown */
8 [3] = 0, /* Unknown */
9};
10
11void run(void) {
12 gendata_run("h48", "8;2;20", "tables/h48h8k2", expected);
13}
14
15int main(void) {
16 nissy_setlogger(log_stderr);
17
18 timerun(run, "benchmark gendata_h48 h = 8, k = 2");
19
20 return 0;
21}
diff --git a/tools/0092_gendata_h48h9k2/gendata_h48h9k2.c b/tools/0092_gendata_h48h9k2/gendata_h48h9k2.c
deleted file mode 100644
index 5d3e34a..0000000
--- a/tools/0092_gendata_h48h9k2/gendata_h48h9k2.c
+++ /dev/null
@@ -1,21 +0,0 @@
1#include "../tool.h"
2
3uint64_t expected[21] = {
4 /* Base value is 8 */
5 [0] = 0, /* Unknown */
6 [1] = 0, /* Unknown */
7 [2] = 0, /* Unknown */
8 [3] = 0, /* Unknown */
9};
10
11void run(void) {
12 gendata_run("h48", "9;2;20", "tables/h48h9k2", expected);
13}
14
15int main(void) {
16 nissy_setlogger(log_stderr);
17
18 timerun(run, "benchmark gendata_h48 h = 9, k = 2");
19
20 return 0;
21}
diff --git a/tools/0102_gendata_h48h10k2/gendata_h48h10k2.c b/tools/0102_gendata_h48h10k2/gendata_h48h10k2.c
deleted file mode 100644
index 5e8fbb0..0000000
--- a/tools/0102_gendata_h48h10k2/gendata_h48h10k2.c
+++ /dev/null
@@ -1,21 +0,0 @@
1#include "../tool.h"
2
3uint64_t expected[21] = {
4 /* Base value is 8 */
5 [0] = 0, /* Unknown */
6 [1] = 0, /* Unknown */
7 [2] = 0, /* Unknown */
8 [3] = 0, /* Unknown */
9};
10
11void run(void) {
12 gendata_run("h48", "10;2;20", "tables/h48h10k2", expected);
13}
14
15int main(void) {
16 nissy_setlogger(log_stderr);
17
18 timerun(run, "benchmark gendata_h48 h = 10, k = 2");
19
20 return 0;
21}
diff --git a/tools/0112_gendata_h48h11k2/gendata_h48h11k2.c b/tools/0112_gendata_h48h11k2/gendata_h48h11k2.c
deleted file mode 100644
index 00c0747..0000000
--- a/tools/0112_gendata_h48h11k2/gendata_h48h11k2.c
+++ /dev/null
@@ -1,21 +0,0 @@
1#include "../tool.h"
2
3uint64_t expected[21] = {
4 /* Base value is 8 */
5 [0] = 0, /* Unknown */
6 [1] = 0, /* Unknown */
7 [2] = 0, /* Unknown */
8 [3] = 0, /* Unknown */
9};
10
11void run(void) {
12 gendata_run("h48", "11;2;20", "tables/h48h11k2", expected);
13}
14
15int main(void) {
16 nissy_setlogger(log_stderr);
17
18 timerun(run, "benchmark gendata_h48 h = 11, k = 2");
19
20 return 0;
21}
diff --git a/tools/100_gendata/gendata.c b/tools/100_gendata/gendata.c
new file mode 100644
index 0000000..78f81ab
--- /dev/null
+++ b/tools/100_gendata/gendata.c
@@ -0,0 +1,80 @@
1#include "../tool.h"
2
3char *solver, *options;
4uint64_t *expected;
5
6uint64_t expected_h48[12][9][21] = {
7 [0] = {
8 [2] = {
9 [0] = 5473562,
10 [1] = 34776317,
11 [2] = 68566704,
12 [3] = 8750867,
13 },
14 [4] = {
15 [0] = 1,
16 [1] = 1,
17 [2] = 4,
18 [3] = 34,
19 [4] = 331,
20 [5] = 3612,
21 [6] = 41605,
22 [7] = 474128,
23 [8] = 4953846,
24 [9] = 34776317,
25 [10] = 68566704,
26 [11] = 8749194,
27 [12] = 1673,
28 },
29 },
30};
31
32static void
33run(void) {
34 int64_t size;
35 char *buf, filename[1024];
36
37 getfilename(solver, options, filename);
38 size = generatetable(solver, options, &buf);
39 switch (size) {
40 case -1:
41 return;
42 case -2:
43 goto gendata_run_finish;
44 default:
45 nissy_datainfo(buf, write_stdout);
46 printf("\n");
47 printf("Succesfully generated %" PRId64 " bytes. "
48 "See above for details on the tables.\n", size);
49
50 writetable(buf, size, filename);
51 break;
52 }
53
54gendata_run_finish:
55 free(buf);
56}
57
58int main(int argc, char **argv) {
59 uint8_t h, k;
60 char description[256];
61
62 if (argc < 3) {
63 fprintf(stderr, "Error: not enough arguments."
64 "A solver and its options must be given.\n");
65 return 1;
66 }
67
68 solver = argv[1];
69 options = argv[2];
70 parse_h48_options(options, &h, &k, NULL);
71 expected = expected_h48[h][k];
72 sprintf(description, "benchmark gendata_h48 h = %" PRIu8
73 ", k = %" PRIu8 "", h, k);
74
75 nissy_setlogger(log_stderr);
76
77 timerun(run, description);
78
79 return 0;
80}
diff --git a/tools/100_stats_tables_h48/stats_tables_h48.c b/tools/200_stats_tables_h48/stats_tables_h48.c
index adac8fa..adac8fa 100644
--- a/tools/100_stats_tables_h48/stats_tables_h48.c
+++ b/tools/200_stats_tables_h48/stats_tables_h48.c
diff --git a/tools/200_solve_small/solve_small.c b/tools/300_solve_small/solve_small.c
index 4d07728..4d07728 100644
--- a/tools/200_solve_small/solve_small.c
+++ b/tools/300_solve_small/solve_small.c
diff --git a/tools/nissy_extra.h b/tools/nissy_extra.h
new file mode 100644
index 0000000..17906d4
--- /dev/null
+++ b/tools/nissy_extra.h
@@ -0,0 +1,3 @@
1/* Intended only for tools */
2
3int parse_h48_options(const char *, uint8_t *, uint8_t *, uint8_t *);
diff --git a/tools/run_tool.sh b/tools/run_tool.sh
index 7e09684..2216a66 100755
--- a/tools/run_tool.sh
+++ b/tools/run_tool.sh
@@ -5,7 +5,7 @@ if [ -z "$TOOL" ]; then
5 exit 1 5 exit 1
6fi 6fi
7 7
8CC="$CC -D_POSIX_C_SOURCE=199309L" 8CC="$CC -D_POSIX_C_SOURCE=199309L" # For timer
9 9
10BIN="tools/run" 10BIN="tools/run"
11d="$(date +'%Y-%m-%d-%H-%M-%S')" 11d="$(date +'%Y-%m-%d-%H-%M-%S')"
@@ -16,7 +16,8 @@ for t in tools/*; do
16 fi 16 fi
17 toolname="$(basename "$t" .c)" 17 toolname="$(basename "$t" .c)"
18 $CC -o $BIN "$t"/*.c "$CUBEOBJ" || exit 1; 18 $CC -o $BIN "$t"/*.c "$CUBEOBJ" || exit 1;
19 $BIN | tee "tools/results/$toolname-$d.txt" "tools/results/last.out" 19 $BIN $TOOLARGS \
20 | tee "tools/results/$toolname-$d.txt" "tools/results/last.out"
20 break 21 break
21done 22done
22 23
diff --git a/tools/tool.h b/tools/tool.h
index 757657b..1540f22 100644
--- a/tools/tool.h
+++ b/tools/tool.h
@@ -6,14 +6,16 @@
6#include <stdlib.h> 6#include <stdlib.h>
7 7
8#include "../src/nissy.h" 8#include "../src/nissy.h"
9#include "nissy_extra.h"
9 10
10static void log_stderr(const char *, ...); 11static void log_stderr(const char *, ...);
11static void log_stdout(const char *, ...); 12static void log_stdout(const char *, ...);
12static double timerun(void (*)(void), const char *); 13static double timerun(void (*)(void), const char *);
14static void getfilename(const char *, const char *, char *);
13static void writetable(const char *, int64_t, const char *); 15static void writetable(const char *, int64_t, const char *);
14static int64_t generatetable(const char *, const char *, char **); 16static int64_t generatetable(const char *, const char *, char **);
15static int getdata(const char *, const char *, char **, const char *); 17static int getdata(const char *, const char *, char **, const char *);
16static void gendata_run(const char *, const char *, const char *, uint64_t[static 21]); 18static void gendata_run(const char *, const char *, uint64_t *);
17 19
18static void 20static void
19log_stderr(const char *str, ...) 21log_stderr(const char *str, ...)
@@ -70,6 +72,17 @@ timerun(void (*run)(void), const char *name)
70} 72}
71 73
72static void 74static void
75getfilename(const char *solver, const char *options, char *filename)
76{
77 uint8_t h, k;
78
79 /* Only h48 supported for now */
80 parse_h48_options(options, &h, &k, NULL);
81
82 sprintf(filename, "tables/%sh%dk%d", solver, h, k);
83}
84
85static void
73writetable(const char *buf, int64_t size, const char *filename) 86writetable(const char *buf, int64_t size, const char *filename)
74{ 87{
75 FILE *f; 88 FILE *f;
@@ -155,13 +168,12 @@ static void
155gendata_run( 168gendata_run(
156 const char *solver, 169 const char *solver,
157 const char *options, 170 const char *options,
158 const char *filename, /* TODO: remove filename, use solver name */
159 uint64_t expected[static 21] 171 uint64_t expected[static 21]
160) { 172) {
161 int64_t size; 173 int64_t size;
162 char *buf; 174 char *buf, filename[1024];
163 175
164 176 getfilename(solver, options, filename);
165 size = generatetable(solver, options, &buf); 177 size = generatetable(solver, options, &buf);
166 switch (size) { 178 switch (size) {
167 case -1: 179 case -1:

Generated with cgit - Back to sebastiano.tronto.net