Skip to content

Commit

Permalink
Version 1.2
Browse files Browse the repository at this point in the history
  • Loading branch information
carat committed Nov 20, 2018
1 parent 3c4cc0e commit 118db48
Show file tree
Hide file tree
Showing 382 changed files with 41,181 additions and 310 deletions.
15 changes: 11 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
############################################################################


TOPDIR= /usb/carat
TOPDIR= /usb2/carat
CC = gcc

# There are some special preprocessor flags which set some
Expand All @@ -34,7 +34,7 @@ CFLAGS = -g -Wall -DDIAG1 -fwritable-strings # for a HP-UX-machine using gcc (mo

# CFLAGS = -g -Aa # for a HP-UX-machine using cc

# CFLAGS = -m486 -O2 # on a Linux machine (i486)
# CFLAGS = -m486


# The part below doesn't (better: shouldn't) need any editing
Expand All @@ -53,6 +53,7 @@ ALL: Makefile\
Contrib\
Datei\
Getput\
Graph\
Hyperbolic\
Idem\
Links\
Expand Down Expand Up @@ -92,6 +93,9 @@ Datei: Makefile functions/Datei/Makefile
Getput: Makefile functions/Getput/Makefile
cd functions/Getput;make CC="$(CC)" CFLAGS="$(CFLAGS)" TOPDIR=$(TOPDIR)

Graph: Makefile functions/Graph/Makefile
cd functions/Graph;make CC="$(CC)" CFLAGS="$(CFLAGS)" TOPDIR=$(TOPDIR)

Hyperbolic: Makefile functions/Hyperbolic/Makefile
cd functions/Hyperbolic; make CC="$(CC)" CFLAGS="$(CFLAGS)" TOPDIR=$(TOPDIR)

Expand Down Expand Up @@ -126,7 +130,7 @@ Presentation: Makefile functions/Presentation/Makefile
cd functions/Presentation; make CC="$(CC)" CFLAGS="$(CFLAGS)" TOPDIR=$(TOPDIR)

Qcatalog: Makefile tables/qcatalog.tar.gz
cd tables; if [ ! -d qcatalog ] ; then tar xvzf qcatalog.tar.gz ; fi
cd tables; if [ ! -d qcatalog ] ; then gunzip -c qcatalog.tar.gz | tar xvf - ; fi

Reduction: Makefile functions/Reduction/Makefile
cd functions/Reduction; make CC="$(CC)" CFLAGS="$(CFLAGS)" TOPDIR=$(TOPDIR)
Expand All @@ -150,7 +154,8 @@ ZZ: Makefile functions/ZZ/Makefile
cd functions/ZZ; make CC="$(CC)" CFLAGS="$(CFLAGS)" TOPDIR=$(TOPDIR)

Gmp: functions/Gmp/Makefile
cd functions/Gmp ; ./configure --prefix=../.. ; make CFLAGS="$(CFLAGS)" CC="$(CC)" install
cd functions/Gmp ; ./configure --prefix=../.. ;\
make CFLAGS="$(CFLAGS)" CC="$(CC)" libgmp.a ; mv libgmp.a ../../lib

Executables: bin/Makefile
if $(RANLIB_TEST) ; then $(RANLIB) lib/functions.a; else true; fi
Expand All @@ -166,6 +171,7 @@ clean:
cd functions/Contrib; make clean
cd functions/Datei; make clean
cd functions/Getput; make clean
cd functions/Graph; make clean
cd functions/Hyperbolic; make clean
cd functions/Idem; make clean
cd functions/Longtools; make clean
Expand All @@ -187,3 +193,4 @@ clean:
rm -f lib/libm_alloc.a
rm -f lib/libpresentation.a
rm -f lib/functions.a
rm -f lib/libgraph.a
22 changes: 19 additions & 3 deletions bin/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ CFLAGS = -fwritable-strings -DDIAG1 -pg
TOPDIR = /usb/carat

# LIB = -L$(TOPDIR)/lib -lcarat -lm
LIB = -L$(TOPDIR)/lib -lpresentation -lfunctions -lgmp -lm_alloc -lm
LIB = -L$(TOPDIR)/lib -lgraph -lpresentation -lfunctions -lgmp -lm_alloc -lm
SRC = $(TOPDIR)/src
INCL = $(TOPDIR)/include
OBJ = $(TOPDIR)/obj
Expand All @@ -26,8 +26,9 @@ PROGRAMS: Add Aut_grp Bravais_equiv\
Conv Datei\
Elt Extract Extensions\
First_perfect Form_space Form_elt\
Formtovec Full Gauss\
Formtovec Full Gauss Graph\
Idem Inv Invar_space Isometry Is_finite\
K_Subgroups K_Supergroups\
Kron Long_solve Ltm\
Modp Mtl Mul Mink_red Minpol\
Name Normalizer Normalizer_in_N Normlin\
Expand Down Expand Up @@ -68,7 +69,7 @@ Bravais_grp: $(SRC)/bravaisgroup.c
$(COMP) -o Bravais_grp\
$(SRC)/bravaisgroup.c $(LIB)

