#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.