Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

563595 views
1
/* Dieser Quellcode wurde name.c entnommen! */
2
3
#include "ZZ.h"
4
#include "typedef.h"
5
#include "getput.h"
6
#include "name.h"
7
#include "bravais.h"
8
#include "datei.h"
9
#include "matrix.h"
10
#include "voronoi.h"
11
#include "autgrp.h"
12
#include "symm.h"
13
#include "contrib.h"
14
#include "base.h"
15
#include "zass.h"
16
#include "gmp.h"
17
#include "longtools.h"
18
#include "tsubgroups.h"
19
20
#define DATABASE_NAME TOPDIR "/tables/qcatalog/data"
21
22
23
24
25
/* ------------------------------------------------------------------- */
26
/* Berechne den Namen einer Raumgruppe R in CARAT-Notation und gebe */
27
/* diesen aus. P sei die Punktgruppe von R mit korrektem Formenraum. */
28
/* ------------------------------------------------------------------- */
29
CARATname_TYP name_fct(bravais_TYP *R,
30
database *database)
31
{
32
33
bravais_TYP *P,
34
*Rnew,
35
*RC,
36
*DATAQ = (bravais_TYP *) 1,
37
*DATAZ;
38
39
matrix_TYP *T,
40
*TI,
41
*TZ,
42
*PRES;
43
44
MP_INT aff_name;
45
46
char symb[1024];
47
48
CARATname_TYP Name;
49
50
51
52
P = point_group(R, 2);
53
T = q_class_inf (P,database,Name.qname,symb,&DATAQ,&PRES,FALSE);
54
TZ = z_class_inf(P,DATAQ,&DATAZ,Name.zname);
55
if (DATAQ->order == 0)
56
Name.order = 1;
57
else
58
Name.order = DATAQ->order;
59
free_bravais(DATAQ);
60
61
62
extend(TZ);
63
Rnew = konj_bravais(R,TZ);
64
T = mat_inv(TZ); free_mat(TZ); TZ = T; T = NULL;
65
mpz_init(&Name.aff_name);
66
67
/*
68
if (is_option('o'))
69
T = aff_class_inf(Rnew,DATAZ,PRES,&aff_name,&RC);
70
else */
71
T = aff_class_inf(Rnew,DATAZ,PRES,&Name.aff_name,NULL);
72
73
Check_mat(T);
74
Check_mat(TZ);
75
TI = long_mat_inv(T);
76
mat_muleq(TZ,TI);
77
Name.trafo = TZ;
78
79
/*
80
if (is_option('o')){
81
sprintf(comment,"standard group for %s",FILENAMES[0]);
82
put_bravais(RC,NULL,comment);
83
free_bravais(RC);
84
}
85
86
if (is_option('c')){ // Oliver: 10.04.2002
87
printf("%s-%d.%d-", Name.qname, Name.zname[0], Name.zname[1]);
88
mpz_out_str(stdout, 10, &aff_name);
89
printf("\n");
90
}
91
else{
92
printf("qname: %s ",Name.qname);
93
printf("zname: %d %d ",Name.zname[0],Name.zname[1]);
94
printf("aff_name: "); mpz_out_str(stdout,10,&aff_name); printf("\n");
95
}
96
*/
97
98
free_mat(PRES);
99
free_mat(T);
100
free_mat(TI);
101
free_bravais(Rnew);
102
free_bravais(P);
103
free_bravais(DATAZ);
104
cleanup_prime();
105
106
return(Name);
107
}
108
109