|
NAMETypes::PDL - PDL types using Type::Tiny VERSIONversion 0.04 SYNOPSISuse Types::PDL -types; use Type::Params qw[ validate ]; use PDL; validate( [ pdl ], NDArray ); DESCRIPTIONThis module provides Type::Tiny compatible types for PDL. TypesTypes 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 CoercionsThe 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. ParametersSome 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
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'
SUPPORTBugsPlease report any bugs or feature requests to bug-types-pdl@rt.cpan.org or through the web interface at: https://rt.cpan.org/Public/Dist/Display.html?Name=Types-PDL SourceSource is available at https://gitlab.com/djerius/types-pdl and may be cloned from https://gitlab.com/djerius/types-pdl.git SEE ALSOPlease see those modules/websites for more information related to this module.
AUTHORDiab Jerius <djerius@cpan.org> COPYRIGHT AND LICENSEThis software is Copyright (c) 2017 by Smithsonian Astrophysical Observatory. This is free software, licensed under: The GNU General Public License, Version 3, June 2007
|