libsemigroups  v3.3.0
C++ library for semigroups and monoids
Loading...
Searching...
No Matches
to-word-graph.hpp
1//
2// libsemigroups - C++ library for semigroups and monoids
3// Copyright (C) 2025 James D. Mitchell
4//
5// This program is free software: you can redistribute it and/or modify
6// it under the terms of the GNU General Public License as published by
7// the Free Software Foundation, either version 3 of the License, or
8// (at your option) any later version.
9//
10// This program is distributed in the hope that it will be useful,
11// but WITHOUT ANY WARRANTY; without even the implied warranty of
12// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13// GNU General Public License for more details.
14//
15// You should have received a copy of the GNU General Public License
16// along with this program. If not, see <http://www.gnu.org/licenses/>.
17//
18// This file contains declarations for overloads of the "to" function for
19// outputting a WordGraph object.
20
21#ifndef LIBSEMIGROUPS_TO_WORD_GRAPH_HPP_
22#define LIBSEMIGROUPS_TO_WORD_GRAPH_HPP_
23
24#include <type_traits> // for is_same_v, enable_if_t
25
26#include "forest.hpp" // for Forest
27#include "word-graph-view.hpp" // for WordGraphView
28#include "word-graph.hpp" // for WordGraph
29
30namespace libsemigroups {
48
68 template <template <typename...> typename Result>
69 auto to(Forest const& f)
70 -> std::enable_if_t<std::is_same_v<Result<int>, WordGraph<int>>,
72
101 template <template <typename...> typename Result, typename Node>
102 auto to(WordGraphView<Node> const& view)
103 -> std::enable_if_t<std::is_same_v<Result<Node>, WordGraph<Node>>,
105} // namespace libsemigroups
106
107#include "to-word-graph.tpp"
108
109#endif // LIBSEMIGROUPS_TO_WORD_GRAPH_HPP_
Class representing a collection of spanning trees of a word graph.
Definition forest.hpp:46
Class for representing word graphs.
Definition word-graph.hpp:83
non-owning view over a specified range of WordGraph nodes.
Definition word-graph-view.hpp:48
Namespace for everything in the libsemigroups library.
Definition action.hpp:44
auto to(detail::KnuthBendixImpl< Rewriter, ReductionOrder > &kb) -> std::enable_if_t< std::is_same_v< Presentation< typename Result::word_type >, Result >, Result >
No doc.