Types::PDL This module provides Type::Tiny compatible types for PDL. Types Types which accept parameters (see "Parameters") will list them. "NDArray" | "Piddle" (*deprecated*) Allows an object blessed into the class "PDL", e.g. validate( [pdl], NDarray ); It accepts the following parameters: null empty ndims ndims_min ndims_max shape type "NDArray0D" | "Piddle0D" (*deprecated*) Allows an object blessed into the class "PDL" with "ndims" = 0. It accepts the following parameters: null type "NDArray1D" | "Piddle1D" (*deprecated*) Allows an object blessed into the class "PDL" with "ndims" = 1. It accepts the following parameters: null empty shape type "NDArray2D" | "Piddle2D" (*deprecated*) Allows an object blessed into the class "PDL" with "ndims" = 2. It accepts the following parameters: null empty shape type "NDArray3D" | "Piddle3D" (*deprecated*) Allows an object blessed into the class "PDL" with "ndims" = 3. It accepts the following parameters: null empty shape type 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. NDArray->plus_coercions( NDArrayFromAny ); "NDArrayFromAny" | "PiddleFromAny" (*deprecated*) Uses "topdl" in PDL::Core to coerce the value into a PDL object. Parameters Some types take optional parameters which add additional constraints on the object. For example, to indicate that only empty PDL objects are accepted: validate( [pdl], NDArray[ empty => 1 ] ); The available parameters are: "empty" This accepts a boolean value; if true the PDL object 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 PDL object must be a null PDL object, if false, it must not be null. "ndims" This specifies a fixed number of dimensions which the PDL object must have. Don't mix use this with "ndims_min" or "ndims_max". "ndims_min" The minimum number of dimensions the PDL object may have. Don't specify this with "ndims". "ndims_max" The maximum number of dimensions the PDL object may have. Don't specify this with "ndims". "shape" The shape of the PDL object. The value is a list of specifications for dimensions, expressed either as elements in a Perl array or as comma-delimited fields in a string. The specifications are reminiscent of regular expressions. A specification is composed of an extent size followed by an optional quantifier indicating the number of dimensions it should match. Extent sizes may be 1 A non-zero positive integer representing the extent of the dimension. 2 The strings "X" or ":" indicating that any extent is accepted for that dimension Quantifiers may be * Match 0 or more times + Match 1 or more times ? Match 1 or 0 times {n} Match exactly n times {n,} Match at least n times {n,m} Match at least n but not more than m times Here are some example specifications and the shapes they might match (in the match, "X" means any extent): 2,2 => (2,2) 3,3,3 => (3,3,3) 3{3} => (3,3,3) 3{2,3} => (3,3), (3,3,3) 1,X => (1,X) 1,X+ => (1,X), (1,X,X), (1,X,X,X), ... 1,X{1,} => (1,X), (1,X,X), (1,X,X,X), ... 1,X?,3 => (1,X,3), (1,3) 1,2,X* => (1,2), (1,2,X), (1,2,X,X), ... 1,2,3*,5 => (1,2,5), (1,2,3,5), (1,2,3,3,5), ... "type" The type of the PDL object. The value may be a PDL::Type object or a string containing the name of a type (e.g., "double"). For a complete list of types, run this command: perl -MPDL::Types=mapfld,ppdefs \ -E 'say mapfld( $_ => 'ppsym' => 'ioname' ) for ppdefs' 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