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