1INTRO(1)              User Contributed Perl Documentation             INTRO(1)
2
3
4

NAME

6       PDL::Intro - Introduction to the Perl Data Language
7
8       Version 2.4
9
10       "Why is it that we entertain the belief that for every purpose odd num‐
11       bers are the most effectual?" - Pliny the Elder.
12
13       Karl Glazebrook [karlglazebrook@yahoo.com] and Craig DeForest  [defor‐
14       est@boulder.swri.edu
15

DESCRIPTION

17       Perl Data Language (PDL) is a perl extension that is designed for sci‐
18       entific and bulk numeric data processing and display.  It extends
19       perl's syntax and includes fully vectorized, multidimensional array
20       handling, plus several paths for device-independent graphics output.
21
22       "pdl" is an interactive command shell that is supplied with PDL; for
23       more information, see perldl(1).
24
25       Because PDL is a modular extension to perl, it is accessible to ordi‐
26       nary perl scripts: to write a command-line PDL script you just say "use
27       PDL;" at the top of an ordinary perl script.  There is also a special‐
28       ized interactive shell (perldl(1)) that allows you to issue PDL com‐
29       mands interactively and that includes a path-based subroutine
30       autoloader similar to those found in MatLab and IDL (which are trade‐
31       marks of MathWorks and Kodak, respectively).  The perldl shell allows
32       you to quickly manipulate and "play with" your data.  (You can also
33       invoke it with the shorter command "pdl").
34
35       The "PDL" module is a complete Object-Oriented extension to Perl
36       (although you don't have to know what an object is to use it) which
37       allows large N-dimensional data sets, such as large images, spectra,
38       time series, etc to be stored efficiently and manipulated en masse.
39       For example with the PDL module we can write the perl code "$a=$b+$c",
40       where $b and $c are large datasets (e.g. 2048x2048 images), and get the
41       result in only a fraction of a second.
42
43       PDL variables (or piddles as they have come to be known) support a wide
44       range of fundamental data types - arrays can be bytes, short integers
45       (signed or unsigned), long integers, floats or double precision floats.
46       And because of the Object-Oriented nature of PDL new customised
47       datatypes can be derived from them.
48
49       Perl is an extremely good and versatile scripting language, well suited
50       to beginners, and allows rapid prototyping.  The PDL extensions to the
51       language use Perl's object-oriented capabilities to seamlessly add
52       high-speed scientific capabilities that are themselves written in perl,
53       C and/or FORTRAN as appropriate -- so your code's "hot spots" run at
54       native compiled-language speed, while you work in the higher level perl
55       language (which itself runs faster than many other JIT-compiled or
56       interpreted languages).
57
58       External modules that have been incorporated into PDL include the com‐
59       plete Gnu Scientific Library; CFITSIO for FITS file handling; FFTW; the
60       Slatec matrix-handling package; and the PGPLOT, PLPLOT, Karma, and
61       OpenGL graphics libraries.  Ancillary packages written in PDL itself
62       include image handling, curve fitting, matrix manipulation, coordinate
63       transformation, nonlinear data resampling, graphics I/O, and extensive
64       file I/O utilities.  Because PDL programs are "just" perl with addi‐
65       tional modules loaded, the entire CPAN archive is also available to
66       your PDL scripts.
67

SYNOPSIS

69       This manual page provides a general introduction to the underlying phi‐
70       losophy of PDL. For an overview over the rest of the documentation see
71       PDL::Index. As a beginner the following documents are particulary rec‐
72       ommended:
73
74       PDL::Impatient
75           Quick summary - PDL for the impatient
76
77       PDL::FAQ
78           The Frequently Asked Questions list for PDL.
79
80       PDL::Philosophy
81           Why another matrix language?
82
83       PDL::Indexing
84           An introduction to using smart indices in PDL.
85
86       PDL::NiceSlice
87           The all important slicing of piddles.
88

AUTHOR

90       Copyright (C) Karl Glazebrook (karlglazebrook@yahoo.com), Tuomas J.
91       Lukka, (lukka@husc.harvard.edu) and Christian Soeller (c.soeller@auck‐
92       land.ac.nz) 1997-2002.
93
94       Commercial reproduction of this documentation in a different format is
95       forbidden without permission.
96
97
98
99perl v5.8.8                       2003-05-21                          INTRO(1)
Impressum