PDL::Type(3pm)

NAME
PDL::Type - Objects encapsulating datatypes for PDL transformations

SYNOPSIS
  $p = pdl('1 2 3');
  print $p->type;
  # double

DESCRIPTION
This module declares one class - of this class The type method of an ndarray returns a "PDL::Type" object. For further examples check again the type method.

Comparison and stringification are overloaded so that you can compare and print type objects, e.g.

  $nofloat = 1 if $pdl->type < float;
  die "must be double" if $type != double;

It has methods to access type information.

METHODS

  enum
Returns the number representing this datatype (see get_datatype).

  symbol
Returns one of 'PDL_SB', 'PDL_B', 'PDL_S', 'PDL_US', 'PDL_L', 'PDL_UL', 'PDL_IND', 'PDL_ULL', 'PDL_LL', 'PDL_F', 'PDL_D', 'PDL_LD', 'PDL_CF', 'PDL_CD', or 'PDL_CLD'.

  ctype
Returns the macro used to represent this type in C code (eg 'PDL_Long').

  convertfunc
Lower-case version of the "shortctype".

  ppsym
The letter used to represent this type in PP code (eg 'U' for ushort).

  realctype
The actual C type used to store this type.

  shortctype
The value returned by "ctype" without the 'PDL_' prefix.

  badvalue
The special numerical value used to represent bad values for this type. See "badvalue" in PDL::Bad for more details.

  isnan
Given a string representing a C value, will return a C expression for this type that indicates whether that value is NaN (for complex values, if either is NaN).

  isfinite
Given a string representing a C value, will return a C expression for this type that indicates whether that value is finite (for complex values, if both are finite).

  floatsuffix
The string appended to floating-point functions for this floating-point type. Returns "INVALID" if called on non-floating-point type.

  orig_badvalue
The default special numerical value used to represent bad values for this type. (You can change the value that represents bad values for each type during runtime.) See the orig_badvalue routine in PDL::Bad for more details.

  bswap
Returns the appropriate "bswap*" from PDL::IO::Misc for the size of this type, including a no-op for types of size 1. Note this means a one-line construction means you must call the return value:

  $pdl->type->bswap->($pdl);

  real
Returns whether the type is real-only (true) or can hold complex values (false).

  die "Real data only!" if !$pdl->type->real;

  unsigned
Returns whether the type can hold signed values (false) or not (true).

  integer
Returns whether the type can hold non-integer, a.k.a. floating-point, values (false) or not (true).