Overview
plemtx.h
contains classes and functions for populating and manipulating
two-dimensional matrices of data.

All the matrix handling operations within the XLL+ core library
expect matrix data in a shape conforming to the interface defined by
imtx<T> .
If you already have matrix class, and you wish to continue using it in your add-in code,
then you can easily build an adapter class to make it work with the XLL+
core functions. See Adapter classes for imtx<T>
for instructions on building an adapter class.

Classes
The following classes are contained in plemtx.h :

Class
Purpose
imtx<T>
Abstract interface; defines all
methods required by matrix objects.
imtx_impl<T>
Default implementation class; returns false
to all optional operations.
mtx_ptrs<T>
Implementation class;
stores data in an array of pointers.
mtx_flat<T>
Implementation class;
stores data in a single continuous array.
mtx_ptrreader<M>
Translation class;
reads data from any matrix into an array of pointers.
mtx_ptrwriter<M>
Translation class;
writes data to any matrix from an array of pointers.
mtx_flatreader<M>
Translation class;
reads data from any matrix into a continous array of items.
mtx_flatwriter<M>
Translation class;
writes data to any matrix from a continous array of items.

Global functions
The following global functions make use of imtx<T> and its
associated classes:

Function
Purpose
ptrreader<M>
Constructor function,
which creates a mtx_ptrreader object for a given matrix.
ptrwriter<M>
Constructor function,
which creates a mtx_ptrwriter object for a given matrix.
flatreader<M>
Constructor function,
which creates a mtx_flatreader object for a given matrix.
flatwriter<M>
Constructor function,
which creates a mtx_flatwriter object for a given matrix.
copy_offset<M, N>
Generic copy function,
for transferring data between matrices, including matrices of different
sizes and/or storage strategies.
mtx_copy<M, N>
Generic copy function,
for transferring data between equal-sized matrices, including matrices with different
storage strategies.
mtx_flatten<M, V>
Generic copy function,
for transferring data between a matrix and a std::vector<T>.
mtx_copy_transpose<M, N>
Generic copy function,
for transposing data between equivalent-sized matrices, including matrices with different
storage strategies.
mtx_transpose<M>
Generic transformation function,
for transposing data between rows and columns in a single matrix.

See Also
imtx<T> interface | Adapter classes for imtx<T>