#8693: QuadraticForm.basis_of_short_vectors may not return an actual ZZ-basis
-------------------------------------------------+-------------------------
       Reporter:  afiori                         |        Owner:  justin
           Type:  defect                         |       Status:  new
       Priority:  major                          |    Milestone:  sage-6.9
      Component:  quadratic forms                |   Resolution:
       Keywords:  quadratic forms, basis,        |    Merged in:
  automorphisms                                  |    Reviewers:
        Authors:                                 |  Work issues:
Report Upstream:  N/A                            |       Commit:
         Branch:                                 |     Stopgaps:
   Dependencies:                                 |
-------------------------------------------------+-------------------------
Changes (by jdemeyer):

 * milestone:   => sage-6.9


Old description:

> 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):
>

> {{{
> Q = QuadraticForm( matrix( [[2,0,0,0,0,0,0,1],
>                             [0,2,1,1,1,1,1,1],
>                             [0,1,2,1,1,1,1,1],
>                             [0,1,1,2,1,1,1,1],
>                             [0,1,1,1,2,1,1,1],
>                             [0,1,1,1,1,2,1,1],
>                             [0,1,1,1,1,1,2,0],
>                             [1,1,1,1,1,1,0,2]] ))
> B = Q.basis_of_short_vectors()
> matrix(B).det()
> }}}
>

> The result is -2, which indicates we did not get a basis.
> Note that the above means that sage likely returns incorrect results
> about the automorphism groups of a number of interesting lattices.
> I am attaching some sample code which (once properly merged {and tested})
> could be used to correct the issue.

New description:

 `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):

 {{{
 Q = QuadraticForm( matrix( [[2,0,0,0,0,0,0,1],
                             [0,2,1,1,1,1,1,1],
                             [0,1,2,1,1,1,1,1],
                             [0,1,1,2,1,1,1,1],
                             [0,1,1,1,2,1,1,1],
                             [0,1,1,1,1,2,1,1],
                             [0,1,1,1,1,1,2,0],
                             [1,1,1,1,1,1,0,2]] ))
 B = Q.basis_of_short_vectors()
 matrix(B).det()
 }}}

 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.

--

--
Ticket URL: <http://trac.sagemath.org/ticket/8693#comment:2>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to