libsemigroups
|
Class for projective max-plus matrices. More...
#include <elements.h>
Public Member Functions | |
ProjectiveMaxPlusMatrix (std::vector< int64_t > *matrix, Semiring< int64_t > const *semiring) | |
A constructor. More... | |
ProjectiveMaxPlusMatrix (std::vector< std::vector< int64_t >> const &matrix, Semiring< int64_t > const *semiring) | |
A constructor. More... | |
![]() | |
MatrixOverSemiringBase (std::vector< int64_t > *matrix, Semiring< int64_t > const *semiring) | |
A constructor. More... | |
MatrixOverSemiringBase (std::vector< std::vector< int64_t >> const &matrix, Semiring< int64_t > const *semiring) | |
A constructor. More... | |
size_t | complexity () const override |
Returns the approximate time complexity of multiplying two matrices. More... | |
size_t | degree () const override |
Returns the dimension of the matrix. More... | |
Element * | identity () const override |
Returns the identity matrix with dimension of this . More... | |
Element * | really_copy (size_t increase_deg_by=0) const override |
Returns a pointer to a copy of this . More... | |
void | redefine (Element const *x, Element const *y) override |
Multiply x and y and stores the result in this . More... | |
Semiring< int64_t > const * | semiring () const |
Returns a pointer to the Semiring over which the matrix is defined. More... | |
![]() | |
ElementWithVectorData () | |
A constructor. More... | |
ElementWithVectorData (std::vector< int64_t > *vector) | |
A constructor. More... | |
ElementWithVectorData (std::vector< int64_t > const &vector) | |
A constructor. More... | |
int64_t | at (size_t pos) const |
Returns the pos entry in the vector containing the defining data. More... | |
std::vector< int64_t >::iterator | begin () const |
Returns an iterator. More... | |
std::vector< int64_t >::iterator | cbegin () const |
Returns a const iterator. More... | |
std::vector< int64_t >::iterator | cend () const |
Returns a const iterator. More... | |
void | copy (Element const *x) override |
Copy another Element into this . More... | |
std::vector< int64_t >::iterator | end () const |
Returns an iterator. More... | |
bool | operator< (Element const &that) const override |
Returns true if this is less than that . More... | |
bool | operator== (Element const &that) const override |
Returns true if this equals that . More... | |
int64_t | operator[] (size_t pos) const |
Returns the pos entry in the vector containing the defining data. More... | |
void | really_delete () override |
Deletes the defining data of an ElementWithVectorData. More... | |
void | swap (Element *x) override |
Swap another Element with this . More... | |
![]() | |
Element (elm_t type=Element::elm_t::NOT_RWSE) | |
A constructor. More... | |
virtual | ~Element () |
A default destructor. More... | |
elm_t | get_type () const |
Returns the type libsemigroups::Element::elm_t of an Element object. More... | |
size_t | hash_value () const |
Return the hash value of an Element. More... | |
virtual void | redefine (Element const *x, Element const *y, size_t const &thread_id) |
Multiplies x and y and stores the result in this . More... | |
Friends | |
class | ElementWithVectorData< int64_t, ProjectiveMaxPlusMatrix > |
Additional Inherited Members | |
![]() | |
enum | elm_t { RWSE = 0, NOT_RWSE = 1 } |
This enum contains some different types of Element. More... | |
![]() | |
MatrixOverSemiringBase (std::vector< int64_t > *matrix) | |
Constructs a MatrixOverSemiringBase with whose underlying semiring is not defined. The underlying semiring must be set by any class deriving from this one. More... | |
![]() | |
void | cache_hash_value () const override |
This method implements the default hash function for an ElementWithVectorData, which uses ElementWithVectorData::vector_hash. Derive from this class if you are defining a class derived from ElementWithVectorData and there is a specialization of std::hash for the template parameter TValueType , and you do not want to define a hash function explicitly in your derived class. More... | |
![]() | |
void | reset_hash_value () const |
Reset the cached value used by Element::hash_value. More... | |
![]() | |
static size_t | vector_hash (std::vector< T > const *vec) |
Returns a hash value for a vector provided there is a specialization of std::hash for the template type T . More... | |
![]() | |
std::vector< int64_t > * | _vector |
The vector containing the defining data of this . More... | |
![]() | |
static size_t const | UNDEFINED = std::numeric_limits<size_t>::max() |
UNDEFINED value. More... | |
Class for projective max-plus matrices.
These matrices belong to the quotient of the monoid of all max-plus matrices by the congruence where two matrices are related if they differ by a scalar multiple.
Matrices in this class are modified when constructed to be in a normal form which is obtained by subtracting the maximum finite entry in the matrix from the every finite entry.
|
inline |
A constructor.
See MatrixOverSemiring::MatrixOverSemiring for details about this method.
The parameter matrix
is converted into its normal form when when the object is constructed.
|
inline |
A constructor.
See MatrixOverSemiring::MatrixOverSemiring for details about this method.
The copy of the parameter matrix
in the object constructed is converted into its normal form when the object is constructed.