aboutsummaryrefslogtreecommitdiff
path: root/src/nissy.c
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2025-04-22 09:00:15 +0200
committerSebastiano Tronto <sebastiano@tronto.net>2025-04-22 09:00:15 +0200
commit8b72e391c7185e3da0dfbf0ab60068ac37e4d5cc (patch)
treeb79d8154f16a0dadd8d8265d32b8bd95e96263aa /src/nissy.c
parent510a7471348788fccba6b7c4b9f7b7cc9aee6ba9 (diff)
downloadnissy-core-8b72e391c7185e3da0dfbf0ab60068ac37e4d5cc.tar.gz
nissy-core-8b72e391c7185e3da0dfbf0ab60068ac37e4d5cc.zip
Removed old scripts and updated public API
Diffstat (limited to '')
-rw-r--r--src/nissy.c80
1 files changed, 18 insertions, 62 deletions
diff --git a/src/nissy.c b/src/nissy.c
index dfa1a90..fb3cc11 100644
--- a/src/nissy.c
+++ b/src/nissy.c
@@ -17,7 +17,7 @@ long long parse_h48_solver(
17STATIC bool checkdata(const unsigned char *, const tableinfo_t [static 1]); 17STATIC bool checkdata(const unsigned char *, const tableinfo_t [static 1]);
18STATIC bool distribution_equal(const uint64_t [static INFO_DISTRIBUTION_LEN], 18STATIC bool distribution_equal(const uint64_t [static INFO_DISTRIBUTION_LEN],
19 const uint64_t [static INFO_DISTRIBUTION_LEN], uint8_t); 19 const uint64_t [static INFO_DISTRIBUTION_LEN], uint8_t);
20STATIC long long write_result(cube_t, char [static NISSY_SIZE_B32]); 20STATIC long long write_result(cube_t, char [static NISSY_SIZE_CUBE]);
21STATIC size_t my_strnlen(const char *, size_t); 21STATIC size_t my_strnlen(const char *, size_t);
22STATIC long long nissy_dataid(const char *, char [static NISSY_SIZE_DATAID]); 22STATIC long long nissy_dataid(const char *, char [static NISSY_SIZE_DATAID]);
23STATIC long long nissy_gendata_unsafe( 23STATIC long long nissy_gendata_unsafe(
@@ -117,9 +117,9 @@ distribution_equal(
117} 117}
118 118
119STATIC long long 119STATIC long long
120write_result(cube_t cube, char result[static NISSY_SIZE_B32]) 120write_result(cube_t cube, char result[static NISSY_SIZE_CUBE])
121{ 121{
122 writecube("B32", cube, NISSY_SIZE_B32, result); 122 writecube("B32", cube, NISSY_SIZE_CUBE, result);
123 123
124 if (!issolvable(cube)) { 124 if (!issolvable(cube)) {
125 LOG("Warning: resulting cube is not solvable\n"); 125 LOG("Warning: resulting cube is not solvable\n");
@@ -143,9 +143,9 @@ my_strnlen(const char *str, size_t maxlen)
143 143
144long long 144long long
145nissy_compose( 145nissy_compose(
146 const char cube[static NISSY_SIZE_B32], 146 const char cube[static NISSY_SIZE_CUBE],
147 const char permutation[static NISSY_SIZE_B32], 147 const char permutation[static NISSY_SIZE_CUBE],
148 char result[static NISSY_SIZE_B32] 148 char result[static NISSY_SIZE_CUBE]
149) 149)
150{ 150{
151 cube_t c, p, res; 151 cube_t c, p, res;
@@ -178,14 +178,14 @@ nissy_compose(
178 return write_result(res, result); 178 return write_result(res, result);
179 179
180nissy_compose_error: 180nissy_compose_error:
181 writecube("B32", ZERO_CUBE, NISSY_SIZE_B32, result); 181 writecube("B32", ZERO_CUBE, NISSY_SIZE_CUBE, result);
182 return err; 182 return err;
183} 183}
184 184
185long long 185long long
186nissy_inverse( 186nissy_inverse(
187 const char cube[static NISSY_SIZE_B32], 187 const char cube[static NISSY_SIZE_CUBE],
188 char result[static NISSY_SIZE_B32] 188 char result[static NISSY_SIZE_CUBE]
189) 189)
190{ 190{
191 cube_t c, res; 191 cube_t c, res;
@@ -210,15 +210,15 @@ nissy_inverse(
210 return write_result(res, result); 210 return write_result(res, result);
211 211
212nissy_inverse_error: 212nissy_inverse_error:
213 writecube("B32", ZERO_CUBE, NISSY_SIZE_B32, result); 213 writecube("B32", ZERO_CUBE, NISSY_SIZE_CUBE, result);
214 return err; 214 return err;
215} 215}
216 216
217long long 217long long
218nissy_applymoves( 218nissy_applymoves(
219 const char cube[static NISSY_SIZE_B32], 219 const char cube[static NISSY_SIZE_CUBE],
220 const char *moves, 220 const char *moves,
221 char result[static NISSY_SIZE_B32] 221 char result[static NISSY_SIZE_CUBE]
222) 222)
223{ 223{
224 cube_t c, res; 224 cube_t c, res;
@@ -249,15 +249,15 @@ nissy_applymoves(
249 return write_result(res, result); 249 return write_result(res, result);
250 250
251nissy_applymoves_error: 251nissy_applymoves_error:
252 writecube("B32", ZERO_CUBE, NISSY_SIZE_B32, result); 252 writecube("B32", ZERO_CUBE, NISSY_SIZE_CUBE, result);
253 return err; 253 return err;
254} 254}
255 255
256long long 256long long
257nissy_applytrans( 257nissy_applytrans(
258 const char cube[static NISSY_SIZE_B32], 258 const char cube[static NISSY_SIZE_CUBE],
259 const char transformation[static NISSY_SIZE_TRANSFORMATION], 259 const char transformation[static NISSY_SIZE_TRANSFORMATION],
260 char result[static NISSY_SIZE_B32] 260 char result[static NISSY_SIZE_CUBE]
261) 261)
262{ 262{
263 cube_t c, res; 263 cube_t c, res;
@@ -282,51 +282,7 @@ nissy_applytrans(
282 return write_result(res, result); 282 return write_result(res, result);
283 283
284nissy_applytrans_error: 284nissy_applytrans_error:
285 writecube("B32", ZERO_CUBE, NISSY_SIZE_B32, result); 285 writecube("B32", ZERO_CUBE, NISSY_SIZE_CUBE, result);
286 return err;
287}
288
289long long
290nissy_convert(
291 const char *format_in,
292 const char *format_out,
293 const char *cube_string,
294 unsigned result_size,
295 char result[result_size]
296)
297{
298 cube_t c;
299 long long err;
300
301 if (format_in == NULL) {
302 LOG("[convert] Error: 'format_in' argument is NULL\n");
303 err = NISSY_ERROR_NULL_POINTER;
304 goto nissy_convert_error;
305 }
306
307 if (format_out == NULL) {
308 LOG("[convert] Error: 'format_out' argument is NULL\n");
309 err = NISSY_ERROR_NULL_POINTER;
310 goto nissy_convert_error;
311 }
312
313 if (cube_string == NULL) {
314 LOG("[convert] Error: 'cube_string' argument is NULL\n");
315 err = NISSY_ERROR_NULL_POINTER;
316 goto nissy_convert_error;
317 }
318
319 c = readcube(format_in, cube_string);
320
321 if (!isconsistent(c)) {
322 err = NISSY_ERROR_INVALID_CUBE;
323 goto nissy_convert_error;
324 }
325
326 return writecube(format_out, c, result_size, result);
327
328nissy_convert_error:
329 result[0] = '\0';
330 return err; 286 return err;
331} 287}
332 288
@@ -337,7 +293,7 @@ nissy_getcube(
337 long long cp, 293 long long cp,
338 long long co, 294 long long co,
339 const char *options, 295 const char *options,
340 char result[static NISSY_SIZE_B32] 296 char result[static NISSY_SIZE_CUBE]
341) 297)
342{ 298{
343 int i; 299 int i;
@@ -526,7 +482,7 @@ nissy_checkdata(
526 482
527long long 483long long
528nissy_solve( 484nissy_solve(
529 const char cube[static NISSY_SIZE_B32], 485 const char cube[static NISSY_SIZE_CUBE],
530 const char *solver, 486 const char *solver,
531 unsigned nissflag, 487 unsigned nissflag,
532 unsigned minmoves, 488 unsigned minmoves,

Generated with cgit - Back to sebastiano.tronto.net