-
Notifications
You must be signed in to change notification settings - Fork 176
LieAlgebras: Introduce WeightLattice
#4344
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
Merged
Merged
Changes from all commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
30d1dbe
Move `WeightLatticeElem` to new file
lgoettgens 646c265
Add formal parent for `WeightLatticeElem`
lgoettgens cd5bf2a
More functionality for `WeightLattice`
lgoettgens abe5c9b
Re-route `character` and friends; update return type
lgoettgens 8bd1964
Adapt doctests
lgoettgens 1a88ad0
Adapt tests
lgoettgens 8fc54b9
Some more docs
lgoettgens cfa4c81
Weyl actions again
lgoettgens faf6df4
fix typo
lgoettgens 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 hidden or 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 hidden or 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 hidden or 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 hidden or 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 |
|---|---|---|
|
|
@@ -8,6 +8,7 @@ | |
| "module_homs.md", | ||
| "cartan_matrix.md", | ||
| "root_systems.md", | ||
| "weight_lattices.md", | ||
| "weyl_groups.md", | ||
| ], | ||
| ] | ||
This file contains hidden or 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 hidden or 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,75 @@ | ||
| ```@meta | ||
| CurrentModule = Oscar | ||
| DocTestSetup = Oscar.doctestsetup() | ||
| ``` | ||
|
|
||
| # Weight lattices | ||
|
|
||
| Weight lattices are represented by objects of type `WeightLattice <: AdditiveGroup`, and their elements by `WeightLatticeElem <: AdditiveGroupElement`. | ||
|
|
||
| They are introduced to have a formal parent object of all weights that correspond to a common given root system. | ||
|
|
||
|
|
||
| ## Table of contents | ||
|
|
||
| ```@contents | ||
| Pages = ["weight_lattices.md"] | ||
| Depth = 2:5 | ||
| ``` | ||
|
|
||
| ## Constructing weight lattices | ||
| ```@docs | ||
| weight_lattice(::RootSystem) | ||
| ``` | ||
|
|
||
|
|
||
| ## Properties of weight lattices | ||
|
|
||
| ```@docs | ||
| rank(::WeightLattice) | ||
| is_finite(::WeightLattice) | ||
| zero(::WeightLattice) | ||
| gen(::WeightLattice, ::Int) | ||
| gens(::WeightLattice) | ||
| ``` | ||
|
|
||
| ```@docs | ||
| root_system(::WeightLattice) | ||
| ``` | ||
|
|
||
|
|
||
| ## Weight lattice elements | ||
|
|
||
| ```@docs | ||
| WeightLatticeElem(::WeightLattice, ::Vector{<:IntegerUnion}) | ||
| WeightLatticeElem(::RootSystem, ::Vector{<:IntegerUnion}) | ||
| WeightLatticeElem(::WeightLattice, ::ZZMatrix) | ||
| WeightLatticeElem(::RootSystem, ::ZZMatrix) | ||
| WeightLatticeElem(::RootSpaceElem) | ||
| ``` | ||
|
|
||
| Basic arithmetic operations like `zero`, `+`, `-`, `*` (with integer scalars), and `==` are supported. | ||
|
|
||
| ```@docs | ||
| coeff(::WeightLatticeElem, ::Int) | ||
| coefficients(::WeightLatticeElem) | ||
| ``` | ||
|
|
||
| ```@docs | ||
| iszero(::WeightLatticeElem) | ||
| is_dominant(::WeightLatticeElem) | ||
| is_fundamental_weight(::WeightLatticeElem) | ||
| is_fundamental_weight_with_index(::WeightLatticeElem) | ||
| ``` | ||
|
|
||
| ### Reflections | ||
| ```@docs | ||
| reflect(::WeightLatticeElem, ::Int) | ||
| reflect!(::WeightLatticeElem, ::Int) | ||
| ``` | ||
|
|
||
| ### Conjugate dominant weight | ||
| ```@docs | ||
| conjugate_dominant_weight(::WeightLatticeElem) | ||
| conjugate_dominant_weight_with_elem(::WeightLatticeElem) | ||
| ``` |
This file contains hidden or 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
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.
This is none of my business, but I spent too much time transposing-matrices-until-the-result-looks-correct to not comment here:
So far, my understanding was that all group actions are from the right in OSCAR (at least by default) and we happily break textbook conventions at least in the linear algebra and invariant theory to have this consistent. Why not here?
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.
Short answer: this is still in discussion with Max (before this migrates to
src/). This is the current state of things, and I wanted to document how it is right now (but subject to change). The removal of some*_left_*and*_right_*functions in this PR is to clean things up that partially made it possible to do both action directions, but this didn't seem like a healthy way forward (and it didn't think of all places where this was an issue). So I would like to clean this up again, further discuss with Max and afterwards tackle this more systematically.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.
Okay, thanks!