Civil Rights
Movements, leaders, victories and the continuing fight for equality.
Explore the people, places, events, achievements, struggles and stories that shaped our journey.
Movements, leaders, victories and the continuing fight for equality.
Innovation, patents, science, technology and world-changing contributions.
Pioneers, champions, Negro Leagues, records, activism and excellence.
Meet the people whose lives, choices and achievements shaped the journey.
Black towns, communities, institutions and places where history happened.
Moments that changed communities, movements, institutions and the nation.
In 1968 Shirley Chisholm became the first Black woman elected to the United States Congress. In 1972 she launched a campaign for the Democratic presidential nomination, breaking another political barrier.
MORE →Reflects the personal views, recollections, and perspective of the author, Mike Davis.
This is a personal recollection on the Move fire on May 13, 1985
| Perl Data Language (PDL) | |
|---|---|
| Paradigm | Array |
| Developer | Karl Glazebrook, Jarle Brinchmann, Tuomas Lukka, and Christian Soeller |
| First appeared | 1996 |
| Stable release | 2.106[1] |
| OS | Cross-platform |
| License | GNU General Public License, Artistic License |
| Website | pdl |
| Influenced by | |
| APL, IDL, Perl | |
Perl Data Language (abbreviated PDL) is a set of free software array programming extensions to the Perl programming language. PDL extends the data structures built into Perl, to include large multidimensional arrays, and adds functionality to manipulate those arrays as vector objects. It also provides tools for image processing, machine learning, computer modeling of physical systems, and graphical plotting and presentation. Simple operations are automatically vectorized across complete arrays, and higher-dimensional operations (such as matrix multiplication) are supported.
PDL is a vectorized array programming language: the expression syntax is a variation on standard mathematical vector notation, so that the user can combine and operate on large arrays with simple expressions. In this respect, PDL follows in the footsteps of the APL programming language, and it has been compared to commercial languages such as MATLAB and Interactive Data Language, and to other free languages such as NumPy and Octave.[2] Unlike MATLAB and IDL, PDL allows great flexibility in indexing and vectorization: for example, if a subroutine normally operates on a 2-D matrix array, passing it a 3-D data cube will generally cause the same operation to happen to each 2-D layer of the cube.[3]
PDL borrows from Perl at least three basic types of program structure: imperative programming, functional programming, and pipeline programming forms may be combined. Subroutines may be loaded either via a built-in autoload mechanism or via the usual Perl module mechanism.

