hexowl is a lightweight and flexible programmer's calculator with user
variables and functions support. It provides a terminal-based interface
for performing arithmetic, bitwise, and boolean operations across decimal,
hexadecimal, and binary number systems.
WWW: https://github.com/mruttley/hexowl
Pcodec (or Pco) losslessly compresses and decompresses numerical sequences with
high compression ratio and moderately fast speed.
Use cases include:
- columnar data
- long-term time series data
- serving numerical data to web clients
- low-bandwidth communication
Data types: u16, u32, u64, i16, i32, i64, f16, f32, f64
Vector is a Python library for 2D and 3D spatial vectors, as well as 4D
space-time vectors. It is especially intended for performing geometric
calculations on arrays of vectors, rather than one vector at a time in a Python
for loop.
PDL::Transform::Proj4 works like PDL::Transform::Cartography, but using the proj
library in the background.
The main object here is the PDL::Transform::Proj4 object, aliased to the
t_proj() function.
This object accepts all of the standard options described below, but mainly is
there to be called with just the proj_params option defined.
When options are used, they must be used with a '+' before them when placed in
the proj_params string, but that is not required otherwise. See the SYNOPSIS
above.
Please note that unlike PROJ, all angles in these operations are in degrees.
This is correctly (as of PDL 2.094) reflected in the PDL::Transform subclass
objects.
Other than t_proj(), all of the other transforms below have been autogenerated,
and may not work properly. The main problem is determining the parameters a
projection requires from the proj library itself.
Due to the difficulties in doing this, there may be times when the proj docs
specify a parameter for a projection that won't work using the anon-hash type
specification. In that case, just throw that parameter in the proj_params
string, and everything should work fine.
The pdl2 program, also known as the Perldl2 shell, is a second generation
version of the original perldl interactive PDL shell. It attempts to be backward
compatible in usage while providing improved features, better support for Perl
syntax, and an more easily extended framework based on the Devel::REPL shell.
By default, command lines beginning with the default prompt of either pdl2 or
perldl (one of 'pdl> ', 'PDL> ', or 'perldl> ') will have the prefix string and
surrounding whitespace stripped. This allows for easy cut-and-paste from sample
PDL shell sessions or other examples into another PDL shell session.
PDL::Opt::Simplex implements the commonly used simplex optimization algorithm.
The basic idea of the algorithm is to move a "simplex" of N+1 points in the
N-dimensional search space according to certain rules. The main benefit of the
algorithm is that you do not need to calculate the derivatives of your function.
PDL::LinearAlgebra provides a convenient interface to PDL::LinearAlgebra::Real
and PDL::LinearAlgebra::Complex. Since Blas and Lapack use a column major
ordering scheme some routines here need to transpose matrices before calling
fortran routines and transpose back (see the documentation of each routine). If
you need optimized code use directly PDL::LinearAlgebra::Real and
PDL::LinearAlgebra::Complex.
PDL::IO::IDL allows you to read and write IDL(tm) data files.
Currently, only reading is implemented. Scalars, arrays, and structures are all
supported. Heap pointers, compiled code, and objects are not supported. Of those
three, only heap pointers are likely to be supported in the future.
This code was not developed by RSI, makers of IDL.
PDL::IO::GD is the "General Interface" for the PDL::IO::GD library, and is
actually several years old at this point (read: stable).
The general version just provides several image IO utility functions you can use
with ndarray variables. It's deceptively useful, however.
The PDL::IO::Dicom module enables reading 16-bit gray level Dicom images into
PDL. As Dicom is an extremely complex format, this module can unfortunately not
handle all different image types included in the DICOM standard. One common
format that is currently not supported is the Papyrus format.
PDL::Graphics::PLplot is the PDL interface to the PLplot graphics library. It
provides a familiar 'perlish' Object Oriented interface as well as access to the
low-level PLplot commands from the C-API.
PDL::Graphics::IIS provides an interface to any image display 'device' which
support the 'IIS protocol' - viz the SAOimage and Ximtool X-windows programs,
the old SunView imtool program and presumably even the original IIS CRT itself
if they aren't all in museums!
These programs should be familiar to astronomers - they are used by the common
IRAF system.
Non-astronomers may find they quite nifty for displaying 2D data.
PDL::GSL is an interface to the GNU Scientific Library. It contains the
following packages:
- PDL::GSL::CDF: PDL interface to GSL Cumulative Distribution Functions
- PDL::GSL::DIFF: PDL interface to numerical differentiation routines in GSL
- PDL::GSL::INTEG: PDL interface to numerical integration routines in GSL
- PDL::GSL::INTERP: PDL interface to Interpolation routines in GSL
- PDL::GSL::LINALG: PDL interface to linear algebra routines in GSL
- PDL::GSL::MROOT: PDL interface to multidimensional root-finding routines in
GSL
- PDL::GSL::RNG: PDL interface to RNG and randist routines in GSL
- PDL::GSL::SF: PDL interface to GSL Special Functions
- PDL::Stats::Distr: Parameter estimations and probability density functions for
distributions
PDL::Fit contains the following packages: PDL::Fit::Gaussian, PDL::Fit::LM,
PDL::Fit::Linfit and PDL::Fit::Polynomial.
PDL::Fit::Gaussian contains some custom gaussian fitting routines. These were
developed in collaboration with Alison Offer, they do a reasonably robust job
and are quite useful.
PDL::Fit::LM provides fitting functions for PDL. Currently, only
Levenberg-Marquardt fitting is implemented. Other procedures should be added as
required. For a fairly concise overview on fitting see Numerical Recipes,
chapter 15 "Modeling of data".
PDL::Fit::Linfit contains routines to perform general curve-fits to a set
(linear combination) of specified functions.
PDL::Fit::Polynomial contains routines for doing simple polynomial fits to data.
PDL::DateTime is a subclass of PDL piddle for storing date-time values (scalar
piddles, vectors, matrices or generally ND-piddles):
- its PDL type is always LongLong (64-bit signed integer)
- stored values are microseconds since 1970-01-01T00:00:00.000000Z (can be both
positive or negative)
- it is still a piddle so you can do all usual PDL arithmetic + PDL::DateTime
defines some new methods (see below)