# 2.2.2. Config.h¶

This file defines configuration options for the library, e.g., for changing the number of threads available for the ILP solver, or for completely switching to another ILP solver. Many of the options control verbosity of algorithms or which data to output when printing figures.

enum struct LabelType

Selector for which type of label to use in algorithms.

enumerator String

Vertices and edges are considered to be labelled with character strings. If only first-order terms are present, then strings are generated as a serialisation of the term.

enumerator Term

Vertices and edges are considered to be labelled with first-order terms. If only strings are present, then first-order terms are generated by parsing the strings. This may result in an TermParsingError if a string can not be parsed.

enum struct LabelRelation

Selector for which type of labelled morphism to use in an algorithm.

enumerator Isomorphism

Strings are considered isomorphic when they are equal. Terms are considered isomorphic when their most general unifier is a renaming.

enumerator Specialisation

A term $$t_2$$ is more special than, or isomorphic to, a term $$t_1$$ if there is a substitution which can be applied to $$t_1$$ to make the terms equal. This relation means that the right-hand side of a comparison is the more specialised term.

enumerator Unification

Strings unify if they are equal, i.e., the same as with Isomorphism. Terms unify if a most general unifier (MGU) exists. The found MGU is used for substitution in some algorithms.

class LabelSettings

A class simply for grouping label settings.

LabelSettings(LabelType type, LabelRelation relation)

Construct label settings that only uses the vertex and edge labels. .. function:: LabelSettings(LabelType type, LabelRelation relation, LabelRelation stereoRelation)

Construct label settings that include both vertex and edge labels, and stereo information. .. function:: LabelSettings(LabelType type, LabelRelation relation, bool withStereo, LabelRelation stereoRelation) .. member:: LabelType type .. member:: LabelRelation relation .. member:: bool withStereo .. member:: LabelRelation stereoRelation

Config &getConfig()
Returns: the singleton Config instance used by the library.

## 2.2.2.1. Class template<typename T> ConfigSetting¶

template<typename T>
class ConfigSetting

Holds a single option of type T.

### 2.2.2.1.1. Synopsis¶

template<typename T>
struct ConfigSetting {
ConfigSetting(T value, const std::string &name) : value(value), name(name) { }
void set(T value) {
this->value = value;
};
T get() const {
return value;
}
const std::string &getName() const {
return name;
}
private:
T value;
const std::string name;
};


### 2.2.2.1.2. Details¶

void set(T value)

Sets the configuration value.

T get() const
Returns: The configuration value.

## 2.2.2.2. Class Config¶

class Config

Holds all configuration settings.

Todo

write documentation for all settings