#19112: Add a function "isometry" to the quadratic forms package.
-------------------------------------+-------------------------------------
       Reporter:  tgaona             |        Owner:
           Type:  enhancement        |       Status:  needs_info
       Priority:  minor              |    Milestone:  sage-6.10
      Component:  quadratic forms    |   Resolution:
       Keywords:  isometry           |    Merged in:
        Authors:  Tyler Gaona        |    Reviewers:
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/tgaona/ticket/19112              |  582ae4500eb3652446c6f829310298953f8dbd02
   Dependencies:                     |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by annahaensch):

 I have looked over tgaona's algorithm, and it makes sense to me.  The
 block of code mentioned in comment 26 is a bit confusing, but I believe
 that it is necessary since its eventually necessary to invert, and
 therefore avoid the possibility of having a singular change of basis
 matrix.

 Another source of confusion, I believe, is in the description of the
 helper function {{{modify basis}}}.  I do believe that it does precisely
 what it needs to do in the context of the code, but the description is not
 quite correct, and a little bit misleading, since it is always a function
 acting on a submatrix of the original basis matrix. A better description
 might read "Given a lattice L with basis matrix M and a vector,
 v=(v_1,...,v_n) of length n, this function extends the basis {b_1,...,b_n}
 of an underlying nxn orthogonal component of L to contain the vector
 v_1b_1+...+v_nb_n."

 The functions {{{diagonal_isometry}}},
 {{{compute_gram_matrix_from_basis}}}, {{{modify_basis}}}, and
 {{{graham_schmidt}}} are all very particular to this parent function
 {{{isometry}}}, so (I believe) the standard Sage convention is to begin
 those with an underscore.  Also, I believe a better name for the parent
 function would be {{{explicit_isometry}}} just to differentiate this from
 the binary function returning True or False.

 Other than that, I'll concede that there may very well be a faster way to
 run this algorithm, but as tgaona has it, it's certainly correct.

--
Ticket URL: <http://trac.sagemath.org/ticket/19112#comment:36>
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 https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to