20 views

Skip to first unread message

Jul 13, 2017, 6:43:18 AM7/13/17

to sage-devel, sage-codi...@googlegroups.com

On Thu, Jul 13, 2017 at 5:59 AM, 'B. L.' via sage-devel

<sage-...@googlegroups.com> wrote:

> Dear Sage-Developers,

>

> I'd like to report two issues that I came across when working with the

> coding theory classes of SAGE.

>

> The Sage Reference Manual: Coding Theory, Release 7.6 [1] explains on p. 31:

> weight_enumerator [...] This is the bivariate, homogeneous polynomial in π₯

> and π¦ whose coefficient to x^iy^{n-i} is the number of codewords of

> π πππ of Hamming weight π. Here, π is the length of π πππ.

> Actually, Sage returns another polynomial, namely the polynomial in π₯ and

> π¦ whose coefficient to x^{n-i}y^i is the number of codewords of π πππ of

> Hamming weight π. (So the roles of x and y are interchanged).

> This can be directly with C.weight_enumerator?? in the example below [2].

>

> I suggest to either change the description in the reference or to alter the

> code in Sage.

>

I'd propose just switching the x,y in the code:

(1) On line 3503 of linear_code.py, change "return

sum(spec[i]*x**(n-i)*y**i for i in range(n+1))" to "return

sum(spec[i]*x**(i)*y**(n-i) for i in range(n+1))"

(2) On line 3507, change "return sum(spec[i]*x**(n-i) for i in

range(n+1))" to "return sum(spec[i]*x**(i) for i in range(n+1))"

(3) Some of the examples may change accordingly.

This mistake could be my fault, since I wrote the original version

(long long ago). Unfortunately, I lack the git skills to submit a

patch.

> The function weight_enumerator(bivariate=False) returns the evaluation of

> the the above polynomial for y=1. Should't it be (in the current version)

> the evaluation with x=1? In other words: Wouldn't one expect a polynomial in

> x (or y) whose coefficient to x^i (or y^i) is the number of codewords of

> π πππ of Hamming weight π?

> The example below [2] illustrates my point: The code has four codewords, one

> of weight 0, two of weight 3, one of weiht 4. Sage gives x^5 + 2*x^2 + x as

> the univariate weight enumerator. I would have expected either 1 + 2*x^3 +

> x^4 or 1 + 2*y^3 + y^4.

>

> If you agree, I suggest to alter the code accordingly.

>

> Kind regards

> Barbara

> PS: I tested the code with Sage version 7.6 on an iMac.

>

>

> [1] http://doc.sagemath.org/pdf/en/reference/coding/coding.pdf

>

> [2] Sage code for the SageMathCell

>

> C= LinearCode(Matrix(GF(2),2,5, [[1,1,0,1,0], [0,0,1,1,1]]))

> print C.list()

> print C.spectrum()

> print C.weight_enumerator()

> print C.weight_enumerator(bivariate=False)

> C.weight_enumerator??

>

> http://sagecell.sagemath.org/?z=eJxztlXwycxLTSxyzk9J1fBNLCnKrNBwd9Mw0tQx0jHVUYiONtQx1DEA4VggzwDMBMLYWE1NXq6Cosy8EgVnvZzM4hINJH5xQWpySVFpLrJYeWpmekZJfGpeaW5qUWJJfhF-yaTMssSizMSSVFu3xJziVKBaLKrs7QGIgD2K&lang=sage

>

> --

> You received this message because you are subscribed to the Google Groups

> "sage-devel" group.

> To unsubscribe from this group and stop receiving emails from it, send an

> email to sage-devel+...@googlegroups.com.

> To post to this group, send email to sage-...@googlegroups.com.

> Visit this group at https://groups.google.com/group/sage-devel.

> For more options, visit https://groups.google.com/d/optout.

<sage-...@googlegroups.com> wrote:

> Dear Sage-Developers,

>

> I'd like to report two issues that I came across when working with the

> coding theory classes of SAGE.

>

> The Sage Reference Manual: Coding Theory, Release 7.6 [1] explains on p. 31:

> weight_enumerator [...] This is the bivariate, homogeneous polynomial in π₯

> and π¦ whose coefficient to x^iy^{n-i} is the number of codewords of

> π πππ of Hamming weight π. Here, π is the length of π πππ.

> Actually, Sage returns another polynomial, namely the polynomial in π₯ and

> π¦ whose coefficient to x^{n-i}y^i is the number of codewords of π πππ of

