-
Notifications
You must be signed in to change notification settings - Fork 134
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
Stabilisers of timelike vectors, some refactoring for K3Auto.jl #4534
Conversation
If the tests pass, this should be ready to merge. (I am aware that the stabilizer computation is probably slow because of the slow action function.) |
""" | ||
automorphism_group(L::ZZLat, v::QQMatrix; kwargs...) -> MatrixGroup | ||
|
||
Return the stabilizer of the matrix ``v`` in the orthogonal group of ``L``. |
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.
Just wondering: If this function returns a stabilizer, then why is it called automorphism_group
and not e.g. stabilizer
?
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.
Because it is a finite stabilizer in an infinite group I do not have direct access to, I cannot simply call stabilizer(group, vector)
.
Another reason is that it is called the same in magma:
https://magma.maths.usyd.edu.au/magma/handbook/text/349#3451
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #4534 +/- ##
==========================================
- Coverage 84.55% 84.41% -0.14%
==========================================
Files 672 672
Lines 88873 89193 +320
==========================================
+ Hits 75145 75294 +149
- Misses 13728 13899 +171
|
On Mon, Feb 03, 2025 at 01:36:46PM -0800, Simon Brandhorst wrote:
@simonbrandhorst commented on this pull request.
> @@ -729,6 +729,30 @@ function isometry_group(L::ZZLat; algorithm = :direct, depth::Int = -1, bacher_d
end::MatrixGroup{QQFieldElem, QQMatrix}
end
+automorphism_group(L::ZZLat, v::Vector{QQFieldElem}) = isometry_group(L, matrix(QQ,1,degree(L),v))
+
+"""
+ automorphism_group(L::ZZLat, v::QQMatrix; kwargs...) -> MatrixGroup
+
+Return the stabilizer of the matrix ``v`` in the orthogonal group of ``L``.
Because it is a finite stabilizer in an infinite group I do not have direct access to, I cannot simply call `stabilizer(group, vector)`.
Another reason is that it is called the same in magma:
https://magma.maths.usyd.edu.au/magma/handbook/text/349#3451
Not quite sure I like this argument - furthermore, the name (in Magma)
is not related to ZZLat, but to some rather special, user defined,
lattices over number fields....
… --
Reply to this email directly or view it on GitHub:
#4534 (comment)
You are receiving this because you are subscribed to this thread.
Message ID: ***@***.***>
|
I don't have a strong opinion here, I can also live with a private name |
@fieker Please note that our So how to proceed here? |
To be clear, I don't care too much how this function is named -- what I object to is describing a function called If you want to call this But generally I'd expect an |
I concur. In an ideal world the user could type What could help here is an abstract type for matrix groups, or an extra type parameter. Then I could dispatch on that. Shall we settle in the meantime on |
Yeah, We should have We already do this for e.g.
(Here the error could even be made to say "error, this groups is not finitely generated") Calling it |
O.K., setting |
The whole system with Of course this could also be handled by a bespoke type for these orthogonal groups; they don't need to be matrix group instances. |
No description provided.