[Perldl] extending PDL data type support

Craig DeForest deforest at boulder.swri.edu
Sun Feb 12 09:02:02 HST 2012


That is a very interesting idea, Chris.  Hmmm,  I wonder if something like that would make ranges easier/faster?


On Feb 12, 2012, at 11:55 AM, chm wrote:

> [Changing the topic in reply...]
> 
> Adding support for arbitrary data types
> is something I would like to see.  It should
> be possible to have a piddle of "something"
> as a regular array of that "something".
> 
> This is something that would require an
> update (at least) to the PDL::PP code generation.
> A specific case of interest would be piddles
> of pointers that would allow for indirection
> in pdl data sets.
> 
> The trick would be to implement these in a
> simple, efficient, and fast code.
> 
> --Chris
> 
> On 2/10/2012 6:23 PM, David Mertens wrote:
>> On Fri, Feb 10, 2012 at 3:08 PM, Judd Taylor<judd.t at orbitalsystems.com>wrote:
>> 
>>>  I'd also like to chime in here and say that I think PDL's support of
>>> data types is too limited right now. It should at least support long double
>>> formats. It would be more than awesome if PDL would work on the full range
>>> of numeric data types commonly used in scientific software and data
>>> formats, but it doesn't even come close currently.
>>> 
>>> Some relevant lists:
>>> HDF5:
>>> http://www.hdfgroup.org/HDF5/doc/UG/11_Datatypes.html
>>> 
>>> HDF:
>>> http://www.hdfgroup.org/training/HDFtraining/UsersGuide/Fundmtls.fm3.html
>>> 
>>> NetCDF:
>>> http://www.unidata.ucar.edu/software/netcdf/docs/netcdf/CDL-Data-Types.html
>>> 
>>> It would make interfacing to these very common formats stupid easy without
>>> any additional memory or data storage expense that you get from using the
>>> current PDL interfaces to these formats...
>>> 
>>> -Judd
>>> 
>>>  ____________________________
>>> Judd Taylor
>>> Software Engineer
>>> 
>>> Orbital Systems, Ltd.
>>> 3807 Carbon Rd.
>>> Irving, TX 75038-3415
>>> 
>>> judd.t at orbitalsystems.com
>>> (972) 915-3669 x127
>>>   ------------------------------
>>> 
>> 
>> Adding new C data types (like long double) to the core is relatively easy.
>> At the moment there are some silly holes, such as unsigned chars: only
>> signed bytes are supported. I know of no reason for this. The same is true
>> for long doubles.
>> 
>> The problem with adding new data types is that every single threadloop that
>> doesn't explicitly state GenericTypes will have a copy of the code
>> generated and compiled for each data type. We have seven data types at the
>> moment, so adding unsigned chars and long doubles wouldn't have a huge
>> impact on the code size. However, we might also consider adding signed long
>> (32 bit ints) and signed long-long (64 bit ints). That takes us from seven
>> to 11. We should add the types and see how much this increases the code
>> size. It may not be unreasonable.
>> 
>> As for adding additional types, like complex numbers or Large numbers,
>> those are more difficult to accommodate. Craig and I will be going through
>> the core for a cleanup leading up to v2.5 (hopefully we'll get started some
>> time this summer), so maybe after that we can address non-native types at
>> that time. However, adding anything that's not known to C will be Very
>> Difficult with PDL, as I understand it.
>> 
>> One possible work around, which I've thought about but have no code for it,
>> is a sort of PDL::Pointer type. But that would require a fair amount of
>> core hacking before we have it working.
>> 
>> David
> 
> _______________________________________________
> Perldl mailing list
> Perldl at jach.hawaii.edu
> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
> 





More information about the Perldl mailing list