#include <matrix-domain.h>
This class defines matrix categories that allow us to specialize the matrix arithmetic in MatrixDomain for different matrix representations. For example, a sparse matrix may have an efficient iterator over row vectors but not over column vectors. Therefore, an algorithm that tries to iterate over column vectors will run very slowly. Hence a specialization that avoids using column vectors is used instead.