The Matrices component defines matrix containers that are optimized for parallelism and parallel versions of common matrix operations (e.g. Add, Transform, Multiply). PTL's matrix operations work on matrices of primitive types (e.g. int, long, float, double).
PTL matrices can have RowMajor or ColumnMajor layout (see the MatrixLayout enumeration in the documentation). PTL's matrix operations do not support all combinations of matrix layouts because some combinations do not lend themselves to fast and efficient parallel execution due to processor and memory architecture. Please read the class and method documentation to understand which layout combinations are supported for each operation.
The Matrix class offers very fast conversion between RowMajor and ColumnMajor layout using the Copy and PCopy methods. PTL does not do these conversions automatically when a specific layout is required for a method because even if the conversions don't add a significant overhead in speed, they add a significant overhead in memory allocation. Often, the new matrix is reused many times in subsequent operations, so we let the user control the matrix layout and conversions.