[SciPy-dev] Feedback and help on what to do with flexible arrays and arithmetic operations

Travis Oliphant oliphant at ee.byu.edu
Wed Nov 2 16:19:20 CST 2005


Currently arrays of Flexible type (string, unicode, and void) are not 
supported by universal functions, and therefore arithmetic operations on 
arrays of these types are not supported.

However, it seems that it would be useful to support certain arithmetic 
operations for at least the string and unicode types.

I can see at least three general ways to do this with various consequences:

1) Create a separate string array class similar to numarray that 
inherits from the ndarray but adds support for the arithmetic opertions.

    a) Support unicode arrays with the same string array
        class
    b) Have a separate unicode array class.

This is the easiest for me.  Is having a separate string array class a 
problem?

2) Adapt ufuncs so that support can be added
       for the flexible arrays on a ufunc by ufunc basis
       as appropriate.

In principle this could be done and would provide a more complete 
solution. 

3) Place a check in array_add and friends in arrayobject.c for the 
flexible types and call a separate function.

    a) Fix this specifically in code
    b) Allow a general mechanism that allows users to add
         their own funcion for array operations on a specific
         type -- This could get messy with coercion issues.


I think I like option 2 the best, I suppose, but it would take a bit 
more work than option 1. 

-Travis


            




More information about the Scipy-dev mailing list