The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version v2.014 - 2015-10-12

  • General Notes:
    • This is PDL-2.014 introducing full support for 64bit indexing operations using 64bit PDL_Indx data type.
    • PDL can now create and use piddles having more than 2**32 elements. Of particular use is that you can now use PDL::IO::FlexRaw to memory map piddles from files on disk which can allow for simplified processing and IO on extremely large data.
    • Due to the new PDL_Anyval type changes, existing PDL::PP modules may need to be updated to support the new PDL Core version 12 API. Authors, please see PDL::API for macros to ease the porting.
      • Users, be aware that some modules may not work until they are updated by their maintainers.
  • Highlights:
    • Implement PDL_Anyval data type as union to support 64bit indexing
      • This adds a union data type to add 64bit integer support to the original PDL-2.x types which assumed that double was capable of holding all the "lesser" types. With the PDL_Anyval type, we can correctly handle 64bit integer data types and avoid errors and loss of precision due to conversions to or from PDL_Double. Special thanks to kmx and zowie for their help to complete and debug this implementation.
    • Many fixes to the build process to make PDL more robust to build, test, and install. This takes advantage of new automated CI testing via Travis CI on the github site.
      • Thanks much to Ed and Zakariyya for their work to get this started and maintained. This CI testing makes this the best tested and best testing PDL release ever!
    • Various documentation clean-ups and work to improve on-line viewing at http://metacpan.org and others. (Thanks kmx and Derek!)
    • A new ipow() method haw been added with 64bit integer support. ipow() calculates the integer exponentiation of a value by successive multiplications. This allows one to avoid loss of significance in integer exponents. pow() converts the value to double and will always have <52bits precision.
    • nbadover and ngoodover now return indx type (PDL_Indx)
    • PDL now detects when your perl installation has been built with floating point longer than 8 bytes and gives a one time warning that precision will be lost converting from perl NV to PDL_Doubles. This warning is given on "use PDL;"
    • "use PDL" now includes "use PDL::IO::Storable" This avoids a hard to diagnose crash that can occur when a user tries using Storable without the necessary "use PDL::IO::Storable".
    • MANY sf.net bugs fixed:
      • 400 dataflow slice crash around 2**31 boundary 399 Small doc fixes 398 $pdl->hdr items are lost after $pdl->reshape 396 online docs for modules only work first time in PDL shells 395 ipow (integer exponentiation) support for 64bit index support 394 demo cartography fails 383 gcc/#gfortran 4.9.2 needs -lquadmath 378 where on dice of pdl bad results 376 PDL Segmentation fault working with Storable restored PDL 347 t/#pdl_from_string.t has a failure if BADVAL_NAN=1 346 ExtUtils::F77 dependency causing problems for CPAN install 343 longlong constructor and display lose digits due to... 340 orover of byte data returns long type

Documentation

script to generate Makefile.PL and PP file skeleton
making piddles from Perl and C/XS code
Discussion of bad value support in PDL
A journey through PDL's documentation, from beginner to advanced.
description of the dataflow philosophy
PDL changes between V1.0 and V2.0
Frequently asked questions about PDL
an index of PDL documentation
Introduction to indexing and slicing piddles.
description of some aspects of the current internals
A guide for MATLAB users.
A guide to PDL's module reference.
Object-Orientation, what is it and how to exploit it
Generate PDL routines from concise descriptions
Parallel Processor MultiThreading Support in PDL (Experimental)
Why did we write PDL?
Quick introduction to PDL features.
A guide for Scilab users.
Tutorial for PDL's Threading feature
Small tidbits of useful arcana. Programming tidbits and such.
A guide to PDL's tutorial documentation.
How to diagnose and report PDL problems
Functions in the PDL distribution
an index of PDL documentation
An overview of the modules in the PDL::IO namespace.
the perl debugger with PDL support
Simple shell (version 2) for PDL
calculates pdl dependencies
shell interface to PDL documentation
Simple shell for PDL (see also pdl2)

Modules

