1 #ifndef GALOIS_UTILS_H_
2 #define GALOIS_UTILS_H_
3 
4 #include "mod_ul.h"
5 
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 
10 /* Galois automorphisms
11    autom2.1: 1/x
12    autom2.2: -x
13    autom3.1: 1-1/x
14    autom3.2: -1-1/x
15    autom4.1: -(x+1)/(x-1)
16    autom6.1: -(2x+1)/(x-1)
17 */
18 
19 void automorphism_init(int *ord, int mat[4], const char *galois_autom);
20 unsigned long automorphism_apply(residueul_t mat[4], unsigned long r, const modulusul_t mm, const unsigned long qq);
21 
22 #ifdef __cplusplus
23 }
24 #endif
25 
26 
27 #endif /* GALOIS_UTILS_H_ */
28