On Thursday, 14 May 2015 19:30:35 UTC+1, Dima Pasechnik wrote:
>
>
>
> On Thursday, 14 May 2015 19:20:43 UTC+1, Phoenix wrote:
>>
>>
>> This is how "Edge" is created, 
>>
>> g = graphs.CompleteBipartiteGraph(n, n)
>>
>> Edge = []
>> for (a,b,c) in g.edges ():
>>     Edge.append ( (a,b) )
>>
>> This is how "rep" is created, 
>>
>> Fq2 = []
>> for i in range (q):
>>     for j in range (q):
>>       Fq2.append (matrix([[i],[j]]))
>>
>> SL2Fq = []
>> for i1 in range (q):
>>     for i2 in range (q):
>>        for i3 in range(q):
>>          for i4 in range (q):
>>                 if (i4*i1-i2*i3)% q == 1 :
>>                     SL2Fq.append ( matrix( [ [i1, i2],[i3,i4] ] ) )
>>
>
> how about
>
> SL2Fq=list(SL(2,q))
>
> for q prime this is the same...
>  
>
>>
>> rep = []
>> for Y in SL2Fq:
>>     M = []
>>     for A in Fq2:
>>         B = (Y*A)%q
>>         row = []
>>         for C in Fq2:
>>             if B == C :
>>                 row.append ([1])
>>             else :
>>                 row.append ([0])
>>         M.append(flatten(row))
>>     rep.append (matrix(M).transpose())
>> d
>>
>
In short, rep is the list of permutation matrices obtained from the 
elements of SL(2,q) in its natural action 
on F_q^2.

Well, we can spend more time understanding how (mathematically) you obtain 
your polynomials, but perhaps
it would be more efficient if you explain it yourself?