MatLab style AutoLoader for PDL
basic compile time constants for PDL
Basic utility functions for PDL
PDL subclass which allows reading and writing of fixed-length character strings as byte PDLs
fundamental PDL functionality and vectorization/threading
functions to support debugging of PDL scripts
PDL development module
PDL export control
define fundamental PDL Datatypes
Write PDL Subroutines inline with PDL::PP
Internal module to handle signatures
minimum PDL module OO loader
minimum PDL module function loader
declare PDL lvalue subs
a convenience matrix class for column-major access
simplifies option passing by hash in PerlDL
PDL
the Perl Data Language
a reduce function for PDL
toward a nicer slicing syntax for PDL
PDL demo for PDL::Graphics::Prima
support for PDL online documentation
commands for accessing PDL doc database from 'perldl' shell
a simple PDL module containing inlined Pdlpp code
PDL does process bad values
handle complex numbers
compression utilities
FFTs for PDL
routines for fitting gaussians
PDL interface to the Proj4 projection library.
PDL interface to numerical differentiation routines in GSL
PDL interface to numerical integration routines in GSL
PDL interface to Interpolation routines in GSL
PDL interface to multidimensional root-finding routines in GSL
PDL interface to RNG and randist routines in GSL
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
PDL interface to GSL Special Functions
Display PDL images on IIS devices (saoimage/ximtool)
quick routines to plot lots of stuff from piddles.
Helper routines for Three-dimensional graphics
2D data browser for PDL
Interface to the GD image library.
An interface library for HDF4 files.
PDL interface to the HDF4 SD library.
misc IO routines for PDL
pnm format I/O for PDL
helper functions to make PDL usable with Storable
Miscellaneous 2D image processing functions
useful image processing in N dimensions
some utility functions for RGB image data handling
extended mathematical operations and special functions
Some Useful Matrix Operations
a PDL interface to the Minuit library
Fundamental mathematical operators
primitive operations for pdl
PDL interface to the slatec numerical programming library
Indexing, slicing, and dicing
Coordinate transforms, image warping, and N-D functions
PDL::Transform interface to the Proj4 projection library
primitive ufunc operations for pdl
An object oriented interface to PDL graphics
provides access to a number of look-up tables
derive limits for display purposes
PGPLOT enhanced interface for PDL
Setting PGPLOT options
A OO interface to PGPLOT windows
A package to keep track of plotting commands
PDL TriD OpenGL interface using POGL
PDL 3D interface
default event handler subroutines
3D Surface contours for TriD
Mathematical Graph objects for PDL
Simple Graph Objects for TriD
TriD VRML backend
a module for reading DICOM images.
data dumping for structs with PDLs
Simple FITS support for PDL
A simple, fast and convenient io format for PerlDL.
A flexible binary I/O format for PerlDL
A PDL interface to the HDF4 library.
I/O of IDL Save Files
image I/O for PDL
call functions in external shared libraries
Non-memory-resident array object
Linear predictive filtering
linear filtering for PDL
Levenberg-Marquardt fitting routine for PDL
routines for fitting data with linear combinations of functions.
routines for fitting with polynomials
interpolation, integration, & gradient estimation (differentiation) of functions
provide a consistent interface to the interpolation routines available in PDL
simple interface to SLATEC interpolation routines
Simplex optimization routines
Useful cartographic projections
filter out Moose cruft
enable PDL NiceSlice syntax
implement perldl aliases/escapes
disable default print output
profile for Perldl2 shell

Provides

