The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version v2.016 - 2016-05-30

  • General Notes:
    • This is version 2.016 of the Perl Data Language.
    • Bugs fixed: 417 Perl 5.22: + GSL 2.1 fails to build 408 PDL::GSL::RNG set_seed minor improvement 407 Build failures with GSL 2.1 416 PDL::PP creates .pm & .xs files before pp_done is called 414 ccNcompt (i.e. cc4compt and cc8compt) breaks with byte data type
    • Highlights:
      • All collapse operators now have "<name>over" equivalent names. This ends an API wart in which most, but not all, of the collapse operators had a short form that did full collapse and a long form that did 1-D collapse only (e.g. "and" collapses to a point, while "andover" collapses by one dimension). The exceptions are left in for legacy code, but now have regularized "-over" forms as well:
        • average -> avgover daverage -> davgover maximum -> maxover maximum_ind -> maxover_ind maximum_n_ind -> maxover_n_ind minmaximum -> minmaxover minimum -> minover minimum_ind -> minover_ind minimum_n_ind -> minover_n_ind
      • PDL::Transform image resampling now handles bad values in images. In particular, the `h' and `j' (optimized filter) resampling methods properly skip bad values in the image, marking output pixels bad if more than 1/3 of the weighted values associated with that output pixel are bad.
      • PDLs with dataflow can now be reshaped. The dataflow connection gets severed by the reshape operation.
      • PDL::IO::FITS now works better with RICE-compressed FITS images, such as are produced by NASA's SDO project.
        • The NAXIS* header keywords are now replaced by their ZNAXIS* equivalents, so the NAXIS fields in the header are correct after the image is read in.
        • The Z*, TFIELDS, TTYPE*, and TFORM* keywords are now deleted from the header object, so that the uncompressed, loaded image does not have leftover compression headers.
      • The language preprocessor PDL::PP now does not automatically call pp_done for modules that do not call pp_done themselves. This new, stricter behavior requires module authors to call pp_done at the end of their PDL::PP file. This prevents partially-complete .xs and .pm files from being written if there is a module build error.
      • PDL::GSLSF modules have several fixes/improvements to support building against GSL 2.0:
        • New calling convention for gsl_sf_ellint_D.
        • New functions gsl_sf_legendre_array and gsl_sf_legendre_array_index.
        • Deprecated gsl_sf_legendre_Plm_array and gsl_sf_legendre_sphPlm_array.
        • New tests for new legendre functions.
        • Test requires all PDL::GSLSF modules to successfully load.
      • PDL::GSL::RNG now allows chaining for the set_seed() method: e.g. $rng = PDL::GSL::RNG->new(..)->set_seed(..)
      • PDL::Image2D's ccNcompt connected-component analysis code now returns types that are >= long, to avoid common overflow errors.
      • PDL::whichND returns PDLs of Indx type, to avoid overflows.
      • Empty piddles are handled slightly differently now by PDL::info and `help vars'. Empty piddles are different from null piddles, and now generate different info strings. (null piddles lack data or dimensions; empty piddles have at least one dimension of size 0).
      • PDL::Fit::LM:
        • Documentation has been clarified relating to input data uncertainties and weighting of the fit.
        • A small test suite has been added.
      • There is now a .gitattributes file so GitHub repo language stats are more accurate.
      • The PDL SF/GitHub deveolpment workflow is integrated into the DEVELOPMENT docs.

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.
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