# PDL::Primitive
📦 stdpdl
## Functions ### Other Functions #### [`inner`](Primitive/inner.md) `inner($a, $b)` – inner (dot) product along the first dimension. #### `matmult` `matmult($a, $b [, $c])` — matrix multiplication. #### `append` `append($a, $b)` — concatenate two PDLs along dimension 0. Handles null PDL inputs: append(null, null) → empty, append(null, x) → x, etc. #### `interpol` `interpol($xi, $x, $y)` — linear interpolation. For each query point in `$xi`, find the corresponding y-value in the reference dataset (`$x`, `$y`). Mirrors upstream `PDL::Primitive::interpol` (`Primitive.pd:3010`) which delegates to `interpolate($xi, $x, $y, $yi)`. #### `indexND` `indexND($data, $indices)` — index into data using N-D coordinate columns. #### `axisvalues` `axisvalues($pdl)` — fill PDL with index values along dim 0. Mirrors `PDL::Primitive` pp_def »axisvalues« Code => »loop(n) %{ `$a`() = n; %}« Supports inplace: `axisvalues($pdl->inplace)` modifies `$pdl` directly. #### [`indadd`](Primitive/indadd.md) `indadd($input, $ind, $sum)` – broadcasting index-add. #### [`uniqind`](Primitive/uniqind.md) `uniqind($pdl)` — return flat indices of unique elements. Mirrors `PDL::uniqind` from `Primitive.pm:727-756`. #### [`fibonacci`](Primitive/fibonacci.md) `fibonacci($n_or_pdl)` – Fibonacci sequence constructor.