#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 | fc79446d6948143d32a9065410453379c79ef2b2
Dependencies: | Stopgaps:
-------------------------------------+-------------------------------------
Comment (by jsrn):
Replying to [comment:11 dlucas]:
> > * I'm not completely sure of what I'm saying now, but you can notice
that the ordering induced by the "composition" of these iterators respects
the one you want for updating the table (//i.e.// first hamming weight,
then lexicographic order). So in theory, you might never enter these
blocks:
> > {{{
> > if (e.hamming_weight() == e_cur.hamming_weight()
> > and e < e_cur):
> > stop = False
> > lookup[s] = copy(e)
> > elif e.hamming_weight() < e_cur.hamming_weight():
> > stop = False
> > lookup[s] = copy(e)
> > }}}
>
> I have the same feeling, I'll perform some tests to verify this
(empirically), and I will remove these checks if they prove themselves
useless.
It's true, `e_cur` will always be less than `e` in the lexicographical
order (including having lower weight).
I have a question: why is that loop written in this bizarre way? I mean,
wy not do a `for nerrors in range(1, t+1):` and then call `break` within
the loop if you need to jump out early?
I agree with Julian that `_list_all_error_values` is memory-wise
inefficient.
But furthermore, I don't understand your use of `Permutation`? What you
need is `cartesian_product`.
I think your `decode_to_code` *modifies* the input vector without copying
it. This is very bad!
Best,
Johan
--
Ticket URL: <http://trac.sagemath.org/ticket/19623#comment:13>
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.