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

Reply via email to