[Numpy-discussion] Dealing with types in extension modules

Lane Brooks lbrooks@mit....
Wed Sep 10 22:38:33 CDT 2008


Travis E. Oliphant wrote:
> Lane Brooks wrote:
>   
>> When writing an numpy extension module, what is the preferred way to 
>> deal with the all the possible types an ndarray can have?
>>
>> I have some data processing functions I need to implement and they need 
>> to be generic and work for all the possible numerical dtypes.  I do not 
>> want to have to re-implement the same C-code for all the possible types, 
>> so the way I approached it was to use a C++ template function to 
>> implement the processing.  Then I have a dispatching function that 
>> checks the type of the input ndarray and calls the correct template.  Is 
>> there a better way?
>>   
>>     
> You could store the functions in an array of function pointers and 
> look-up the correct one using the typenum:
>
> resize_funcs[PyArray_Type(buf1)](PyArray_DATA(bufi))
>
> with resize_funcs filled appropriately.
>
> -Travis
Would this require implementing a unique function for each of the 
possible types, though?  That is mostly what I want to avoid.  I do not 
want to have to implement 10 to 15 different functions that all do the 
same exact thing but to different types of data.  I guess with your 
proposal I can still use templates to have a single function definition.

Lane
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.scipy.org/pipermail/numpy-discussion/attachments/20080910/008d94c6/attachment.html 


More information about the Numpy-discussion mailing list