As suggested below, it might work if you replace the line
s = g.spectrum()
with 
s = [AA(xx) for xx in g.spectrum()]

making all the eigenvalues real (as they should be, as you generate 
undirected graphs)

On Tuesday, 25 September 2012 04:18:03 UTC+8, Jernej Azarija wrote:
>
> Consider the following program that computes the spectrum and chromatic 
> number of a graph:
>
> for g in graphs.nauty_geng(str(7)):
>     s = g.spectrum()
>     g.chromatic_number()
>
> This works quickly and like a charm. Now consider the following program 
> that computes something related to the spectrum and chromatic number:
>
> for g in graphs.nauty_geng(str(7)):
>     s = g.spectrum()
>     sp = sum([el**2 for el in s if el > 0]) 
>     sm = sum([el**2 for el in s if el < 0]) 
>     
>     if sm != 0 and not (sp/sm+1 <= g.chromatic_number()):
>         print g.graph6_string()
>
> The program gets stuck in computing something for a long time and in the 
> end it dies trying to allocate a ~7GB pari stack:
>
>   File "minw.py", line 9, in <module>
>     if sm != _sage_const_0  and not (sp/sm+_sage_const_1  <= 
> g.chromatic_number()):
>   File "element.pyx", line 902, in 
> sage.structure.element.Element.__richcmp__ (sage/structure/element.c:8480)
>   File "element.pyx", line 847, in sage.structure.element.Element._richcmp 
> (sage/structure/element.c:7930)
>   File "element.pyx", line 829, in 
> sage.structure.element.Element._richcmp_ (sage/structure/element.c:7659)
>   File "element.pyx", line 874, in sage.structure.element.Element._richcmp 
> (sage/structure/element.c:8342)
>   File 
> "/home/azi/sage-5.3.rc1/local/lib/python2.7/site-packages/sage/rings/qqbar.py",
>  
> line 3755, in __cmp__
>     rcmp = cmp(self.real(), other.real())
>   File 
> "/home/azi/sage-5.3.rc1/local/lib/python2.7/site-packages/sage/rings/qqbar.py",
>  
> line 4395, in __cmp__
>     return self._sub_(other).sign()
>   File 
> "/home/azi/sage-5.3.rc1/local/lib/python2.7/site-packages/sage/rings/qqbar.py",
>  
> line 4611, in sign
>     return self.sign()
>   File 
> "/home/azi/sage-5.3.rc1/local/lib/python2.7/site-packages/sage/rings/qqbar.py",
>  
> line 4614, in sign
>     self.exactify()
>   File 
> "/home/azi/sage-5.3.rc1/local/lib/python2.7/site-packages/sage/rings/qqbar.py",
>  
> line 3466, in exactify
>     self._set_descr(self._descr.exactify())
>   File 
> "/home/azi/sage-5.3.rc1/local/lib/python2.7/site-packages/sage/rings/qqbar.py",
>  
> line 7591, in exactify
>     left.exactify()
>   File 
> "/home/azi/sage-5.3.rc1/local/lib/python2.7/site-packages/sage/rings/qqbar.py",
>  
> line 3466, in exactify
>     self._set_descr(self._descr.exactify())
>   File 
> "/home/azi/sage-5.3.rc1/local/lib/python2.7/site-packages/sage/rings/qqbar.py",
>  
> line 7334, in exactify
>     arg.exactify()
>   File 
> "/home/azi/sage-5.3.rc1/local/lib/python2.7/site-packages/sage/rings/qqbar.py",
>  
> line 3466, in exactify
>     self._set_descr(self._descr.exactify())
>   File 
> "/home/azi/sage-5.3.rc1/local/lib/python2.7/site-packages/sage/rings/qqbar.py",
>  
> line 7591, in exactify
>     left.exactify()
>   File 
> "/home/azi/sage-5.3.rc1/local/lib/python2.7/site-packages/sage/rings/qqbar.py",
>  
> line 3466, in exactify
>     self._set_descr(self._descr.exactify())
>   File 
> "/home/azi/sage-5.3.rc1/local/lib/python2.7/site-packages/sage/rings/qqbar.py",
>  
> line 7591, in exactify
>     left.exactify()
>   File 
> "/home/azi/sage-5.3.rc1/local/lib/python2.7/site-packages/sage/rings/qqbar.py",
>  
> line 3466, in exactify
>     self._set_descr(self._descr.exactify())
>   File 
> "/home/azi/sage-5.3.rc1/local/lib/python2.7/site-packages/sage/rings/qqbar.py",
>  
> line 7593, in exactify
>     gen = left._exact_field().union(right._exact_field())
>   File 
> "/home/azi/sage-5.3.rc1/local/lib/python2.7/site-packages/sage/rings/qqbar.py",
>  
> line 2276, in union
>     newpol, self_pol, k = pari_nf.rnfequation(my_factor, 1)
>   File "gen.pyx", line 10412, in sage.libs.pari.gen._pari_trap 
> (sage/libs/pari/gen.c:54794)
>   File "gen.pyx", line 9718, in 
> sage.libs.pari.gen.PariInstance.allocatemem (sage/libs/pari/gen.c:50859)
>   File "gen.pyx", line 10233, in sage.libs.pari.gen.init_stack 
> (sage/libs/pari/gen.c:53888)
> MemoryError: Unable to allocate 65536000000 bytes memory for PARI.
>
>
> What exactly is going on? From what I've checked into the sources I do not 
> see what is causing this issue? Am I doing something stupid in the second 
> sage program or is this some kind of Sage-Pari bug?
>
> Best,
>
> Jernej
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"sage-devel" group.
To post to this group, send email to sage-devel@googlegroups.com.
To unsubscribe from this group, send email to 
sage-devel+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/sage-devel?hl=en.


Reply via email to