>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> On Thursday, May 14, 2015 at 12:56:21 PM UTC-5, David Joyner wrote:
>>>
>>> On Thu, May 14, 2015 at 1:45 PM, Phoenix <[email protected]> wrote: 
>>> > 
>>> > Try q=2 n=4 or q=3 n=3 to see the "error" :) 
>>> > 
>>>
>>> Perhaps you can post rep and Edge in that case (in a format that can 
>>> be copy+pasted), or put them into a file and attach it or upload it 
>>> somewhere. 
>>>
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > 
>>> > On Thursday, May 14, 2015 at 6:10:19 AM UTC-5, David Joyner wrote: 
>>> >> 
>>> >> On Thu, May 14, 2015 at 6:59 AM, Dima Pasechnik <[email protected]> 
>>> wrote: 
>>> >> > The poster has not provided an example producing the error. 
>>> >> > One needs to increase q and/or n, as it is mentioned in the post. 
>>> >> > 
>>> >> 
>>> >> I missed that. Is it possible that the error is entirely due to the 
>>> >> way sagecell writes it to a file for execution in Python, and not the 
>>> >> code itself? 
>>> >> 
>>> >> > On Thursday, 14 May 2015 11:32:30 UTC+1, David Joyner wrote: 
>>> >> >> 
>>> >> >> On Wed, May 13, 2015 at 9:13 PM, Phoenix <[email protected]> 
>>> wrote: 
>>> >> >> > 
>>> >> >> > 
>>> >> >> > So I have this SAGE code which takes in two integers q and n and 
>>> it 
>>> >> >> > generates ~ (q^3)^(n^2) 0/1 matrices and does a sum of their 
>>> >> >> > characteristic 
>>> >> >> > polynomials. 
>>> >> >> > 
>>> >> >> > I got answers for (q = 3, n = 2), (q =2 , n = 3) and (q=2, n=2) 
>>> >> >> > 
>>> >> >> > For any higher number the code runs for ~1hr and then it says, 
>>> >> >> > 
>>> >> >> > " 
>>> >> >> > 
>>> >> >> > Traceback (most recent call last): 
>>> >> >> >   File "<stdin>", line 1, in <module> 
>>> >> >> >   File "_sage_input_2.py", line 10, in <module> 
>>> >> >> >     exec compile(u'open("___code___.py","w").write("# -*- 
>>> coding: 
>>> >> >> > utf-8 
>>> >> >> > -*-\\n" + 
>>> >> >> > 
>>> >> >> > 
>>> >> >> > 
>>> _support_.preparse_worksheet_cell(base64.b64decode("UA=="),globals())+"\\n");
>>>  
>>>
>>> >> >> > execfile(os.path.abspath("___code___.py")) 
>>> >> >> >   File "", line 1, in <module> 
>>> >> >> > 
>>> >> >> >   File "/tmp/tmpPiPIoq/___code___.py", line 2, in <module> 
>>> >> >> >     exec compile(u'P 
>>> >> >> >   File "", line 1, in <module> 
>>> >> >> > 
>>> >> >> > " 
>>> >> >> > 
>>> >> >> > 
>>> >> >> > Can someone help understand what is going on? 
>>> >> >> > 
>>> >> >> > Like any suggestion about how to go about it? 
>>> >> >> > 
>>> >> >> 
>>> >> >> I cannot reproduce this error: 
>>> >> >> 
>>> >> >> 
>>> >> >> q=2; n =2 
>>> >> >> rep = [ matrix ([[1, 0, 0, 0], [0, 0, 0, 1], [0, 1, 0, 0], [0, 0, 
>>> 1, 
>>> >> >> 0]] ), matrix ([[1, 0, 0, 0], [0, 0, 0, 1], [0, 0, 1, 0], [0, 1, 
>>> 0, 
>>> >> >> 0]] ) ,  matrix ([[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 0, 1], [0, 0, 
>>> 1, 
>>> >> >> 0]] ) , matrix ( [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 
>>> 0, 
>>> >> >> 1]] ) ,  matrix ( [[1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1], [0, 
>>> 1, 0, 
>>> >> >> 0]]) , matrix ([[1, 0, 0, 0], [0, 0, 1, 0], [0, 1, 0, 0], [0, 0, 
>>> 0, 
>>> >> >> 1]] )  ] 
>>> >> >> 
>>> >> >> Edge = [(0, 2), (0, 3), (1, 2), (1, 3)] 
>>> >> >> 
>>> >> >> P = 0 
>>> >> >> from itertools import product 
>>> >> >> from itertools import izip 
>>> >> >> 
>>> >> >> for X in product(rep,repeat = len (Edge)): 
>>> >> >>     k = izip(Edge,X) 
>>> >> >>     M = [[matrix(q^2, q^2, 0)]*(2*n) for _ in range(2*n)] 
>>> >> >>     for ((a,b),Y) in k: 
>>> >> >>       M[a][b] = Y 
>>> >> >>       M[b][a] = Y.inverse() 
>>> >> >>     Z = block_matrix(M) 
>>> >> >>     P = P + Z.charpoly(x) 
>>> >> >> print P 
>>> >> >> 
>>> >> >> 
>>> >> >> gives 
>>> >> >> 
>>> >> >> 1296*x^16 - 20736*x^14 + 129600*x^12 - 393984*x^10 + 584496*x^8 - 
>>> >> >> 362880*x^6 + 62208*x^4 
>>> >> >> 
>>> >> >> 
>>> >> >> > 
>>> >> >> > 
>>> >> >> > EDIT: 
>>> >> >> > 
>>> >> >> > This is basically the main time-consuming step. 
>>> >> >> > 
>>> >> >> > At this point "rep" comes in as a ~q^3 size list of q^2 
>>> dimensional 
>>> >> >> > 0/1 
>>> >> >> > permutation matrices. 
>>> >> >> > And "Edge" is a list of integer tuples where each tuple is of 
>>> the 
>>> >> >> > form 
>>> >> >> > (a,b) 
>>> >> >> > with a,b being from the set {0,1,2,3...,(2n-1)} 
>>> >> >> > 
>>> >> >> > P = 0 
>>> >> >> > from itertools import product 
>>> >> >> > from itertools import izip 
>>> >> >> > 
>>> >> >> > for X in product(rep,repeat = len (Edge)): 
>>> >> >> >     k = izip(Edge,X) 
>>> >> >> >     M = [[matrix(q^2, q^2, 0)]*(2*n) for _ in range(2*n)] 
>>> >> >> >     for ((a,b),Y) in k: 
>>> >> >> >       M [a][b] = Y 
>>> >> >> >       M [b][a] = Y.inverse() 
>>> >> >> >     Z = block_matrix(M) 
>>> >> >> >     P = P + Z.charpoly(x) 
>>> >> >> > 
>>> >> >> > The polynomial P is the final expected answer. 
>>> >> >> > 
>>> >> >> > (and for any larger value of q and n than the 3 cases mentioned 
>>> the 
>>> >> >> > program 
>>> >> >> > basically stops with no output for P and with the above pasted 
>>> >> >> > message) 
>>> >> >> > 
>>> >> >> > -- 
>>> >> >> > 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 [email protected]. 
>>> >> >> > To post to this group, send email to [email protected]. 
>>>
>>> >> >> > Visit this group at http://groups.google.com/group/sage-support. 
>>>
>>> >> >> > For more options, visit https://groups.google.com/d/optout. 
>>> >> > 
>>> >> > -- 
>>> >> > 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 [email protected]. 
>>> >> > To post to this group, send email to [email protected]. 
>>> >> > Visit this group at http://groups.google.com/group/sage-support. 
>>> >> > For more options, visit https://groups.google.com/d/optout. 
>>> > 
>>> > -- 
>>> > 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 [email protected]. 
>>> > To post to this group, send email to [email protected]. 
>>> > Visit this group at http://groups.google.com/group/sage-support. 
>>> > For more options, visit https://groups.google.com/d/optout. 
>>>
>>

-- 
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 [email protected].
To post to this group, send email to [email protected].
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