#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.