// // libsemigroups - C++ library for semigroups and monoids // Copyright (C) 2019 James D. Mitchell // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. //
// This file contains the declaration of the class KBE, which can be used as // the element_type for a FroidurePin instance. This class just wraps a // reduced word of a KnuthBendix instance.
// For technical reasons this is implemented in src/kbe-impl.hpp
#include <cstddef> // for size_t #include <string> // for string #include <utility> // for hash
#include"adapters.hpp"// for One #include"froidure-pin.hpp"// for FroidurePin #include"knuth-bendix.hpp"// for fpsemigroup::KnuthBendix #include"types.hpp"// for word_type, letter_type
namespace libsemigroups { namespace detail { // This class is used to wrap libsemigroups::internal_string_type into an // object that can be used as generators for a FroidurePin object. class KBE final { using KnuthBendix = fpsemigroup::KnuthBendix; using internal_string_type = std::string;
private:
internal_string_type _kb_word;
}; // The following are not really required but are here as a reminder that // KBE are used in BruidhinnTraits which depends on the values in the // static_asserts below.
static_assert(!std::is_trivial<KBE>::value, "KBE is trivial!!!");
static_assert(std::integral_constant<bool, (sizeof(KBE) <= 32)>::value, "KBE's sizeof exceeds 32!!");
} // namespace detail
//////////////////////////////////////////////////////////////////////// // Adapters for KBE class ////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////// // Specializations of std::hash and std::equal_to ////////////////////////////////////////////////////////////////////////
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.