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>>> {
58 template <
typename Mat>
61 std::enable_if_t<IsMaxPlusTruncMat<Mat>>> {
69 const_cast<Mat*
>(&x)->transpose();
71 const_cast<Mat*
>(&x)->transpose();
83 template <
typename Mat>
86 typename detail::StaticVector1<typename Mat::Row, Mat::nr_rows>;
93 template <
typename Mat>
94 struct RhoValue<Mat,
std::enable_if_t<IsMaxPlusTruncMat<Mat>>> {
99 typename detail::StaticVector1<typename Mat::Row, Mat::nr_rows>;
106 template <
typename Mat>
109 std::enable_if_t<IsMaxPlusTruncMat<Mat>>> {
115 matrix::row_basis_rows<Mat>(x, res);
123 template <
typename Mat>
126 std::enable_if_t<IsMaxPlusTruncMat<Mat>>> {
131 const_cast<Mat*
>(&x)->transpose();
133 const_cast<Mat*
>(&x)->transpose();
144 template <
typename Mat>
151#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
The type of the result.
Definition max-plus-trunc-mat.hpp:63
void operator()(result_type &res, result_type const &pt, Mat const &x) const
Stores the image of pt under the left action of p in res.
Definition max-plus-trunc-mat.hpp:66
Adapter for the value of a left action.
Definition adapters.hpp:355
typename LambdaValue< Mat >::type result_type
The type of the result.
Definition max-plus-trunc-mat.hpp:47
void operator()(result_type &res, result_type const &pt, Mat const &x) const
Stores the image of pt under the right action of p in res.
Adapter for the value of a right action.
Definition adapters.hpp:397
Adapter for lambda functions.
Definition adapters.hpp:798
typename LambdaValue< Mat >::type result_type
The type of the result.
Definition max-plus-trunc-mat.hpp:111
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:113
Adapter for the action on LambdaValue's.
Definition adapters.hpp:838
size_t operator()(Mat const &x) const
Returns the size of the row space of x.
Adapter for calculating ranks.
Definition adapters.hpp:935
typename detail::StaticVector1< typename Mat::Row, Mat::nr_rows > type
Definition max-plus-trunc-mat.hpp:98
Adapter for rho functions.
Definition adapters.hpp:817
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:129
Adapter for the action on RhoValue's.
Definition adapters.hpp:859