1.. Copyright (c) 2020, F. L. Smith 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 7Konieczny 8========= 9 10``libsemigroups`` contains a preliminary implementation of Konieczny's 11generalisation of the Lallement-McFadden' algorithm for computing the structure 12of finite semigroups that act on sets; see the documentation below for further 13details. It is preliminary in the sense that the interface exposed by the 14relevant classes is minimal, and that certain optimisations remain to be 15performed. 16 17The implementation of this algorithm is generic, and can be easily adapted 18for user-defined types. In other words, it is possible to directly apply this 19algorithm to any types that satisfy some minimal prerequisites, via traits 20classes and/or the adapters described here. 21 22The implementation of the Konieczny and Lallement-McFadden algorithm can be 23used "interactively", in the sense that they can be run for a particular amount 24of time, or until some condition is met; for further details see, for example, 25:cpp:any:`void libsemigroups::Runner::run_for(std::chrono::nanoseconds)` and 26:cpp:func:`libsemigroups::Runner::run_until`. 27 28The classes implementing the Konieczny and Lallement-McFadden algorithm are: 29 30.. toctree:: 31 :maxdepth: 1 32 33 _generated/libsemigroups__konieczny 34 _generated/libsemigroups__koniecznytraits 35 _generated/libsemigroups__konieczny__dclass 36