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