/*!
* @class Matrix
*
* @headerfile <seqan/align.h>
*
* @brief A simple n-dimensional matrix type.
*
* @signature template <typename TValue[, unsigned DIMENSION]> class Matrix;
*
* @tparam TValue Type of matrix entries.
* @tparam DIMENSION Dimension of the matrix. Use 0 for n-dimensional, values
* > 0 for a matrix with <tt>DIMENSION</tt> dimensions.
* Defaults to 0.
*
* @fn Matrix::operator+
*
* @brief Sum operator for the Matrix type.
*
* @signature TMatrix Matrix::operator+(lhs, rhs);
*
* @param[in] lhs First summand.
* @param[in] rhs Second summand.
*
* @return TMatrix The resulting matrix of same type as <tt>lhs</tt> and
* <tt>rhs</tt>.
*
* @fn Matrix#resize
*
* @brief Resize the matrix and fill it with a given value or zeroes.
*
* @signature void resize(matrix[, val]);
*
* @param[in,out] matrix The Matrix to fill.
* @param[in] val The optional value to fill the matrix with.
*
* @fn Matrix#transpose
*
* @brief Tranpose a 2D Matrix.
*
* @signature TMatrix transpose(matrix);
*
* @param[in] matrix The matrix to tranpose.
*
* @return TMatrix The resulting tranposed matrix.
*/