Next:
PDL Year
Up:
PDL Scientific
Previous:
PDL Scientific
Index
Contents
PDL -- Year Zero
Who this book is for.
The case for a high-level approach.
The case for a free Data Language.
So why Perl?
What this book is about.
What this book is NOT about.
Conventions used in this book
A Whirlwind tour through PDL
Alright let's do something.
Whirling through the Whirlpool
Measuring the brightness of M51
Twinkle, twinkle, little star.
Getting Complex with M51
Roundoff
The Basics of PDL
Basic manipulations of piddles
What is a piddle?
Creating piddles
Elementary arithmetic.
In-place arithmetic
Using = and .=
Piddles are NOT Perl `arrays'
The benefits of piddles.
Lists and Hashes of piddles
PDL Datatypes
Type conversion and creation
Complex types
PDL projection operators
What about projecting along other dimensions?
`Threading' over extra dimensions.
Example Problem
Slicing, Dicing and Threading with PDL dimensions
Finding piddle dimensions.
The slice function -- regular subsets along axes
The basic slicing specification.
Modifying slices.
Does a slice consume memory?
Advanced slice syntax
PDL's Method notation
The dice and dice_axis functions -- irregular subsets along axes
Using mv, xchg and reorder -- transposing dimensions
Combining dimensions with clump
Splitting a dimension with splitdim
Adding dimensions with dummy
Completely general subsets of data with index, which and where
Example Problem
PDL threading and signatures
Threading
A simple example
Why bother
More examples
Why threading and why call it threading?
The general case: PDL functions and their signature
You can write your own threading routines
Matching threading dimensions
Promotion: When a piddle has fewer dimensions than required
Calling conventions and tight loops
Manipulating indices -- generalised slicing
Memory and speed implications -- Vaffines
writing your own threading aware function -- at the perl level!
A worked example
explicit threading for complex cases
Graphics with PDL
Introduction
2-dimensional graphics using PGPLOT
Introducing PDL::Graphics::PGPLOT
An overview of 2D plotting commands
Options in plot commands
Hard-copies and plot options
Setting default values for options
Setting up the plot area
Drawing lines and plotting points
Displaying images
Contour plots and vector fields
Drawing simple shapes
Text and legends
Using colour
Threading in PDL::Graphics::PGPLOT
Recording and playing back plot commands
The object oriented approach
Why use the OO interface
Usage of the OO interface
Using PGPLOT commands directly
3D Graphics with OpenGL
Introduction
Parametric Graphics
Types of 3D Graphical Objects
More than one Image
Animation
Putting it all together -- cool hacks
The VRML backend
Pixel manipulations using the Gimp
The components of Gimp
Direct pixel access
Gimp Plug-Ins
More Information
Advanced Examples of Using PDL
A PDL weather map
Drawing the map
Getting the weather data
Plotting the contour map
What happened?
Objects using PDL - defining your own data types
Implementing derived classes: The Complex module
Numerical simulations in PDL
The wave equation
Multiple dimensions and higher order
Gas dynamics
Ordinary Differential Equations
Getting PDL
PDL modules and functions index
Index
lapeyre 2006-07-23