blob: 729b38cbd6bde07b4b558feba74aec398d28fdc4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include "symmetric.h"
q_t *symmetric_compose(q_t q, const q_t *g1, const q_t *g2) {
q_t *g3 = (q_t *)malloc(q * sizeof(q_t));
for (q_t i = 0; i < q; i++) {
g3[i] = g1[g2[i]];
}
return g3;
}
q_t symmetric_act(const q_t *g, q_t s) {
return g[s];
}
q_t *symmetric_invert(q_t q, const q_t *g) {
q_t *g_inv = (q_t *)malloc(q * sizeof(q_t));
for (q_t i = 0; i < q; i++) {
g_inv[g[i]] = i;
}
return g_inv;
}
|