#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):
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?
Some concrete complaints:
* `gen_mat` should (nowadays) be `generator_matrix`.
* The class has many non-hidden-but-actually-private-and-stupidly-named
fields
`self.codeSet`, `self.minimum`, etc. They should be renamed and start
with an underscore.
* `next(self)` is not the way we implement iterators, AFAIK.
* The name `RingCode` is not sensible, since only `ZZ/mZZ` is supported.
* 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__`?
* `__latex__` is wrong: it says "Linear code".
* English is bad in some texts, e.g. for `length()`, a "the" is missing.
* What's the point of `spanning_codewords`? The nomenclature is not used
in
`LinearCode`, and function just returns the rows of the generator matrix
anyway.
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.
For instance, I think that e.g. the cardinality of such a code can be
relatively easily computed without tabulating the entire code.
The design of ring codes should also think the new (well, almost-accepted)
`Encoder` and `Decoder` structure into it: #18376, #18813.
Note that I did not run or test the code -- I just looked at it.
--
Ticket URL: <http://trac.sagemath.org/ticket/6452#comment:17>
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.