On Monday, May 12, 2014 11:12:19 PM UTC+8, Gerli Viikmaa wrote:
>
> Hi,
>
> Consider the following code (the field is arbitrary in this case)
> sage: code = codes.HammingCode(2, GF(4,'a'))
>
> The codewords (vectors) cannot be changed (note the absence of an error):
> sage: code[0]
> (0, 0, 0, 0, 0)
> sage: code[0][0] = 1
> sage: code[0]
> (0, 0, 0, 0, 0)
>
>
There is no error because code[0] regenerates the codeword every time you 
call it. The reason for doing so is in http://trac.sagemath.org/ticket/13694

The vector is indeed being changed when you write code[0][0]=1. If you want 
to create a set of immutable vectors, I suggest you simply run over the 
list of codewords and set them to be immutable, as shown below. Beware that 
this is good only for small codes. Running something like this over a 
larger code means you will quickly run out of memory.

sage: C = codes.HammingCode(3, GF(2))
sage: codevectors = C.list()
sage: for c in codevectors: c.set_immutable()
sage:
sage: D = {c: c.hamming_weight() for c in codevectors}

-- 
You received this message because you are subscribed to the Google Groups 
"sage-support" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sage-support+unsubscr...@googlegroups.com.
To post to this group, send email to sage-support@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-support.
For more options, visit https://groups.google.com/d/optout.

Reply via email to