Clingo C API
C API for clingo providing high level functions to control grounding and solving.
|
Inspection of models and a high-level interface to add constraints during solving.
For an example, see model.c.
Typedefs | |
typedef struct clingo_solve_control | clingo_solve_control_t |
Object to add clauses during search. | |
typedef struct clingo_model | clingo_model_t |
Object representing a model. | |
typedef int | clingo_model_type_t |
Corresponding type to clingo_model_type. | |
typedef unsigned | clingo_show_type_bitset_t |
Corresponding type to clingo_show_type. | |
Enumerations | |
enum | clingo_model_type { clingo_model_type_stable_model = 0, clingo_model_type_brave_consequences = 1, clingo_model_type_cautious_consequences = 2 } |
Enumeration for the different model types. More... | |
enum | clingo_show_type { clingo_show_type_csp = 1, clingo_show_type_shown = 2, clingo_show_type_atoms = 4, clingo_show_type_terms = 8, clingo_show_type_extra = 16, clingo_show_type_all = 31, clingo_show_type_complement = 32 } |
Enumeration of bit flags to select symbols in models. More... | |
Functions for Inspecting Models | |
CLINGO_VISIBILITY_DEFAULT bool | clingo_model_type (clingo_model_t *model, clingo_model_type_t *type) |
Get the type of the model. More... | |
CLINGO_VISIBILITY_DEFAULT bool | clingo_model_number (clingo_model_t *model, uint64_t *number) |
Get the running number of the model. More... | |
CLINGO_VISIBILITY_DEFAULT bool | clingo_model_symbols_size (clingo_model_t *model, clingo_show_type_bitset_t show, size_t *size) |
Get the number of symbols of the selected types in the model. More... | |
CLINGO_VISIBILITY_DEFAULT bool | clingo_model_symbols (clingo_model_t *model, clingo_show_type_bitset_t show, clingo_symbol_t *symbols, size_t size) |
Get the symbols of the selected types in the model. More... | |
CLINGO_VISIBILITY_DEFAULT bool | clingo_model_contains (clingo_model_t *model, clingo_symbol_t atom, bool *contained) |
Constant time lookup to test whether an atom is in a model. More... | |
CLINGO_VISIBILITY_DEFAULT bool | clingo_model_is_true (clingo_model_t *model, clingo_literal_t literal, bool *result) |
Check if a program literal is true in a model. More... | |
CLINGO_VISIBILITY_DEFAULT bool | clingo_model_cost_size (clingo_model_t *model, size_t *size) |
Get the number of cost values of a model. More... | |
CLINGO_VISIBILITY_DEFAULT bool | clingo_model_cost (clingo_model_t *model, int64_t *costs, size_t size) |
Get the cost vector of a model. More... | |
CLINGO_VISIBILITY_DEFAULT bool | clingo_model_optimality_proven (clingo_model_t *model, bool *proven) |
Whether the optimality of a model has been proven. More... | |
CLINGO_VISIBILITY_DEFAULT bool | clingo_model_thread_id (clingo_model_t *model, clingo_id_t *id) |
Get the id of the solver thread that found the model. More... | |
Functions for Adding Clauses | |
CLINGO_VISIBILITY_DEFAULT bool | clingo_model_context (clingo_model_t *model, clingo_solve_control_t **control) |
Get the associated solve control object of a model. More... | |
CLINGO_VISIBILITY_DEFAULT bool | clingo_solve_control_symbolic_atoms (clingo_solve_control_t *control, clingo_symbolic_atoms_t **atoms) |
Get an object to inspect the symbolic atoms. More... | |
CLINGO_VISIBILITY_DEFAULT bool | clingo_solve_control_add_clause (clingo_solve_control_t *control, clingo_literal_t const *clause, size_t size) |
Add a clause that applies to the current solving step during model enumeration. More... | |
enum clingo_model_type |
Enumeration for the different model types.
enum clingo_show_type |
Enumeration of bit flags to select symbols in models.
Enumerator | |
---|---|
clingo_show_type_csp | Select CSP assignments. |
clingo_show_type_shown | Select shown atoms and terms. |
clingo_show_type_atoms | Select all atoms. |
clingo_show_type_terms | Select all terms. |
clingo_show_type_extra | Select symbols added by extensions. |
clingo_show_type_all | Select everything. |
clingo_show_type_complement | Select false instead of true atoms (clingo_show_type_atoms) or terms (clingo_show_type_terms). |
CLINGO_VISIBILITY_DEFAULT bool clingo_model_contains | ( | clingo_model_t * | model, |
clingo_symbol_t | atom, | ||
bool * | contained | ||
) |
Constant time lookup to test whether an atom is in a model.
[in] | model | the target |
[in] | atom | the atom to lookup |
[out] | contained | whether the atom is contained |
CLINGO_VISIBILITY_DEFAULT bool clingo_model_context | ( | clingo_model_t * | model, |
clingo_solve_control_t ** | control | ||
) |
Get the associated solve control object of a model.
This object allows for adding clauses during model enumeration.
[in] | model | the target |
[out] | control | the resulting solve control object |
CLINGO_VISIBILITY_DEFAULT bool clingo_model_cost | ( | clingo_model_t * | model, |
int64_t * | costs, | ||
size_t | size | ||
) |
Get the cost vector of a model.
[in] | model | the target |
[out] | costs | the resulting costs |
[in] | size | the number of costs |
CLINGO_VISIBILITY_DEFAULT bool clingo_model_cost_size | ( | clingo_model_t * | model, |
size_t * | size | ||
) |
Get the number of cost values of a model.
[in] | model | the target |
[out] | size | the number of costs |
CLINGO_VISIBILITY_DEFAULT bool clingo_model_is_true | ( | clingo_model_t * | model, |
clingo_literal_t | literal, | ||
bool * | result | ||
) |
Check if a program literal is true in a model.
[in] | model | the target |
[in] | literal | the literal to lookup |
[out] | result | whether the literal is true |
CLINGO_VISIBILITY_DEFAULT bool clingo_model_number | ( | clingo_model_t * | model, |
uint64_t * | number | ||
) |
Get the running number of the model.
[in] | model | the target |
[out] | number | the number of the model |
CLINGO_VISIBILITY_DEFAULT bool clingo_model_optimality_proven | ( | clingo_model_t * | model, |
bool * | proven | ||
) |
Whether the optimality of a model has been proven.
[in] | model | the target |
[out] | proven | whether the optimality has been proven |
CLINGO_VISIBILITY_DEFAULT bool clingo_model_symbols | ( | clingo_model_t * | model, |
clingo_show_type_bitset_t | show, | ||
clingo_symbol_t * | symbols, | ||
size_t | size | ||
) |
Get the symbols of the selected types in the model.
[in] | model | the target |
[in] | show | which symbols to select |
[out] | symbols | the resulting symbols |
[in] | size | the number of selected symbols |
CLINGO_VISIBILITY_DEFAULT bool clingo_model_symbols_size | ( | clingo_model_t * | model, |
clingo_show_type_bitset_t | show, | ||
size_t * | size | ||
) |
Get the number of symbols of the selected types in the model.
[in] | model | the target |
[in] | show | which symbols to select |
[out] | size | the number symbols |
CLINGO_VISIBILITY_DEFAULT bool clingo_model_thread_id | ( | clingo_model_t * | model, |
clingo_id_t * | id | ||
) |
Get the id of the solver thread that found the model.
[in] | model | the target |
[out] | id | the resulting thread id |
CLINGO_VISIBILITY_DEFAULT bool clingo_model_type | ( | clingo_model_t * | model, |
clingo_model_type_t * | type | ||
) |
Get the type of the model.
[in] | model | the target |
[out] | type | the type of the model |
CLINGO_VISIBILITY_DEFAULT bool clingo_solve_control_add_clause | ( | clingo_solve_control_t * | control, |
clingo_literal_t const * | clause, | ||
size_t | size | ||
) |
Add a clause that applies to the current solving step during model enumeration.
[in] | control | the target |
[in] | clause | array of literals representing the clause |
[in] | size | the size of the literal array |
CLINGO_VISIBILITY_DEFAULT bool clingo_solve_control_symbolic_atoms | ( | clingo_solve_control_t * | control, |
clingo_symbolic_atoms_t ** | atoms | ||
) |
Get an object to inspect the symbolic atoms.
[in] | control | the target |
[out] | atoms | the resulting object |