```{index} single: PDL; Perl module ``` # PDL ```{pperl-module-badges} PDL ``` `use PDL` boots Core, Ops, Ufunc, Math, Primitive, Slices, Basic and exports the standard PDL functions into the caller's namespace. ## Option B Architecture Every PDL object in Perl stores a `*mut c_pdl` (the C-repr struct from core_vtable) directly in PERL_MAGIC_ext on the blessed SV. This mirrors how upstream PDL does it (pdl_SetSV_PDL / pdl_SvPDLV from `pdlcore.c`). No rust_pdl::Pdl intermediary. No copy bridge. The same pointer that lives in the SV is passed directly to pdl_run_* functions. Child submodules declared here (leaf-with-children pattern, same as crate::native::p5::Peta::FFI) because PDL has both its own `P5_ENTRY` and 14 sub-namespace modules. Rust does not allow `#[path]` combined with an inline block. ## Modules - [`PDL::Bad`](PDL/Bad) — bad value (missing data) support - [`PDL::Basic`](PDL/Basic) — basic constructors and utility functions - [`PDL::Constants`](PDL/Constants) — mathematical and physical constants - [`PDL::Core`](PDL/Core) — constructors, accessors, type system, DESTROY - [`PDL::FFT`](PDL/FFT) — Fast Fourier Transform operations - [`PDL::Lite`](PDL/Lite) — minimum PDL module OO loader - [`PDL::LiteF`](PDL/LiteF) — PDL::Lite + Basic + Primitive - [`PDL::Math`](PDL/Math) — mathematical functions (sin, cos, exp, log, etc.) - [`PDL::MatrixOps`](PDL/MatrixOps) — matrix operations (det, inv, eigens, etc.) - [`PDL::Ops`](PDL/Ops) — element-wise arithmetic, comparison, and logic operations - [`PDL::Primitive`](PDL/Primitive) — fundamental operations (inner, outer, matmult, etc.) - [`PDL::Slices`](PDL/Slices) — indexing, slicing, and data rearrangement - [`PDL::Types`](PDL/Types) — PDL type system (byte, short, long, float, double, etc.) - [`PDL::Ufunc`](PDL/Ufunc) — Unary reductions and aggregations over PDL arrays. ## Functions ### Other Functions #### `type_convert_func` Shared XS function for all type constructors (byte, short, float, etc.) ```{toctree} :hidden: :maxdepth: 1 PDL/Bad PDL/Basic PDL/Constants PDL/Core PDL/FFT PDL/Lite PDL/LiteF PDL/Math PDL/MatrixOps PDL/Ops PDL/Primitive PDL/Slices PDL/Types PDL/Ufunc ```