GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
#include"typedef.h"1#include"tools.h"2#include"matrix.h"3#include"bravais.h"4#include"ZZ.h"56void scan_argv (argc, argv, filename)7int argc;8char *argv[], **filename;9{10if ( argc != 2 )11*filename = NULL;12else13*filename = argv[1];14}1516int ABBRUCH;17/*{{{}}}*/18/*{{{ ZZ_usage*/19void ZZ_usage(progname)20char *progname;21{22fprintf(stderr,"Usage: %s -bghl <#level> n <#number> pqrstu <file>\n\n",progname);23fprintf(stderr,"-b : Print only the matrices of change of base and their inverse.\n");24fprintf(stderr,"-g : Do not compute elementary divisors of the gram matrix.\n");25fprintf(stderr,"-h : Print this help\n");26fprintf(stderr,"-l #: Stop after reaching level #level (default #=%d).\n",LEVEL);27fprintf(stderr,"-n #: Stop after computation of #number \"Zentrierungen\" (default #=%d).\n",NUMBER);28fprintf(stderr,"-p<d0>/<d1>/<d2> ... : treat the lattice as a direct sum of <d0> sublattices\n");29fprintf(stderr," of dimensions <d1>, <d2> etc. (0 <= d0 <= 6) and compute only those\n");30fprintf(stderr," centerings that have surjective projections on them.\n");31fprintf(stderr,"-q : Quiet mode. Suppress any messages to stdin/stdout.\n");32fprintf(stderr,"-r : With ZZ_lll-reduction.\n");33fprintf(stderr,"-s : Print less information.\n");34fprintf(stderr,"-t : Create the data-file \"ZZ.tmp\".\n");35fprintf(stderr,"-u : Do not compute elementary divisors of the change of base\n\n");36}3738/*}}} */394041void foo()42{43/* printf("Hello world!\n"); */44}4546int main (argc, argv)4748int argc;49char *argv[];50{51matrix_TYP *Gram, **help2;52ZZ_data_t data;53ZZ_tree_t tree;5455int i, j, k;5657char *file_name;5859scan_argv(argc, argv, &file_name);60Gram= ZZ_fget_data (&data,&tree,file_name);61if ( constituents == 1)62{63for ( i = 0; i < data.p_consts.k; i++)64{65help2= ZZ_irr_const( data.DELTA, data.r,66data.p_consts.p[i],67&data.p_consts.s[i]);68data.n[i] = (int *)malloc(data.p_consts.s[i]*sizeof(int));69data.p_consts.Delta[i]=(matrix_TYP ***)malloc(data.p_consts.s[i]*sizeof(matrix_TYP **));70for ( j = 0 ; j < data.p_consts.s[i]; j ++ )71{72data.p_consts.Delta[i][j]= (matrix_TYP **)malloc(data.r*sizeof(matrix_TYP *));73for ( k = 0; k < data.r; k ++ ) {74data.p_consts.Delta[i][j][k] = help2[j*data.r+k];75data.p_consts.Delta[i][j][k]->prime = data.p_consts.p[i];76}77data.n[i][j] = data.p_consts.Delta[i][j][0]->rows;78}79free( help2 );80}81ZZ_test_konst (&data);82/*{{{ */83/*{{{ */84for ( i = 0; i < data.p_consts.k; i++) {85/*{{{ */86/*------------------------------------------------------------*\87| initialize Endomorphisms |88\*------------------------------------------------------------*/89data.EnCo[i] = (ZZ_prod_t *)malloc(data.p_consts.s[i]*sizeof(ZZ_prod_t));90data.Endo[i] =(matrix_TYP ***)malloc(data.p_consts.s[i]*sizeof(matrix_TYP **));91}9293data.epi_base = NULL;94data.epi = init_mat(data.N,data.N,"ik");95tree.root->k_vec = (int **)malloc(data.p_consts.k*sizeof(int *));96data.VK =(int **)malloc(data.p_consts.k*sizeof(int *));97for(i = 0; i < data.p_consts.k; i++) {98tree.root->k_vec[i] = (int *)calloc(data.p_consts.s[i],sizeof(int));99data.VK[i] = (int *)calloc(data.p_consts.s[i]+1,sizeof(int));100data.VK[i]++;101}102ZZ_make_endo (&data);103/*}}} */104/*}}} */105/*}}} */106}107if( verbose == TRUE )108{109/*{{{ */110for ( i = 0; i < data.p_consts.k; i++)111{112fprintf(stderr,"Primzahl: %d\n",data.p_consts.p[i]);113for ( j = 0 ; j < data.p_consts.s[i]; j ++ )114{115fprintf(stderr,"Konstituent %d:\n",j);116for ( k = 0; k < data.r; k ++ )117{118fprintf(stderr,"Erzeuger %d:\n",k);119fput_mat ( stderr, data.p_consts.Delta[i][j][k], "Konstituent", 0);120}121}122}123/*}}} */124}125ZZ_intern( Gram, &data, &tree );126ZZ_fput_data (&data, &tree,ABBRUCH);127ZZ_free_data(&data);128free(Gram);129}130131132133