Robert Kern wrote: > On Mon, Sep 21, 2009 at 12:02, Neal Becker <[email protected]> wrote: >> Robert Kern wrote: >> >>> On Mon, Sep 21, 2009 at 10:57, Neal Becker <[email protected]> wrote: >>>> David Cournapeau wrote: >>>> >>>>> On Mon, Sep 21, 2009 at 9:00 PM, Neal Becker <[email protected]> >>>>> wrote: >>>>>> >>>>>> numpy arrays of fpi should support all numeric operations. Also >>>>>> mixed fpi/integer operations. >>>>>> >>>>>> I'm not sure how to go about implementing this. At first, I was >>>>>> thinking to just subclass numpy array. But, I don't think this >>>>>> provides fpi scalars, and their associated operations. >>>>> >>>>> Using dtype seems more straightforward. I would first try to see how >>>>> far you could go using a pure python object as a dtype. For example >>>>> (on python 2.6): >>>>> >>>>> from decimal import Decimal >>>>> import numpy as np >>>>> a = np.array([1, 2, 3], Decimal) >>>>> b = np.array([2, 3, 4], Decimal) >>>>> a + b >>>>> >>>>> works as expected. A lot of things won't work (e.g. most transcendent >>>>> functions, which would require a specific implementation anyway), but >>>>> arithmetic, etc... would work. >>>>> >>>>> Then, you could think about implementing the class in cython. If speed >>>>> is an issue, then implementing your own dtype seems the way to go - I >>>>> don't know exactly what kind of speed increase you could hope from >>>>> going the object -> dtype, though. >>>>> >>>> >>>> We don't want to create arrays of fixed-pt objects. That would be very >>>> wasteful. What I have in mind is that integer_bits, frac_bits are >>>> attributes of the entire arrays, not the individual elements. The >>>> array elements are just plain integers. >>>> >>>> At first I'm thinking that we could subclass numpy array, adding the >>>> int_bits and frac_bits attributes. The arithmetic operators would all >>>> have to be overloaded. >>>> >>>> The other aspect is that accessing an element of the array would return >>>> a fixed-pt object (not an integer). >>> >>> Actually, what you would do is create a new dtype, not a subclass of >>> ndarray. The new datetime dtypes are similar in that they too are >>> "parameterized" dtypes. >> >> But doesn't this mean that each array element has it's own int_bits, >> frac_bits attributes? I don't want that. > > No, I'm suggesting that the dtype has the int_bits and frac_bits > information just like the new datetime dtypes have their unit > information. > 1. Where would I find this new datetime dtype?
2. Don't know exactly what 'parameterized' dtypes are. Does this mean that the dtype for 8.1 format fixed-pt is different from the dtype for 6.2 format, for example? _______________________________________________ NumPy-Discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
