1. Summary
  2. Files
  3. Support
  4. Report Spam
  5. Create account
  6. Log in

GSoC 2012 Ideas

From pdl

Jump to: navigation, search

This page documents ideas for the 2012 Google Summer of Code for the PDL data language project. The ideas proposed can be organized here and any thoughts about scope, implementation, or other details can be collected.


Contents

Expand and enhance PDL's help database API

... so that other PDL modules can add to it it at install time and other projects can tap into it more easily (pure-perl, may be too small)

  • Refactor to use official Pod::Parser and other modules
  • Add support for updating the database for new modules
    • Maybe allow for multiple database files
    • Would need to handle name collisions
  • Improve PDL docs to allow better searching and multiple functions with same name

Design and Implement PDL::Expt

(should be all Perl)

MATLAB + perl/PDL

Make perl/PDL routines callable from MATLAB (some Perl, some PDL::PP, some MEX programming)

  • Need to translate matlab arrays to piddles
  • Ideally we could call matlab from pdl as well
  • Inline::MATLAB anyone?

PDL equivalent of Matlab's Signal Processing Toolkit

(some Perl, some PDL::PP)

Design and implement new PDL::PP functionality

PDL::Pointer, PDL::SV, and PDL::Struct (mostly PDL core hacking, some PDL::PP and Perl)

64-bit support for PDL

Allow PDL objects to have more than 2**32 elements by changing nvals from an int type to a 64bit type. (PDL core hacking)

  • Need to detect whether 64bit ints are supported from Config.pm
  • Add tests to the test suite to verify correct operation
  • Change nvals data type
  • Trace impacts of new nvals type on the perl/PDL API
  • Is there a way to give diagnostic errors to help 3rd party PDL module developers?

Make PDL thread-safe

(PDL core hacking)

Update FFTW to FFTW3

This could include not only FFTW3 support but also unifying the existing PDL ::FFT* functionality and provide improved support for complex data. (PDL::PP and XS)

  • Implement low-level FFTW3 bindings
  • Use FFTW3 multiple FFT calculation to implement threaded computations
  • Harmonize FFT and FFTW and Complex modules
    • Make the FFTs interoperable at some level
    • Reduce/eliminate duplicate implementations of complex
    • Extend Complex to use [2,N] as well as [N] [N] Re,Im

Full GSL support

(PDL::PP and XS)

Memory Mapping support for Windows

This involves implementing a basic mmap function for PDL using win32 routines. (PDL core hacking, working with PDL magic)

  • See comments in the code for implementations to start with
  • Ideally we would like to support out-of-core pdls
  • This may require PDL::PP support (is it even possible?)

Python/Numpy + Perl/PDL

This could start by updating pyperl and include the ability to map from PDL to NumPy objects transparently. (Requires Perl/XS, PDL::PP, and corresponding python skills)

  • The current pyperl has not been supported
  • Allowing PDL to call python/numpy code would allow us to use matplotlib

Ability to read more data formats

  • ERDAS Imagine
  • GeoTiff
  • Arc GRID
    • The above could be done by leveraging GDAL which already has translators for dozens of raster datasets. This is what projects such as MapServer and PostGIS do.
    • Another option, or capability would be by leveraging Bio-Formats, a Java library that can read and write many, many raster datasets

Resolve existing issues with PDL's GD module

NOTE: There are currently no reported issues with the PDL GD module. The existing PDL GD module works well in regular mode, but is very limited. It has much more capabilities exposed in the OO mode, but last I tried, it was seg faulting on Mac OS X. I tried troubleshooting it, and the module author, Judd Taylor, very kindly and patiently helped me in the process, but we never resolved it. Besides making the module rock-solid, its documentation also needs to be improved.

Improve PDL's graphics output capabilities

NOTE: PDL-2.4.11 is planned to include new graphics output options. Perhaps by perhaps leveraging a library such as Cairo instead of, or, along with, libgd.

Create PDL Bindings to the OpenCV library

  • There is an existing perlXS bindings to OpenCV http://search.cpan.org/~yuta/Cv-0.12/, but it will be nice to leverage PDL's threading and general number crunching capabilities with OpenCV.
  • There is some initial work interfacing PDL with OpenCV from Dima Kogan
    • https://github.com/dkogan/PDL-OpenCV
    • "These are autogenerated from the opencv headers, so only those opencv routines that use their custom matrices are supported. This covers a fair number of OpenCV routines, but not all of them. I use these bindings all the time, and they work well for my purposes :)"
  • There is work in progress from Joel Berger for managing external dependency for PDL with the Alien module framework.
Personal tools