.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "PDL 3pm" .TH PDL 3pm "2023-06-17" "perl v5.36.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" PDL \- the Perl Data Language .SH "DESCRIPTION" .IX Header "DESCRIPTION" (For the exported \s-1PDL\s0 constructor, \fBpdl()\fR, see PDL::Core) .PP \&\s-1PDL\s0 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. .PP \&\s-1PDL\s0 is fast, comparable and often outperforming \s-1IDL\s0 and \s-1MATLAB\s0 in real world applications. \s-1PDL\s0 allows large N\-dimensional data sets such as large images, spectra, etc to be stored efficiently and manipulated quickly. .SH "VECTORIZATION" .IX Header "VECTORIZATION" For a description of the vectorization (also called \*(L"broadcasting\*(R"), see PDL::Core. .SH "INTERACTIVE SHELL" .IX Header "INTERACTIVE SHELL" The \s-1PDL\s0 package includes an interactive shell. You can learn about it, run \f(CW\*(C`perldoc perldl\*(C'\fR, or run the shell \f(CW\*(C`perldl\*(C'\fR or \f(CW\*(C`pdl2\*(C'\fR and type \&\f(CW\*(C`help\*(C'\fR. .SH "LOOKING FOR A FUNCTION?" .IX Header "LOOKING FOR A FUNCTION?" If you want to search for a function name, you should use the \s-1PDL\s0 shell along with the \*(L"help\*(R" or \*(L"apropos\*(R" command (to do a fuzzy search). For example: .PP .Vb 6 \& pdl> apropos xval \& xlinvals X axis values between endpoints (see xvals). \& xlogvals X axis values logarithmicly spaced... \& xvals Fills an ndarray with X index values... \& yvals Fills an ndarray with Y index values. See the CAVEAT for xvals. \& zvals Fills an ndarray with Z index values. See the CAVEAT for xvals. .Ve .PP To learn more about the \s-1PDL\s0 shell, see perldl or pdl2. .SH "LANGUAGE DOCUMENTATION" .IX Header "LANGUAGE DOCUMENTATION" Most \s-1PDL\s0 documentation describes the language features. The number of \&\s-1PDL\s0 pages is too great to list here. The following pages offer some guidance to help you find the documentation you need. .IP "\s-1PDL::FAQ\s0" 5 .IX Item "PDL::FAQ" Frequently asked questions about \s-1PDL.\s0 This page covers a lot of questions that do not fall neatly into any of the documentation categories. .IP "PDL::Tutorials" 5 .IX Item "PDL::Tutorials" A guide to \s-1PDL\s0's tutorial-style documentation. With topics from beginner to advanced, these pages teach you various aspects of \s-1PDL\s0 step by step. .IP "PDL::Modules" 5 .IX Item "PDL::Modules" A guide to \s-1PDL\s0'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. .IP "PDL::Course" 5 .IX Item "PDL::Course" This page compiles \s-1PDL\s0's tutorial and reference pages into a comprehensive course that takes you from a complete beginner level to expert. .IP "PDL::Index" 5 .IX Item "PDL::Index" List of all available documentation, sorted alphabetically. If you cannot find what you are looking for, try here. .SH "DATA TYPES" .IX Header "DATA TYPES" \&\s-1PDL\s0 comes with support for most native numeric data types available in C. 2.027 added support for C99 complex numbers. See PDL::Core, PDL::Ops and PDL::Math for details on usage and behaviour. .SH "MODULES" .IX Header "MODULES" \&\s-1PDL\s0 includes about a dozen perl modules that form the core of the language, plus additional modules that add further functionality. The perl module \*(L"\s-1PDL\*(R"\s0 loads all of the core modules automatically, making their functions available in the current perl namespace. Some notes: .IP "Modules loaded by default" 5 .IX Item "Modules loaded by default" See the \s-1SYNOPSIS\s0 section at the end of this document for a list of modules loaded by default. .IP "PDL::Lite and PDL::LiteF" 5 .IX Item "PDL::Lite and PDL::LiteF" These are lighter-weight alternatives to the standard \s-1PDL\s0 module. Consider using these modules if startup time becomes an issue. .IP "Exports" 5 .IX Item "Exports" \&\f(CW\*(C`use PDL;\*(C'\fR exports a large number of routines into the calling namespace. If you want to avoid namespace pollution, you must instead \&\f(CW\*(C`use PDL::Lite\*(C'\fR, and include any additional modules explicitly. .IP "PDL::NiceSlice" 5 .IX Item "PDL::NiceSlice" Note that the PDL::NiceSlice syntax is \s-1NOT\s0 automatically loaded by \f(CW\*(C`use PDL;\*(C'\fR. If you want to use the extended slicing syntax in a standalone script, you must also say \f(CW\*(C`use PDL::NiceSlice;\*(C'\fR. .IP "PDL::Math" 5 .IX Item "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 \&\fInot\fR included in the PDL::Lite and PDL::LiteF start-up modules. .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& 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::IO::Misc; \& use PDL::IO::FITS; \& use PDL::IO::Pic; \& use PDL::IO::Storable; \& use PDL::Lvalue; .Ve