#6452: Codes over rings
-------------------------+-------------------------------------------------
Reporter: wdj | Owner: rlm
Type: | Status: needs_work
enhancement | Milestone: sage-6.9
Priority: major | Resolution:
Component: | Merged in:
coding theory | Reviewers:
Keywords: | Work issues:
Authors: | Commit:
Report Upstream: N/A | 1177056cb4942b0ce938a30537357bcb07f1bf19
Branch: | Stopgaps:
public/6452 |
Dependencies: |
-------------------------+-------------------------------------------------
Comment (by jsrn):
Replying to [comment:22 vdelecroix]:
> All right, I will try to do something. I had a more careful look at the
code (and the corresponding master thesis) but I was not able to
understand anything. With the Smith form it will also be straightforward
to implement a (possibly very efficient) iterator over the elements of the
module.
Nice, I didn't consider that.
> One non trivial point is to decide equality of sub-modules. The only
canonical part of the Smith form is the diagonal matrix (which only gives
you a hint about isomorphisms between submodules). But I guess that we can
somehow echelonize the part corresponding to a given ideal. I would be
much more happy with a clean reference...
>
> Since this is more about submodules of `(ZZ/nZZ)^r` I am not sure it
should go at all inside `sage.codings`. I would rather put it in
`sage.modules`. And (as I already told you), it would be better to
factorize more between `sage.modules` and `sage.codings` when the code is
'''only''' given by a generator matrix. So, for the sake of this ticket,
my concrete proposal is:
> - implement submodules of `(ZZ/nZZ)^r` with a canonical form
> - have an efficient iterator
> If you think it is not too far from the original purpose of this ticket,
I will modify the ticket description accordingly.
Such a ticket would definitely make sense. And it seem to cover most of
the functionality here (I mean, the minimum distance is right now just
exhaustive checking distances...)
The distinction between vector subspaces and linear codes (given only by
their generator matrix) is right now that the latter exposes a list of
specialised coding theory functions. Such functions might be interesting
for non-coding theorists, but probably won't be. That's an argument for
having a special class which basically just wraps vector subspaces.
Exactly the same argument could be made for submodules of `(ZZ/nZZ)^r`.
But no need to get ahead of ourselves here, though...
A different matter: the current patch is Cython. Do we want that? I
remember Jeroen's advice to always try Cython only after you have
determined that you really need the performance, and that Cython will give
this to you.
--
Ticket URL: <http://trac.sagemath.org/ticket/6452#comment:23>
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.