Perl Data Language
Scientific computing with Perl
Recent News
- 2024-11-29
- Announcing the 2024 Advent calendar!
- 2024-11-02
- Announcing the release of PDL 2.094 to CPAN:
- Transform::Proj4 now thread-safe, has correct units
- IO::HDF updated to recent HDF4 API
- IO::FlexRaw::mapflex now doesn't allocate memory
- incorporate PDL::Parallel::threads and Test::PDL
- 2024-10-07
- Demos for
PDL::Transform::Proj4 and
PDL::Opt::Simplex have been added to the site.
- 2024-09-30
- PDL::Minuit 0.001 has been released to CPAN, marking its independence; it will not feature in the next release of main PDL.
- 2024-09-30
- PDL::Graphics::IIS 0.001 has been released to CPAN, marking its independence; it will not feature in the next release of main PDL.
- 2024-09-29
- Announcing the release of PDL 2.093 to CPAN:
- fix minmax with NaNs
- enhance Transform::Cartography::clean_lines
- IO::Pic use IO::GD for JPEG if available, so Windows can read them
- Primitive::matmult can handle bad values
- 2024-09-19
- Gimp-Perl 2.38 has been released to CPAN.
- 2024-09-18
-
PDL::Graphics::Gnuplot 2.028 has been released to CPAN:
- handle Gnuplot 6
- fix various array-ref handling bugs
- methods to generate Gnuplot code not just execute
- 2024-09-17
-
PGPLOT 2.33 has been released to CPAN:
- incorporate PGPLOT-related PDL graphics modules
- 2024-09-15
- PDL::DSP::Windows 0.102 has been released to CPAN.
- 2024-09-07
- Announcing the release
of PDL 2.092 to CPAN:
- fix badvalue propagation
- core support for PDL::Parallel::threads
- 2024-09-06
- PDL::Parallel::threads 0.06 has been released to CPAN.
- 2024-09-06
-
PDL::LinearAlgebra 0.40 has been released to CPAN:
- better LAPACK detection on Linux, Strawberry Perl, and MacOS
- fix mtoeplitz
$real x $native_complex
fixed
- 2024-04-25
- PDL::Opt::NonLinear 0.09 has been released to CPAN.
- 2024-04-22
-
PDL::Graphics::Prima 0.21 has been released to CPAN:
- 2024-04-22
-
PDL::Graphics::PLplot 0.84 has been released to CPAN:
- add perldl demo
- make memory allocation routines error-check
- 2024-04-22
- PDL::Graphics::Simple 1.011 has been released to CPAN.
- 2024-04-15
- New location for SciPDL, a drag-and-drop PDL installer for MacOS 10.9+
- 2024-03-26
- PDL::Opt::GLPK 0.07 has been released to CPAN.
- 2024-02-24
- PDL::FFTW3 0.19 has been released to CPAN.
- 2023-03-26
- PDL::OpenCV 0.001 has been released to CPAN.
- 2023-01-12
-
PDL::Transform::Color 1.007 has been released to CPAN:
- 2023-01-12
-
PDL::Graphics::ColorSpace 0.203 has been released to CPAN:
- add rgb_to_lab, lab_to_rgb, rgb_{to,from}_linear
- add lsRGB colour space
- operations can work inplace
- 2022-04-27
- PDL::NetCDF 4.24 has been released to CPAN.
- 2021-02-16
- ExtUtils::F77 1.26 has been released to CPAN.
- 2017-02-25
- Announcing the second release of OpenGL::Modern 0.04 to CPAN.
The complete version history of PDL is available in MetaCPAN.
PDL ("Perl Data Language") gives standard Perl the ability to
compactly store and speedily manipulate the large
N-dimensional data arrays which are the bread and butter of
scientific computing.
PDL turns Perl into a free, array-oriented, numerical language similar
to (but, we believe, better than) such commercial packages as IDL and MatLab.
One can write simple perl expressions to manipulate entire numerical arrays
all at once. A simple interactive shell, perldl,
is provided for use from the command line along with the PDL module
for use in Perl scripts.
Integration with other libraries
To name but a few, there are PDL bindings to:
For more, select the "External Libs" link in the left-hand sidebar.
High performance
A recent performance comparison showed PDL
highly competitive with (faster than) NumPy
even with Numba, for numerical tasks. This
is in part due to the automatic "out of the box" POSIX threading in
PDL. As another mechanism for parallel computing, there is also
PDL::Parallel::threads,
which works with Perl's "ithreads" implementation for more explicit
parallelism. The LAPACK binding (see above) is yet another way to achieve
fast performance.
For fast graphics performance, there is the OpenGL binding (see above).
Modern development
PDL is developed using git, on GitHub. Every commit
gets continuous integration (CI) testing against
over
50 downstream modules, and on Windows, MacOS, Linux, and FreeBSD.
Widely available
As well as being installable from CPAN, PDL is packaged by Debian
and most other free OSes, and a special edition of
Strawberry Perl.
For more, select the "Get PDL" link in the top dashboard.