Types::PDL

This module provides Type::Tiny compatible types for PDL.

  Types

Types which accept parameters (see "Parameters") will list them.

   "Piddle"

Allows an object blessed into the class "PDL", e.g.

  validate( [pdl], Piddle );

It accepts the following parameters:

  null
  empty
  ndims
  ndims_min
  ndims_max

   "Piddle0D"

Allows an object blessed into the class "PDL" with "ndims" = 0. It
accepts the following parameters:

  null

   "Piddle1D"

Allows an object blessed into the class "PDL" with "ndims" = 1. It
accepts the following parameters:

  null
  empty

   "Piddle2D"

Allows an object blessed into the class "PDL" with "ndims" = 2. It
accepts the following parameters:

  null
  empty

   "Piddle3D"

Allows an object blessed into the class "PDL" with "ndims" = 3. It
accepts the following parameters:

  null
  empty

  Coercions

The following coercions are provided, and may be applied via a type
object's "plus_coercions" in Type::Tiny or "plus_fallback_coercions" in
Type::Tiny methods, e.g.

  Piddle->plus_coercions( PiddleFromAny );

   "PiddleFromAny"

Uses "topdl" in PDL::Core to coerce the value into a piddle.

  Parameters

Some types take optional parameters which add additional constraints on
the object. For example, to indicate that only empty piddles are
accepted:

  validate( [pdl], Piddle[ empty => 1 ] );

The available parameters are:

   "empty"

This accepts a boolean value; if true the piddle must be empty (i.e. the
"isempty" method returns true), if false, it must not be empty.

   "null"

This accepts a boolean value; if true the piddle must be a null piddle,
if false, it must not be null.

   "ndims"

This specifies a fixed number of dimensions which the piddle must have.
Don't mix use this with "ndims_min" or "ndims_max".

   "ndims_min"

The minimum number of dimensions the piddle may have. Don't specify this
with "ndims".

   "ndims_max"

The maximum number of dimensions the piddle may have. Don't specify this
with "ndims".

INSTALLATION

This is a Perl module distribution. It should be installed with whichever
tool you use to manage your installation of Perl, e.g. any of

  cpanm .
  cpan  .
  cpanp -i .

Consult http://www.cpan.org/modules/INSTALL.html for further instruction.
Should you wish to install this module manually, the procedure is

  perl Makefile.PL
  make
  make test
  make install

COPYRIGHT AND LICENSE

This software is Copyright (c) 2017 by Smithsonian Astrophysical
Observatory.

This is free software, licensed under:

  The GNU General Public License, Version 3, June 2007
