#19511: q-ary symmetric channel class for coding theory
-------------------------+-------------------------------------------------
Reporter: | Owner:
dlucas | Status: needs_review
Type: | Milestone: sage-6.10
enhancement | Resolution:
Priority: major | Merged in:
Component: | Reviewers:
coding theory | Work issues:
Keywords: | Commit:
Authors: David | 429b2902c76c94d63e0d9ab748fdbe6a5a100219
Lucas | Stopgaps:
Report Upstream: N/A |
Branch: |
u/dlucas/qsc |
Dependencies: |
-------------------------+-------------------------------------------------
Comment (by jsrn):
Hi,
> Well, I did that in the case one reads only the documentation for a
channel class, and not the abstract class one. If you think it's useless,
I'm ok to remove it.
I don't think it belongs there. But the text is nice, so perhaps it can be
moved/merged somewhere else?
> Done. Note that I wasn't able to find an example of a Sigma which can be
of the form Sigma^n
> but can not have a `random_element` method...
Hmm, I'm worried that the check for the "dimension" method is not the
right thing to do. For instance, the following structure has a
"dimension":
{{{
X = CombinatorialFreeModule(QQ, [1,2])
}}}
But I think that the last line of your `transmit_unsafe` is going to blow
up on this structure. I don't think there is a bullet-proof-while-flexible
way of checking for what we want. So perhaps your check at construction
time could be a dummy `transmit_unsafe` call, and if that throws an
exception, catch it and throw another exception telling the user that
apparently his input space is not satisfactory.
Another thing: you added some text saying "the input space has to be a
vector space", but if `\Sigma` is not a field, then `\Sigma^3` is not a
vector space: it is a free module with a basis. Just write something like
I did in the docstring that we check input space has the form `\Sigma^n`.
> No need to insist, it's done ;) These two methods can be called on any
instance of the class, with `t` as parameter. Maybe it can be better to
propose generic methods, which take `epsilon`, `t` and
`input_space.dimension()` as parameters, so the user can actually look for
the best epsilon without having to construct the channel... As you prefer.
Cool! I think having them available only non-static, after construction is
completely fine. Your implementation of `at_most_t_errors` should sum over
`exactly_t_errors` to avoid code-replication. I'm pretty sure you have an
off-by-one error in the `exactly_t_errors` as well, since you're not
summing the `t`'th error.
Best,
Johan
--
Ticket URL: <http://trac.sagemath.org/ticket/19511#comment:11>
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 https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.