StaticMatrix static member functions

static StaticMatrix identity()

Construct the identity matrix.

Parameters:

(None)

Returns:

The identity matrix with R = C rows and columns.

Exceptions:

this function guarantees not to throw a LibsemigroupsException.

Complexity:

\(O(n ^ 2)\) where \(n\) is the template parameter R and C.

Warning

This only works when the template parameters R and C are equal (i.e. for square matrices).

static StaticMatrix make(std::initializer_list<std::initializer_list<scalar_type>> il)

Validates the arguments, constructs a matrix and validates it.

Parameters:

il – the values to be copied into the matrix.

Returns:

the constructed matrix if valid.

Throws:

LibsemigroupsException if il does not represent a matrix of the correct dimensions.

Throws:

LibsemigroupsException if the constructed matrix contains values that do not belong to the underlying semiring.

Complexity:

\(O(mn)\) where \(m\) is the number of rows and \(n\) is the number of columns of the matrix.

static StaticMatrix make(std::initializer_list<scalar_type> il)

Constructs a row and validates it.

Parameters:

il – the values to be copied into the row.

Returns:

the constructed row if valid.

Throws:

LibsemigroupsException if the constructed row contains values that do not belong to the underlying semiring.

Complexity:

\(O(n)\) where \(n\) is the number of columns of the matrix.

Warning

This constructor only works for rows, i.e. when the template parameter R is 1.