Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

pdl::philosophy(1) [suse man page]

PHILOSOPHY(1)						User Contributed Perl Documentation					     PHILOSOPHY(1)

NAME
PDL::Philosophy -- what's behind PDL? DESCRIPTION
This is an attempt to summarize some of the common spirit between pdl developers in order to answer the question "Why PDL"? If you are a PDL developer and I haven't caught your favorite ideas about PDL, please let me know! An often-asked question is: Why not settle for some of the existing systems like Matlab or IDL or GnuPlot or whatever? Major ideas The first tenet of our philosophy is the "free software" idea: software being free has several advantages (less bugs because more people see the code, you can have the source and port it to your own working environment with you, ... and of course, that you don't need to pay anything). The second idea is a pet peeve of many: many languages like matlab are pretty well suited for their specific tasks but for a different application, you need to change to an entirely different tool and regear yourself mentally. Not to speak about doing an application that does two things at once... Because we use Perl, we have the power and ease of perl syntax, regular expressions, hash tables etc at our fingertips at all times. By extending an existing language, we start from a much healthier base than languages like matlab which have grown into existence from a very small functionality at first and expanded little by little, making things look badly planned. We stand by the Perl sayings: "simple things should be simple but complicated things should be possible" and "There is more than one way to do it" (TIMTOWTDI). The third idea is interoperability: we want to be able to use PDL to drive as many tools as possible, we can connect to OpenGL or Mesa for graphics or whatever. There isn't anything out there that's really satisfactory as a tool and can do everything we want easily. And be portable. The fourth idea is related to PDL::PP and is Tuomas's personal favorite: code should only specify as little as possible redundant info. If you find yourself writing very similar-looking code much of the time, all that code could probably be generated by a simple perl script. The PDL C preprocessor takes this to an extreme. Minor goals and purposes We want speed. Optimally, it should ultimately (e.g. with the Perl compiler) be possible to compile PDL::PP subs to C and obtain the top vectorized speeds on supercomputers. Also, we want to be able to calculate things at near top speed from inside perl, by using dataflow to avoid memory allocation and deallocation (the overhead should ultimately be only a little over one indirect function call plus couple of ifs per function in the pipe). We want handy syntax. Want to do something and cannot do it easily? Tell us about it... We want lots of goodies. A good mathematical library etc. AUTHOR
Copyright(C) 1997 Tuomas J. Lukka (lukka@fas.harvard.edu). Redistribution in the same form is allowed but reprinting requires a permission from the author. perl v5.12.1 2009-10-17 PHILOSOPHY(1)

Check Out this Related Man Page

PDL(3)							User Contributed Perl Documentation						    PDL(3)

NAME
PDL - the Perl Data Language DESCRIPTION
(For the exported PDL constructor, pdl(), see PDL::Core or pdl[2]) PDL 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. For basic information on the PDL language, see the pdl(1) (lowercase) man page. You can run PDL programs directly as perl scripts that include the PDL module (with "use PDL;"), or via an interactive shell (see the perldl(1) man page). The PDL language extension includes about a dozen perl modules that form the core of the language, plus additional modules that add further functionality. The perl module "PDL" loads all of the core modules automatically, making their functions available in the current perl namespace. See also PDL::Lite or PDL::LiteF if start-up time becomes an issue. EXPORTS: "use PDL;" exports a large number of routines into the calling namespace. If you want to avoid namespace pollution, you must instead "use PDL::Lite", and include any additional modules explicitly. NICESLICE: Note that the PDL::NiceSlice syntax is NOT automatically loaded by "use PDL;". If you want to use the extended slicing syntax in a standalone script, you must also say "use PDL::NiceSlice;". 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 not included in the Lite and LiteF start-up modules. SYNOPSIS
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::Version; use PDL::IO::Misc; use PDL::IO::FITS; use PDL::IO::Pic; use PDL::Lvalue; perl v5.12.1 2010-01-01 PDL(3)
Man Page