Clingo C API
C API for clingo providing high level functions to control grounding and solving.
|
Single header containing the whole clingo API. More...
Go to the source code of this file.
Macros | |
#define | CLINGO_VERSION_MAJOR 5 |
Major version number. | |
#define | CLINGO_VERSION_MINOR 0 |
Minor version number. | |
#define | CLINGO_VERSION_REVISION 0 |
Revision number. | |
#define | CLINGO_VERSION #CLINGO_VERSION_MAJOR "." #CLINGO_VERSION_MINOR "." #CLINGO_VERSION_REVISION |
String representation of version. | |
Typedefs | |
typedef int32_t | clingo_literal_t |
Signed integer type used for aspif and solver literals. | |
typedef uint32_t | clingo_atom_t |
Unsigned integer type used for aspif atoms. | |
typedef uint32_t | clingo_id_t |
Unsigned integer type used in various places. | |
typedef int32_t | clingo_weight_t |
Signed integer type for weights in sum aggregates and minimize constraints. | |
typedef int | clingo_error_t |
Corresponding type to clingo_error. | |
typedef int | clingo_warning_t |
Corresponding type to clingo_warning. | |
typedef void | clingo_logger_t(clingo_warning_t code, char const *message, void *data) |
Callback to intercept warning messages. More... | |
typedef int | clingo_truth_value_t |
Corresponding type to clingo_truth_value. | |
typedef struct clingo_location | clingo_location_t |
Represents a source code location marking its beginnig and end. More... | |
typedef uint64_t | clingo_signature_t |
Represents a predicate signature. More... | |
typedef int | clingo_symbol_type_t |
Corresponding type to clingo_symbol_type. | |
typedef uint64_t | clingo_symbol_t |
Represents a symbol. More... | |
typedef struct clingo_symbolic_literal | clingo_symbolic_literal_t |
Represents a symbolic literal. | |
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. | |
typedef unsigned | clingo_solve_result_bitset_t |
Corresponding type to clingo_solve_result. More... | |
typedef struct clingo_solve_iteratively | clingo_solve_iteratively_t |
Search handle to enumerate models iteratively. More... | |
typedef struct clingo_solve_async | clingo_solve_async_t |
Search handle to an asynchronous solve call. More... | |
typedef struct clingo_symbolic_atoms | clingo_symbolic_atoms_t |
Object to inspect symbolic atoms in a program—the relevant Herbrand base gringo uses to instantiate programs. More... | |
typedef uint64_t | clingo_symbolic_atom_iterator_t |
Object to iterate over symbolic atoms. More... | |
typedef int | clingo_theory_term_type_t |
Corresponding type to clingo_theory_term_type. | |
typedef struct clingo_theory_atoms | clingo_theory_atoms_t |
Container that stores theory atoms, elements, and terms (see clingo_control_theory_atoms()). | |
typedef struct clingo_propagate_init | clingo_propagate_init_t |
Object to initialize a used-defined propagator before each solving step. More... | |
typedef struct clingo_assignment | clingo_assignment_t |
Represents a (partial) assignment of a particular solver. More... | |
typedef int | clingo_clause_type_t |
Corresponding type to clingo_clause_type. | |
typedef struct clingo_propagate_control | clingo_propagate_control_t |
This object can be used to add clauses and propagate literals while solving. | |
typedef bool(* | clingo_propagator_init_callback_t) (clingo_propagate_init_t *, void *) |
Typedef for clingo_propagator::init(). | |
typedef bool(* | clingo_propagator_propagate_callback_t) (clingo_propagate_control_t *, clingo_literal_t const *, size_t, void *) |
Typedef for clingo_propagator::propagate(). | |
typedef bool(* | clingo_propagator_undo_callback_t) (clingo_propagate_control_t *, clingo_literal_t const *, size_t, void *) |
Typedef for clingo_propagator::undo(). | |
typedef bool(* | clingo_propagator_check_callback_t) (clingo_propagate_control_t *, void *) |
Typedef for clingo_propagator::check(). | |
typedef struct clingo_propagator | clingo_propagator_t |
An instance of this struct has to be registered with a solver to implement a custom propagator. More... | |
typedef int | clingo_heuristic_type_t |
Corresponding type to clingo_heuristic_type. | |
typedef int | clingo_external_type_t |
Corresponding type to clingo_external_type. | |
typedef struct clingo_weighted_literal | clingo_weighted_literal_t |
A Literal with an associated weight. | |
typedef struct clingo_backend | clingo_backend_t |
Handle to the backend to add directives in aspif format. | |
typedef unsigned | clingo_configuration_type_bitset_t |
Bitset for values of type clingo_configuration_type. | |
typedef struct clingo_configuration | clingo_configuration_t |
Handle for to the solver configuration. | |
typedef int | clingo_statistics_type_t |
Corresponding type to clingo_solve_result. | |
typedef struct clingo_statistic | clingo_statistics_t |
Handle for to the solver statistics. | |
typedef int | clingo_ast_comparison_operator_t |
typedef int | clingo_ast_sign_t |
typedef int | clingo_ast_term_type_t |
typedef struct clingo_ast_unary_operation | clingo_ast_unary_operation_t |
typedef struct clingo_ast_binary_operation | clingo_ast_binary_operation_t |
typedef struct clingo_ast_interval | clingo_ast_interval_t |
typedef struct clingo_ast_function | clingo_ast_function_t |
typedef struct clingo_ast_pool | clingo_ast_pool_t |
typedef struct clingo_ast_term | clingo_ast_term_t |
typedef int | clingo_ast_unary_operator_t |
typedef int | clingo_ast_binary_operator_t |
typedef struct clingo_ast_csp_product_term | clingo_ast_csp_product_term_t |
typedef struct clingo_ast_csp_sum_term | clingo_ast_csp_sum_term_t |
typedef struct clingo_ast_csp_guard | clingo_ast_csp_guard_t |
typedef struct clingo_ast_csp_literal | clingo_ast_csp_literal_t |
typedef struct clingo_ast_id | clingo_ast_id_t |
typedef struct clingo_ast_comparison | clingo_ast_comparison_t |
typedef int | clingo_ast_literal_type_t |
typedef struct clingo_ast_literal | clingo_ast_literal_t |
typedef int | clingo_ast_aggregate_function_t |
typedef struct clingo_ast_aggregate_guard | clingo_ast_aggregate_guard_t |
typedef struct clingo_ast_conditional_literal | clingo_ast_conditional_literal_t |
typedef struct clingo_ast_aggregate | clingo_ast_aggregate_t |
typedef struct clingo_ast_body_aggregate_element | clingo_ast_body_aggregate_element_t |
typedef struct clingo_ast_body_aggregate | clingo_ast_body_aggregate_t |
typedef struct clingo_ast_head_aggregate_element | clingo_ast_head_aggregate_element_t |
typedef struct clingo_ast_head_aggregate | clingo_ast_head_aggregate_t |
typedef struct clingo_ast_disjunction | clingo_ast_disjunction_t |
typedef struct clingo_ast_disjoint_element | clingo_ast_disjoint_element_t |
typedef struct clingo_ast_disjoint | clingo_ast_disjoint_t |
typedef int | clingo_ast_theory_term_type_t |
typedef struct clingo_ast_theory_function | clingo_ast_theory_function_t |
typedef struct clingo_ast_theory_term_array | clingo_ast_theory_term_array_t |
typedef struct clingo_ast_theory_unparsed_term | clingo_ast_theory_unparsed_term_t |
typedef struct clingo_ast_theory_term | clingo_ast_theory_term_t |
typedef struct clingo_ast_theory_unparsed_term_element | clingo_ast_theory_unparsed_term_element_t |
typedef struct clingo_ast_theory_atom_element | clingo_ast_theory_atom_element_t |
typedef struct clingo_ast_theory_guard | clingo_ast_theory_guard_t |
typedef struct clingo_ast_theory_atom | clingo_ast_theory_atom_t |
typedef int | clingo_ast_head_literal_type_t |
typedef struct clingo_ast_head_literal | clingo_ast_head_literal_t |
typedef int | clingo_ast_body_literal_type_t |
typedef struct clingo_ast_body_literal | clingo_ast_body_literal_t |
typedef int | clingo_ast_theory_operator_type_t |
typedef struct clingo_ast_theory_operator_definition | clingo_ast_theory_operator_definition_t |
typedef struct clingo_ast_theory_term_definition | clingo_ast_theory_term_definition_t |
typedef struct clingo_ast_theory_guard_definition | clingo_ast_theory_guard_definition_t |
typedef int | clingo_ast_theory_atom_definition_type_t |
typedef struct clingo_ast_theory_atom_definition | clingo_ast_theory_atom_definition_t |
typedef struct clingo_ast_theory_definition | clingo_ast_theory_definition_t |
typedef struct clingo_ast_rule | clingo_ast_rule_t |
typedef struct clingo_ast_definition | clingo_ast_definition_t |
typedef struct clingo_ast_show_signature | clingo_ast_show_signature_t |
typedef struct clingo_ast_show_term | clingo_ast_show_term_t |
typedef struct clingo_ast_minimize | clingo_ast_minimize_t |
typedef int | clingo_ast_script_type_t |
typedef struct clingo_ast_script | clingo_ast_script_t |
typedef struct clingo_ast_program | clingo_ast_program_t |
typedef struct clingo_ast_external | clingo_ast_external_t |
typedef struct clingo_ast_edge | clingo_ast_edge_t |
typedef struct clingo_ast_heuristic | clingo_ast_heuristic_t |
typedef struct clingo_ast_project | clingo_ast_project_t |
typedef int | clingo_ast_statement_type_t |
typedef struct clingo_ast_statement | clingo_ast_statement_t |
typedef bool | clingo_ast_callback_t(clingo_ast_statement_t const *, void *) |
typedef struct clingo_program_builder | clingo_program_builder_t |
Object to build non-ground programs. | |
typedef struct clingo_control | clingo_control_t |
Control object holding grounding and solving state. | |
typedef struct clingo_part | clingo_part_t |
Struct used to specify the program parts that have to be grounded. More... | |
typedef bool | clingo_symbol_callback_t(clingo_symbol_t const *symbols, size_t symbols_size, void *data) |
Callback function to inject symbols. More... | |
typedef bool | clingo_ground_callback_t(clingo_location_t location, char const *name, clingo_symbol_t const *arguments, size_t arguments_size, void *data, clingo_symbol_callback_t *symbol_callback, void *symbol_callback_data) |
Callback function to implement external functions. More... | |
typedef bool | clingo_model_callback_t(clingo_model_t *model, void *data, bool *goon) |
Callback function to intercept models. More... | |
typedef bool | clingo_finish_callback_t(clingo_solve_result_bitset_t result, void *data) |
Callback function called at the end of an asynchronous solve operation. More... | |
Enumerations | |
enum | clingo_error { clingo_error_success = 0, clingo_error_runtime = 1, clingo_error_logic = 2, clingo_error_bad_alloc = 3, clingo_error_unknown = 4 } |
Enumeration of error codes. More... | |
enum | clingo_warning { clingo_warning_operation_undefined = 0, clingo_warning_runtime_error = 1, clingo_warning_atom_undefined = 2, clingo_warning_file_included = 3, clingo_warning_variable_unbounded = 4, clingo_warning_global_variable = 5, clingo_warning_other = 6 } |
Enumeration of warning codes. More... | |
enum | clingo_truth_value { clingo_truth_value_free = 0, clingo_truth_value_true = 1, clingo_truth_value_false = 2 } |
Represents three-valued truth values. More... | |
enum | clingo_symbol_type { clingo_symbol_type_infimum = 0, clingo_symbol_type_number = 1, clingo_symbol_type_string = 4, clingo_symbol_type_function = 5, clingo_symbol_type_supremum = 7 } |
Enumeration of available symbol types. More... | |
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... | |
enum | clingo_solve_result { clingo_solve_result_satisfiable = 1, clingo_solve_result_unsatisfiable = 2, clingo_solve_result_exhausted = 4, clingo_solve_result_interrupted = 8 } |
Enumeration of bit masks for solve call results. More... | |
enum | clingo_theory_term_type { clingo_theory_term_type_tuple, clingo_theory_term_type_list, clingo_theory_term_type_set, clingo_theory_term_type_function, clingo_theory_term_type_number, clingo_theory_term_type_symbol } |
Enumeration of theory term types. More... | |
enum | clingo_clause_type { clingo_clause_type_learnt = 0, clingo_clause_type_static = 1, clingo_clause_type_volatile = 2, clingo_clause_type_volatile_static = 3 } |
Enumeration of clause types determining the lifetime of a clause. More... | |
enum | clingo_heuristic_type { clingo_heuristic_type_level = 0, clingo_heuristic_type_sign = 1, clingo_heuristic_type_factor = 2, clingo_heuristic_type_init = 3, clingo_heuristic_type_true = 4, clingo_heuristic_type_false = 5 } |
Enumeration of different heuristic modifiers. More... | |
enum | clingo_external_type { clingo_external_type_free = 0, clingo_external_type_true = 1, clingo_external_type_false = 2, clingo_external_type_release = 3 } |
Enumeration of different external statements. More... | |
enum | clingo_configuration_type { clingo_configuration_type_value = 1, clingo_configuration_type_array = 2, clingo_configuration_type_map = 4 } |
Enumeration for entries of the configuration. More... | |
enum | clingo_statistics_type { clingo_statistics_type_empty = 0, clingo_statistics_type_value = 1, clingo_statistics_type_array = 2, clingo_statistics_type_map = 3 } |
Enumeration for entries of the statistics. More... | |
enum | clingo_ast_comparison_operator { clingo_ast_comparison_operator_greater_than = 0, clingo_ast_comparison_operator_less_than = 1, clingo_ast_comparison_operator_less_equal = 2, clingo_ast_comparison_operator_greater_equal = 3, clingo_ast_comparison_operator_not_equal = 4, clingo_ast_comparison_operator_equal = 5 } |
enum | clingo_ast_sign { clingo_ast_sign_none = 0, clingo_ast_sign_negation = 1, clingo_ast_sign_double_negation = 2 } |
enum | clingo_ast_term_type { clingo_ast_term_type_symbol = 0, clingo_ast_term_type_variable = 1, clingo_ast_term_type_unary_operation = 2, clingo_ast_term_type_binary_operation = 3, clingo_ast_term_type_interval = 4, clingo_ast_term_type_function = 5, clingo_ast_term_type_external_function = 6, clingo_ast_term_type_pool = 7 } |
enum | clingo_ast_unary_operator { clingo_ast_unary_operator_minus = 0, clingo_ast_unary_operator_negation = 1, clingo_ast_unary_operator_absolute = 2 } |
enum | clingo_ast_binary_operator { clingo_ast_binary_operator_xor = 0, clingo_ast_binary_operator_or = 1, clingo_ast_binary_operator_and = 2, clingo_ast_binary_operator_plus = 3, clingo_ast_binary_operator_minus = 4, clingo_ast_binary_operator_multiplication = 5, clingo_ast_binary_operator_division = 6, clingo_ast_binary_operator_modulo = 7 } |
enum | clingo_ast_literal_type { clingo_ast_literal_type_boolean = 0, clingo_ast_literal_type_symbolic = 1, clingo_ast_literal_type_comparison = 2, clingo_ast_literal_type_csp = 3 } |
enum | clingo_ast_aggregate_function { clingo_ast_aggregate_function_count = 0, clingo_ast_aggregate_function_sum = 1, clingo_ast_aggregate_function_sump = 2, clingo_ast_aggregate_function_min = 3, clingo_ast_aggregate_function_max = 4 } |
enum | clingo_ast_theory_term_type { clingo_ast_theory_term_type_symbol = 0, clingo_ast_theory_term_type_variable = 1, clingo_ast_theory_term_type_tuple = 2, clingo_ast_theory_term_type_list = 3, clingo_ast_theory_term_type_set = 4, clingo_ast_theory_term_type_function = 5, clingo_ast_theory_term_type_unparsed_term = 6 } |
enum | clingo_ast_head_literal_type { clingo_ast_head_literal_type_literal = 0, clingo_ast_head_literal_type_disjunction = 1, clingo_ast_head_literal_type_aggregate = 2, clingo_ast_head_literal_type_head_aggregate = 3, clingo_ast_head_literal_type_theory_atom = 4 } |
enum | clingo_ast_body_literal_type { clingo_ast_body_literal_type_literal = 0, clingo_ast_body_literal_type_conditional = 1, clingo_ast_body_literal_type_aggregate = 2, clingo_ast_body_literal_type_body_aggregate = 3, clingo_ast_body_literal_type_theory_atom = 4, clingo_ast_body_literal_type_disjoint = 5 } |
enum | clingo_ast_theory_operator_type { clingo_ast_theory_operator_type_unary = 0, clingo_ast_theory_operator_type_binary_left = 1, clingo_ast_theory_operator_type_binary_right = 2 } |
enum | clingo_ast_theory_atom_definition_type { clingo_ast_theory_atom_definition_type_head = 0, clingo_ast_theory_atom_definition_type_body = 1, clingo_ast_theory_atom_definition_type_any = 2, clingo_ast_theory_atom_definition_type_directive = 3 } |
enum | clingo_ast_script_type { clingo_ast_script_type_lua = 0, clingo_ast_script_type_python = 1 } |
enum | clingo_ast_statement_type { clingo_ast_statement_type_rule = 0, clingo_ast_statement_type_const = 1, clingo_ast_statement_type_show_signature = 2, clingo_ast_statement_type_show_term = 3, clingo_ast_statement_type_minimize = 4, clingo_ast_statement_type_script = 5, clingo_ast_statement_type_program = 6, clingo_ast_statement_type_external = 7, clingo_ast_statement_type_edge = 8, clingo_ast_statement_type_heuristic = 9, clingo_ast_statement_type_project_atom = 10, clingo_ast_statement_type_project_atom_signature = 11, clingo_ast_statement_type_theory_definition = 12 } |
Functions | |
char const * | clingo_error_string (clingo_error_t code) |
Convert error code into string. | |
clingo_error_t | clingo_error_code () |
Get the last error code set by a clingo API call. More... | |
char const * | clingo_error_message () |
Get the last error message set if an API call fails. More... | |
void | clingo_set_error (clingo_error_t code, char const *message) |
Set a custom error code and message in the active thread. More... | |
char const * | clingo_warning_string (clingo_warning_t code) |
Convert warning code into string. | |
void | clingo_version (int *major, int *minor, int *revision) |
Obtain the clingo version. More... | |
bool | clingo_add_string (char const *string, char const **result) |
Internalize a string. More... | |
bool | clingo_parse_term (char const *string, clingo_logger_t *logger, void *logger_data, unsigned message_limit, clingo_symbol_t *symbol) |
Parse a term in string form. More... | |
bool | clingo_solve_iteratively_next (clingo_solve_iteratively_t *handle, clingo_model_t **model) |
Get the next model. More... | |
bool | clingo_solve_iteratively_get (clingo_solve_iteratively_t *handle, clingo_solve_result_bitset_t *result) |
Get the solve result. More... | |
bool | clingo_solve_iteratively_close (clingo_solve_iteratively_t *handle) |
Closes an active search. More... | |
bool | clingo_solve_async_get (clingo_solve_async_t *handle, clingo_solve_result_bitset_t *result) |
Get the solve result. More... | |
bool | clingo_solve_async_wait (clingo_solve_async_t *handle, double timeout, bool *result) |
Wait for the specified amount of time to check if the search has finished. More... | |
bool | clingo_solve_async_cancel (clingo_solve_async_t *handle) |
Stop the running search. More... | |
bool | clingo_symbolic_atoms_size (clingo_symbolic_atoms_t *atoms, size_t *size) |
Get the number of different atoms occurring in a logic program. More... | |
bool | clingo_symbolic_atoms_begin (clingo_symbolic_atoms_t *atoms, clingo_signature_t const *signature, clingo_symbolic_atom_iterator_t *iterator) |
Get a forward iterator to the beginning of the sequence of all symbolic atoms optionally restricted to a given signature. More... | |
bool | clingo_symbolic_atoms_end (clingo_symbolic_atoms_t *atoms, clingo_symbolic_atom_iterator_t *iterator) |
Iterator pointing to the end of the sequence of symbolic atoms. More... | |
bool | clingo_symbolic_atoms_find (clingo_symbolic_atoms_t *atoms, clingo_symbol_t symbol, clingo_symbolic_atom_iterator_t *iterator) |
Find a symbolic atom given its symbolic representation. More... | |
bool | clingo_symbolic_atoms_iterator_is_equal_to (clingo_symbolic_atoms_t *atoms, clingo_symbolic_atom_iterator_t a, clingo_symbolic_atom_iterator_t b, bool *equal) |
Check if two iterators point to the same element (or end of the sequence). More... | |
bool | clingo_symbolic_atoms_symbol (clingo_symbolic_atoms_t *atoms, clingo_symbolic_atom_iterator_t iterator, clingo_symbol_t *symbol) |
Get the symbolic representation of an atom. More... | |
bool | clingo_symbolic_atoms_is_fact (clingo_symbolic_atoms_t *atoms, clingo_symbolic_atom_iterator_t iterator, bool *fact) |
Check whether an atom is a fact. More... | |
bool | clingo_symbolic_atoms_is_external (clingo_symbolic_atoms_t *atoms, clingo_symbolic_atom_iterator_t iterator, bool *external) |
Check whether an atom is external. More... | |
bool | clingo_symbolic_atoms_literal (clingo_symbolic_atoms_t *atoms, clingo_symbolic_atom_iterator_t iterator, clingo_literal_t *literal) |
Returns the (numeric) aspif literal corresponding to the given symbolic atom. More... | |
bool | clingo_symbolic_atoms_signatures_size (clingo_symbolic_atoms_t *atoms, size_t *size) |
Get the number of different predicate signatures used in the program. More... | |
bool | clingo_symbolic_atoms_signatures (clingo_symbolic_atoms_t *atoms, clingo_signature_t *signatures, size_t size) |
Get the predicate signatures occurring in a logic program. More... | |
bool | clingo_symbolic_atoms_next (clingo_symbolic_atoms_t *atoms, clingo_symbolic_atom_iterator_t iterator, clingo_symbolic_atom_iterator_t *next) |
Get an iterator to the next element in the sequence of symbolic atoms. More... | |
bool | clingo_symbolic_atoms_is_valid (clingo_symbolic_atoms_t *atoms, clingo_symbolic_atom_iterator_t iterator, bool *valid) |
Check whether the given iterator points to some element with the sequence of symbolic atoms or to the end of the sequence. More... | |
bool | clingo_backend_rule (clingo_backend_t *backend, bool choice, clingo_atom_t const *head, size_t head_size, clingo_literal_t const *body, size_t body_size) |
Add a rule to the program. More... | |
bool | clingo_backend_weight_rule (clingo_backend_t *backend, bool choice, clingo_atom_t const *head, size_t head_size, clingo_weight_t lower_bound, clingo_weighted_literal_t const *body, size_t body_size) |
Add a weight rule to the program. More... | |
bool | clingo_backend_minimize (clingo_backend_t *backend, clingo_weight_t priority, clingo_weighted_literal_t const *literals, size_t size) |
Add a minimize constraint (or weak constraint) to the program. More... | |
bool | clingo_backend_project (clingo_backend_t *backend, clingo_atom_t const *atoms, size_t size) |
Add a projection directive. More... | |
bool | clingo_backend_external (clingo_backend_t *backend, clingo_atom_t atom, clingo_external_type_t type) |
Add an external statement. More... | |
bool | clingo_backend_assume (clingo_backend_t *backend, clingo_literal_t const *literals, size_t size) |
Add an assumption directive. More... | |
bool | clingo_backend_heuristic (clingo_backend_t *backend, clingo_atom_t atom, clingo_heuristic_type_t type, int bias, unsigned priority, clingo_literal_t const *condition, size_t size) |
Add an heuristic directive. More... | |
bool | clingo_backend_acyc_edge (clingo_backend_t *backend, int node_u, int node_v, clingo_literal_t const *condition, size_t size) |
Add an edge directive. More... | |
bool | clingo_backend_add_atom (clingo_backend_t *backend, clingo_atom_t *atom) |
Get a fresh atom to be used in aspif directives. More... | |
bool | clingo_configuration_root (clingo_configuration_t *configuration, clingo_id_t *key) |
Get the root key of the configuration. More... | |
bool | clingo_configuration_type (clingo_configuration_t *configuration, clingo_id_t key, clingo_configuration_type_bitset_t *type) |
Get the type of a key. More... | |
bool | clingo_configuration_description (clingo_configuration_t *configuration, clingo_id_t key, char const **description) |
Get the description of an entry. More... | |
bool | clingo_statistics_root (clingo_statistics_t *statistics, uint64_t *key) |
Get the root key of the statistics. More... | |
bool | clingo_statistics_type (clingo_statistics_t *statistics, uint64_t key, clingo_statistics_type_t *type) |
Get the type of a key. More... | |
bool | clingo_parse_program (char const *program, clingo_ast_callback_t *callback, void *callback_data, clingo_logger_t *logger, void *logger_data, unsigned message_limit) |
Parse the given program and return an abstract syntax tree for each statement via a callback. More... | |
bool | clingo_program_builder_begin (clingo_program_builder_t *builder) |
Begin building a program. More... | |
bool | clingo_program_builder_add (clingo_program_builder_t *builder, clingo_ast_statement_t const *statement) |
Adds a statement to the program. More... | |
bool | clingo_program_builder_end (clingo_program_builder_t *builder) |
End building a program. More... | |
bool | clingo_control_new (char const *const *arguments, size_t arguments_size, clingo_logger_t *logger, void *logger_data, unsigned message_limit, clingo_control_t **control) |
Create a new control object. More... | |
void | clingo_control_free (clingo_control_t *control) |
Free a control object created with clingo_control_new(). More... | |
Signature Functions | |
bool | clingo_signature_create (char const *name, uint32_t arity, bool positive, clingo_signature_t *signature) |
Create a new signature. More... | |
char const * | clingo_signature_name (clingo_signature_t signature) |
Get the name of a signature. More... | |
uint32_t | clingo_signature_arity (clingo_signature_t signature) |
Get the arity of a signature. More... | |
bool | clingo_signature_is_positive (clingo_signature_t signature) |
Whether the signature is positive (is not classically negated). More... | |
bool | clingo_signature_is_negative (clingo_signature_t signature) |
Whether the signature is negative (is classically negated). More... | |
bool | clingo_signature_is_equal_to (clingo_signature_t a, clingo_signature_t b) |
Check if two signatures are equal. More... | |
bool | clingo_signature_is_less_than (clingo_signature_t a, clingo_signature_t b) |
Check if a signature is less than another signature. More... | |
size_t | clingo_signature_hash (clingo_signature_t signature) |
Calculate a hash code of a signature. More... | |
Symbol Construction Functions | |
void | clingo_symbol_create_number (int number, clingo_symbol_t *symbol) |
Construct a symbol representing a number. More... | |
void | clingo_symbol_create_supremum (clingo_symbol_t *symbol) |
Construct a symbol representing #sup. More... | |
void | clingo_symbol_create_infimum (clingo_symbol_t *symbol) |
Construct a symbol representing #inf . More... | |
bool | clingo_symbol_create_string (char const *string, clingo_symbol_t *symbol) |
Construct a symbol representing a string. More... | |
bool | clingo_symbol_create_id (char const *name, bool positive, clingo_symbol_t *symbol) |
Construct a symbol representing an id. More... | |
bool | clingo_symbol_create_function (char const *name, clingo_symbol_t const *arguments, size_t arguments_size, bool positive, clingo_symbol_t *symbol) |
Construct a symbol representing a function or tuple. More... | |
Symbol Inspection Functions | |
bool | clingo_symbol_number (clingo_symbol_t symbol, int *number) |
Get the number of a symbol. More... | |
bool | clingo_symbol_name (clingo_symbol_t symbol, char const **name) |
Get the name of a symbol. More... | |
bool | clingo_symbol_string (clingo_symbol_t symbol, char const **string) |
Get the string of a symbol. More... | |
bool | clingo_symbol_is_positive (clingo_symbol_t symbol, bool *positive) |
Check if a function is positive (does not have a sign). More... | |
bool | clingo_symbol_is_negative (clingo_symbol_t symbol, bool *negative) |
Check if a function is negative (has a sign). More... | |
bool | clingo_symbol_arguments (clingo_symbol_t symbol, clingo_symbol_t const **arguments, size_t *arguments_size) |
Get the arguments of a symbol. More... | |
clingo_symbol_type_t | clingo_symbol_type (clingo_symbol_t symbol) |
Get the type of a symbol. More... | |
bool | clingo_symbol_to_string_size (clingo_symbol_t symbol, size_t *size) |
Get the size of the string representation of a symbol (including the terminating 0). More... | |
bool | clingo_symbol_to_string (clingo_symbol_t symbol, char *string, size_t size) |
Get the string representation of a symbol. More... | |
Symbol Comparison Functions | |
bool | clingo_symbol_is_equal_to (clingo_symbol_t a, clingo_symbol_t b) |
Check if two symbols are equal. More... | |
bool | clingo_symbol_is_less_than (clingo_symbol_t a, clingo_symbol_t b) |
Check if a symbol is less than another symbol. More... | |
size_t | clingo_symbol_hash (clingo_symbol_t symbol) |
Calculate a hash code of a symbol. More... | |
Functions for Inspecting Models | |
bool | clingo_model_type (clingo_model_t *model, clingo_model_type_t *type) |
Get the type of the model. More... | |
bool | clingo_model_number (clingo_model_t *model, uint64_t *number) |
Get the running number of the model. More... | |
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... | |
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... | |
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... | |
bool | clingo_model_cost_size (clingo_model_t *model, size_t *size) |
Get the number of cost values of a model. More... | |
bool | clingo_model_cost (clingo_model_t *model, int64_t *costs, size_t size) |
Get the cost vector of a model. More... | |
bool | clingo_model_optimality_proven (clingo_model_t *model, bool *proven) |
Whether the optimality of a model has been proven. More... | |
Functions for Adding Clauses | |
bool | clingo_model_context (clingo_model_t *model, clingo_solve_control_t **control) |
Get the associated solve control object of a model. More... | |
bool | clingo_solve_control_thread_id (clingo_solve_control_t *control, clingo_id_t *id) |
Get the id of the solver thread that found the model. More... | |
bool | clingo_solve_control_add_clause (clingo_solve_control_t *control, clingo_symbolic_literal_t const *clause, size_t size) |
Add a clause that applies to the current solving step during model enumeration. More... | |
Theory Term Inspection | |
bool | clingo_theory_atoms_term_type (clingo_theory_atoms_t *atoms, clingo_id_t term, clingo_theory_term_type_t *type) |
Get the type of the given theory term. More... | |
bool | clingo_theory_atoms_term_number (clingo_theory_atoms_t *atoms, clingo_id_t term, int *number) |
Get the number of the given numeric theory term. More... | |
bool | clingo_theory_atoms_term_name (clingo_theory_atoms_t *atoms, clingo_id_t term, char const **name) |
Get the name of the given constant or function theory term. More... | |
bool | clingo_theory_atoms_term_arguments (clingo_theory_atoms_t *atoms, clingo_id_t term, clingo_id_t const **arguments, size_t *size) |
Get the arguments of the given function theory term. More... | |
bool | clingo_theory_atoms_term_to_string_size (clingo_theory_atoms_t *atoms, clingo_id_t term, size_t *size) |
Get the size of the string representation of the given theory term (including the terminating 0). More... | |
bool | clingo_theory_atoms_term_to_string (clingo_theory_atoms_t *atoms, clingo_id_t term, char *string, size_t size) |
Get the string representation of the given theory term. More... | |
Theory Element Inspection | |
bool | clingo_theory_atoms_element_tuple (clingo_theory_atoms_t *atoms, clingo_id_t element, clingo_id_t const **tuple, size_t *size) |
Get the tuple (array of theory terms) of the given theory element. More... | |
bool | clingo_theory_atoms_element_condition (clingo_theory_atoms_t *atoms, clingo_id_t element, clingo_literal_t const **condition, size_t *size) |
Get the condition (array of aspif literals) of the given theory element. More... | |
bool | clingo_theory_atoms_element_condition_id (clingo_theory_atoms_t *atoms, clingo_id_t element, clingo_literal_t *condition) |
Get the id of the condition of the given theory element. More... | |
bool | clingo_theory_atoms_element_to_string_size (clingo_theory_atoms_t *atoms, clingo_id_t element, size_t *size) |
Get the size of the string representation of the given theory element (including the terminating 0). More... | |
bool | clingo_theory_atoms_element_to_string (clingo_theory_atoms_t *atoms, clingo_id_t element, char *string, size_t size) |
Get the string representation of the given theory element. More... | |
Theory Atom Inspection | |
bool | clingo_theory_atoms_size (clingo_theory_atoms_t *atoms, size_t *size) |
Get the total number of theory atoms. More... | |
bool | clingo_theory_atoms_atom_term (clingo_theory_atoms_t *atoms, clingo_id_t atom, clingo_id_t *term) |
Get the theory term associated with the theory atom. More... | |
bool | clingo_theory_atoms_atom_elements (clingo_theory_atoms_t *atoms, clingo_id_t atom, clingo_id_t const **elements, size_t *size) |
Get the theory elements associated with the theory atom. More... | |
bool | clingo_theory_atoms_atom_has_guard (clingo_theory_atoms_t *atoms, clingo_id_t atom, bool *has_guard) |
Whether the theory atom has a guard. More... | |
bool | clingo_theory_atoms_atom_guard (clingo_theory_atoms_t *atoms, clingo_id_t atom, char const **connective, clingo_id_t *term) |
Get the guard consisting of a theory operator and a theory term of the given theory atom. More... | |
bool | clingo_theory_atoms_atom_literal (clingo_theory_atoms_t *atoms, clingo_id_t atom, clingo_literal_t *literal) |
Get the aspif literal associated with the given theory atom. More... | |
bool | clingo_theory_atoms_atom_to_string_size (clingo_theory_atoms_t *atoms, clingo_id_t atom, size_t *size) |
Get the size of the string representation of the given theory atom (including the terminating 0). More... | |
bool | clingo_theory_atoms_atom_to_string (clingo_theory_atoms_t *atoms, clingo_id_t atom, char *string, size_t size) |
Get the string representation of the given theory atom. More... | |
Initialization Functions | |
bool | clingo_propagate_init_solver_literal (clingo_propagate_init_t *init, clingo_literal_t aspif_literal, clingo_literal_t *solver_literal) |
Map the given program literal or condition id to its solver literal. More... | |
bool | clingo_propagate_init_add_watch (clingo_propagate_init_t *init, clingo_literal_t solver_literal) |
Add a watch for the solver literal in the given phase. More... | |
bool | clingo_propagate_init_symbolic_atoms (clingo_propagate_init_t *init, clingo_symbolic_atoms_t **atoms) |
Get an object to inspect the symbolic atoms. More... | |
bool | clingo_propagate_init_theory_atoms (clingo_propagate_init_t *init, clingo_theory_atoms_t **atoms) |
Get an object to inspect the theory atoms. More... | |
int | clingo_propagate_init_number_of_threads (clingo_propagate_init_t *init) |
Get the number of threads used in subsequent solving. More... | |
Assignment Functions | |
uint32_t | clingo_assignment_decision_level (clingo_assignment_t *assignment) |
Get the current decision level. More... | |
bool | clingo_assignment_has_conflict (clingo_assignment_t *assignment) |
Check if the given assignment is conflicting. More... | |
bool | clingo_assignment_has_literal (clingo_assignment_t *assignment, clingo_literal_t literal) |
Check if the given literal is part of a (partial) assignment. More... | |
bool | clingo_assignment_level (clingo_assignment_t *assignment, clingo_literal_t literal, uint32_t *level) |
Determine the decision level of a given literal. More... | |
bool | clingo_assignment_decision (clingo_assignment_t *assignment, uint32_t level, clingo_literal_t *literal) |
Determine the decision literal given a decision level. More... | |
bool | clingo_assignment_is_fixed (clingo_assignment_t *assignment, clingo_literal_t literal, bool *is_fixed) |
Check if a literal has a fixed truth value. More... | |
bool | clingo_assignment_is_true (clingo_assignment_t *assignment, clingo_literal_t literal, bool *is_true) |
Check if a literal is true. More... | |
bool | clingo_assignment_is_false (clingo_assignment_t *assignment, clingo_literal_t literal, bool *is_false) |
Check if a literal has a fixed truth value. More... | |
bool | clingo_assignment_truth_value (clingo_assignment_t *assignment, clingo_literal_t literal, clingo_truth_value_t *value) |
Determine the truth value of a given literal. More... | |
Propagation Functions | |
clingo_id_t | clingo_propagate_control_thread_id (clingo_propagate_control_t *control) |
Get the id of the underlying solver thread. More... | |
clingo_assignment_t * | clingo_propagate_control_assignment (clingo_propagate_control_t *control) |
Get the assignment associated with the underlying solver. More... | |
bool | clingo_propagate_control_add_clause (clingo_propagate_control_t *control, clingo_literal_t const *clause, size_t size, clingo_clause_type_t type, bool *result) |
Add the given clause to the solver. More... | |
bool | clingo_propagate_control_propagate (clingo_propagate_control_t *control, bool *result) |
Propagate implied literals (resulting from added clauses). More... | |
Functions to access arrays | |
bool | clingo_configuration_array_size (clingo_configuration_t *configuration, clingo_id_t key, size_t *size) |
Get the size of an array entry. More... | |
bool | clingo_configuration_array_at (clingo_configuration_t *configuration, clingo_id_t key, size_t offset, clingo_id_t *subkey) |
Get the subkey at the given offset of an array entry. More... | |
bool | clingo_statistics_array_size (clingo_statistics_t *statistics, uint64_t key, size_t *size) |
Get the size of an array entry. More... | |
bool | clingo_statistics_array_at (clingo_statistics_t *statistics, uint64_t key, size_t offset, uint64_t *subkey) |
Get the subkey at the given offset of an array entry. More... | |
Functions to access maps | |
bool | clingo_configuration_map_size (clingo_configuration_t *configuration, clingo_id_t key, size_t *size) |
Get the number of subkeys of a map entry. More... | |
bool | clingo_configuration_map_subkey_name (clingo_configuration_t *configuration, clingo_id_t key, size_t offset, char const **name) |
Get the name associated with the offset-th subkey. More... | |
bool | clingo_configuration_map_at (clingo_configuration_t *configuration, clingo_id_t key, char const *name, clingo_id_t *subkey) |
Lookup a subkey under the given name. More... | |
bool | clingo_statistics_map_size (clingo_statistics_t *statistics, uint64_t key, size_t *size) |
Get the number of subkeys of a map entry. More... | |
bool | clingo_statistics_map_subkey_name (clingo_statistics_t *statistics, uint64_t key, size_t offset, char const **name) |
Get the name associated with the offset-th subkey. More... | |
bool | clingo_statistics_map_at (clingo_statistics_t *statistics, uint64_t key, char const *name, uint64_t *subkey) |
Lookup a subkey under the given name. More... | |
Functions to access values | |
bool | clingo_configuration_value_is_assigned (clingo_configuration_t *configuration, clingo_id_t key, bool *assigned) |
Check whether a entry has a value. More... | |
bool | clingo_configuration_value_get_size (clingo_configuration_t *configuration, clingo_id_t key, size_t *size) |
Get the size of the string value of the given entry. More... | |
bool | clingo_configuration_value_get (clingo_configuration_t *configuration, clingo_id_t key, char *value, size_t size) |
Get the string value of the given entry. More... | |
bool | clingo_configuration_value_set (clingo_configuration_t *configuration, clingo_id_t key, char const *value) |
Set the value of an entry. More... | |
Functions to inspect values | |
bool | clingo_statistics_value_get (clingo_statistics_t *statistics, uint64_t key, double *value) |
Get the value of the given entry. More... | |
Grounding Functions | |
bool | clingo_control_load (clingo_control_t *control, char const *file) |
Extend the logic program with a program in a file. More... | |
bool | clingo_control_add (clingo_control_t *control, char const *name, char const *const *parameters, size_t parameters_size, char const *program) |
Extend the logic program with the given non-ground logic program in string form. More... | |
bool | clingo_control_ground (clingo_control_t *control, clingo_part_t const *parts, size_t parts_size, clingo_ground_callback_t *ground_callback, void *ground_callback_data) |
Ground the selected parts of the current (non-ground) logic program. More... | |
Solving Functions | |
bool | clingo_control_solve (clingo_control_t *control, clingo_model_callback_t *model_callback, void *model_callback_data, clingo_symbolic_literal_t const *assumptions, size_t assumptions_size, clingo_solve_result_bitset_t *result) |
Solve the currently grounded logic program. More... | |
bool | clingo_control_solve_iteratively (clingo_control_t *control, clingo_symbolic_literal_t const *assumptions, size_t assumptions_size, clingo_solve_iteratively_t **handle) |
Solve the currently grounded logic program enumerating models iteratively. More... | |
bool | clingo_control_solve_async (clingo_control_t *control, clingo_model_callback_t *model_callback, void *model_callback_data, clingo_finish_callback_t *finish_callback, void *finish_callback_data, clingo_symbolic_literal_t const *assumptions, size_t assumptions_size, clingo_solve_async_t **handle) |
Solve the currently grounded logic program asynchronously in the background. More... | |
bool | clingo_control_cleanup (clingo_control_t *control) |
Clean up the domains of clingo's grounding component using the solving component's top level assignment. More... | |
bool | clingo_control_assign_external (clingo_control_t *control, clingo_symbol_t atom, clingo_truth_value_t value) |
Assign a truth value to an external atom. More... | |
bool | clingo_control_release_external (clingo_control_t *control, clingo_symbol_t atom) |
Release an external atom. More... | |
bool | clingo_control_register_propagator (clingo_control_t *control, clingo_propagator_t propagator, void *data, bool sequential) |
Register a custom propagator with the control object. More... | |
bool | clingo_control_statistics (clingo_control_t *control, clingo_statistics_t **statistics) |
Get a statistics object to inspect solver statistics. More... | |
void | clingo_control_interrupt (clingo_control_t *control) |
Interrupt the active solve call (or the following solve call right at the beginning). More... | |
Configuration Functions | |
bool | clingo_control_configuration (clingo_control_t *control, clingo_configuration_t **configuration) |
Get a configuration object to change the solver configuration. More... | |
bool | clingo_control_use_enumeration_assumption (clingo_control_t *control, bool enable) |
Configure how learnt constraints are handled during enumeration. More... | |
Program Inspection Functions | |
bool | clingo_control_get_const (clingo_control_t *control, char const *name, clingo_symbol_t *symbol) |
Return the symbol for a constant definition of form: #const name = symbol . More... | |
bool | clingo_control_has_const (clingo_control_t *control, char const *name, bool *exists) |
Check if there is a constant definition for the given constant. More... | |
bool | clingo_control_symbolic_atoms (clingo_control_t *control, clingo_symbolic_atoms_t **atoms) |
Get an object to inspect symbolic atoms (the relevant Herbrand base) used for grounding. More... | |
bool | clingo_control_theory_atoms (clingo_control_t *control, clingo_theory_atoms_t **atoms) |
Get an object to inspect theory atoms that occur in the grounding. More... | |
Program Modification Functions | |
bool | clingo_control_backend (clingo_control_t *control, clingo_backend_t **backend) |
Get an object to add ground directives to the program. More... | |
bool | clingo_control_program_builder (clingo_control_t *control, clingo_program_builder_t **builder) |
Get an object to add non-ground directives to the program. More... | |
Single header containing the whole clingo API.