4.3 Additional Remarks

The description of the functions limits the scope to the regular usage of these operations. However, since no boundary checking is performed during computation of these functions, operations and the results are interpreted to fit specific needs.

For instance, while computing the MatrixMultiply function, the dimensions of the intervening matrices do not necessarily need to be {numRows1, numCos1Rows2} for the source one matrix, {numCols1Rows2, numCols2} for the source two matrix and {numRows1, numCols2} for the destination matrix. In fact, all that is needed is that their sizes are large enough so during computation, the pointers do not exceed their memory range.

As another example, when a source matrix of dimension {numRows, numCols} is transposed, the destination matrix has dimensions {numCols, numRows}. Therefore, the operation can be computed in place only if the source matrix is square. Nevertheless, the operation can be successfully applied in place to non-square matrices; all that needs to be kept in mind is the implicit change of dimensions.

Other possibilities can be exploited from the fact that no boundary checking is performed.