Member functions

inline PPerm libsemigroups::PPerm::inverse() const

Returns the inverse.

This function returns a newly constructed inverse of this.

Parameters

(None)

Complexity

Linear in degree()

Throws

(None) – This function guarantees not to throw a LibsemigroupsException.

Returns

A value of type PPerm.

inline void libsemigroups::PPerm::inverse(PPerm &that) const

Replace contents of a partial perm with the inverse of another.

This function inverts that into this.

Complexity

Linear in degree()

Parameters

that – the partial perm to invert.

Throws

(None) – This function guarantees not to throw a LibsemigroupsException.

Returns

(None)

inline PPerm libsemigroups::PPerm::left_one() const

Returns the left one of this.

This function returns a newly constructed partial perm with degree equal to M that fixes every value in the domain of this, and is UNDEFINED on any other values.

Parameters

(None)

Complexity

Linear in degree()

Throws

(None) – This function guarantees not to throw a LibsemigroupsException.

Returns

A value of type PPerm.

inline void libsemigroups::PPerm::product_inplace(PPerm const &x, PPerm const &y)

Multiply two partial perms and store the product in this.

Replaces the contents of this by the product of x and y.

Complexity

Linear in degree().

Warning

No checks are made on whether or not the parameters are compatible. If x and y have different degrees, then bad things will happen.

Parameters
  • x – a partial perm.

  • y – a partial perm.

Throws

(None) – This function guarantees not to throw a LibsemigroupsException.

Returns

(None)

inline PPerm libsemigroups::PPerm::right_one() const

Returns the right one of this.

This function returns a newly constructed partial perm with degree equal to M that fixes every value in the range of this, and is UNDEFINED on any other values.

Parameters

(None)

Complexity

Linear in degree()

Throws

(None) – This function guarantees not to throw a LibsemigroupsException.

Returns

A value of type PPerm.