diff --git a/README b/README new file mode 100644 index 0000000000000000000000000000000000000000..8e3a55cae837a73ac6173948da5942850f1aca5c --- /dev/null +++ b/README @@ -0,0 +1,92 @@ + __________________________________________________ + + 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').