An example in this module is a N-Dim convolution algorithm I made up one day - it works but the boundary condtions are a bit funny.
use PDL::ImageND;
Signature: (a(m); b(n); int adims(p); int bdims(q); [o]c(m))
$new
= convolve $a, $kernel
Convolve an array with a kernel, both of which are N-dimensional.
Note because of the algorithm used (writing N-dim routines is not easy on the brain!) the boundary conditions are a bit strange. They wrap, but up to the NEXT row/column/cube-slice/etc. If this is a problem consider using zero-padding or something.