aboutsummaryrefslogtreecommitdiff
path: root/tools/tool.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/tool.h')
-rw-r--r--tools/tool.h26
1 files changed, 16 insertions, 10 deletions
diff --git a/tools/tool.h b/tools/tool.h
index 3488f34..b65f33a 100644
--- a/tools/tool.h
+++ b/tools/tool.h
@@ -13,7 +13,8 @@ static void log_stderr(const char *, ...);
13static void log_stdout(const char *, ...); 13static void log_stdout(const char *, ...);
14static double timerun(void (*)(void)); 14static double timerun(void (*)(void));
15static void writetable(const char *, int64_t, const char *); 15static void writetable(const char *, int64_t, const char *);
16static long long int generatetable(const char *, char **); 16static long long int generatetable(const char *, char **,
17 char [static NISSY_DATAID_SIZE]);
17static long long int derivetable( 18static long long int derivetable(
18 const char *, const char *, const char *, char **); 19 const char *, const char *, const char *, char **);
19static int getdata(const char *, char **, const char *); 20static int getdata(const char *, char **, const char *);
@@ -86,11 +87,15 @@ writetable(const char *buf, int64_t size, const char *filename)
86} 87}
87 88
88static long long int 89static long long int
89generatetable(const char *solver, char **buf) 90generatetable(
91 const char *solver,
92 char **buf,
93 char dataid[static NISSY_DATAID_SIZE]
94)
90{ 95{
91 long long int size, gensize; 96 long long int size, gensize;
92 97
93 size = nissy_datasize(solver); 98 size = nissy_solverinfo(solver, dataid);
94 if (size < 0) { 99 if (size < 0) {
95 printf("Error getting table size.\n"); 100 printf("Error getting table size.\n");
96 return -1; 101 return -1;
@@ -120,7 +125,7 @@ derivetable(
120{ 125{
121 uint8_t h, k; 126 uint8_t h, k;
122 long long int size, gensize; 127 long long int size, gensize;
123 char *fulltable; 128 char *fulltable, dataid[NISSY_DATAID_SIZE];
124 129
125 if (getdata(solver_large, &fulltable, filename_large) != 0) { 130 if (getdata(solver_large, &fulltable, filename_large) != 0) {
126 printf("Error reading full table.\n"); 131 printf("Error reading full table.\n");
@@ -128,7 +133,7 @@ derivetable(
128 goto derivetable_error_nofree; 133 goto derivetable_error_nofree;
129 } 134 }
130 135
131 size = nissy_datasize(solver_small); 136 size = nissy_solverinfo(solver_small, dataid);
132 if (size == -1) { 137 if (size == -1) {
133 printf("Error getting table size.\n"); 138 printf("Error getting table size.\n");
134 gensize = -2; 139 gensize = -2;
@@ -164,10 +169,11 @@ getdata(
164) { 169) {
165 long long int size, sizeread; 170 long long int size, sizeread;
166 FILE *f; 171 FILE *f;
172 char dataid[NISSY_DATAID_SIZE];
167 173
168 if ((f = fopen(filename, "rb")) == NULL) { 174 if ((f = fopen(filename, "rb")) == NULL) {
169 printf("Table file not found, generating it.\n"); 175 printf("Table file not found, generating it.\n");
170 size = generatetable(solver, buf); 176 size = generatetable(solver, buf, dataid);
171 switch (size) { 177 switch (size) {
172 case -1: 178 case -1:
173 goto getdata_error_nofree; 179 goto getdata_error_nofree;
@@ -179,7 +185,7 @@ getdata(
179 } 185 }
180 } else { 186 } else {
181 printf("Reading tables from file %s\n", filename); 187 printf("Reading tables from file %s\n", filename);
182 size = nissy_datasize(solver); 188 size = nissy_solverinfo(solver, dataid);
183 *buf = malloc(size); 189 *buf = malloc(size);
184 sizeread = fread(*buf, size, 1, f); 190 sizeread = fread(*buf, size, 1, f);
185 fclose(f); 191 fclose(f);
@@ -203,10 +209,10 @@ gendata_run(
203 uint64_t expected[static 21] 209 uint64_t expected[static 21]
204) { 210) {
205 long long int size; 211 long long int size;
206 char *buf, filename[1024]; 212 char *buf, filename[1024], dataid[NISSY_DATAID_SIZE];
207 213
208 sprintf(filename, "tables/%s", solver); 214 size = generatetable(solver, &buf, dataid);
209 size = generatetable(solver, &buf); 215 sprintf(filename, "tables/%s", dataid);
210 switch (size) { 216 switch (size) {
211 case -1: 217 case -1:
212 return; 218 return;

Generated with cgit - Back to sebastiano.tronto.net