1#ifndef _CCS_DISTRIBUTION_H
2#define _CCS_DISTRIBUTION_H
305 size_t num_distributions,
331 size_t num_distributions,
367 size_t *dimension_ret);
516 size_t *num_areas_ret);
545 size_t num_distributions,
547 size_t *num_distributions_ret);
576 size_t *num_weights_ret);
605 size_t num_distributions,
607 size_t *num_distributions_ret);
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_distribution_sample(ccs_distribution_t distribution, ccs_rng_t rng, ccs_numeric_t *values)
Get a random sample from a distribution.
ccs_result_t ccs_multivariate_distribution_get_distributions(ccs_distribution_t distribution, size_t num_distributions, ccs_distribution_t *distributions, size_t *num_distributions_ret)
Get the distributions contained in a multivariate distribution.
ccs_result_t ccs_distribution_get_type(ccs_distribution_t distribution, ccs_distribution_type_t *type_ret)
Get the type of a distribution.
ccs_result_t ccs_distribution_get_data_types(ccs_distribution_t distribution, ccs_numeric_type_t *data_types_ret)
Get the data types of a distribution.
ccs_scale_type_e
CCS scale types.
Definition distribution.h:45
@ CCS_SCALE_TYPE_LOGARITHMIC
A logarithmic scale.
Definition distribution.h:49
@ CCS_SCALE_TYPE_MAX
Guard.
Definition distribution.h:51
@ CCS_SCALE_TYPE_LINEAR
A linear scale.
Definition distribution.h:47
@ CCS_SCALE_TYPE_FORCE_32BIT
Try forcing 32 bits value for bindings.
Definition distribution.h:53
ccs_result_t ccs_create_normal_float_distribution(ccs_float_t mu, ccs_float_t sigma, ccs_scale_type_t scale, ccs_float_t quantization, ccs_distribution_t *distribution_ret)
Create a new normal distribution of floating point values.
ccs_result_t ccs_create_multivariate_distribution(size_t num_distributions, ccs_distribution_t *distributions, ccs_distribution_t *distribution_ret)
Create a new multivariate distribution.
ccs_result_t ccs_create_mixture_distribution(size_t num_distributions, ccs_distribution_t *distributions, ccs_float_t *weights, ccs_distribution_t *distribution_ret)
Create a new mixture distribution.
ccs_result_t ccs_uniform_distribution_get_properties(ccs_distribution_t distribution, ccs_numeric_t *lower_ret, ccs_numeric_t *upper_ret, ccs_scale_type_t *scale_ret, ccs_numeric_t *quantization_ret)
Get the properties of a uniform distribution.
ccs_result_t ccs_normal_distribution_get_properties(ccs_distribution_t distribution, ccs_float_t *mu_ret, ccs_float_t *sigma_ret, ccs_scale_type_t *scale_ret, ccs_numeric_t *quantization_ret)
Get the properties of a normal distribution.
ccs_result_t ccs_mixture_distribution_get_weights(ccs_distribution_t distribution, size_t num_weights, ccs_float_t *weights, size_t *num_weights_ret)
Get the normalized weights of a mixture distribution.
ccs_result_t ccs_distribution_parameters_sample(ccs_distribution_t distribution, ccs_rng_t rng, ccs_parameter_t *parameters, ccs_datum_t *values)
Get a random parameters' sample by sampling a distribution.
ccs_result_t ccs_create_uniform_int_distribution(ccs_int_t lower, ccs_int_t upper, ccs_scale_type_t scale, ccs_int_t quantization, ccs_distribution_t *distribution_ret)
Create a new uniform distribution of integer values.
ccs_result_t ccs_roulette_distribution_get_areas(ccs_distribution_t distribution, size_t num_areas, ccs_float_t *areas, size_t *num_areas_ret)
Get the normalized areas of a roulette distribution.
ccs_result_t ccs_create_uniform_distribution(ccs_numeric_type_t data_type, ccs_numeric_t lower, ccs_numeric_t upper, ccs_scale_type_t scale, ccs_numeric_t quantization, ccs_distribution_t *distribution_ret)
Create a new uniform distribution of the specified data type.
ccs_result_t ccs_create_normal_int_distribution(ccs_float_t mu, ccs_float_t sigma, ccs_scale_type_t scale, ccs_int_t quantization, ccs_distribution_t *distribution_ret)
Create a new normal distribution of integer values.
ccs_result_t ccs_distribution_parameters_samples(ccs_distribution_t distribution, ccs_rng_t rng, ccs_parameter_t *parameters, size_t num_samples, ccs_datum_t *values)
Get a collection of random parameters' samples by sampling a distribution.
ccs_result_t ccs_distribution_samples(ccs_distribution_t distribution, ccs_rng_t rng, size_t num_samples, ccs_numeric_t *values)
Get a collection of random samples from a distribution.
enum ccs_distribution_type_e ccs_distribution_type_t
A commodity type to represent CCS distribution type.
Definition distribution.h:40
enum ccs_scale_type_e ccs_scale_type_t
A commodity type to represent CCS scale type.
Definition distribution.h:59
ccs_result_t ccs_create_roulette_distribution(size_t num_areas, ccs_float_t *areas, ccs_distribution_t *distribution_ret)
Create a new area proportional distribution of integer values.
ccs_result_t ccs_distribution_get_bounds(ccs_distribution_t distribution, ccs_interval_t *interval_ret)
Get the bounds of a distribution.
ccs_result_t ccs_distribution_get_dimension(ccs_distribution_t distribution, size_t *dimension_ret)
Get the dimensionality of a distribution.
ccs_result_t ccs_create_uniform_float_distribution(ccs_float_t lower, ccs_float_t upper, ccs_scale_type_t scale, ccs_float_t quantization, ccs_distribution_t *distribution_ret)
Create a new uniform distribution of floating point values.
ccs_result_t ccs_distribution_soa_samples(ccs_distribution_t distribution, ccs_rng_t rng, size_t num_samples, ccs_numeric_t **values)
Get a collection of random samples from a distribution.
ccs_result_t ccs_distribution_strided_samples(ccs_distribution_t distribution, ccs_rng_t rng, size_t num_samples, size_t stride, ccs_numeric_t *values)
Get a collection of random samples from a distribution.
ccs_distribution_type_e
CCS distribution types.
Definition distribution.h:20
@ CCS_DISTRIBUTION_TYPE_MULTIVARIATE
A multivariate distribution.
Definition distribution.h:30
@ CCS_DISTRIBUTION_TYPE_MAX
Guard.
Definition distribution.h:32
@ CCS_DISTRIBUTION_TYPE_ROULETTE
A roulette wheel selection distribution.
Definition distribution.h:26
@ CCS_DISTRIBUTION_TYPE_NORMAL
A normal distribution over floating point or integer values.
Definition distribution.h:24
@ CCS_DISTRIBUTION_TYPE_MIXTURE
A mixture distribution.
Definition distribution.h:28
@ CCS_DISTRIBUTION_TYPE_FORCE_32BIT
Try forcing 32 bits value for bindings.
Definition distribution.h:34
@ CCS_DISTRIBUTION_TYPE_UNIFORM
A uniform distribution over floating point or integer values.
Definition distribution.h:22
ccs_result_t ccs_mixture_distribution_get_distributions(ccs_distribution_t distribution, size_t num_distributions, ccs_distribution_t *distributions, size_t *num_distributions_ret)
Get the distributions contained in a mixture distribution.
ccs_result_t ccs_distribution_check_oversampling(ccs_distribution_t distribution, ccs_interval_t *intervals, ccs_bool_t *oversamplings_ret)
Check if a distribution could return values outside of the given intervals.
ccs_result_t ccs_create_normal_distribution(ccs_numeric_type_t data_type, ccs_float_t mu, ccs_float_t sigma, ccs_scale_type_t scale, ccs_numeric_t quantization, ccs_distribution_t *distribution_ret)
Create a new normal distribution of the specified data type.
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