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

563516 views
1
#ifdef __cplusplus
2
extern "C" {
3
#endif
4
5
6
#ifndef _VORONOI_H_
7
#define _VORONOI_H_
8
9
#ifndef _CARAT_TYPEDEF_H_
10
#include"typedef.h"
11
#endif
12
13
typedef struct {
14
matrix_TYP *gram;
15
int SV_no;
16
int min;
17
int pdet;
18
int prime;
19
int vert_no;
20
wall_TYP **vert;
21
polyeder_TYP *pol;
22
matrix_TYP *red_inv;
23
matrix_TYP *T;
24
matrix_TYP *Ti;
25
bravais_TYP *Gtrred;
26
matrix_TYP *SVi;
27
bravais_TYP *stab;
28
bravais_TYP *linstab;
29
matrix_TYP *dir_reps;
30
} voronoi_TYP;
31
32
33
#ifdef __STDC__
34
/*********************************************************************\
35
| FILE: all_vor_neighbours.c
36
\*********************************************************************/
37
extern matrix_TYP *all_voronoi_neighbours(matrix_TYP *P, bravais_TYP *G,
38
matrix_TYP **Ftr, matrix_TYP *tr_bifo);
39
40
/*********************************************************************\
41
| FILE: calc_vor_data.c
42
\*********************************************************************/
43
extern void calc_voronoi_basics(voronoi_TYP *V, bravais_TYP *G,
44
bravais_TYP *Gtr, int prime);
45
extern void calc_voronoi_pol(voronoi_TYP *V, matrix_TYP *bifo);
46
extern void calc_voronoi_good_inv(voronoi_TYP *V, bravais_TYP *Gtr);
47
extern void calc_voronoi_stab(voronoi_TYP *V, bravais_TYP *G, bravais_TYP *Gtr,
48
matrix_TYP *bifo);
49
extern matrix_TYP *calc_voronoi_isometry(voronoi_TYP *V1, voronoi_TYP *V2,
50
bravais_TYP *G, bravais_TYP *Gtr, matrix_TYP *bifo);
51
extern void calc_voronoi_dir_reps(voronoi_TYP *V, bravais_TYP *G,
52
bravais_TYP *Gtr, matrix_TYP *bifo);
53
extern void calc_voronoi_complete(voronoi_TYP *V, bravais_TYP *G,
54
bravais_TYP *Gtr, matrix_TYP *bifo, int prime);
55
56
/*********************************************************************\
57
@ FILE: first_perfect.c
58
\*********************************************************************/
59
extern matrix_TYP *first_perfect(matrix_TYP *A, bravais_TYP *G,
60
matrix_TYP **Ftr, matrix_TYP *trbifo, int *min);
61
62
/*********************************************************************\
63
@ FILE: init_voronoi.c
64
\*********************************************************************/
65
extern voronoi_TYP *init_voronoi();
66
extern void clear_voronoi(voronoi_TYP *V);
67
extern void put_voronoi(voronoi_TYP *V);
68
69
/****************************************************************************\
70
@ FILE: normalizer.c
71
\****************************************************************************/
72
extern voronoi_TYP **normalizer(matrix_TYP *P, bravais_TYP *G,
73
bravais_TYP *Gtr, int prime, int *V_no);
74
75
/************************************************************************\
76
| FILE: pair_red_inv.c
77
\************************************************************************/
78
extern matrix_TYP *pair_red_inv(matrix_TYP *A, matrix_TYP *T);
79
80
/****************************************************************************\
81
@ FILE: vor_neighbour.c:
82
\****************************************************************************/
83
extern matrix_TYP *voronoi_neighbour(matrix_TYP *A, matrix_TYP *X,
84
int Amin, int *lc, int *rc);
85
86
/****************************************************************************\
87
@ FILE: vor_vertices.c
88
\****************************************************************************/
89
extern matrix_TYP **voronoi_vertices(matrix_TYP *form, bravais_TYP *grp,
90
int *anz, int *form_min, int *SV_no);
91
92
/****************************************************************************\
93
@ FILE: bravais_flok.c
94
\****************************************************************************/
95
extern matrix_TYP *is_z_equivalent(bravais_TYP *G,bravais_TYP *Gtr,
96
bravais_TYP *H,bravais_TYP *Htr);
97
98
matrix_TYP *extends_to_isometry(
99
matrix_TYP **hforms,matrix_TYP *HSV,int anz_hneighbours,
100
matrix_TYP **gforms,matrix_TYP *GSV,int anz_gneighbours,
101
int fdim,int offset);
102
103
void transform_pair(bravais_TYP *H,bravais_TYP *Htr,matrix_TYP *x);
104
105
int max_diagonal_entry(matrix_TYP *A);
106
107
int neighbours(matrix_TYP ***perf,bravais_TYP *G,matrix_TYP **Ftr,
108
matrix_TYP *tr_bifo,matrix_TYP *SV,int min);
109
110
/****************************************************************************\
111
@ FILE: bravais_flok_datei.c
112
\****************************************************************************/
113
extern matrix_TYP *is_z_equivalent_datei(bravais_TYP *G,bravais_TYP *Gtr,
114
bravais_TYP *H,bravais_TYP *Htr,voronoi_TYP ***gp,int *anz_gperfect);
115
116
/****************************************************************************\
117
@ FILE: red_normal.c
118
\****************************************************************************/
119
extern void red_normal(bravais_TYP *G);
120
121
122
#else
123
/*********************************************************************\
124
| FILE: all_vor_neighbours.c
125
\*********************************************************************/
126
extern matrix_TYP *all_voronoi_neighbours();
127
128
/*********************************************************************\
129
| FILE: calc_vor_data.c
130
\*********************************************************************/
131
extern void calc_voronoi_basics();
132
extern void calc_voronoi_pol();
133
extern void calc_voronoi_good_inv();
134
extern void calc_voronoi_stab();
135
extern matrix_TYP *calc_voronoi_isometry();
136
extern void calc_voronoi_dir_reps();
137
extern void calc_voronoi_complete();
138
139
/*********************************************************************\
140
@ FILE: first_perfect.c
141
\*********************************************************************/
142
extern matrix_TYP *first_perfect();
143
144
/*********************************************************************\
145
@ FILE: init_voronoi.c
146
\*********************************************************************/
147
extern voronoi_TYP *init_voronoi();
148
extern void clear_voronoi();
149
extern void put_voronoi();
150
151
/****************************************************************************\
152
@ FILE: normalizer.c
153
\****************************************************************************/
154
extern voronoi_TYP **normalizer();
155
156
/************************************************************************\
157
| FILE: pair_red_inv.c
158
\************************************************************************/
159
extern matrix_TYP *pair_red_inv();
160
161
/****************************************************************************\
162
@ FILE: vor_neighbour.c:
163
\****************************************************************************/
164
extern matrix_TYP *voronoi_neighbour();
165
166
/****************************************************************************\
167
@ FILE: vor_vertices.c
168
\****************************************************************************/
169
extern matrix_TYP **voronoi_vertices();
170
171
/****************************************************************************\
172
@ FILE: bravais_flok.c
173
\****************************************************************************/
174
extern matrix_TYP *is_z_equivalent();
175
176
177
matrix_TYP *extends_to_isometry();
178
179
void transform_pair();
180
181
int max_diagonal_entry();
182
183
int neighbours();
184
185
/****************************************************************************\
186
@ FILE: bravais_flok_datei.c
187
\****************************************************************************/
188
extern matrix_TYP *is_z_equivalent_datei();
189
190
/****************************************************************************\
191
@ FILE: red_normal.c
192
\****************************************************************************/
193
extern void red_normal(bravais_TYP *G);
194
195
196
#endif
197
#endif
198
199
200
#ifdef __cplusplus
201
}
202
#endif
203
204
205