#18376: New encoding structure for linear codes
-------------------------+-------------------------------------------------
       Reporter:         |        Owner:
  dlucas                 |       Status:  needs_review
           Type:         |    Milestone:  sage-6.9
  enhancement            |   Resolution:
       Priority:  major  |    Merged in:
      Component:         |    Reviewers:
  coding theory          |  Work issues:
       Keywords:         |       Commit:
        Authors:  David  |  2115bf45aadf6dcf104031cdcbd86a0787fb9def
  Lucas                  |     Stopgaps:
Report Upstream:  N/A    |
         Branch:         |
  u/dlucas/encoder       |
   Dependencies:         |
-------------------------+-------------------------------------------------

Comment (by jsrn):

 Cool!

 > On comment 6, I don't really get what you suggest. Do you propose to
 somehow register the unencoder_matrix and the information_set, for
 instance as some kind of class argument after their first computation?

 I'm suggesting that `_unencoder_matrix` returns a tuple consisting of the
 matrix and the information set. Then `unencode` can be changed to use that
 matrix and information set, which is promised to work together. Right now,
 if `code.information_set` returns a different set next time it's called,
 then `unencode` will break since it uses the matrix for the first
 information set.

 > On comment 9, I can't see what kind of other error can occur when
 encoding a word. Either it's an element from the message space and
 encoding goes well, either it's not and you get an error as illustrated in
 the doctest of `encoder`. Or am I missing something here?

 `Encoder.encode` is allowed to be a partial function over its message
 space (as explained in `Encoder.message_space`). This is not clear in the
 doc string of `Encoder.encode`. Presumably, a special type of error is
 supposed to be thrown if one tries to encode a value outside the allowed
 portion of the message space (say if I try to encode a polynomial of
 degree 2k in a [n,k] GRS code).

 > On comment 19, I changed the `.. NOTE` block to a `.. WARNING` block to
 make this remark even more visible on the doc of `AbstractLinearCode`.

 Good idea.

 > On comment 24, as `c` is not necessarily a codeword (if `nocheck =
 True`, you can provide anything you want, as long as it belongs to the
 ambient space), I did not change the `INPUT` line for `c`.

 Well, yes, the function won't explode if you give it `c` which is not a
 codeword and set `nocheck = True`, but that's *not at all* the intention
 of that function, and it's also not the intention of `nocheck = True`.
 The function is undefined - and thus useless - on this input!
 I think that the description of `c` should reflect the intended use of the
 function. Not the widest possible type for which the function won't
 explode.

 > On comment 26, it's already the case. Maybe you meant "shouldn't include
 the word "the" ", but in that case I think the error message would seem a
 bit weird imho. I have no strong feelings on this though.

 Yes, I meant "shouldn't" :-) It's debatable, I guess, but having "the"
 doesn't seem to be convention in Sage:

 {{{
 sage: MatrixSpace(RR, 2, 3)
 Full MatrixSpace of 2 by 3 dense matrices over Real Field with 53 bits of
 precision
 sage: PolynomialRing(GF(2),'x')
 Univariate Polynomial Ring in x over Finite Field of size 2 (using NTL)
 sage: Hom(RR, ZZ)
 Set of Homomorphisms from Real Field with 53 bits of precision to Integer
 Ring
 }}}

 Furthermore, the `_repr_` doesn't uniquely specify "the" code, but usually
 gives a summary. Like for LinearCode or the soon-to-come GRS codes.

 Best,
 Johan

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