NAME¶
PDL - the Perl Data Language
DESCRIPTION¶
(For the exported PDL constructor,
pdl(), see PDL::Core)
PDL is the Perl Data Language, a perl extension that is designed for scientific
and bulk numeric data processing and display. It extends perl's syntax and
includes fully vectorized, multidimensional array handling, plus several paths
for device-independent graphics output.
PDL is fast, comparable and often outperforming IDL and MATLAB in real world
applications. PDL allows large N-dimensional data sets such as large images,
spectra, etc to be stored efficiently and manipulated quickly.
VECTORIZATION¶
For a description of the vectorization (also called "threading"), see
PDL::Core.
INTERACTIVE SHELL¶
The PDL package includes an interactive shell. You can learn about it, run
"perldoc perldl", or run the shell "perldl" or
"pdl2" and type "help".
LOOKING FOR A FUNCTION?¶
If you want to search for a function name, you should use the PDL shell along
with the "help" or "apropos" command (to do a fuzzy
search). For example:
pdl> apropos xval
xlinvals X axis values between endpoints (see xvals).
xlogvals X axis values logarithmicly spaced...
xvals Fills a piddle with X index values...
yvals Fills a piddle with Y index values. See the CAVEAT for xvals.
zvals Fills a piddle with Z index values. See the CAVEAT for xvals.
To learn more about the PDL shell, see perldl or pdl2.
LANGUAGE DOCUMENTATION¶
Most PDL documentation describes the language features. The number of PDL pages
is too great to list here. The following pages offer some guidance to help you
find the documentation you need.
- PDL::FAQ
- Frequently asked questions about PDL. This page covers a lot of questions
that do not fall neatly into any of the documentation categories.
- PDL::Tutorials
- A guide to PDL's tutorial-style documentation. With topics from beginner
to advanced, these pages teach you various aspects of PDL step by
step.
- PDL::Modules
- A guide to PDL's module reference. Modules are organized by level
(foundation to advanced) and by category (graphics, numerical methods,
etc) to help you find the module you need as quickly as possible.
- PDL::Course
- This page compiles PDL's tutorial and reference pages into a comprehensive
course that takes you from a complete beginner level to expert.
- PDL::Index
- List of all available documentation, sorted alphabetically. If you cannot
find what you are looking for, try here.
MODULES¶
PDL includes about a dozen perl modules that form the core of the language, plus
additional modules that add further functionality. The perl module
"PDL" loads all of the core modules automatically, making their
functions available in the current perl namespace. Some notes:
- SYNOPSIS
- See the SYNOPSIS section at the end of this document for a list of modules
loaded by default.
- PDL::Lite and PDL::LiteF
- These are lighter-weight alternatives to the standard PDL module. Consider
using these modules if startup time becomes an issue.
- Exports
- "use PDL;" exports a large number of routines into the calling
namespace. If you want to avoid namespace pollution, you must instead
"use PDL::Lite", and include any additional modules
explicitly.
- PDL::NiceSlice
- Note that the PDL::NiceSlice syntax is NOT automatically loaded by
"use PDL;". If you want to use the extended slicing syntax in a
standalone script, you must also say "use PDL::NiceSlice;".
- PDL::Math
- The PDL::Math module has been added to the list of modules for versions
later than 2.3.1. Note that PDL::Math is still not included in the
PDL::Lite and PDL::LiteF start-up modules.
SYNOPSIS¶
use PDL; # Is equivalent to the following:
use PDL::Core;
use PDL::Ops;
use PDL::Primitive;
use PDL::Ufunc;
use PDL::Basic;
use PDL::Slices;
use PDL::Bad;
use PDL::MatrixOps;
use PDL::Math;
use PDL::Version;
use PDL::IO::Misc;
use PDL::IO::FITS;
use PDL::IO::Pic;
use PDL::Lvalue;