On Fri, Oct 30, 2009 at 2:54 AM, Dirk <dirk.lau...@gmail.com> wrote:
>
> Before trying the code below, open a system monitor window showing CPU
> and memory use.
>
> $ sage
> ----------------------------------------------------------------------
> | Sage Version 4.1.1, Release Date: 2009-08-14                       |
> | Type notebook() for the GUI, and license() for information.        |
> ----------------------------------------------------------------------
> sage: t=pari('t'); s=1+t+t^2
> sage: list(s.Vec())
> [1, 1, 1]
> sage: list(s)
> ^C---------------------------------------------------------------------------
> KeyboardInterrupt                         Traceback (most recent call
> last)

If there is no __iter__ method, then I think Python's "list" method
just calls __getitem__ with input 0, 1, 2, 3, etc., until it hits an
exception.  The semantics of Pari's getitem for polynomials are
established I think by polcoeff, which returns 0 for coefficients
above the degree:

? polcoeff(1+t+t^2,100)
%1 = 0

So

sage: t=pari('t'); s=1+t+t^2
sage: s[10]
0
sage: s[100]
0

And notice that there is no __iter__ method.

sage: s.__iter__
---------------------------------------------------------------------------
AttributeError

Thus the fix is easy -- just implement an __iter__ method for every
possible Pari object (well just do a few for starters), by adding code
to SAGE_ROOT/devel/sage/sage/libs/gen.pyx

Thanks,

 -- William


>
> /home/dirk/.sage/temp/rondloper/29109/_home_dirk__sage_init_sage_0.py
> in <module>()
>
> /opt/sage/local/lib/python2.6/site-packages/sage/libs/pari/gen.so in
> sage.libs.pari.gen.gen.__getitem__ (sage/libs/pari/gen.c:6324)()
>
> KeyboardInterrupt:
>
>
> >
>



-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to 
sage-support-unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/sage-support
URL: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to