18#ifndef LIBSEMIGROUPS_MAX_PLUS_TRUNC_MAT_HPP_
19#define LIBSEMIGROUPS_MAX_PLUS_TRUNC_MAT_HPP_
24#include <unordered_set>
28#include "adapters.hpp"
31#include "detail/containers.hpp"
42 template <
typename Mat>
45 std::enable_if_t<IsMaxPlusTruncMat<Mat>>> {
57 template <
typename Mat>
60 std::enable_if_t<IsMaxPlusTruncMat<Mat>>> {
67 const_cast<Mat*
>(&x)->transpose();
69 const_cast<Mat*
>(&x)->transpose();
81 template <
typename Mat>
84 typename detail::StaticVector1<typename Mat::Row, Mat::nr_rows>;
91 template <
typename Mat>
92 struct RhoValue<Mat,
std::enable_if_t<IsMaxPlusTruncMat<Mat>>> {
97 typename detail::StaticVector1<typename Mat::Row, Mat::nr_rows>;
104 template <
typename Mat>
107 std::enable_if_t<IsMaxPlusTruncMat<Mat>>> {
112 matrix::row_basis_rows<Mat>(x, res);
120 template <
typename Mat>
123 std::enable_if_t<IsMaxPlusTruncMat<Mat>>> {
128 const_cast<Mat*
>(&x)->transpose();
130 const_cast<Mat*
>(&x)->transpose();
141 template <
typename Mat>
148#include "max-plus-trunc-mat.tpp"
Base class for states for ranks.
Definition adapters.hpp:882
Namespace for everything in the libsemigroups library.
Definition action.hpp:44
typename RhoValue< Mat >::type result_type
Stores the image of pt under the left action of p in res.
Definition max-plus-trunc-mat.hpp:63
Adapter for the value of a left action.
Definition adapters.hpp:355
typename LambdaValue< Mat >::type result_type
Stores the image of pt under the right action of p in res.
Definition max-plus-trunc-mat.hpp:47
Adapter for the value of a right action.
Definition adapters.hpp:397
void operator()(result_type &res, Mat const &x) const
Modifies res to contain the row space basis of x.
Definition max-plus-trunc-mat.hpp:110
Adapter for the action on LambdaValue's.
Definition adapters.hpp:838
Adapter for lambda functions.
Definition adapters.hpp:798
size_t operator()(Mat const &x) const
Returns the size of the row space of x.
Adapter for calculating ranks.
Definition adapters.hpp:935
void operator()(result_type &res, Mat const &x) const
Modifies res to contain the column space basis of x.
Definition max-plus-trunc-mat.hpp:126
Adapter for the action on RhoValue's.
Definition adapters.hpp:859
typename detail::StaticVector1< typename Mat::Row, Mat::nr_rows > type
Definition max-plus-trunc-mat.hpp:96
Adapter for rho functions.
Definition adapters.hpp:817