True to the glue language roots of Perl, PDL borrows from several different modules for graphics and plotting support. NetPBM provides image file I/O (though FITS is supported natively). Gnuplot, PLplot, PGPLOT, and Prima modules are supported for 2-D graphics and plotting applications, and Gnuplot and OpenGL are supported for 3-D plotting and rendering.
PDL provides facilities to read and write many open data formats, including JPEG, PNG, GIF, PPM, MPEG, FITS, NetCDF, GRIB, raw binary files, and delimited ASCII tables. PDL programmers can use the CPAN Perl I/O libraries to read and write data in hundreds of standard and niche file formats.
PDL can be used for machine learning. It includes modules that are used to perform classic k-means clustering or general and generalized linear modeling methods such as ANOVA, linear regression, PCA, and logistic regression. Examples of PDL usage for regression modelling tasks include evaluating association between education attainment and ancestry differences of parents,[4] comparison of RNA-protein interaction profiles that needs regression-based normalization[5] and analysis of spectra of galaxies.[6]
An installation of PDL usually comes with an interactive shell known as perldl, which can be used to perform simple calculations without requiring the user to create a Perl program file. A typical session of perldl would look something like the following:
perldl> $x = pdl [[1, 2], [3, 4]];
perldl> $y = pdl [[5, 6, 7],[8, 9, 0]];
perldl> $z = $x x $y;
perldl> p $z;
[
[21 24 7]
[47 54 21]
]
The commands used in the shell are Perl statements that can be used in a program with PDL module included. x is an overloaded operator for matrix multiplication, and p in the last command is a shortcut for print.
The core of PDL is written in C. Most of the functionality is written in PP, a PDL-specific metalanguage that handles the vectorization of simple C snippets and interfaces them with the Perl host language via Perl's XS compiler. Some modules are written in Fortran, with a C/PP interface layer. Many of the supplied functions are written in PDL itself. PP is available to the user to write C-language extensions to PDL. There is also an Inline module (Inline::Pdlpp) that allows PP function definitions to be inserted directly into a Perl script; the relevant code is low-level compiled and made available as a Perl subroutine.
The PDL API uses the basic Perl 5 object-oriented functionality: PDL defines a new type of Perl scalar object (eponymously called a "PDL", or "ndarray") that acts as a Perl scalar, but that contains a conventional typed array of numeric or character values. All of the standard Perl operators are overloaded so that they can be used on PDL objects transparently, and PDLs can be mixed-and-matched with normal Perl scalars. Several hundred object methods for operating on PDLs are supplied by the core modules.
Source: Wikipedia. Article content is retrieved live through the MediaWiki API.
Perl Data Language (abbreviated PDL) is a set of free software array programming extensions to the Perl programming language. PDL extends the data structures built into Perl, to include large multidimensional arrays, and adds functionality to manipulate those arrays as vector objects. It also provides tools for image processing, machine learning, computer modeling of physical systems, and graphical plotting and presentation. Simple operations are automatically vectorized across complete arrays, and higher-dimensional operations (such as matrix multiplication) are supported.
The GNU Data Language (GDL) is a free alternative to IDL (Interactive Data Language), achieving full compatibility with IDL 7 and partial compatibility with IDL 8. Together with its library routines, GDL is developed to serve as a tool for data analysis and visualization in such disciplines as astronomy, geosciences, and medical imaging. GDL is licensed under the GPL. Other open-source numerical data analysis tools similar to GDL include Julia, Jupyter Notebook, GNU Octave, NCAR Command Language (NCL), Perl Data Language (PDL), R, Scilab, SciPy, and Yorick. GDL as a language is dynamically-typed, vectorized, and has object-oriented programming capabilities. GDL library routines handle numerical calculations (e.g. FFT), data visualisation, signal/image processing, interaction with host OS, and data input/output. GDL supports several data formats, such as NetCDF, HDF (v4 & v5), GRIB, PNG, TIFF, and DICOM. Graphical output is handled by X11, PostScript, SVG, or z-buffer terminals, the last one allowing output graphics (plots) to be saved in raster graphics formats. GDL features integrated debugging facilities, such as breakpoints. GDL has a Python bridge (Python code can be called from GDL; GDL can be compiled as a Python module). GDL uses the Eigen numerical library (similar to Intel MKL) to offer high computing performance on multi-core processors. Packaged versions of GDL are available for several Linux and BSD flavours as well as macOS. The source code compiles on Microsoft Windows and other UNIX systems, including Solaris. GDL is not an official GNU package.
In computer science, array programming refers to solutions that allow the application of operations to an entire set of values at once. Such solutions are commonly used in scientific and engineering settings. Modern programming languages that support array programming (also known as vector or multidimensional languages) have been engineered specifically to generalize operations on scalars to apply transparently to vectors, matrices, and higher-dimensional arrays. These include APL, J, Fortran, MATLAB, Analytica, Octave, PL/I, R, Cilk Plus, Julia, Perl Data Language (PDL) and Raku. In these languages, an operation that operates on entire arrays can be called a vectorized operation, regardless of whether it is executed on a vector processor, which implements vector instructions. Array programming primitives concisely express broad ideas about data manipulation. The level of concision can be dramatic in certain cases: it is not uncommon to find array programming language one-liners that require several pages of object-oriented code.
Karl Glazebrook (born 1965) is a British astronomer, known for his work on galaxy formation, for playing a key role in developing the "nod and shuffle" technique for doing redshift surveys with large telescopes, and for originating the Perl Data Language (PDL). Glazebrook was born in 1965 in the United Kingdom, and educated at the University of Cambridge and the University of Edinburgh (PhD 1992). He held post-doctoral appointments at the University of Durham and University of Cambridge before moving to the Anglo-Australian Observatory, where he played a central role in supporting the 2dF galaxy survey as its instrument scientist. He moved to Johns Hopkins University in 2000 where he was Professor of Astronomy until 2006, at which time he became Professor of Astronomy at Swinburne University of Technology in Melbourne, Australia. His work has been cited over 40,000 times in the literature of astronomy. Glazebrook also developed the open-source Perl Data Language, a perl-based alternative to the commercial IDL. Glazebrook was one of the leaders of the Gemini Deep Deep Survey (GDDS) which measured the evolution of galaxies using Gemini Observatory and the Hubble and Spitzer Space Telescopes. The project, along with a number of other studies, determined in 2004 that massive galaxies formed surprisingly early in the distant Universe, explaining why a lot of them appear so remarkably old. As a whimsical side-project Glazebrook also determined that the bulk-averaged color of the Universe is cosmic latte. Both pieces of work received wide publicity in the international press. The bulk-averaged color earned some additional international publicity because a software bug had initially suggested a pale turquoise instead of the bland beige. He is also well known in the astronomical community for his pioneering work in developing the baryon oscillation technique to use the distribution of galaxies as a probe of dark energy. After his move to Australia he played a leading role in the WiggleZ Dark Energy Survey between 2006 and 2011.
Before the 1921 destruction of Tulsa’s Greenwood District, Black residents had created a remarkable center of business and community life. The district included stores, professional offices, entertainment venues and homes owned by Black citizens. Understanding Greenwood means learning what was built—not only what was burned.
MORE →Joe Louis.