#18269: A new structure for experimentation on decoding: communication channels
-------------------------+-------------------------------------------------
       Reporter:         |        Owner:
  dlucas                 |       Status:  needs_work
           Type:         |    Milestone:  sage-6.7
  enhancement            |   Resolution:
       Priority:  major  |    Merged in:
      Component:         |    Reviewers:
  coding theory          |  Work issues:
       Keywords:         |       Commit:
        Authors:         |  f93852e00d00dd694bed6c068d87cd17ad1a5d3c
Report Upstream:  N/A    |     Stopgaps:
         Branch:         |
  u/dlucas/channels      |
   Dependencies:         |
-------------------------+-------------------------------------------------
Changes (by vdelecroix):

 * status:  needs_review => needs_work


Comment:

 Hello,

 16. I do not like this `AbstractChannel`. If you look `Morphism` the top
 (abstract) class is not `AbstractMorphism` but `Morphism` (see
 `sage.categories.morphism.Morphism`).

 17. In my remark 12 I was suggesting to actually remove
 {{{
 def __call__(self, msg):
     return self.transmit(msg)
 }}}
   and keep only
 {{{
 __call__ = transmit
 }}}
   It avoids duplication of the documentation.

 18. You can remove the `raise NotImplementedError` in the abstract method.
 By construction
 {{{
 sage: class A:
 ....:     @abstract_method
 ....:     def ploum_ploum(self):
 ....:         "a hello function!"
 sage: a = A()
 sage: a.ploum_ploum()
 Traceback (most recent call last):
 ...
 NotImplementedError: <abstract method ploum_ploum at 0x7f1db2e02758>
 }}}

 19. In
 {{{
 ValueError: The total number of errors and erasures can
 exceed the dimension of the input space
 }}}
   shouldn't it be {{{can not}}}?

 20. Do you really care about equality (i.e. the method `__eq__`)? If you
 do not then remove the method. If you do then you must also implement
 `__ne__` (and possibly `__hash__`). Otherwise
 {{{
 sage: class A:
 ....:     def __eq__(self, other):
 ....:         return True
 sage: a = A()
 sage: b = A()
 sage: a == b
 True
 sage: a != b
 True
 }}}

 Further remarks for later:

 - If you look at the table of contents of coding you have
 {{{
 - Index of Channels
 - Channels
 - Index of Codes
 - Linear Codes
 ...
 }}}
   Not very nice. Though not for this ticket. Think about it for later on
 the table of contents of code documentation is a mess! But of course the
 priority is to clean the code.

 - A more global remark: it is generally a bad strategy to implement an
 isolated block of code and then to try to mix things later. Especially if
 the code in itself is basically useless.


 Vincent

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