libsemigroups
Classes | Typedefs | Functions
libsemigroups Namespace Reference

Namespace for everything in the libsemigroups library. More...

Classes

class  Bipartition
 Class for bipartitions. More...
 
class  Blocks
 Class for signed partitions of the set \(\{0, \ldots, n - 1\}\). More...
 
class  BooleanMat
 Matrices over the boolean semiring. More...
 
class  BooleanSemiring
 The usual Boolean semiring. More...
 
class  Congruence
 Class for congruence on a semigroup or fintely presented semigroup. More...
 
class  Element
 Abstract base class for semigroup elements. More...
 
class  ElementWithVectorData
 Abstract base class for elements using a vector to store their defining data. More...
 
class  ElementWithVectorDataDefaultHash
 Abstract base class for elements using a vector to store their defining data and the default hash function for that underlying vector. More...
 
class  Integers
 The usual ring of integers. More...
 
class  MatrixOverSemiring
 Matrices over a semiring. More...
 
class  MatrixOverSemiringBase
 Matrices over a semiring. More...
 
class  MaxPlusSemiring
 The max-plus semiring consists of the integers together with negative infinity with operations max and plus. Negative infinity is represented by Semiring<int64_t>::MINUS_INFTY. More...
 
class  MinPlusSemiring
 The min-plus semiring consists of the integers together with infinity with operations min and plus. Infinity is represented by Semiring<int64_t>::INFTY. More...
 
class  NaturalSemiring
 This class implements the semiring consisting of \(\{0, 1, ..., t, t + 1, ..., t + p - 1\}\) for some threshold \(t\) and period \(p\) with operations addition and multiplication modulo the congruence \(t = t + p\). More...
 
class  PartialPerm
 Template class for partial permutations. More...
 
class  PartialTransformation
 Abstract class for partial transformations. More...
 
class  Partition
 Class for partitions of a set used by Congruence::nontrivial_classes. More...
 
class  PBR
 Class for partitioned binary relations (PBR). More...
 
class  Permutation
 Template class for permutations. More...
 
class  ProjectiveMaxPlusMatrix
 Class for projective max-plus matrices. More...
 
class  ReductionOrdering
 This class provides a call operator which can be used to compare libsemigroups::rws_word_t. More...
 
class  RWS
 This class is used to represent a string rewriting system defining a finitely presented monoid or semigroup. More...
 
class  RWSE
 Subclass of Element that wraps an libsemigroups::rws_word_t. More...
 
class  Semigroup
 Class for semigroups generated by instances of Element. More...
 
class  Semiring
 This class its subclasses provide very basic functionality for creating semirings. More...
 
class  SemiringWithThreshold
 This abstract class provides common methods for its subclasses TropicalMaxPlusSemiring, TropicalMinPlusSemiring, and NaturalSemiring. More...
 
class  SHORTLEX
 This class implements the shortlex reduction ordering derived from an ordering on libsemigroups::rws_letter_t's. More...
 
class  Transformation
 Template class for transformations. More...
 
class  TropicalMaxPlusSemiring
 The tropical max-plus semiring consists of the integers \(\{0, \ldots , t\}\) for some value \(t\) (called the threshold of the semiring) and \(-\infty\). Negative infinity is represented by Semiring<int64_t>::MINUS_INFTY. More...
 
class  TropicalMinPlusSemiring
 The tropical min-plus semiring consists of the integers \(\{0, \ldots , t\}\) for some value \(t\) (called the threshold of the semiring) and \(\infty\). Infinity is represented by Semiring<int64_t>::INFTY. More...
 

Typedefs

typedef Semigroup::cayley_graph_t cayley_graph_t
 This is just for backwards compatibility and should disappear at some point. More...
 
typedef size_t letter_t
 Type for the index of a generator of a semigroup. More...
 
typedef std::pair< word_t, word_trelation_t
 Type for a pair of word_t (a relation) of a semigroup. More...
 
typedef std::vector< letter_tword_t
 Type for a word over the generators of a semigroup. More...
 

Functions

std::ostream & operator<< (std::ostream &os, RWS const &rws)
 This method allows a RWS object to be left shifted into a std::ostream, such as std::cout. The currently active rules of the system are represented in the output. More...
 

Detailed Description

Namespace for everything in the libsemigroups library.

Typedef Documentation

§ cayley_graph_t

This is just for backwards compatibility and should disappear at some point.

§ letter_t

typedef size_t libsemigroups::letter_t

Type for the index of a generator of a semigroup.

§ relation_t

Type for a pair of word_t (a relation) of a semigroup.

§ word_t

typedef std::vector<letter_t> libsemigroups::word_t

Type for a word over the generators of a semigroup.

Function Documentation

§ operator<<()

std::ostream& libsemigroups::operator<< ( std::ostream &  os,
RWS const &  rws 
)

This method allows a RWS object to be left shifted into a std::ostream, such as std::cout. The currently active rules of the system are represented in the output.