-
Notifications
You must be signed in to change notification settings - Fork 120
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Vinberg's algorithm #4023
Open
ElMerkel
wants to merge
19
commits into
oscar-system:master
Choose a base branch
from
ElMerkel:em/vinberg_algo
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+464
−1
Open
Add Vinberg's algorithm #4023
Changes from all commits
Commits
Show all changes
19 commits
Select commit
Hold shift + click to select a range
288cbaf
Add Vinberg's algorithm
ElMerkel 0ff56ac
First fixes
ElMerkel 1ecbb88
Update docs/doc.main
ElMerkel 6e1cd94
Update docs/oscar_references.bib
ElMerkel 78075f0
Update docs/src/LinearAlgebra/vinberg.md
ElMerkel d39ea51
Update docs/src/LinearAlgebra/vinberg.md
ElMerkel c8d1d26
Update docs/src/LinearAlgebra/vinberg.md
ElMerkel 0260dcd
Update src/NumberTheory/vinberg.jl
ElMerkel 6b16836
Update src/NumberTheory/vinberg.jl
ElMerkel 23ca034
Merge branch 'master' into em/vinberg_algo
lgoettgens 1dcc589
Test
ElMerkel 5626123
Update docs/src/LinearAlgebra/vinberg.md
ElMerkel 7ddc4fe
Update docs/src/LinearAlgebra/vinberg.md
ElMerkel e62bb66
Update docs/src/LinearAlgebra/vinberg.md
ElMerkel 5cdcf86
Update docs/src/LinearAlgebra/vinberg.md
ElMerkel 5e6acd6
Update src/NumberTheory/vinberg.jl
ElMerkel e501403
Test 2
ElMerkel 5c775b1
First fixes regarding feedback of fingolfin and simonbrandhorst
ElMerkel 50d327a
Further fixes regarding feedback of fingolfin and simonbrandhorst
ElMerkel File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2261,6 +2261,13 @@ @Article{Tra04 | |
doi = {10.1016/j.cagd.2004.07.001} | ||
} | ||
|
||
@PhDThesis{Tur17, | ||
author = {Turkalj, I.}, | ||
title = {Reflective Lorentzian lattices of signature (5, 1)}, | ||
year = {2017}, | ||
school = {TU Dortmund} | ||
} | ||
|
||
@Misc{VE22, | ||
author = {Vaughan-Lee, Michael and Eick, Bettina}, | ||
title = {SglPPow, Database of groups of prime-power order for some prime-powers, Version 2.3}, | ||
|
@@ -2270,6 +2277,17 @@ @Misc{VE22 | |
url = {https://gap-packages.github.io/sglppow/} | ||
} | ||
|
||
@InCollection{Vin75, | ||
author = {Vinberg, E. B.}, | ||
title = {Some arithmetical discrete groups in Lobacevskii spaces}, | ||
booktitle = {Discrete subgroups of Lie groups and applications to moduli (Internat. Colloq., Bombay, 1973)}, | ||
series = {Tata Inst. Fundam. Res. Stud. Math.}, | ||
volume = {No. 7}, | ||
pages = {323--348}, | ||
publisher = {Published for the Tata Institute of Fundamental Research, Bombay by Oxford University Press, Bombay}, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hmm, did you run There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Also, if there is a DOI available, please add it as well. |
||
year = {1975} | ||
} | ||
|
||
@MastersThesis{Vol23, | ||
author = {Volz, Sebastian}, | ||
title = {Design and implementation of efficient algorithms for operations on partitions of sets}, | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
```@meta | ||
CurrentModule = Oscar | ||
DocTestSetup = Oscar.doctestsetup() | ||
``` | ||
|
||
# Vinberg's algorithm | ||
|
||
A $\textit{Lorentzian lattice} L$ is an integral $\Z$-lattice of signature $(s_+, s_-)$ with $s_+=1$ and $s_->0$. | ||
A $\textit{root}$ of $r \in L$ is a primitive vector s.t. reflection in the hyperplane $r^\perp$ maps $L$ to itself. | ||
$L$ is called $\textit{reflective} if the set of fundamental roots $\~{R}(L)$ is finite. | ||
|
||
See for example [Tur17](@cite) for the theory of Arithmetic Reflection Groups and Reflective Lorentzian Lattices. | ||
|
||
## Description | ||
The algorithm constructs a fundamental polyhedron $P$ for a Lorentzian lattice $L$ by computing its $\textit{fundamental roots} $r$, i.e. the roots $r$ which are perpendicular to the faces of $P$ and which have inner product at least 0 with the elements of $P$. | ||
Choose $v_0$ in $L$ primitive with $v_0^2 > 0$ as a point that $P$ should contain. | ||
|
||
Let $Q$ be the corresponding Gram matrix of $L$ with standard basis. A vector $r$ is a fundamental root, if | ||
- the vector $r$ is primitive, | ||
- reflection by $r$ preserves the lattice, i.e. $\frac{2}{r^2}*r*Q$ is an integer matrix, | ||
- the pair $(r, v_0)$ is positive oriented, i.e. $(r, v_0) > 0$, | ||
- the product $(r, \~{r}) \geq \ 0$ for all roots $\~{r}$ already found. | ||
This implies that $r^2$ divides $2*i$ for $i$ being the level of $Q$, i.e. the last invariant of the Smith normal form of $Q$. | ||
|
||
$P$ can be constructed by solving $(r, v_0) = n$ and $r^2 = k$ by increasing order of the value $\frac{n^2}{k}$ and $r$ satisfying the above conditions. | ||
|
||
If $v_0$ lies on a root hyperplane, then $P$ is not uniquely determined. | ||
In that case we need a direction vector $v_1$ which satisfies $(\~{v}, v_1) \neq 0$ | ||
for all possible roots $\~{v}$ with $(v_0, \~{v}) = 0$ | ||
|
||
With $v_0$ and $v_1$ fixed $P$ is uniquely determined for any choice of root lengths and maximal distance $(v_0, r)$. | ||
We choose the first roots $r$ by increasing order of the value $\frac{(\~{r}, v_1)}{r^2}$ for all possible roots $\~{v}$ with $(v_0, \~{v}) = 0$. | ||
For any other root length we continue as stated above. | ||
|
||
For proofs of the statements above and further explanations see [Vin75](@cite). | ||
|
||
## Function | ||
|
||
```@docs | ||
vinberg_algorithm(Q::ZZMatrix, upper_bound::ZZRingElem) | ||
``` | ||
|
||
|
||
## Contact | ||
|
||
Please direct questions about this part of OSCAR to the following people: | ||
* [Simon Brandhorst](https://www.math.uni-sb.de/ag/brandhorst/index.php?lang=en). | ||
* [Stevell Muller](https://www.math.uni-sb.de/ag/brandhorst/index.php?option=com_content&view=article&id=30:muller&catid=10&lang=de&Itemid=104), | ||
|
||
You can ask questions in the [OSCAR Slack](https://www.oscar-system.org/community/#slack). | ||
|
||
Alternatively, you can [raise an issue on github](https://www.oscar-system.org/community/#how-to-report-issues). |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is also a paper, could that be cited instead? See https://doi.org/10.1016/j.jalgebra.2018.06.013
If not, a URL or better a DOI to the thesis would be great