Bravais_inclusions: $(SRC)/bravaisgroup.c
Bravais_inclusions: $(SRC)/bravais_inclusions.c
$(COMP) -o Bravais_inclusions\
$(SRC)/bravais_inclusions.c $(LIB)

Expand Down Expand Up @@ -138,6 +139,10 @@ Gauss: $(SRC)/gauss.c
$(COMP) -o Gauss\
$(SRC)/gauss.c $(LIB)

Graph: $(SRC)/graph.c
$(COMP) -o Graph\
$(SRC)/graph.c $(LIB)

#Gittstab: $(SRC)/gittstab.c
# $(COMP) -o Gittstab\
# $(SRC)/gittstab.c $(LIB)
Expand Down Expand Up @@ -174,6 +179,14 @@ Kron: $(SRC)/kron.c
$(COMP) -o Kron\
$(SRC)/kron.c $(LIB)

K_Subgroups: $(SRC)/k_subgroups.c
$(COMP) -o K_Subgroups\
$(SRC)/k_subgroups.c $(LIB)

K_Supergroups: $(SRC)/k_supergroups.c
$(COMP) -o K_Supergroups\
$(SRC)/k_supergroups.c $(LIB)

Long_solve: $(SRC)/long_solve.c
$(COMP) -o Long_solve\
$(SRC)/long_solve.c $(LIB)
Expand Down Expand Up @@ -404,6 +417,7 @@ clean:
rm -f Full
rm -f Fundamental_domain
rm -f Gauss
rm -f Graph
rm -f Gittstab
rm -f Hypisom
rm -f Hypstab
Expand All @@ -413,6 +427,8 @@ clean:
rm -f Isometry
rm -f Is_finite
rm -f Conj_bravais
rm -f K_Subgroups
rm -f K_Supergroups
rm -f Kron
rm -f Long_solve
rm -f Ltm
Expand Down
142 changes: 142 additions & 0 deletions documentation/Graph
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
The Program Graph:
==================

This program calculates the "graph of inclusions" for a
geometric class. The following examples shall help you
to understand the output of this program.



Example 1:
==========


File G:
-------
#g2
3 % generator
1 0 0
1 -1 0
0 0 -1
3 % generator
-1 1 0
-1 0 0
0 0 1
2^1 * 3^1 = 6 % order of the group


Output of "Graph G":
--------------------
3 % graph for the arithmetic classes (1)
3 2 1
0 2 1 (2)
1 0 3
There are 3 Z-Classes with 2 1 2 Space Groups! (3)
1: 1 (2, 2^1) (4)
1: 1 (4, 2^2)
1: 1 (3, 3^1) 2 (6, 3^1) (5)
2: 2 (2, 2^1)
2: 2 (4, 2^2)
1: 3 (18, 3^1)
1: 4 (9, 3^1)
2: 5 (9, 3^1)
3: 3 (2, 2^1)
3: 3 (4, 2^2)
3: 4 (3, 3^1) 5 (6, 3^1)
4: 1 (1, 3^1)
5: 2 (1, 3^1)
4: 4 (2, 2^1)
4: 4 (4, 2^2)
4: 4 (3, 3^1) 5 (6, 3^1)
5: 5 (2, 2^1)
5: 5 (4, 2^2)
5 % inclusions for all spacegroups
3 1 1 1 0 (6)
0 2 0 0 1
0 0 2 1 1
1 0 0 3 1
0 1 0 0 2

(1) The number in this line is the number of Z-classes.
(2) This matrix yields information about the graph
of the arithmetic classes. There are 3 + 2 + 1 = 6
maximal sublattices of a representative of the first
Z-class which are invariant under this group. If you
conjugate this representative with the sublattices,
you get 3 groups in the first Z-class, 2 groups in
the second Z-class and 1 group in the third Z-class.
(3) This line gives you the numbers of the affine classes
in the various Z-classes.
The affine classes are numbered in ascending order
with respect to the Z-classes. So the first affine class
of the third Z-class gets the number 4.
The first affine class in each Z-class contains the
symmorphic space groups.
(4) The first space group has 2 maximal k-subgroups of index
2^1 which are conjugated under the affine normalizer
of the spacegroup. These subgroups are in the first
affine class.
(5) The first space group has 3 maximal k-subgroups of index
3^1 which are conjugated under the affine normalizer
of the spacegroup. These subgroups are in the first
affine class. There are 2 maximal k-subgroups of index
3^1 which are conjugated under the affine normalizer
of the spacegroup. The translation lattices for all
these subgroups are in one orbit under the stabilizer of
the cocycle of the spacegroup, so we print the orbits
in one line.
(6) This matrix gives you the numbers of orbits under the
affine normalizer of a spacegroup on the maximal
k-subgroups. There are 3 + 1 + 1 + 1 orbits for a
representative of the first affine class. The groups
in 3 of these orbits are in the first affine class.
The groups in one orbit are in the second affine
class, etc.



Example 2:
==========


File G:
-------
g2
3 % generator
-1 0 0
0 -1 0
0 0 -1
3 % generator
0 1 0
-1 -1 0
0 0 1
2^1 * 3^1 = 6 % order of the group


