GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
/* Dieser Quellcode wurde name.c entnommen! */12#include "ZZ.h"3#include "typedef.h"4#include "getput.h"5#include "name.h"6#include "bravais.h"7#include "datei.h"8#include "matrix.h"9#include "voronoi.h"10#include "autgrp.h"11#include "symm.h"12#include "contrib.h"13#include "base.h"14#include "zass.h"15#include "gmp.h"16#include "longtools.h"17#include "tsubgroups.h"1819#define DATABASE_NAME TOPDIR "/tables/qcatalog/data"2021222324/* ------------------------------------------------------------------- */25/* Berechne den Namen einer Raumgruppe R in CARAT-Notation und gebe */26/* diesen aus. P sei die Punktgruppe von R mit korrektem Formenraum. */27/* ------------------------------------------------------------------- */28CARATname_TYP name_fct(bravais_TYP *R,29database *database)30{3132bravais_TYP *P,33*Rnew,34*RC,35*DATAQ = (bravais_TYP *) 1,36*DATAZ;3738matrix_TYP *T,39*TI,40*TZ,41*PRES;4243MP_INT aff_name;4445char symb[1024];4647CARATname_TYP Name;48495051P = point_group(R, 2);52T = q_class_inf (P,database,Name.qname,symb,&DATAQ,&PRES,FALSE);53TZ = z_class_inf(P,DATAQ,&DATAZ,Name.zname);54if (DATAQ->order == 0)55Name.order = 1;56else57Name.order = DATAQ->order;58free_bravais(DATAQ);596061extend(TZ);62Rnew = konj_bravais(R,TZ);63T = mat_inv(TZ); free_mat(TZ); TZ = T; T = NULL;64mpz_init(&Name.aff_name);6566/*67if (is_option('o'))68T = aff_class_inf(Rnew,DATAZ,PRES,&aff_name,&RC);69else */70T = aff_class_inf(Rnew,DATAZ,PRES,&Name.aff_name,NULL);7172Check_mat(T);73Check_mat(TZ);74TI = long_mat_inv(T);75mat_muleq(TZ,TI);76Name.trafo = TZ;7778/*79if (is_option('o')){80sprintf(comment,"standard group for %s",FILENAMES[0]);81put_bravais(RC,NULL,comment);82free_bravais(RC);83}8485if (is_option('c')){ // Oliver: 10.04.200286printf("%s-%d.%d-", Name.qname, Name.zname[0], Name.zname[1]);87mpz_out_str(stdout, 10, &aff_name);88printf("\n");89}90else{91printf("qname: %s ",Name.qname);92printf("zname: %d %d ",Name.zname[0],Name.zname[1]);93printf("aff_name: "); mpz_out_str(stdout,10,&aff_name); printf("\n");94}95*/9697free_mat(PRES);98free_mat(T);99free_mat(TI);100free_bravais(Rnew);101free_bravais(P);102free_bravais(DATAZ);103cleanup_prime();104105return(Name);106}107108109