in Basic/Gen/PP/Struct.pm
in Basic/Gen/PP/Struct.pm
in Basic/Gen/PP/CType.pm
in Basic/Gen/PP/Var.pm
in Basic/Gen/Inline/MakePdlppInstallable.pm
PDL
in Basic/Core/Core.pm
PDL
in Basic/Core/Dbg.pm
PDL
in Basic/Lvalue.pm
PDL
in GENERATED/PDL/Complex.pm
PDL
in GENERATED/PDL/IO/Storable.pm
in Example/Benchmark/Bench.pm
in Demos/BAD2_demo.pm.PL
in Demos/BAD_demo.pm.PL
in Demos/Cartography_demo.pm
in Demos/General.pm
in Demos/Gnuplot_demo.pm
in Demos/PGPLOT_OO_demo.pm
in Demos/PGPLOT_demo.pm
in Demos/Screen.pm
in Demos/Transform_demo.pm
in Demos/TriD1.pm
in Demos/TriD2.pm
in Demos/TriDGallery.pm
in Doc/Doc/Config.pm.PL
in Lib/Filter/Linear.pm
in Lib/Filter/LinPred.pm
in Lib/Filter/Linear.pm
in Graphics/TriD/TriD/MathGraph.pm
in Graphics/TriD/TriD/MathGraph.pm
in Graphics/Limits/Limits.pm
in Graphics/TriD/POGL/OpenGL.pm
in Graphics/TriD/TriD/Mesh.pm
in Graphics/TriD/TriD/ArcBall.pm
in Graphics/TriD/TriD/ArcBall.pm
in Graphics/TriD/TriD/ArcBall.pm
in Graphics/TriD/TriD.pm
in Graphics/TriD/TriD.pm
in Graphics/TriD/TriD/Polygonize.pm
in Graphics/TriD/TriD/Control3D.pm
in Graphics/TriD/TriD/Graph.pm
in Graphics/TriD/TriD/TextObjects.pm
in Graphics/TriD/TriD/Graph.pm
in Graphics/TriD/TriD/GL.pm
in Graphics/TriD/TriD/OOGL.pm
in Graphics/TriD/TriD/Objects.pm
in Graphics/TriD/TriD/Objects.pm
in Graphics/TriD/TriD/GoBoard.pm
in Graphics/TriD/TriD/Graph.pm
in Graphics/TriD/TriD/Image.pm
in Graphics/TriD/TriD/Objects.pm
in Graphics/TriD/TriD/Objects.pm
in Graphics/TriD/TriD/Objects.pm
in Graphics/TriD/TriD/Lines.pm
in Graphics/TriD/TriD/Logo.pm
in Graphics/TriD/TriD.pm
in Graphics/TriD/TriD/Mesh.pm
in Graphics/TriD/TriD/OOGL.pm
in Graphics/TriD/TriD/OOGL.pm
in Graphics/TriD/TriD/Object.pm
in Graphics/TriD/TriD.pm
in Graphics/TriD/TriD/Objects.pm
in Graphics/TriD/TriD/Graph.pm
in Graphics/TriD/TriD/Polygonize.pm
in Graphics/TriD/TriD/ArcBall.pm
in Graphics/TriD/TriD/Quaternion.pm
in Graphics/TriD/TriD/Objects.pm
in Graphics/TriD/TriD/Objects.pm
in Graphics/TriD/TriD/Objects.pm
in Graphics/TriD/TriD/Objects.pm
in Graphics/TriD/TriD/Objects.pm
in Graphics/TriD/TriD.pm
in Graphics/TriD/TriD/SimpleScaler.pm
in Graphics/TriD/TriD/Control3D.pm
in Graphics/TriD/TriD/SimpleScaler.pm
in Graphics/TriD/TriD/Objects.pm
in Graphics/TriD/TriD/Polygonize.pm
in Graphics/TriD/TriD/Surface.pm
in Graphics/TriD/TriD.pm
in Graphics/TriD/TriD.pm
in Graphics/TriD/TriD/VRML.pm
in Graphics/TriD/TriD/VRML.pm
in Graphics/TriD/TriD/VRML.pm
in Graphics/TriD/TriD/GL.pm
in Graphics/TriD/TriD/VRML.pm
in Graphics/TriD/TriD/ViewPort.pm
in Graphics/TriD/TriD/GL.pm
in Graphics/TriD/TriD/VRML.pm
in Graphics/TriD/TriD/Window.pm
in Graphics/TriD/VRML/VRML.pm
in Graphics/TriD/VRML/VRML/Protos.pm
in Graphics/TriD/VRML/VRML.pm
in Graphics/TriD/VRML/VRML.pm
in Graphics/TriD/VRML/VRML.pm
in Basic/Gen/PP.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/Dims.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/Dims.pm
in Basic/Gen/PP/PdlParObj.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP.pm
in Basic/Gen/PP.pm
in Basic/Gen/PP.pm
in Basic/Gen/PP.pm
in Basic/Gen/PP.pm
in Basic/Gen/PP.pm
in Basic/Gen/PP.pm
in Basic/Gen/PP.pm
in Basic/Gen/PP.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Basic/Gen/PP/PDLCode.pm
in Perldl2/Script.pm
in Doc/Doc.pm
in GENERATED/PDL/Transform.pm
in GENERATED/PDL/Transform.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in GENERATED/PDL/Transform/Proj4.pm
in Basic/Core/Types.pm.PL
in Basic/Gen/PP/SymTab.pm
in Graphics/TriD/TriD/VRML.pm
XS
in Basic/Gen/PP/XS.pm