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
11       numbers are the most effectual?" - Pliny the Elder.
12
13       Karl Glazebrook [karlglazebrook@yahoo.com] and Craig DeForest
14       [deforest@boulder.swri.edu
15

DESCRIPTION

17       Perl Data Language (PDL) is a perl extension that is designed for
18       scientific 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
26       ordinary perl scripts: to write a command-line PDL script you just say
27       "use PDL;" at the top of an ordinary perl script.  There is also a
28       specialized interactive shell (perldl(1)) that allows you to issue PDL
29       commands interactively and that includes a path-based subroutine
30       autoloader similar to those found in MatLab and IDL (which are
31       trademarks of MathWorks and Kodak, respectively).  The perldl shell
32       allows you to quickly manipulate and "play with" your data.  (You can
33       also 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
59       complete Gnu Scientific Library; CFITSIO for FITS file handling; FFTW;
60       the 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
65       additional 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
70       philosophy of PDL. For an overview over the rest of the documentation
71       see PDL::Index. As a beginner the following documents are particulary
72       recommended:
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
92       (c.soeller@auckland.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.12.3                      2009-10-17                          INTRO(1)
Impressum