commit 279fb12dee25956fa6b9b4924131c11c235e868e
parent 6199e43ae4f8affe3850086a1582162f3621cc07
Author: NunoSempere <nuno.sempere@protonmail.com>
Date: Mon, 29 Jan 2024 18:20:55 +0100
new pattern: define sampler and then sample from it
Diffstat:
1 file changed, 16 insertions(+), 27 deletions(-)
diff --git a/examples/core/01_one_sample/example.c b/examples/core/01_one_sample/example.c
@@ -3,33 +3,13 @@
#include <stdlib.h>
// Estimate functions
-double sample_0(uint64_t* seed)
-{
- UNUSED(seed);
- return 0;
-}
-
-double sample_1(uint64_t* seed)
-{
- UNUSED(seed);
- return 1;
-}
-double sample_few(uint64_t* seed)
-{
- return sample_to(1, 3, seed);
-}
+double sample_model(uint64_t* seed){
-double sample_many(uint64_t* seed)
-{
- return sample_to(2, 10, seed);
-}
-
-int main()
-{
- // set randomness seed
- uint64_t* seed = malloc(sizeof(uint64_t));
- *seed = 1000; // xorshift can't start with 0
+ double sample_0(uint64_t* seed) { UNUSED(seed); return 0; }
+ double sample_1(uint64_t* seed) { UNUSED(seed); return 1; }
+ double sample_few(uint64_t* seed) { return sample_to(1, 3, seed); }
+ double sample_many(uint64_t* seed) { return sample_to(2, 10, seed); }
double p_a = 0.8;
double p_b = 0.5;
@@ -38,8 +18,17 @@ int main()
int n_dists = 4;
double weights[] = { 1 - p_c, p_c / 2, p_c / 4, p_c / 4 };
double (*samplers[])(uint64_t*) = { sample_0, sample_1, sample_few, sample_many };
+ double result = sample_mixture(samplers, weights, n_dists, seed);
+
+ return result;
+}
+
+int main()
+{
+ // set randomness seed
+ uint64_t* seed = malloc(sizeof(uint64_t));
+ *seed = 1000; // xorshift can't start with 0
- double result_one = sample_mixture(samplers, weights, n_dists, seed);
- printf("result_one: %f\n", result_one);
+ printf("result_one: %f\n", sample_model(seed));
free(seed);
}