-
Notifications
You must be signed in to change notification settings - Fork 2
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
Definition of canonical form unclear #27
Comments
Case in point: the manual includes gl:=GL(3,3);
go:=GO(3,3);
form := PreservedSesquilinearForms(go)[1];
gram := GramMatrix( form );
b := BaseChangeToCanonical(form);;
hom := BaseChangeHomomorphism(b, GF(3));
newgo := Image(hom, go);
gens := GeneratorsOfGroup(newgo);;
canonical := b * gram * TransposedMat(b); In the pre-generated
But when actually running the code, we get
Well, actually... running the code multiple times, I sometimes get the one and sometimes the other... so much for "canonical"... |
@johnbamberg @jdebeule if you next look at forms, perhaps you could also briefly consider this issue... |
So what I described here so far is only about a scalar multiple. We can't kill scalars in Alas for But beyond that, after the (false) issue #65 I now believe that the description of canonical forms in section 5.1-3 is wrong: in the case where @johnbamberg @jdebeule can you confirm? |
Hmm... I thought at first sight this was going to be easy. At the documentation has to be made more precise. But I do not see immediately why multiple calls can produce different output. Once again it makes clear that we did this particular part of the code (24 years ago) from the viewpoint of projective geometry: we don't care up to scalar... We will find the problem! |
Of course one can explain some of this by "up to scalar", but then indeed this needs to be clarified in the manual. And in some situation, whether the question is "up to scalar", or not, requires two different answers. Both of which may be useful (and e.g. the request #43 to adding constructors for "conformal groups" is one of these: if we go "up to scalar" then instead of orthogonal groups we should consider conformal groups). In my example where the output changes, it all, depends on which preserved form is produced by
and sometimes I get this:
So yeah, the base change cannot get rid of the scalar at the end. To make it stable, Then the documentation for |
Consider this example:
I don't understand how this form fits with the description of "canonical forms" in chapter 5 of the
forms
manual. Based on that, I would have expected this Gram matrixGranted, these two forms are similar, but I thought we really get the canonical form?
What am I missing?
The text was updated successfully, but these errors were encountered: