Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
| Download
GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
Project: cocalc-sagemath-dev-slelievre
Views: 418346#include"typedef.h"1#include"bravais.h"2#include"base.h"3#include"matrix.h"4#include"getput.h"567int INFO_LEVEL;8extern int SFLAG;910main (int argc, char *argv[])11{12bravais_TYP *Gtr,13*H;1415matrix_TYP *A;1617int prime;181920read_header(argc, argv);2122if((FILEANZ < 1) || (is_option('h') && optionnumber('h')==0))23{24printf("Usage: Normalizer 'file1' ['file2' ['file3']] [-p=prime] [-o]\n");25printf("\n");26printf("file1: bravais_TYP containing the group G.\n");27printf("file2: (OPTIONAL) bravais_TYP containing the transposed of G. (cf. Tr_bravais)\n");28printf("file3: (OPTIONAL) matrix_TYP of a G-perfect form. (cf. First_perfect)\n");29printf("\n");30printf("Calculates a set of matrices which together with G generate the\n");31printf("normalizer N_GL_n(Z) (G) of G in GL_n(Z).\n");32printf("NOTE: the output echoes any input information about G, except input about\n");33printf("generators of the normalizer.\n");34printf("NOTE: The dimension of the space of invariant forms is a measure for the\n");35printf("complexity of the algorithm. Up to degree 6 the only infeasible case are\n");36printf("<I_6> and <-I_6>. Here the generators of the normalizer can be taken\n");37printf("from `Bravais_cat' with family 1,1,1,1,1,1.\n");38printf("\n");39printf("Options:\n");40printf("-b : The normalizer of the bravais group B(G) is calculated. With this\n");41printf(" option the program is much faster. (The normalizer of G is a\n");42printf(" subgroup of N_GL_n(Z) (B(G)). )\n");43printf("-p=prime: The determinants of the perfect forms are\n");44printf(" calculated module prime. The default is 1949.\n");45printf("-o : The G-perfect forms are given as additional output.\n");46printf("\n");47if (is_option('h')){48exit(0);49}50else{51exit(31);52}53}5455INFO_LEVEL = optionnumber('h');56if (INFO_LEVEL & 12){57SFLAG = 1;58}596061/* get data */62H = get_bravais(FILENAMES[0]);6364if (FILEANZ > 1){65Gtr = get_bravais(FILENAMES[1]);66}67else{68Gtr = NULL;69}7071/* read an G-perfect form if it is given */72if (FILEANZ > 2){73A = get_mat(FILENAMES[2]);74}75else{76A = NULL;77}7879prime = optionnumber('p');808182/* calculate normalizer */83normalisator(H, Gtr, A, prime, is_option('b'), is_option('o'));84if(!is_option('o')){85put_bravais(H, NULL, "group with complete normalizer");86}878889/* cleaning up the memory */90if (A != NULL)91free_mat(A);92free_bravais(H);93if (Gtr != NULL)94free_bravais(Gtr);9596/* some diagnostic for memory leakage */97if (INFO_LEVEL & 12){98pointer_statistics(0,0);99}100101exit(0);102}103104105106