> Hamming weight π. (So the roles of x and y are interchanged).

> This can be directly with C.weight_enumerator?? in the example below [2].

>

> I suggest to either change the description in the reference or to alter the

> code in Sage.

>

I'd propose just switching the x,y in the code:

(1) On line 3503 of linear_code.py, change "return

sum(spec[i]*x**(n-i)*y**i for i in range(n+1))" to "return

sum(spec[i]*x**(i)*y**(n-i) for i in range(n+1))"

(2) On line 3507, change "return sum(spec[i]*x**(n-i) for i in

range(n+1))" to "return sum(spec[i]*x**(i) for i in range(n+1))"

(3) Some of the examples may change accordingly.

This mistake could be my fault, since I wrote the original version

(long long ago). Unfortunately, I lack the git skills to submit a

patch.

> The function weight_enumerator(bivariate=False) returns the evaluation of

> the the above polynomial for y=1. Should't it be (in the current version)

> the evaluation with x=1? In other words: Wouldn't one expect a polynomial in

> x (or y) whose coefficient to x^i (or y^i) is the number of codewords of

> π πππ of Hamming weight π?

> The example below [2] illustrates my point: The code has four codewords, one

> of weight 0, two of weight 3, one of weiht 4. Sage gives x^5 + 2*x^2 + x as

> the univariate weight enumerator. I would have expected either 1 + 2*x^3 +

> x^4 or 1 + 2*y^3 + y^4.

>

> If you agree, I suggest to alter the code accordingly.

>

> Kind regards

> Barbara

> PS: I tested the code with Sage version 7.6 on an iMac.

>

>

> [1] http://doc.sagemath.org/pdf/en/reference/coding/coding.pdf

>

> [2] Sage code for the SageMathCell

>

> C= LinearCode(Matrix(GF(2),2,5, [[1,1,0,1,0], [0,0,1,1,1]]))

> print C.list()

> print C.spectrum()

> print C.weight_enumerator()

> print C.weight_enumerator(bivariate=False)

> C.weight_enumerator??

>

> http://sagecell.sagemath.org/?z=eJxztlXwycxLTSxyzk9J1fBNLCnKrNBwd9Mw0tQx0jHVUYiONtQx1DEA4VggzwDMBMLYWE1NXq6Cosy8EgVnvZzM4hINJH5xQWpySVFpLrJYeWpmekZJfGpeaW5qUWJJfhF-yaTMssSizMSSVFu3xJziVKBaLKrs7QGIgD2K&lang=sage

>

> --

> You received this message because you are subscribed to the Google Groups

> "sage-devel" group.

> To unsubscribe from this group and stop receiving emails from it, send an

> email to sage-devel+...@googlegroups.com.

> To post to this group, send email to sage-...@googlegroups.com.

> Visit this group at https://groups.google.com/group/sage-devel.

> For more options, visit https://groups.google.com/d/optout.

Jul 14, 2017, 3:38:58 AM7/14/17

to sage-coding-theory, sage-...@googlegroups.com

A patch can be produced by

git diff > stuff.patch

It would be great if you opened a ticket and posted this diff as an attachment...

Β

Β

> email to sage-devel+unsubscribe@googlegroups.com.

Jul 14, 2017, 5:39:21 AM7/14/17

to sage-devel, sage-coding-theory

On Fri, Jul 14, 2017 at 5:35 AM, Johan S. H. Rosenkilde

<mail...@atuin.dk> wrote:

> Thanks a lot for reporting! We *really* appreciate any feedback from

> using Sage in classes: on bugs, designs and feature requests.

>

> This bug is now #23433. I'll push a patch momentarily.

>

Thank you, Johan!

> Best,

> Johan Rosenkilde

>

>

...

>>>

>>> This mistake could be my fault, since I wrote the original version

>>> (long long ago). Unfortunately, I lack the git skills to submit a

>>> patch.

>>>

...

<mail...@atuin.dk> wrote:

> Thanks a lot for reporting! We *really* appreciate any feedback from

> using Sage in classes: on bugs, designs and feature requests.

>

> This bug is now #23433. I'll push a patch momentarily.

>

Thank you, Johan!

> Best,

> Johan Rosenkilde

>

>

...

>>>

>>> This mistake could be my fault, since I wrote the original version

>>> (long long ago). Unfortunately, I lack the git skills to submit a

>>> patch.

>>>

Reply all

Reply to author

Forward

0 new messages

Search

Clear search

Close search

Google apps

Main menu