1#ifndef _CCS_TREE_SPACE_H
2#define _CCS_TREE_SPACE_H
106 size_t *state_size_ret);
118 void **tree_space_data_ret);
156 void *tree_space_data,
259 size_t position_size,
260 const size_t *position,
290 size_t position_size,
291 const size_t *position,
354 size_t num_configurations,
373 void **tree_space_data_ret);
struct _ccs_tree_space_s * ccs_tree_space_t
An opaque type defining a CCS tree space.
Definition base.h:163
struct _ccs_feature_space_s * ccs_feature_space_t
An opaque type defining a CCS feature space.
Definition base.h:131
struct _ccs_tree_configuration_s * ccs_tree_configuration_t
An opaque type defining a CCS tree space configuration.
Definition base.h:167
struct _ccs_features_s * ccs_features_t
An opaque type defining a CCS features.
Definition base.h:135
struct _ccs_tree_s * ccs_tree_t
An opaque type defining a CCS tree.
Definition base.h:159
enum ccs_result_e ccs_result_t
A commodity type to represent CCS errors and returned by most functions.
Definition base.h:247
struct _ccs_rng_s * ccs_rng_t
An opaque type defining a CCS random generator.
Definition base.h:87
A Structure containing a CCS datum.
Definition base.h:494
A structure that define the callbacks the user must provide to create a dynamic tree space.
Definition tree_space.h:72
ccs_result_t(* del)(ccs_tree_space_t tree_space)
The deletion callback that will be called once the reference count of the tree space reaches 0.
Definition tree_space.h:77
ccs_result_t(* deserialize_state)(ccs_tree_t tree, ccs_feature_space_t feature_space, size_t state_size, const void *state, void **tree_space_data_ret)
The tree space deserialization interface, can be NULL.
Definition tree_space.h:113
ccs_result_t(* get_child)(ccs_tree_space_t tree_space, ccs_tree_t parent, size_t child_index, ccs_tree_t *child_ret)
The callback that will be called when querying a missing children in a dynamic tree space.
Definition tree_space.h:92
ccs_result_t(* serialize_user_state)(ccs_tree_space_t tree_space, size_t state_size, void *state, size_t *state_size_ret)
The tree space serialization interface, can be NULL.
Definition tree_space.h:102
ccs_result_t ccs_tree_space_get_rng(ccs_tree_space_t tree_space, ccs_rng_t *rng_ret)
Get the internal rng of the tree space.
ccs_result_t ccs_tree_space_get_feature_space(ccs_tree_space_t tree_space, ccs_feature_space_t *feature_space_ret)
Get the feature space of the tree space.
ccs_result_t ccs_tree_space_get_values_at_position(ccs_tree_space_t tree_space, size_t position_size, const size_t *position, size_t num_values, ccs_datum_t *values)
Get the values along the path to a given position in the tree space.
ccs_result_t ccs_create_dynamic_tree_space(const char *name, ccs_tree_t tree, ccs_feature_space_t feature_space, ccs_rng_t rng, ccs_dynamic_tree_space_vector_t *vector, void *tree_space_data, ccs_tree_space_t *tree_space_ret)
Create a new static tree space.
ccs_tree_space_type_e
CCS supported tree space types.
Definition tree_space.h:25
@ CCS_TREE_SPACE_TYPE_FORCE_32BIT
Try forcing 32 bits value for bindings.
Definition tree_space.h:33
@ CCS_TREE_SPACE_TYPE_MAX
Guard.
Definition tree_space.h:31
@ CCS_TREE_SPACE_TYPE_DYNAMIC
A dynamic tree space.
Definition tree_space.h:29
@ CCS_TREE_SPACE_TYPE_STATIC
A static tree space.
Definition tree_space.h:27
ccs_result_t ccs_tree_space_get_node_at_position(ccs_tree_space_t tree_space, size_t position_size, const size_t *position, ccs_tree_t *tree_ret)
Get the node at a given position in a tree space.
ccs_result_t ccs_tree_space_sample(ccs_tree_space_t tree_space, ccs_features_t features, ccs_rng_t rng, ccs_tree_configuration_t *configuration_ret)
Get a tree configuration sampled randomly from a tree space.
ccs_result_t ccs_tree_space_get_type(ccs_tree_space_t tree_space, ccs_tree_space_type_t *type_ret)
Get the type of a tree space.
enum ccs_tree_space_type_e ccs_tree_space_type_t
A commodity type to represent CCS tree space types.
Definition tree_space.h:39
ccs_result_t ccs_tree_space_samples(ccs_tree_space_t tree_space, ccs_features_t features, ccs_rng_t rng, size_t num_configurations, ccs_tree_configuration_t *configurations)
Get a given number of configurations sampled randomly from a tree space.
ccs_result_t ccs_tree_space_get_name(ccs_tree_space_t tree_space, const char **name_ret)
Get the name of a tree space.
ccs_result_t ccs_create_static_tree_space(const char *name, ccs_tree_t tree, ccs_feature_space_t feature_space, ccs_rng_t rng, ccs_tree_space_t *tree_space_ret)
Create a new static tree space.
ccs_result_t ccs_tree_space_get_tree(ccs_tree_space_t tree_space, ccs_tree_t *tree_ret)
Get the tree of a tree space.
ccs_result_t ccs_dynamic_tree_space_get_tree_space_data(ccs_tree_space_t tree_space, void **tree_space_data_ret)
Get the dynamic tree space internal data pointer.