Output of "Graph G":
--------------------
2 % graph for the arithmetic classes
4 2
1 2
There are 2 Z-Classes with 1 1 Space Groups!
1: 1 (2, 2^1)
1: 1 (4, 2^2)
1: 1 (3, 3^1) (1)
1: 1 (3, 3^1) (2)
1: 2 (6, 3^1)
2: 1 (3, 3^1)
2: 2 (2, 2^1)
2: 2 (4, 2^2)
2 % inclusions for all spacegroups
4 1
1 2

In this example, there are two orbits each with 3 maximal
k-subgroups of a representative of the first affine class.
They are printed in separate lines ((1) and (2)) because
the translation lattices for these groups are NOT conjugated
under the stabilizer of the cocycle of a representative for
the first affine class.



32 changes: 19 additions & 13 deletions tex/README.short → documentation/README.short
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,16 @@ Extensions/Vector_systems Calculates all non-isomorphic extensions of
a finite unimodular group with a given lattice.
Form_space Calculates the space of invariant forms of
a unimodular group.
Graph Calculates the "graph of inclusions" for a
given geometric class.
Is_finite Decides finiteness of a given subgroup of
GL_n(Z). Calculates the order in case the group
is finite.
K_Subgroups Calculates the maximal klassengleich subgroups
of a spacegroup for some prime-power index.
K_Supergroups Calculates the maximal klassengleich
supergroups of a spacegroup for some
prime-power index.
Name Give a space group a name, ie. calculate
a string which describes the isomorphism
type uniquely, cf. Reverse_name.
Expand All @@ -58,8 +65,6 @@ Orbit Fairly general implementation of the
orbit/stabilizer algorithm.
Order Calculates the order of a given finite subgroup
of GL_n(Q).
Presentation Calculates a presentation of a finite soluble
subgroup of GL_n(Z)
Q_catalog Provides a list of all Q_classes up
to degree 6.
QtoZ Splits a Q-class into Z-classes.
Expand Down Expand Up @@ -101,15 +106,14 @@ Mink_red The Minkowski reduction of bilinear forms.
Gives very good results, but use Pair_red
before.
Pair_red Pair reduction of bilinear forms. Very fast.
Presentation Calculates a presentation of a finite soluble
subgroup of GL_n(Z)
Red_gen Tries to reduce the number of elements of
a generating set of a finite matrix group.
Rein Purifies a lattice.
Rform Mostly used for finding a positive definite
G-invariant form or a finite unimodular group
G.
Roundcor A program calculating a presentation for
finite unimodular groups. Not very reliable,
is to be replaced by a better version soon.
Scpr Calculates scalar products w.r.t a given form.
Short Calculates short vectors of a given positive
definite symmetric form.
Expand All @@ -132,8 +136,7 @@ The remaining functions are merely of debugging and processing the results,
nevertheless an experienced user might calculate relevant data with them.

Program/Synonyms Short description
================ =================
Add Adds matrices
================ ================= Add Adds matrices
Con Conjugates matrices
Conjugated Decides whether two groups are conjugate
under third group.
Expand All @@ -158,22 +161,25 @@ Mtl Writes matrices in lines.
Mul Multiplies matrices.
Normalizer_in_N Calculates the normalizer of a finite group
in a second one.
Normlin
Normlin Calculates for each matrix A in file2 a matrix
X with the property that
\sum_j X_{i,j} F_j = A^{tr} F_j A
with F_j in 'file1'
P_lse_solve Solves a system of equations modularly.
Pdet Determinant of a matrix mod p.
Perfect_neighbours Gives the perfect neighbours of a given
G-perfect form.
Polyeder
Rest_short
Scalarmul
Scalarmul Multiplies matrices with rational number.
Short_reduce
Simplify_mat Divides all entries of a matrix by their
greatest common divisor.
Tr Transposes matrices.
Trace Trace of matrices.
Trbifo Trace bilinear form of a finite unimodular
group.
Vectoform
Vectoform Calculates a linear combintion of forms.
Vor_vertices

1.2 Files for in/output
Expand Down Expand Up @@ -335,16 +341,16 @@ This header line takes the following form:

#gA fB ZC nD cE % just a comment

where A,B,C,D and E are natural numbers. It advises the program to read
A+B+C+D+E matrices, where A matrices are meant to generate the group,
where A, B, C, D and E are natural numbers. It advises the program to read
A + B + C + D + E matrices, where A matrices are meant to generate the group,
the next B matrices form an integral basis of the space of fixed forms,
followed by C matrices giving so called "centerings". The program proceeds
in reading D matrices which generate the normalizer of the group (modulo
the group generated by the group and its centralizer), and E matrices
which generate the centralizer of the group.

Note: It is possible to ommit any of the records which discribe generators,
the space of forms and do on, but it is NOT possible to switch components.
the space of forms and so on, but it is NOT possible to switch components.

The next example gives a bravais_TYP generated by the matrices given in
1.2.1:
Expand Down
Binary file not shown.
File renamed without changes.
File renamed without changes.
Loading

0 comments on commit 118db48

Please sign in to comment.