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

 Thanks for having a look. (disclaimer: I actually only ended up here
 because of [http://ask.sagemath.org/question/29424/liner-code-over-
 integerring/ this question on ask]).

 Replying to [comment:17 jsrn]:
 > I'm not particularly fond of this patch, I must admit. It doesn't seem
 very well thought out. I prefer not putting in code which is weak and not
 thought through, rather than superficially being able to claim that "Sage
 can do codes over rings". For instance, what can the code actually do
 right now, besides computing the list of codewords?

 Nothing I guess. But it is already something and it seems to be done
 efficiently.

 > Some concrete complaints:
 >
 > * The mathematical object of such a code is a free `ZZ/mZZ` module.
 Shouldn't
 >   this be reflected by some parent/category magic in `__init__`?

 Nope. It is not necessarily free. The submodule of `(ZZ/4ZZ)` generated by
 `2` is '''not''' free.

 > On a broader design level: I dislike that tons of computation is done at
 `__init__`, in particular tabulating all codewords. In coding theory stuff
 that I have been involved in, we have tried very hard to postpone
 computation until it becomes necessary. In particular, construction should
 be cheap.

 I guess it would be reasonable to turn it into a function or method.

 > For instance, I think that e.g. the cardinality of such a code can be
 relatively easily computed without tabulating the entire code.

 True. It would basically be equivalent to implement a generalized echelon
 form for matrices over `ZZ/nZZ` that give you a "pseudo-basis" of
 submodules of `(ZZ/nZZ)^r`. I have no idea where to find such algorithm.

 > The design of ring codes should also think the new (well, almost-
 accepted) `Encoder` and `Decoder` structure into it: #18376, #18813.

 +1

 > Note that I did not run or test the code -- I just looked at it.

 The tests do not pass, but at least some examples run just nicely.
 Moreover, there was at least one person interested. This is why I thought
 it would be worse to make it a branch.

 Vincent

--
Ticket URL: <http://trac.sagemath.org/ticket/6452#comment:18>
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