GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
/* some definitions of constants */12/* the maximal entry in the short vectors should not exceed MAXENTRY to3avoid overflow */4#define MAXENTRY 100005/* it is checked that the product of the maximal entry in the short vectors6and the maximal entry in the products of Gram-matrices with short vectors7does not exceed MAXNORM, since the program works just with int's */8#define MAXNORM 1000000009#define STRLEN 8010/* since the LLL-reduction works with a floating-point model, there might be11some rounding error, which should not reach EPS */12#define EPS 0.00113/* the constant for the LLL-condition, which should be < 1, but 0.75 is the14standard value, a higher value might yield a slightly better result but15increases the running time */16#define LLL_CONST 0.7517#define DEF_PRIME 16001181920/* structure to hold the generators of the group according to the stabilizer21chain */22typedef struct {23int dim;24int *ord;25int *ng;26int *nsg;27int ****g;28} group;2930/* structure for a list of vectors */31typedef struct {32int dim;33int len;34int prime;35int n;36int **v;37} veclist;3839/* structure for the invariant forms and their products with the list of40short vectors */41typedef struct {42int dim;43int n;44int ***A;45int ***v;46} invar;4748/* structure for the diagonal of the fingerprint, the new order and the indices49of the standard-base in the list of short vectors */50typedef struct {51int *diag;52int *per;53int *e;54} fpstruct;5556/* structure for the scalar product combinations, the transformation matrices57between the vector sums and that lattice bases and the scalar products of58the lattice bases */59typedef struct {60veclist list;61int rank;62int **trans;63int **coef;64int ***F;65} scpcomb;6667/* structure for a Bacher-polynomial */68typedef struct {69int mind;70int maxd;71int sum;72int *coef;73} bachpol;7475/* structure for the option flags */76typedef struct {77int DEPTH;78int STAB;79int BACH[3];80int BACHDEP;81int BACHSCP;82int GEN;83int PRINT;84} flagstruct;8586/* functions in auttools.c */87static int cand();88static void autom();89static int aut();9091/* functions in bachtools.c */92static void bacher();93static int bachcomp();94static void fputbach();9596/* functions in iotools.c */97static void getflags();98static bravais_TYP *putgens();99static void putord();100static matrix_TYP *putiso();101102/* functions in isotools.c */103static int isocand();104static matrix_TYP *bs_isometry();105static int iso();106static int isostab();107108/* functions in lattools.c */109static int lll();110static void initialize();111static int red();112static void check();113static void decrease();114static void interchange();115static int iround();116117/* functions in mattools.c */118static void vecmatmul();119static void matmul();120static int scp();121static int sscp();122static void psolve();123static void pgauss();124static int isprime();125126/* functions in orbtools.c */127static int operate();128static int orbit();129static int orbitlen();130static int delete();131static void stab();132static void matgen();133static void stabil();134135/* functions in preproc.c */136static void checkvecs();137static int checkgen();138static void fingerprint();139static int possible();140static void scpvector();141static void scpvecs();142static void base();143static void coef();144static void scpforms();145146/* functions in sorttools.c */147static int comp();148static int numberof();149static void sortvecs();150static void quicksort();151152/* functions in perfecttools.c */153static int normal_aut_test();154155156