PDL::VectorValued - Utilities for vector-valued PDLs
use PDL; use PDL::VectorValued; ##--------------------------------------------------------------------- ## ... stuff happens
PDL::VectorValued provides generalizations of some elementary PDL functions to higher-order PDLs which treat vectors as "data values".
To facilitate incorporation of selected vector-valued functions into the PDL core, the PDL:PP-, XS-, C-, and perl-level functions defined by this module in the PDL::VectorValued::Utils package namespace all carry a vv_ prefix as of PDL::VectorValued v1.0.19 Prior to v1.0.19, many of these functions (e.g. cmpvec()) were defined by this module without a vv_ prefix.
PDL::VectorValued::Utils
vv_
cmpvec()
For PDL::VectorValued >= v1.0.19 and PDL > v2.079, most vector-valued functions are expected to be defined in the PDL core. For such "moving" functions FUNC, the PDL core implementations will be imported into the PDL::VectorValued namespace as both FUNC and vv_FUNC, clobbering any local implementation from the PDL::VectorValued::Utils namespace. Local implementations vv_FUNC which were previously defined and exported as FUNC or for which no binding for *PDL::FUNC exists will be bound to both *PDL::VectorValued::FUNC and *PDL::FUNC, and exported by default, for backwards-compatibility.
FUNC
PDL::VectorValued
vv_FUNC
*PDL::FUNC
*PDL::VectorValued::FUNC
Functions expected to move to the PDL core are:
New code should use FUNC() or PDL::FUNC().
FUNC()
PDL::FUNC()
Backwards-compatible code can use FUNC() or PDL::VectorValued::FUNC().
PDL::VectorValued::FUNC()
Direct use of PDL::VectorValued::Utils::vv_FUNC() is deprecated.
PDL::VectorValued::Utils::vv_FUNC()
Direct use of PDL::VectorValued::Utils::FUNC() is likely broken as of PDL::VectorValued v1.0.19.
PDL::VectorValued::Utils::FUNC()
Signature: (v(N,M); [o]vu(N,MU))
Drop-in replacement for broken uniqvec() which uses vv_qsortvec(). Otherwise copied from PDL::Primitive::primitive.pd.
See also: PDL::VectorValued::Utils::vv_qsortvec, PDL::Primitive::uniqvec.
The following functions generalize the builtin PDL functions rle() and rld() for higher-order "values".
See also: PDL::VectorValued::Utils::vv_rlevec(), PDL::VectorValued::Utils::vv_rldvec().
Signature: (data(@vdims,N); int [o]counts(N); [o]elts(@vdims,N))
Run-length encode a set of (sorted) n-dimensional values.
Generalization of rle() and vv_rlevec(): given set of values $data, generate a vector $counts with the number of occurrences of each element (where an "element" is a matrix of dimensions @vdims ocurring as a sequential run over the final dimension in $data), and a set of vectors $elts containing the elements which begin a run. Really just a wrapper for clump() and rlevec().
See also: PDL::Slices::rle, PDL::Ngrams::VectorValued::Utils::vv_rlevec.
Signature: (int counts(N); elts(@vdims,N); [o]data(@vdims,N);)
Run-length decode a set of (sorted) n-dimensional values.
Generalization of rld() and rldvec(): given a vector $counts() of the number of occurrences of each @vdims-dimensioned element, and a set $elts() of @vdims-dimensioned elements, run-length decode to $data().
Really just a wrapper for clump() and rldvec().
See also: PDL::Slices::rld, PDL::VectorValued::Utils::rldvec
Signature: vv_indx()
Returns PDL::Type subclass used for indices. If built with PDL < v2.007, this should return PDL::long, otherwise PDL::indx.
PDL::long
PDL::indx
Some additional low-level functions are provided in the PDL::VectorValued::Utils package. See PDL::VectorValued::Utils for details.
perl by Larry Wall.
Bryan Jurish <moocow@cpan.org>
PDL by Karl Glazebrook, Tuomas J. Lukka, Christian Soeller, and others.
Copyright (c) 2007-2022, Bryan Jurish. All rights reserved.
This package is free software. You may redistribute it and/or modify it under the same terms as Perl itself.
perl(1), PDL(3perl), PDL::VectorValued::Utils(3perl)
To install PDL::VectorValued, copy and paste the appropriate command in to your terminal.
cpanm
cpanm PDL::VectorValued
CPAN shell
perl -MCPAN -e shell install PDL::VectorValued
For more information on module installation, please visit the detailed CPAN module installation guide.