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 -~----------~----~----~----~------~----~------~--~---