#10153: Canonical generator matrices for linear codes and their automorphism 
groups
------------------------------+---------------------------------------------
   Reporter:  tfeulner        |       Owner:  wdj                               
         
       Type:  enhancement     |      Status:  needs_work                        
         
   Priority:  major           |   Milestone:  sage-4.7                          
         
  Component:  coding theory   |    Keywords:  Automorpism group, canonical 
representative
     Author:  Thomas Feulner  |    Upstream:  N/A                               
         
   Reviewer:                  |      Merged:                                    
         
Work_issues:                  |  
------------------------------+---------------------------------------------
Changes (by tfeulner):

 * cc: burcin (added)


Comment:

 Replying to [comment:4 wdj]:

 > This applied fine to sage 4.6.1.a2 on a 10.6.5 mac, however there were
 some compiler warnings of the form "warning: command line option
 "-Wstrict-prototypes" is valid for C/ObjC but not for C++". I don't know
 if these are important. The patch passes sage -testall.

 This was discussed in ticket:425. They decided to accept this ''minor
 annoyance''.

 > The patch is huge. I have the following questions: 1) Do you have any
 tests which compare your output to the output of Robert Miller's
 automorphism groups in the case of binary linear codes? For example, does
 your program yield the same result that sage: C = HammingCode(3, GF(2))
 sage: C.automorphism_group_binary_code() does?

 Now, there is a test which compares the result of both algorithms showing
 that the groups are equal.

 > 2) Do you have any tests which compare your output to the output of the
 permutation automorphism groups in the case of non-binary linear codes?
 For example, does your program yield the same result that sage: C =
 HammingCode(2, GF(3)) sage: C.permutation_automorphism_group() Permutation
 Group with generators [(1,2,3)] does? It seems not. If that is true, it
 would be great to add them to the tests.

 The new examples also try to show the differences in this case.
 Furthermore, I had some problems in constructing the automorphism group in
 the case of a finite field of order p^r^ as a semidirect product. Maybe
 someone can give me a hint for improving the following example.

 {{{
 sage: GammaGF4 = HammingCode(3, GF(4, 'a') ).check_mat()
 sage: canonizer.start_matrix(GammaGF4)
 sage: gens = canonizer.get_automorphism_generators()
 sage: V = VectorSpace(GF(4, 'a'), GammaGF4.nrows() ) # long time
 sage: elts = V.list() # long time
 sage: A_correct = PermutationGroup([ PermutationGroupElement( [elts.index(
 x.apply_map(g[2])*g[0].transpose())+1 for x in elts]) for g in gens ]) #
 long time
 sage: A_correct.order() == canonizer.get_autom_order() # long time
 True
 }}}
 > Also, it is great that you linked your documentation into the manual.
 However, most of it is too vague - for example  ` get_transporter()
 Returns the transporter element. ... ` Could this be improved? I'm going
 to mark this as "needs work".

 Is this more precise? Maybe we can also discuss the ''natural'' way of
 returning the group elements. Mathematically correct via B^-1^ or user-
 friendly without inversion. I have implemented the second way, but I am
 not sure if the warning sections are sufficient.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10153#comment:5>
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 post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to