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
QuadraticForm.basis_of_short_vectors may not return an actual ZZ-basis #8693
Comments
Attachment: fix_basis.sage.gz Sample code to correct a non-basis from basis_of_short_vectors |
comment:1
Isn't this just a matter of defining what "basis" means? |
This comment has been minimized.
This comment has been minimized.
Stopgaps: todo |
comment:4
I suppose someone might want a rational basis for the associated rational vector space which consists only of integral vectors... but that seems unlikely to be a common use case. |
comment:6
It looks to me the well-defined notion here would be the "successive minima" of a lattice: a sequence of vectors in the lattice where each vector is of minimal length while being linearly independent from the previous ones. Such a set is indeed not necessarily a basis. So we should check that the routine actually computes this and then rename it. I think for most applications, the lengths themselves are usually more important than the vectors that attain them. Naturally, this notion needs a (positive) definite quadratic form. |
QuadraticForm.basis_of_short_vectors()
does not actually ensure the list of vectors it returns is a basis, it only assures that it spans a full rank sub-lattice.In particular in the following example (E8):
The result is -2, which indicates we did not get a basis.
I am attaching some sample code which (once properly merged {and tested}) could be used to correct the issue.
CC: @yyyyx4
Component: quadratic forms
Keywords: basis, automorphisms
Stopgaps: todo
Issue created by migration from https://trac.sagemath.org/ticket/8693
The text was updated successfully, but these errors were encountered: