#19623: Syndrome decoder is not a syndrome decoder
-------------------------------------+-------------------------------------
       Reporter:  dlucas             |        Owner:
           Type:  enhancement        |       Status:  needs_work
       Priority:  major              |    Milestone:  sage-7.0
      Component:  coding theory      |   Resolution:
       Keywords:                     |    Merged in:
        Authors:  David Lucas        |    Reviewers:  Julien Lavauzelle
Report Upstream:  N/A                |  Work issues:
         Branch:                     |       Commit:
  u/dlucas/generic_decoders          |  54c02c3af22e896dd03759408b989f493415f26a
   Dependencies:                     |     Stopgaps:
-------------------------------------+-------------------------------------

Comment (by jsrn):

 > Of course they are, I'm perfectly aware of that! I was not criticising
 the usefulness of it, I was just saying it seems quite difficult and a bit
 out of purpose in this ticket.

 You were saying a lot on how the code-parameter mechanism had issues and
 was difficult, and possibly implied that it was out of place. You didn't
 comment on the fact that my suggestions still made sense for
 `SyndromeDecoder` completely isolatedly.

 But I do realise that this ended up being a larger kettle of fish than we
 originally intended. In case you're against implementing the decoding
 radius and covering radius thing, *internally in SyndromeDecoder* for now,
 I would say the only sensible semantics/documentation are:

 - `decoding_radius` returns `maximum_error_weight`. It's main docstring
 remains
   as it is, while the Note is, of course, removed. Possibly add a Note
 saying
   something like "When correcting beyond half the minimum distance,
 correct
   unique decoding is not always possible. This decoder returns a codeword
 of
   minimum distance to the received. In particular, if
 `maximum_error_weight` is
   beyond the covering radius of the code, decoding of this many errors is
   guaranteed to be incorrect.".

 - `maximum_error_weight` is capped at `n-k` in the constructor.

 On an unrelated note, I also noticed: The docstring of `SyndromeDecoder`
 should explain in 2-3 lines what the decoder does. There's a "a" missing
 before "syndrome" in the first line.

 > Definitely. `dimension` should be added to this list of lower- and
 upper-bounds...

 Yes, I remember now.

 > For the mechanism, why not working on a set of decorators? Or maybe a
 generic decorator with arguments, like `bound` which can be set to
 `lower`, `upper` or `exact` and an argument `parameter`, which can be set
 to `minimum_distance`, `dimension` or `covering_radius`?
 > Once properly implemented, it should be easy to use, and very flexible
 (adding new parameters would be very simple).
 >
 > Note it's just an idea in the wind, I'm definitely no expert in
 decorators, I just read the documentation in the bus 20 min ago `;)`But it
 seems feasible. Anyway, I opened a follow-up ticket #19959.


 Hmm, yes it's an interesting idea. I could imagine that the decorator be
 backed by some functions that should be callable directly. What we
 discussed on this ticket would likely use those functions and not a
 decorator (since `SyndromeDecoder` is another object than the code itself,
 and since `_build_lookup_table` has the potential to discover 0, 1 or 2
 parameters of the `Code`.

 Best,
 Johan

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

Reply via email to