C Configuration Space and Tuning Library (CCS)
Loading...
Searching...
No Matches
parameter.h
Go to the documentation of this file.
1#ifndef _CCS_PARAMETER_H
2#define _CCS_PARAMETER_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
47
52
74extern ccs_result_t
76 const char *name,
77 ccs_numeric_type_t data_type,
78 ccs_numeric_t lower,
79 ccs_numeric_t upper,
80 ccs_numeric_t quantization,
81 ccs_numeric_t default_value,
82 ccs_parameter_t *parameter_ret);
83
102extern ccs_result_t
104 const char *name,
105 ccs_int_t lower,
106 ccs_int_t upper,
107 ccs_int_t quantization,
108 ccs_int_t default_value,
109 ccs_parameter_t *parameter_ret);
110
129extern ccs_result_t
131 const char *name,
132 ccs_float_t lower,
133 ccs_float_t upper,
134 ccs_float_t quantization,
135 ccs_float_t default_value,
136 ccs_parameter_t *parameter_ret);
137
159extern ccs_result_t
161 ccs_parameter_t parameter,
162 ccs_numeric_type_t *data_type_ret,
163 ccs_numeric_t *lower_ret,
164 ccs_numeric_t *upper_ret,
165 ccs_numeric_t *quantization_ret);
166
186extern ccs_result_t
188 const char *name,
189 size_t num_possible_values,
190 ccs_datum_t *possible_values,
191 size_t default_value_index,
192 ccs_parameter_t *parameter_ret);
193
216extern ccs_result_t
218 ccs_parameter_t parameter,
219 size_t num_possible_values,
220 ccs_datum_t *possible_values,
221 size_t *num_possible_values_ret);
222
244extern ccs_result_t
246 const char *name,
247 size_t num_possible_values,
248 ccs_datum_t *possible_values,
249 size_t default_value_index,
250 ccs_parameter_t *parameter_ret);
251
274extern ccs_result_t
276 ccs_parameter_t parameter,
277 size_t num_possible_values,
278 ccs_datum_t *possible_values,
279 size_t *num_possible_values_ret);
280
298extern ccs_result_t
300 ccs_parameter_t parameter,
301 ccs_datum_t value1,
302 ccs_datum_t value2,
303 ccs_int_t *comp_ret);
304
325extern ccs_result_t
327 const char *name,
328 size_t num_possible_values,
329 ccs_datum_t *possible_values,
330 size_t default_value_index,
331 ccs_parameter_t *parameter_ret);
332
355extern ccs_result_t
357 ccs_parameter_t parameter,
358 size_t num_possible_values,
359 ccs_datum_t *possible_values,
360 size_t *num_possible_values_ret);
361
377extern ccs_result_t
378ccs_create_string_parameter(const char *name, ccs_parameter_t *parameter_ret);
379
394extern ccs_result_t
396
409extern ccs_result_t
411 ccs_parameter_t parameter,
412 ccs_parameter_type_t *type_ret);
413
426extern ccs_result_t
428 ccs_parameter_t parameter,
429 ccs_datum_t *value_ret);
430
443extern ccs_result_t
444ccs_parameter_get_name(ccs_parameter_t parameter, const char **name_ret);
445
458extern ccs_result_t
460 ccs_parameter_t parameter,
461 ccs_distribution_t *distribution_ret);
462
476extern ccs_result_t
478 ccs_parameter_t parameter,
479 ccs_datum_t value,
480 ccs_bool_t *result_ret);
481
497extern ccs_result_t
499 ccs_parameter_t parameter,
500 size_t num_values,
501 const ccs_datum_t *values,
502 ccs_bool_t *results);
503
522extern ccs_result_t
524 ccs_parameter_t parameter,
525 ccs_datum_t value,
526 ccs_datum_t *value_ret,
527 ccs_bool_t *result_ret);
528
548extern ccs_result_t
550 ccs_parameter_t parameter,
551 size_t num_values,
552 const ccs_datum_t *values,
553 ccs_datum_t *values_ret,
554 ccs_bool_t *results);
555
579extern ccs_result_t
581 ccs_parameter_t parameter,
582 ccs_bool_t oversampling,
583 size_t num_values,
584 const ccs_numeric_t *values,
585 ccs_datum_t *results);
586
606extern ccs_result_t
608 ccs_parameter_t parameter,
609 ccs_distribution_t distribution,
610 ccs_rng_t rng,
611 ccs_datum_t *value_ret);
612
635extern ccs_result_t
637 ccs_parameter_t parameter,
638 ccs_distribution_t distribution,
639 ccs_rng_t rng,
640 size_t num_values,
641 ccs_datum_t *values);
642
655extern ccs_result_t
657 ccs_parameter_t parameter,
658 ccs_interval_t *interval_ret);
659#ifdef __cplusplus
660}
661#endif
662
663#endif //_CCS_PARAMETER_H
int64_t ccs_int_t
A CCS integer type.
Definition base.h:33
int32_t ccs_bool_t
A CCS boolean type.
Definition base.h:37
struct _ccs_parameter_s * ccs_parameter_t
An opaque type defining a CCS parameter.
Definition base.h:95
double ccs_float_t
A CCS floating point type.
Definition base.h:29
enum ccs_numeric_type_e ccs_numeric_type_t
A commodity type to represent CCS numeric types.
Definition base.h:384
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
struct _ccs_distribution_s * ccs_distribution_t
An opaque type defining a CCS distribution.
Definition base.h:91
ccs_result_t ccs_create_discrete_parameter(const char *name, size_t num_possible_values, ccs_datum_t *possible_values, size_t default_value_index, ccs_parameter_t *parameter_ret)
Create a new discrete parameter.
ccs_result_t ccs_parameter_samples(ccs_parameter_t parameter, ccs_distribution_t distribution, ccs_rng_t rng, size_t num_values, ccs_datum_t *values)
Get samples from the parameter sampled by a given distribution.
ccs_result_t ccs_discrete_parameter_get_values(ccs_parameter_t parameter, size_t num_possible_values, ccs_datum_t *possible_values, size_t *num_possible_values_ret)
Get the possible values of an discrete parameter.
ccs_result_t ccs_parameter_convert_samples(ccs_parameter_t parameter, ccs_bool_t oversampling, size_t num_values, const ccs_numeric_t *values, ccs_datum_t *results)
Convert numerical samples into samples from the parameter.
ccs_result_t ccs_create_int_numerical_parameter(const char *name, ccs_int_t lower, ccs_int_t upper, ccs_int_t quantization, ccs_int_t default_value, ccs_parameter_t *parameter_ret)
Create a new integer numerical parameter.
ccs_result_t ccs_parameter_check_value(ccs_parameter_t parameter, ccs_datum_t value, ccs_bool_t *result_ret)
Check if a value is acceptable for a parameter.
enum ccs_parameter_type_e ccs_parameter_type_t
A commodity type to represent a parameter type.
Definition parameter.h:51
ccs_result_t ccs_parameter_get_default_distribution(ccs_parameter_t parameter, ccs_distribution_t *distribution_ret)
Get the default distribution of a parameter.
ccs_result_t ccs_parameter_validate_value(ccs_parameter_t parameter, ccs_datum_t value, ccs_datum_t *value_ret, ccs_bool_t *result_ret)
Check if a value is acceptable for a parameter and if it is return a marshalled value.
ccs_result_t ccs_numerical_parameter_get_properties(ccs_parameter_t parameter, ccs_numeric_type_t *data_type_ret, ccs_numeric_t *lower_ret, ccs_numeric_t *upper_ret, ccs_numeric_t *quantization_ret)
Get the properties used to create a numerical parameter.
ccs_result_t ccs_create_numerical_parameter(const char *name, ccs_numeric_type_t data_type, ccs_numeric_t lower, ccs_numeric_t upper, ccs_numeric_t quantization, ccs_numeric_t default_value, ccs_parameter_t *parameter_ret)
Create a new numerical parameter of the specified data_type.
ccs_result_t ccs_parameter_get_default_value(ccs_parameter_t parameter, ccs_datum_t *value_ret)
Get the default value of an parameter.
ccs_result_t ccs_create_ordinal_parameter(const char *name, size_t num_possible_values, ccs_datum_t *possible_values, size_t default_value_index, ccs_parameter_t *parameter_ret)
Create a new ordinal parameter.
ccs_result_t ccs_categorical_parameter_get_values(ccs_parameter_t parameter, size_t num_possible_values, ccs_datum_t *possible_values, size_t *num_possible_values_ret)
Get the possible values of a categorical parameter.
ccs_result_t ccs_parameter_sampling_interval(ccs_parameter_t parameter, ccs_interval_t *interval_ret)
Get the valid sampling interval of the parameter.
ccs_result_t ccs_parameter_copy(ccs_parameter_t parameter, ccs_parameter_t *parameter_ret)
Create a copy of a parameter.
ccs_result_t ccs_parameter_get_type(ccs_parameter_t parameter, ccs_parameter_type_t *type_ret)
Get the type of a parameter.
ccs_result_t ccs_parameter_check_values(ccs_parameter_t parameter, size_t num_values, const ccs_datum_t *values, ccs_bool_t *results)
Check if an array of values are acceptable for a parameter.
ccs_result_t ccs_create_categorical_parameter(const char *name, size_t num_possible_values, ccs_datum_t *possible_values, size_t default_value_index, ccs_parameter_t *parameter_ret)
Create a new categorical parameter.
ccs_result_t ccs_create_string_parameter(const char *name, ccs_parameter_t *parameter_ret)
Create an new parameter representing an undetermined string, to be used within feature space.
ccs_result_t ccs_parameter_validate_values(ccs_parameter_t parameter, size_t num_values, const ccs_datum_t *values, ccs_datum_t *values_ret, ccs_bool_t *results)
Check if an array of values are acceptable for a parameter and return marshalled values if they are v...
ccs_result_t ccs_create_float_numerical_parameter(const char *name, ccs_float_t lower, ccs_float_t upper, ccs_float_t quantization, ccs_float_t default_value, ccs_parameter_t *parameter_ret)
Create a new floating point numerical parameter.
ccs_result_t ccs_parameter_sample(ccs_parameter_t parameter, ccs_distribution_t distribution, ccs_rng_t rng, ccs_datum_t *value_ret)
Get a sample from the parameter sampled by a given distribution.
ccs_result_t ccs_parameter_get_name(ccs_parameter_t parameter, const char **name_ret)
Get the name of a parameter.
ccs_result_t ccs_ordinal_parameter_get_values(ccs_parameter_t parameter, size_t num_possible_values, ccs_datum_t *possible_values, size_t *num_possible_values_ret)
Get the possible values of an ordinal parameter.
ccs_result_t ccs_ordinal_parameter_compare_values(ccs_parameter_t parameter, ccs_datum_t value1, ccs_datum_t value2, ccs_int_t *comp_ret)
Compare two values in the context of an ordinal parameter.
ccs_parameter_type_e
CCS parameter types.
Definition parameter.h:19
@ CCS_PARAMETER_TYPE_ORDINAL
An ordinal parameter.
Definition parameter.h:33
@ CCS_PARAMETER_TYPE_FORCE_32BIT
Try forcing 32 bits value for bindings.
Definition parameter.h:45
@ CCS_PARAMETER_TYPE_STRING
A string parameter.
Definition parameter.h:41
@ CCS_PARAMETER_TYPE_CATEGORICAL
A categorical parameter.
Definition parameter.h:28
@ CCS_PARAMETER_TYPE_DISCRETE
A discrete parameter.
Definition parameter.h:37
@ CCS_PARAMETER_TYPE_MAX
Guard.
Definition parameter.h:43
@ CCS_PARAMETER_TYPE_NUMERICAL
A numerical parameter, over integers or floating point values.
Definition parameter.h:23
A Structure containing a CCS datum.
Definition base.h:494
A structure defining an interval over numeric values.
Definition interval.h:16
A union that can contain either a ccs_int_t or a ccs_float_t.
Definition base.h:394