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 > <sage-devel@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. > > 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.