Classes |

`Problem` |
Class used to define a problem and retrieve solutions |

`Variable` |
Helper class for variable definition |

`Domain` |
Class used to control possible values for variables |

Solvers |

`Solver` |
Abstract base class for solvers |

`BacktrackingSolver` |
Problem solver with backtracking capabilities |

`RecursiveBacktrackingSolver` |
Recursive problem solver with backtracking capabilities |

`MinConflictsSolver` |
Problem solver based on the minimum conflicts theory |

Constraints |

`Constraint` |
Abstract base class for constraints |

`FunctionConstraint` |
Constraint which wraps a function defining the constraint logic |

`AllDifferentConstraint` |
Constraint enforcing that values of all given variables are
different |

`AllEqualConstraint` |
Constraint enforcing that values of all given variables are equal |

`MaxSumConstraint` |
Constraint enforcing that values of given variables sum up to a given
amount |

`ExactSumConstraint` |
Constraint enforcing that values of given variables sum exactly to a
given amount |

`MinSumConstraint` |
Constraint enforcing that values of given variables sum at least to a
given amount |

`InSetConstraint` |
Constraint enforcing that values of given variables are present in the
given set |

`NotInSetConstraint` |
Constraint enforcing that values of given variables are not present in
the given set |

`SomeInSetConstraint` |
Constraint enforcing that at least some of the values of given
variables must be present in a given set |

`SomeNotInSetConstraint` |
Constraint enforcing that at least some of the values of given
variables must not be present in a given set |