Skip to content
Snippets Groups Projects
Verified Commit 701a7ae4 authored by Herbers, Maik's avatar Herbers, Maik
Browse files

Add README.

* README: New file.
parent 984aa9af
Branches
Tags
No related merge requests found
README 0 → 100644
__________________________________________________
LIBWEIL — COMPUTING WITH THE WEIL REPRESENTATION
OF LATTICES
__________________________________________________
Dependencies
============
Other versions may work but this hasn't been tested
- eigen (version 3.4.0)
- GAP (version 4.11.1)
- GMP (version 6.2.1)
- PARI/GP (version 2.15.2)
Using the [GNU Guix] package manager, you can simple run
,----
| guix shell -f guix.scm
`----
to get a shell with everything set up. You can also authenticate the
git history with
,----
| guix git authenticate -k origin/keyring \
| 1fb8ce84b2e4329007a23c047a8ea211d629da00 \
| 'D5BA 4708 FA7D 0AFD 9C0E 6556 ECD7 F82F 5327 404C'
`----
[GNU Guix] <https://guix.gnu.org/>
Usage
=====
Matrices have to be formatted as white-space (in particular the space
and newline character work) seperated lists of numbers. As an
example, to calculate the vector-valued theta function of the lattice
of genus \(2_{2}^{2}\) up to \(q^{4}\) (after factoring out the
offset) you would use:
,----
| cat >gram_matrix.txt <<EOF
| 2 0
| 0 2
| EOF
|
| weil VV-Theta-Series gram_matrix.txt 4
`----
This produces the output
,----
| (0 0): 1 + 4q + 4q^(2) + 4q^(4)
| (0 1): q^(1/4)(2 + 4q + 2q^(2) + 4q^(3) + 4q^(4))
| (1 0): q^(1/4)(2 + 4q + 2q^(2) + 4q^(3) + 4q^(4))
| (1 1): q^(1/2)(4 + 8q^(2) + 4q^(4))
`----
You can also use the `--print-style' flag for easier copy-pasting into
SageMath and PARI/GP.
To get the automorphisms of a lattice, you have to do
,----
| weil Lattice-smith-gram-matrix gram_matrix.txt >smith_gram_matrix.txt
| weil-get-automorphisms.sh smith_gram_matrix.txt aut.txt
`----
Note that you *have* to use the lattice returned by
`Lattice-smith-gram-matrix', otherwise you will get wrong results.
Then you can use it, e.g. by
,----
| weil DS-get-orbits gram_matrix.txt aut.txt | column -ts$'\t' -R0
`----
which produces the output
,----
| representative name length norm order
| (0 0) 0A 1 0 1
| (0 1) 1A 2 1/4 2
| (1 1) 2A 1 1/2 2
`----
Warning
=======
The function `DiscriminantForm::xc' assumes that for a discriminant
group \(D\) the intersection of \(D_{c}\) and \(D^{c*}\) contains
exactly one element. If this is not the case for your lattice, then
the function `DiscriminantForm::transformation_matrix' and the command
`Transformation-Matrix' may produce wrong output.
License
=======
This project is released under the GPL version 3.0 or later (see the
file `COPYING').
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment