## Changes for version 2.079 - 2022-05-03

- move Math::badmask to Bad
- PDL.propagate_badflag propagates both to parents AND children, sets flag itself
- Ops::assgn now propagates its badflag without needing to set output badflag
- remove FindBadStatusCode
- remove redundant use of CopyBadStatusCode
- PDL.null deprecated, doesn't allocate pdl.sv now
- PDL::Dataflow doc updated
- add TriD::trigrid3d
- add PDL::IO::STL
- replace *_RECURSE_GUARD macros which use process-global variable, causing problems if multi-thread, with stack parameters - thanks @marioroy for report
- add Primitive::{cmp,eq}vec
- add Image2D::crop
- PP typemap-search includes dirs above

## Documentation

script to generate Makefile.PL and PP file skeleton

making ndarrays from Perl and C/XS code

Discussion of bad value support in PDL

Tutorial for PDL's Broadcasting feature

A journey through PDL's documentation, from beginner to advanced.

description of the dataflow implementation and philosophy

PDL changes between V1.0 and V2.0

Frequently asked questions about PDL

Introduction to the PDL::Graphics modules

an index of PDL documentation

Introduction to indexing and slicing ndarrays.

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 multi-threading support in PDL

Why did we write PDL?

Quick introduction to PDL features.

A guide for Scilab users.

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

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/broadcasting

functions to support debugging of PDL scripts

PDL development module

PDL export control

Module for use by ExtUtils::Depends and Inline

subclass of Math::Complex with overload fallbacks

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

the Perl Data Language

a reduce function for PDL

toward a nicer slicing syntax for PDL

PDL demo infrastructure

support for PDL online documentation

commands for accessing PDL doc database from 'perldl' shell

a simple PDL module containing inlined Pdlpp code

PDL always processes bad values

handle complex numbers (DEPRECATED - use native complex)

compression utilities

FFTs for PDL

routines for fitting gaussians

PDL interface to the PROJ projection library.

PDL interface to GSL Cumulative Distribution Functions

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 linear algebra 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 ndarrays.

Helper routines for Three-dimensional graphics

2D data browser for PDL

Interface to the GD image library.

PDL interface to the HDF4 SD library.

An interface library for HDF4 files.

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

demonstrate PDL::Graphics::PGPLOT capabilities

PGPLOT enhanced interface for PDL

Setting PGPLOT options

demonstrate PDL::Graphics::PGPLOT OO capabilities

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

PDL 3D graph object with axes

Text tools

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

read/write 3D stereolithography files

call functions in external shared libraries

Non-memory-resident array object

linear filtering for PDL

routines for fitting with polynomials

interpolation, integration, & gradient estimation (differentiation) of functions

Simplex optimization routines

Gaussian distributions.

Levenberg-Marquardt fitting routine for PDL

Linear predictive filtering

routines for fitting data with linear combinations of functions.

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/Inline/MakePdlppInstallable.pm

in Basic/Core/Core.pm

in Basic/Core/Dbg.pm

in Basic/Lvalue.pm

in GENERATED/PDL/Ops.pm

in GENERATED/PDL/Primitive.pm

in Example/Benchmark/Bench.pm

in Demos/BAD_demo.pm

in Demos/Cartography_demo.pm

in Demos/General.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 Libtmp/Filter/Linear.pm

in Libtmp/Slatec/LinPred.pm

in Libtmp/Filter/Linear.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/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/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/ScrollButtonScaler.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/CType.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/Dims.pm

in Basic/Gen/PP/PdlParObj.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.pm

in Basic/Gen/PP.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 GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in GENERATED/PDL/Transform/Proj4.pm

in 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

## Examples

- Basic/SourceFilter/example
- Example/Benchmark/Bench.xs
- Example/Benchmark/Makefile.PL
- Example/Benchmark/README.md
- Example/Benchmark/time.pl
- Example/Fit/lmfit_example.pl
- Example/InlinePdlpp/Module/Makefile.PL
- Example/InlinePdlpp/Module/t/myinlinemod.t
- Example/InlinePdlpp/inlpp.pl
- Example/InlinePdlpp/inlpp_link.pl
- Example/InlinePdlpp/inlppminimal.pl
- Example/PGPLOT/pgplot.pl
- Example/PGPLOT/std_pgplot.pl
- Example/Simplex/tsimp2.pl
- Example/Simplex/tsimp_needs_pgplot.pl
- Example/TriD/3dtest.pl
- Example/TriD/line3d.pl
- Example/TriD/old_trid_clip.pl
- Example/address-pseudonymise
- Example/doc-pp