The MLDesigner kernel contains a set of matrices to support efficient computation with submatrices. These classes were developed specifically for the experimental multidimensional SDF (MDSDF) domain and will probably be implemented differently in a future release.

There are four submatrix classes, one for each concrete matrix class: `ComplexSubMatrix`, `FixSubMatrix`, `FloatSubMatrix`, and `IntSubMatrix`. Each of them inherits from the corresponding `PtMatrix` class. A submatrix contains a reference to a ”parent” matrix of the same type, and modifies its internal data pointers and matrix size parameters to reference a rectangular region of the parent’s data. The constructors for the submatrix classes have arguments that specify the region of the parent matrix referenced by the submatrix.

As for matrices, the following descriptions of submatrices uses the writing convention that `XXX` means `Complex`, `Fix`, `Float`, or `Int`, and `xxx` means `Complex`, `Fix`, `double`, or `int`.

Submatrix constructors
Operations
Using submatrices in primitives

Submatrices are not currently useful in general-purpose dataflow primitives. Rather, they were developed to provide an efficient means of referencing portions of a single larger matrix in the multi-dimensional synchronous dataflow (MDSDF) domain.

Submatrix "Particles"