Clingo C API
C API for clingo providing high level functions to control grounding and solving.
Typedefs | Enumerations | Functions

Detailed Description

Inspect search and problem statistics.

For an example, see statistics.c.

Typedefs

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.
 

Enumerations

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...
 

Functions

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...
 

Functions to access arrays

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_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 inspect values

bool clingo_statistics_value_get (clingo_statistics_t *statistics, uint64_t key, double *value)
 Get the value of the given entry. More...
 

Enumeration Type Documentation

Enumeration for entries of the statistics.

Enumerator
clingo_statistics_type_empty 

the entry is invalid (has neither of the types below)

clingo_statistics_type_value 

the entry is a (string) value

clingo_statistics_type_array 

the entry is an array

clingo_statistics_type_map 

the entry is a map

Examples:
statistics.c.

Function Documentation

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.

Precondition
The type of the entry must be clingo_statistics_type_array.
Parameters
[in]statisticsthe target statistics
[in]keythe key
[in]offsetthe offset in the array
[out]subkeythe resulting subkey
Returns
whether the call was successful
Examples:
statistics.c.
bool clingo_statistics_array_size ( clingo_statistics_t statistics,
uint64_t  key,
size_t *  size 
)

Get the size of an array entry.

Precondition
The type of the entry must be clingo_statistics_type_array.
Parameters
[in]statisticsthe target statistics
[in]keythe key
[out]sizethe resulting size
Returns
whether the call was successful
Examples:
statistics.c.
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.

Precondition
The type of the entry must be clingo_statistics_type_map.
Note
Multiple levels can be looked up by concatenating keys with a period.
Parameters
[in]statisticsthe target statistics
[in]keythe key
[in]namethe name to lookup the subkey
[out]subkeythe resulting subkey
Returns
whether the call was successful
Examples:
statistics.c.
bool clingo_statistics_map_size ( clingo_statistics_t statistics,
uint64_t  key,
size_t *  size 
)

Get the number of subkeys of a map entry.

Precondition
The type of the entry must be clingo_statistics_type_map.
Parameters
[in]statisticsthe target statistics
[in]keythe key
[out]sizethe resulting number
Returns
whether the call was successful
Examples:
statistics.c.
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.

Precondition
The type of the entry must be clingo_statistics_type_map.
Parameters
[in]statisticsthe target statistics
[in]keythe key
[in]offsetthe offset of the name
[out]namethe resulting name
Returns
whether the call was successful
Examples:
statistics.c.
bool clingo_statistics_root ( clingo_statistics_t statistics,
uint64_t *  key 
)

Get the root key of the statistics.

Parameters
[in]statisticsthe target statistics
[out]keythe root key
Returns
whether the call was successful
Examples:
statistics.c.
bool clingo_statistics_type ( clingo_statistics_t statistics,
uint64_t  key,
clingo_statistics_type_t type 
)

Get the type of a key.

Parameters
[in]statisticsthe target statistics
[in]keythe key
[out]typethe resulting type
Returns
whether the call was successful
bool clingo_statistics_value_get ( clingo_statistics_t statistics,
uint64_t  key,
double *  value 
)

Get the value of the given entry.

Precondition
The type of the entry must be clingo_statistics_type_value.
Parameters
[in]statisticsthe target statistics
[in]keythe key
[out]valuethe resulting value
Returns
whether the call was successful
Examples:
statistics.c.