1.. Copyright (c) 2019, J. D. Mitchell 2 3 Distributed under the terms of the GPL license version 3. 4 5 The full license is in the file LICENSE, distributed with this software. 6 7.. _Adapters: 8 9Adapters 10======== 11 12Declared in ``adapters.hpp``. 13 14This file contains class templates for adapting a user-defined type for use 15with the algorithms in ``libsemigroups``. There are explicit implementations for 16relevant element types from ``libsemigroups`` and ``HPCombi``, details of which 17can be found elsewhere in this documentation. 18 19No default implementation 20~~~~~~~~~~~~~~~~~~~~~~~~~ 21 22The following adapters have no default implementation for arbitrary types to 23avoid violating the `principle of least astonishment 24<https://en.wikipedia.org/wiki/Principle_of_least_astonishment>`_ 25 26.. toctree:: 27 :maxdepth: 1 28 29 _generated/libsemigroups__complexity.rst 30 _generated/libsemigroups__degree.rst 31 _generated/libsemigroups__imageleftaction.rst 32 _generated/libsemigroups__imagerightaction.rst 33 _generated/libsemigroups__increasedegree.rst 34 _generated/libsemigroups__inverse.rst 35 _generated/libsemigroups__one.rst 36 _generated/libsemigroups__product.rst 37 38Default implementation 39~~~~~~~~~~~~~~~~~~~~~~ 40 41The following adapters do have a default implementation for arbitrary types: 42 43.. The following are not in the yml setup because JDM couldn't figure out how 44 to generate the rst page for EqualTo::operator(). 45 46.. toctree:: 47 :maxdepth: 1 48 49 api/equalto.rst 50 api/hash.rst 51 api/less.rst 52 api/ontuples.rst 53 api/onsets.rst 54 api/swap.rst 55