Re: [sage-devel] Two issues about the coding theory method "weight_enumerator"
Thank you for replying and submitting a ticket so promptly! Barbara Am Freitag, 14. Juli 2017 11:39:29 UTC+2 schrieb David Joyner: > > On Fri, Jul 14, 2017 at 5:35 AM, Johan S. H. Rosenkilde > > 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. > >>> > > ... > -- 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+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.
Re: [sage-devel] Two issues about the coding theory method "weight_enumerator"
On Fri, Jul 14, 2017 at 5:35 AM, Johan S. H. Rosenkilde 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. >>> ... -- 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+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.
Re: [sage-devel] Two issues about the coding theory method "weight_enumerator"
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. Best, Johan Rosenkilde Dima Pasechnik writes: > On Thursday, July 13, 2017 at 11:43:18 AM UTC+1, David Joyner wrote: >> >> On Thu, Jul 13, 2017 at 5:59 AM, 'B. L.' via sage-devel >> 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. >> >> 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... > > > >> >> > 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+unsubscr...@googlegroups.com. >> > To post to this group, send email to sage-devel@googlegroups.com. >> > Visit this group at https://groups.google.com/group/sage-devel. >> > For more options, visit https://groups.google.com/d/optout. >> -- 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+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.
Re: [sage-devel] Two issues about the coding theory method "weight_enumerator"
On Thursday, July 13, 2017 at 11:43:18 AM UTC+1, David Joyner wrote: > > On Thu, Jul 13, 2017 at 5:59 AM, 'B. L.' via sage-devel > 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. > > 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... > > > 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+unsubscr...@googlegroups.com. > > To post to this group, send email to sage-devel@googlegroups.com. > > Visit this group at https://groups.google.com/group/sage-devel. > > For more options, visit https://groups.google.com/d/optout. > -- 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+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.
Re: [sage-devel] Two issues about the coding theory method "weight_enumerator"
On Thu, Jul 13, 2017 at 5:59 AM, 'B. L.' via sage-devel 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+unsubscr...@googlegroups.com. > To post to this group, send email to sage-devel@googlegroups.com. > Visit this group at https://groups.google.com/group/sage-devel. > For more options, visit https://groups.google.com/d/optout. -- 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+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.
[sage-devel] Two issues about the coding theory method "weight_enumerator"
Dear Sage-Developers, I'd like to report two issues that I came across when working with the coding theory classes of SAGE. 1. 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. 2. 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+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.