glfs/general/prog/pdl.xml
Randy McMurchy 13242dc697 Added index tags to PDL
git-svn-id: svn://svn.linuxfromscratch.org/BLFS/trunk/BOOK@3301 af4574ff-66df-0310-9fd7-8a98e5e911e0
2005-01-17 16:55:17 +00:00

499 lines
19 KiB
XML

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../../general.ent">
%general-entities;
<!ENTITY pdl-download-http "http://prdownloads.sourceforge.net/pdl/PDL-&pdl-version;.tar.gz?download">
<!ENTITY pdl-download-ftp " ">
<!ENTITY pdl-md5sum "N/A">
<!ENTITY pdl-size "2.1 MB">
<!ENTITY pdl-buildsize "74 MB">
<!ENTITY pdl-time "2.56 SBU">
]>
<sect1 id="pdl-package" xreflabel="PDL">
<sect1info>
<othername>$LastChangedBy$</othername>
<date>$Date$</date>
</sect1info>
<?dbhtml filename="pdl.html" ?>
<title><application><acronym>PDL</acronym></application>-&pdl-version;</title>
<indexterm zone="pdl-package">
<primary sortas="a-PDL">PDL</primary></indexterm>
<sect2>
<title>Introduction to
<application><acronym>PDL</acronym></application></title>
<para><application><acronym>PDL</acronym></application> (Perl Data Language)
gives standard <application><acronym>Perl</acronym></application> the ability
to compactly store and quickly manipulate the large N-dimensional data arrays
common to scientific computing.
<application><acronym>PDL</acronym></application> turns
<application><acronym>Perl</acronym></application> into an array-oriented,
numerical language similar to such commerical packages as
<application>IDL</application> and <application>MatLab</application>. One can
write simple <application><acronym>Perl</acronym></application> expressions to
manipulate entire numerical arrays all at once.</para>
<para><application><acronym>PDL</acronym></application> provides extensive
numerical and semi-numerical functionality with support for two- and
three-dimensional visualisation as well as a variety of I/O formats. The goal
is to allow <application><acronym>PDL</acronym></application> to interact with
a variety of external numerical packages, graphics and visualisation systems.
Easy interfacing to such systems is one of the core design features of
<application><acronym>PDL</acronym></application>.</para>
<sect3><title>Package information</title>
<itemizedlist spacing='compact'>
<listitem><para>Download (HTTP):
<ulink url="&pdl-download-http;"/></para></listitem>
<listitem><para>Download (FTP):
<ulink url="&pdl-download-ftp;"/></para></listitem>
<listitem><para>Download MD5 sum: &pdl-md5sum;</para></listitem>
<listitem><para>Download size: &pdl-size;</para></listitem>
<listitem><para>Estimated disk space required:
&pdl-buildsize;</para></listitem>
<listitem><para>Estimated build time:
&pdl-time;</para></listitem></itemizedlist>
</sect3>
<sect3>
<title><application><acronym>PDL</acronym></application> dependencies</title>
<para><application><acronym>PDL</acronym></application> is a collection of
over 90 <application><acronym>Perl</acronym></application> modules. Some of
these modules require additional libraries and/or
<application><acronym>Perl</acronym></application> modules for full
functionality. Listed below are the modules which require additional software
or configuration. If you don't need a particular module's functionality, you
don't need to install its dependencies. The dependency tree for each module
is listed downward, meaning you'll need to start at the bottom of a module's
tree and work up. The dependencies are listed in the same order as they are
in the <filename>DEPENDENCIES</filename> file, found in the package source
tree.</para>
<sect4>
<title><application><acronym>PDL</acronym></application>::NiceSlice</title>
<para>The <application><acronym>PDL</acronym></application>::NiceSlice
module is used to enhance <application><acronym>PDL</acronym></application>'s
slice syntax. <quote>Slicing</quote> is a term used in the process of creating
a cross-section, or slice, of a
<application><acronym>PDL</acronym></application> object (piddle).</para>
<itemizedlist spacing='compact'><listitem><para><ulink
url="http://www.cpan.org/authors/id/P/PM/PMQS/Filter-&Filter-version;.tar.gz">
Filter-&Filter-version;</ulink></para>
</listitem></itemizedlist>
</sect4>
<sect4>
<title>Inline::Pdlpp</title>
<para>The Inline::Pdlpp module allows you to define fast <acronym>PP</acronym>
code inline in your scripts.</para>
<itemizedlist spacing='compact'><listitem><para><ulink
url="http://www.cpan.org/authors/id/I/IN/INGY/Inline-&Inline-version;.tar.gz">
Inline-&Inline-version;</ulink></para>
<itemizedlist spacing='compact'><listitem><para><ulink
url="http://www.cpan.org/authors/id/D/DC/DCONWAY/Parse-RecDescent-&Parse-RecDescent-version;.tar.gz">
Parse-RecDescent-&Parse-RecDescent-version;</ulink></para>
</listitem></itemizedlist>
</listitem></itemizedlist>
</sect4>
<sect4><title>perldl</title>
<para><command>perldl</command> is a simple shell (written in
<application><acronym>Perl</acronym></application>) which allows interactive
use of <application><acronym>PDL</acronym></application>.</para>
<itemizedlist spacing='compact'><listitem><para><ulink
url="http://www.cpan.org/authors/id/H/HA/HAYASHI/Term-ReadLine-Gnu-&Term-ReadLine-Gnu-version;.tar.gz">
Term-ReadLine-Gnu-&Term-ReadLine-Gnu-version;</ulink></para>
</listitem></itemizedlist>
</sect4>
<sect4>
<title><application><acronym>PDL</acronym></application>::Graphics::TriD</title>
<para>The <application><acronym>PDL</acronym></application>::Graphics::TriD
module implements a generic <acronym>3D</acronym> plotting interface for
<application><acronym>PDL</acronym></application>. Points, lines and surfaces
(among other objects) are supported.</para>
<itemizedlist spacing='compact'><listitem>
<para>Open<acronym>GL</acronym> (<xref linkend="xfree86"/> or
<xref linkend="xorg"/>)</para>
</listitem></itemizedlist>
</sect4>
<sect4>
<title>
<application><acronym>PDL</acronym></application>::Graphics::PGPLOT</title>
<para>The <application><acronym>PDL</acronym></application>::Graphics::PGPLOT
module is a convenience interface to the <application>PGPLOT</application>
commands, implemented using the object oriented
<application>PGPLOT</application> plotting package in the
<application><acronym>PDL</acronym></application>::Graphics::PGPLOT::Window
module.</para>
<itemizedlist spacing='compact'><listitem><para><ulink
url="http://www.cpan.org/authors/id/K/KG/KGB/PGPLOT-&pgperl-version;.tar.gz">
pgperl</ulink></para>
<itemizedlist spacing='compact'><listitem><para><ulink
url="http://www.cpan.org/authors/id/K/KG/KGB/ExtUtils-F77-&ExtUtils-F77-version;.tar.gz">
ExtUtils-F77-&ExtUtils-F77-version;</ulink></para>
<itemizedlist spacing='compact'><listitem>
<para><xref linkend="gcc"/> (Fortran compiler)</para>
</listitem></itemizedlist>
</listitem>
<listitem><para><ulink
url="http://www.astro.caltech.edu/~tjp/pgplot/">PGPLOT</ulink></para>
<itemizedlist spacing='compact'><listitem>
<para>X (<xref linkend="xfree86"/> or <xref linkend="xorg"/>),
<xref linkend="lesstif"/>,
<xref linkend="tk"/> and
<xref linkend="gcc"/> (Fortran compiler)</para>
</listitem></itemizedlist>
</listitem></itemizedlist>
</listitem></itemizedlist>
</sect4>
<sect4>
<title>
<application><acronym>PDL</acronym></application>::Graphics::PLPLOT</title>
<para>The <application><acronym>PDL</acronym></application>::Graphics::PLPLOT
module is a simple interface to the <application>PLplot</application> plotting
library.</para>
<itemizedlist spacing='compact'><listitem>
<para><ulink url="http://plplot.sourceforge.net/">PLplot</ulink></para>
<itemizedlist spacing='compact'><listitem>
<para><xref linkend="pkgconfig"/>,
X (<xref linkend="xfree86"/> or <xref linkend="xorg"/>),
<xref linkend="GTK"/>,
<xref linkend="freetype2"/>,
<ulink url="http://www.boutell.com/gd/">GD</ulink>,
<ulink url="http://www.svgalib.org/">SVGAlib</ulink>,
<xref linkend="gnome-libs"/>,
<xref linkend="j2sdk"/>,
<xref linkend="tk"/>,
<xref linkend="python"/> (with the
<ulink url="http://www.pfdubois.com/numpy/">Numerical Extension</ulink>),
<xref linkend="gcc"/> (Fortran compiler),
<ulink url="http://www.swig.org/">SWIG</ulink>,
<ulink url="http://sourceforge.net/projects/incrtcl/">iTcl</ulink></para>
</listitem></itemizedlist>
</listitem></itemizedlist>
</sect4>
<sect4>
<title><application><acronym>PDL</acronym></application>::Graphics::IIS</title>
<para>The <application><acronym>PDL</acronym></application>::Graphics::IIS
module provides an interface to any image display <quote>device</quote> which
supports the <quote>IIS protocol</quote>.</para>
<itemizedlist spacing='compact'><listitem><para><ulink
url="http://tdc-www.harvard.edu/software/saoimage.html">SAOimage</ulink></para>
<itemizedlist spacing='compact'><listitem>
<para>X (<xref linkend="xfree86"/> or <xref linkend="xorg"/>)</para>
</listitem></itemizedlist>
</listitem>
<listitem><para><ulink
url="http://iraf.noao.edu/iraf/web/projects/x11iraf/x11iraf.html">
X11 IRAF</ulink></para>
<itemizedlist spacing='compact'><listitem>
<para>X (<xref linkend="xfree86"/> or <xref linkend="xorg"/>) and
<xref linkend="tk"/></para>
</listitem></itemizedlist>
</listitem></itemizedlist>
</sect4>
<sect4>
<title>
<application><acronym>PDL</acronym></application>::Graphics::Karma</title>
<para>The <application><acronym>PDL</acronym></application>::Graphics::Karma
module is an interface to <application>Karma</application> visualisation
applications.</para>
<itemizedlist spacing='compact'><listitem><para><ulink
url="http://www.atnf.csiro.au/computing/software/karma/">Karma</ulink></para>
<itemizedlist spacing='compact'><listitem>
<para>X (<xref linkend="xfree86"/> or <xref linkend="xorg"/>)</para>
</listitem></itemizedlist>
</listitem></itemizedlist>
<para><emphasis>Note:</emphasis> You may need to modify the
<parameter>WHERE_KARMA => undef</parameter> line in the source tree
<filename>perldl.conf</filename> file to point to your installation
of <application>Karma</application></para>
</sect4>
<sect4>
<title>
<application><acronym>PDL</acronym></application>::<acronym>IO</acronym>::Pic
</title>
<para> The
<application><acronym>PDL</acronym></application>::<acronym>IO</acronym>::Pic
module implements I/O for a number of popular image formats by exploiting the
<command>xxxtopnm</command> and <command>pnmtoxxx</command> converters from
the <application>Netpbm</application> package and the <command>cjpeg</command>
and <command>djpeg</command> converters. It also contains the routine wmpeg
to write <acronym>MPEG</acronym> movies from piddles representing image
stacks.</para>
<itemizedlist spacing='compact'><listitem>
<para><ulink url="http://netpbm.sourceforge.net/">Netpbm</ulink>,
<xref linkend="libjpeg"/> and
<ulink url="ftp://mm-ftp.cs.berkeley.edu/pub/multimedia/mpeg/encode/">
mpeg_encode</ulink></para>
</listitem></itemizedlist>
</sect4>
<sect4>
<title><application><acronym>PDL</acronym></application>::Slatec</title>
<para> The <application><acronym>PDL</acronym></application>::Slatec module
serves the dual purpose of providing an interface to parts of the slatec
library and showing how to interface
<application><acronym>PDL</acronym></application> to an external library.
The module provides routines to manipulate matrices, calculate
<acronym>FFT</acronym>s, fit data using polynomials, and interpolate/integrate
data using piecewise cubic Hermite interpolation.</para>
<itemizedlist spacing='compact'><listitem><para><ulink
url="http://www.cpan.org/authors/id/K/KG/KGB/ExtUtils-F77-&ExtUtils-F77-version;.tar.gz">
ExtUtils-F77-&ExtUtils-F77-version;</ulink></para>
<itemizedlist spacing='compact'><listitem>
<para><xref linkend="gcc"/> (Fortran compiler)</para>
</listitem></itemizedlist>
</listitem></itemizedlist>
</sect4>
<sect4>
<title>
<application><acronym>PDL</acronym></application>::<application><acronym>GSL</acronym></application>
</title>
<para> The
<application><acronym>PDL</acronym></application>::<application><acronym>GSL</acronym></application>
module is an interface to the functions provided by the <acronym>Gnu</acronym>
Scientific Library.</para>
<itemizedlist><listitem>
<para><ulink url="http://www.gnu.org/software/gsl/">GSL</ulink></para>
</listitem></itemizedlist>
</sect4>
<sect4>
<title>
<application><acronym>PDL</acronym></application>::<application><acronym>FFTW</acronym></application>
</title>
<para> The
<application><acronym>PDL</acronym></application>::<application><acronym>FFTW</acronym></application>
module is a means to interface
<application><acronym>PDL</acronym></application> with the
<application><acronym>FFTW</acronym></application> library. It's similar to
the standard <acronym>FFT</acronym> routine but it's usually faster and has
support for real transforms. It works well for the types of piddles for which
the library was compiled (otherwise it must do conversions).</para>
<itemizedlist><listitem>
<para><ulink url="http://www.fftw.org/">FFTW-2.x</ulink></para>
</listitem></itemizedlist>
</sect4>
<sect4>
<title>
<application><acronym>PDL</acronym></application>::<acronym>IO</acronym>::Browser
</title>
<para> The
<application><acronym>PDL</acronym></application>::<acronym>IO</acronym>::Browser
module is a <acronym>2D</acronym> cursor terminal data browser for
piddles.</para>
<para>There is no additional software required to use the module. However,
the default is to not install the module because some platforms don't provide
a curses compatible library. To enable the module, issue the following
command:</para>
<screen><userinput><command>sed -i -e "s/WITH_IO_BROWSER => 0/WITH_IO_BROWSER => 1/" \
perldl.conf</command></userinput></screen>
</sect4>
<sect4>
<title>
<application><acronym>PDL</acronym></application>::<acronym>IO</acronym>::<acronym>NDF</acronym>
</title>
<para>The
<application><acronym>PDL</acronym></application>::<acronym>IO</acronym>::<acronym>NDF</acronym>
module adds the ability to read and write Starlink N-dimensional data files
as N-dimensional piddles.</para>
<itemizedlist><listitem><para><ulink
url="http://www.cpan.org/authors/id/A/AA/AALLAN/Astro-FITS-Header-&Astro-FITS-Header-version;.tar.gz">
Astro-FITS-Header-&Astro-FITS-Header-version;</ulink></para>
<itemizedlist spacing='compact'><listitem><para><ulink
url="http://www.cpan.org/authors/id/P/PR/PRATZLAFF/Astro-FITS-CFITSIO-&Astro-FITS-CFITSIO-version;.tar.gz">
Astro-FITS-CFITSIO-&Astro-FITS-CFITSIO-version;</ulink></para>
<itemizedlist spacing='compact'><listitem><para><ulink
url="http://heasarc.gsfc.nasa.gov/docs/software/fitsio/">CFITSIO</ulink></para>
</listitem></itemizedlist>
</listitem>
<listitem><para><ulink
url="ftp://ftp.starlink.rl.ac.uk/pub/ussc/store/starperl/starperl.tar.Z">
NDFPERL-&NDF-version;</ulink></para>
<itemizedlist spacing='compact'><listitem><para><ulink
url="ftp://ftp.starlink.rl.ac.uk/pub/ussc/store/starperl/starperl.tar.Z">
Starlink-Config-&Starlink-Config-version;</ulink></para>
<itemizedlist spacing='compact'><listitem>
<para><ulink url="http://star-www.rl.ac.uk/">Starlink IMG</ulink></para>
<itemizedlist spacing='compact'><listitem>
<para><ulink url="http://star-www.rl.ac.uk/">Starlink NDF</ulink></para>
<itemizedlist spacing='compact'><listitem>
<para><xref linkend="gcc"/> (Fortran compiler)</para>
</listitem></itemizedlist>
</listitem></itemizedlist>
</listitem></itemizedlist>
</listitem></itemizedlist>
</listitem>
<listitem><para><ulink
url="ftp://ftp.starlink.rl.ac.uk/pub/ussc/store/starperl/starperl.tar.Z">
GSDPERL-&GSD-version;</ulink></para>
<itemizedlist><listitem><para><ulink
url="ftp://ftp.starlink.rl.ac.uk/pub/ussc/store/starperl/starperl.tar.Z">
Starlink-Config-&Starlink-Config-version;</ulink></para>
<itemizedlist spacing='compact'><listitem><para><ulink
url="http://star-www.rl.ac.uk/">Starlink GSD</ulink></para>
<itemizedlist spacing='compact'><listitem>
<para><xref linkend="gcc"/> (Fortran compiler)</para>
</listitem></itemizedlist>
</listitem></itemizedlist>
</listitem></itemizedlist>
</listitem></itemizedlist>
</listitem></itemizedlist>
</sect4>
</sect3>
</sect2>
<sect2>
<title>Installation of <application><acronym>PDL</acronym></application></title>
<para>Install <application><acronym>PDL</acronym></application> (and all the
dependency <application>Perl</application> modules) by running the following
commands:</para>
<screen><userinput><command>perl Makefile.PL &amp;&amp;
make &amp;&amp;
make test</command></userinput></screen>
<para>Now, as the root user:</para>
<screen><userinput role='root'><command>make install</command></userinput></screen>
</sect2>
<sect2>
<title>Configuring <application><acronym>PDL</acronym></application></title>
<sect3 id="pdl-config"><title>Config files</title>
<para><filename>~/.perldlrc</filename> and
<filename>local.perldlrc</filename> in the current directory</para>
<indexterm zone="pdl-package pdl-config">
<primary sortas="e-AA.perldlrc">~/.perldlrc</primary></indexterm>
<indexterm zone="pdl-package pdl-config">
<primary sortas="e-local.perldlrc">local.perldlrc</primary></indexterm>
</sect3>
<sect3><title>Configuration information</title>
<para>See <ulink
url="http://pdl.sourceforge.net/PDLdocs/perldl.html#the startup file ~/.perldlrc"/>
for information about configuring <command>perldl</command> to suit your
needs.</para>
</sect3>
</sect2>
<sect2>
<title>Contents</title>
<segmentedlist>
<segtitle>Installed Programs</segtitle>
<segtitle>Installed Modules</segtitle>
<segtitle>Installed Directories</segtitle>
<seglistitem>
<seg>pdl, pdldoc, perldl and pptemplate</seg>
<seg>90+ individual <application>Perl</application> modules</seg>
<seg>/usr/lib/perl5/site_perl/&LFS-Perl-version;/i686-linux/{,auto/}PDL</seg>
</seglistitem>
</segmentedlist>
<variablelist>
<bridgehead renderas="sect3">Short Descriptions</bridgehead>
<?dbfo list-presentation="list"?>
<varlistentry id="pdl">
<term><command>pdl</command></term>
<listitem><para>is a binary program called from
<application><acronym>PDL</acronym></application> scripts which is used to
interface <command>perldl</command>.</para>
<indexterm zone="pdl-package pdl">
<primary sortas="b-pdl">pdl</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="pdldoc">
<term><command>pdldoc</command></term>
<listitem><para>is a shell interface to
<application><acronym>PDL</acronym></application> documentation.</para>
<indexterm zone="pdl-package pdldoc">
<primary sortas="b-pdldoc">pdldoc</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="perldl">
<term><command>perldl</command></term>
<listitem><para>is a simple shell (written in
<application><acronym>Perl</acronym></application>) for interactive use of
<application><acronym>PDL</acronym></application>.</para>
<indexterm zone="pdl-package perldl">
<primary sortas="b-perldl">perldl</primary></indexterm>
</listitem>
</varlistentry>
<varlistentry id="pptemplate">
<term><command>pptemplate</command></term>
<listitem><para>is a script to generate <filename>Makefile.PL</filename>
and <acronym>PP</acronym> file skeletons.</para>
<indexterm zone="pdl-package pptemplate">
<primary sortas="b-pptemplate">pptemplate</primary></indexterm>
</listitem>
</varlistentry>
</variablelist>
</sect2>
</sect1>