Port of aperep/vinberg-algorithm to julia with some changes
Warning. The code is still being tested, and surely has many bugs!
- The finite volume check for Coxeter diagrams is implemented “from scratch” using Guglielmetti's thesis as theoretical resource and
CoxIter
as a comparison point (plus a majority of tests from there); thank you! - The main bulk of Vinberg's algorithm (and associated procedures) is ported (modulo errors introduced in the process) from B&P.
- The code uses static bitsets for hopefully efficient storage of small integer sets. The code for this comes from here. TODO. Contact the author to ask if we can use their code, and under what licence (see here).
- If not already installed, run
julia install_packages.jl
to install the packages used in the code. - Go to the root folder of the project (having subfolder
lattices
,graphs
,src
). - Launch julia with
julia -t auto
to enable multithreading (might be useful, but on small examples does't look like it is) - call
include("src/vinberg.jl")
. - calling
toggle(true)
ortoggle(false)
respectively enables/disables a majority ofasserts
in the code.
Now everything needed is loaded.
- To run the Vinberg Algorithm on a lattice given by a matrix
M
, callVinberg_Algorithm(M)
. - Some matrices are accessible through the dictionary
L
, for instanceL["Vin07_L1"]
contains one matrix of Vinberg.