DynamicMatrix static member functions

static DynamicMatrix identity(size_t n)

Construct the \(n \times n\) identity matrix.

Parameters:

n – the dimension

Returns:

The \(n \times n\) identity matrix.

Exceptions:

This function guarantees not to throw a LibsemigroupsException.

Complexity:

\(O(n ^ 2)\).

static DynamicMatrix make(Semiring const *semiring, std::initializer_list<std::initializer_list<scalar_type>> il)

Validates the arguments, constructs a matrix and validates it.

Parameters:
  • semiring – a pointer to const semiring object

  • 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 DynamicMatrix make(Semiring const *semiring, std::initializer_list<scalar_type> il)

Constructs a row and validates it.

Parameters:
  • semiring – a pointer to const semiring object

  • 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.