C Configuration Space and Tuning Library (CCS)
Loading...
Searching...
No Matches
tree_space.h
Go to the documentation of this file.
1#ifndef _CCS_TREE_SPACE_H
2#define _CCS_TREE_SPACE_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
35
40
60extern ccs_result_t
62 const char *name,
63 ccs_tree_t tree,
64 ccs_feature_space_t feature_space,
65 ccs_rng_t rng,
66 ccs_tree_space_t *tree_space_ret);
67
78
93 ccs_tree_space_t tree_space,
94 ccs_tree_t parent,
95 size_t child_index,
96 ccs_tree_t *child_ret);
97
103 ccs_tree_space_t tree_space,
104 size_t state_size,
105 void *state,
106 size_t *state_size_ret);
107
114 ccs_tree_t tree,
115 ccs_feature_space_t feature_space,
116 size_t state_size,
117 const void *state,
118 void **tree_space_data_ret);
119};
120
125
149extern ccs_result_t
151 const char *name,
152 ccs_tree_t tree,
153 ccs_feature_space_t feature_space,
154 ccs_rng_t rng,
156 void *tree_space_data,
157 ccs_tree_space_t *tree_space_ret);
158
171extern ccs_result_t
173 ccs_tree_space_t tree_space,
174 ccs_tree_space_type_t *type_ret);
175
188extern ccs_result_t
189ccs_tree_space_get_name(ccs_tree_space_t tree_space, const char **name_ret);
190
202extern ccs_result_t
204
217extern ccs_result_t
219 ccs_tree_space_t tree_space,
220 ccs_feature_space_t *feature_space_ret);
221
233extern ccs_result_t
235
256extern ccs_result_t
258 ccs_tree_space_t tree_space,
259 size_t position_size,
260 const size_t *position,
261 ccs_tree_t *tree_ret);
262
287extern ccs_result_t
289 ccs_tree_space_t tree_space,
290 size_t position_size,
291 const size_t *position,
292 size_t num_values,
293 ccs_datum_t *values);
294
317extern ccs_result_t
319 ccs_tree_space_t tree_space,
320 ccs_features_t features,
321 ccs_rng_t rng,
322 ccs_tree_configuration_t *configuration_ret);
323
349extern ccs_result_t
351 ccs_tree_space_t tree_space,
352 ccs_features_t features,
353 ccs_rng_t rng,
354 size_t num_configurations,
355 ccs_tree_configuration_t *configurations);
356
370extern ccs_result_t
372 ccs_tree_space_t tree_space,
373 void **tree_space_data_ret);
374
375#ifdef __cplusplus
376}
377#endif
378
379#endif //_CCS_TREE_SPACE_H
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.