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.