Actually I wanted it less yellow, if I do that or only

codeSet = []

or

codeSet = ([])

the result is the same.

On Sep 26, 1:43 pm, Robert Bradshaw <[EMAIL PROTECTED]>
wrote:
> On Sep 26, 2008, at 8:21 AM, cesarnda wrote:
>
>
>
>
>
> > I already did that and I get this:
>
> >  cdef list codeSet = []
>
> >   __pyx_1 = PyList_New(0); if (unlikely(!__pyx_1)) {__pyx_filename =
> > __pyx_f[0]; __pyx_lineno = 210; __pyx_clineno = __LINE__; goto
> > __pyx_L1_error;}
> >   __pyx_v_codeSet = __pyx_1;
> >   __pyx_1 = 0;
>
> > and if I don't do it that way I get:
>
> >  addVector = []
>
> >           __pyx_2 = PyList_New(0); if (unlikely(!__pyx_2))
> > {__pyx_filename = __pyx_f[0]; __pyx_lineno = 215; __pyx_clineno =
> > __LINE__; goto __pyx_L1_error;}
> >           Py_DECREF(__pyx_v_addVector);
> >           __pyx_v_addVector = ((PyObject *)__pyx_2);
> >           __pyx_2 = 0;
>
> Yes, that is correct. Is this not what you want?
>
>
>
> > On Sep 26, 2:55 am, Robert Bradshaw <[EMAIL PROTECTED]>
> > wrote:
> >> On Sep 26, 2008, at 12:09 AM, Simon King wrote:
>
> >>> On Sep 25, 6:45 pm, cesarnda <[EMAIL PROTECTED]> wrote:
> >>> ...
> >>>>   result = []
> >>> ...
> >>>>       result.append(n)
>
> >>> ...
> >>>> if I compile in the notebook I get a html file showing me the
> >>>> following lines in yellow:
>
> >>>> def primes(int kmax):
> >>>> result = []
> >>>> result.append(n)
> >>>> return result
>
> >>>> how can I modify this example to avoid the yellow lines?
>
> >>> As other people pointed out, there is not much hope for the "def"  
> >>> and
> >>> the "return" line.
>
> >>> But wouldn't it be possible to do
> >>>   cdef list result = []
>
> >> Yep, you could do this. The resulting C code calls PyList_New(0)
> >> which is the fastest way to make a list.
>
> >>> And isn't there a quick, dirty and potentially unsafe way of  
> >>> appending
> >>> to a list?
>
> >> Since it knows result is a list (due to the cdef above), it uses
> >> PyList_Append, the fastest way to append to a list.
>
> >>> Or at least for assigning a value to some list entry? I
> >>> think I have seen it somewhere, but I don't remember the name.
>
> >> Yep. Currently it calls __Pyx_SetItemInt which does an inline runtime
> >> boundscheck and check for a list, and if it's OK uses a macro to
> >> reset the specified entry right there. We could (should) optimize
> >> this in the case it already knows it's a list, but with good branch
> >> prediction it's probably within 5% of as fast as it could be period.
>
> >> - Robert
--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-support@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/sage-support
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to