aboutsummaryrefslogtreecommitdiff
path: root/src/alg.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/alg.c')
-rw-r--r--src/alg.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/alg.c b/src/alg.c
index 4e96925..1158eba 100644
--- a/src/alg.c
+++ b/src/alg.c
@@ -373,3 +373,35 @@ realloc_alg(Alg *alg, int n)
373 alg->allocated = n; 373 alg->allocated = n;
374} 374}
375 375
376void
377swapmove(Move *m1, Move *m2)
378{
379 Move aux;
380
381 aux = *m1;
382 *m1 = *m2;
383 *m2 = aux;
384}
385
386void
387unniss(Alg *alg)
388{
389 int i;
390 Alg *aux;
391
392 aux = new_alg("");
393
394 for (i = 0; i < alg->len; i++)
395 if (!alg->inv[i])
396 append_move(aux, alg->move[i], false);
397
398 for (i = alg->len-1; i >= 0; i--)
399 if (alg->inv[i])
400 append_move(aux, inverse_move(alg->move[i]), false);
401
402 for (i = 0; i < alg->len; i++) {
403 alg->move[i] = aux->move[i];
404 alg->inv[i] = false;
405 }
406 free(aux);
407}

Generated with cgit - Back to sebastiano.tronto.net