A collection of functions to generate combinatorial objects like partitions, combinations, permutations, Young tableaux, various trees, etc.
The long-term goals are
- to be efficient;
- to be able to enumerate the structures with constant memory usage.
The short-term goal is to generate many interesting structures.
Naming conventions (subject to change):
- prime suffix: additional constrains, typically more general;
- underscore prefix: use plain lists instead of other types with enforced invariants;
- "random" prefix: generates random objects (typically with uniform distribution);
- "count" prefix: counting functions.
Documentation
module Math.Combinat.Numbers
module Math.Combinat.Sets
module Math.Combinat.Tuples
module Math.Combinat.Compositions
module Math.Combinat.Partitions
module Math.Combinat.Permutations
module Math.Combinat.Tableaux
module Math.Combinat.Trees
module Math.Combinat.Graphviz