From 86b12db8947b5061a6b2ce038f3dd02993068077 Mon Sep 17 00:00:00 2001 From: NunoSempere Date: Mon, 29 Jan 2024 18:35:34 +0100 Subject: [PATCH] continue minimizing nested functions --- examples/more/00_example_template/example.c | 4 ++++ .../more/11_billion_lognormals_paralell/example.c | 10 +++++----- examples/more/12_time_to_botec_parallel/example.c | 11 ++++++----- 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/examples/more/00_example_template/example.c b/examples/more/00_example_template/example.c index 9fa72f4..f5ee07e 100644 --- a/examples/more/00_example_template/example.c +++ b/examples/more/00_example_template/example.c @@ -3,6 +3,10 @@ #include #include +double sample_model(uint64_t* seed){ + return sample_to(1, 10, seed); +} + int main() { // set randomness seed diff --git a/examples/more/11_billion_lognormals_paralell/example.c b/examples/more/11_billion_lognormals_paralell/example.c index 35cfc47..4840304 100644 --- a/examples/more/11_billion_lognormals_paralell/example.c +++ b/examples/more/11_billion_lognormals_paralell/example.c @@ -3,6 +3,10 @@ #include #include +double sample_model(uint64_t * seed) +{ + return sample_lognormal(0, 10, seed); +} // Estimate functions int main() { @@ -13,13 +17,9 @@ int main() int n_samples = 1000 * 1000 * 1000; int n_threads = 16; - double sampler(uint64_t * seed) - { - return sample_lognormal(0, 10, seed); - } double* results = malloc((size_t)n_samples * sizeof(double)); - sampler_parallel(sampler, results, n_threads, n_samples); + sampler_parallel(sample_model, results, n_threads, n_samples); double avg = array_sum(results, n_samples) / n_samples; printf("Average of 1B lognormal(0,10): %f\n", avg); diff --git a/examples/more/12_time_to_botec_parallel/example.c b/examples/more/12_time_to_botec_parallel/example.c index edeb939..07d181c 100644 --- a/examples/more/12_time_to_botec_parallel/example.c +++ b/examples/more/12_time_to_botec_parallel/example.c @@ -3,7 +3,7 @@ #include #include -int main() +double sampler_result(uint64_t * seed) { double p_a = 0.8; double p_b = 0.5; @@ -17,10 +17,11 @@ 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 sampler_result(uint64_t * seed) - { - return sample_mixture(samplers, weights, n_dists, seed); - } + return sample_mixture(samplers, weights, n_dists, seed); +} + +int main() +{ int n_samples = 1000 * 1000, n_threads = 16; double* results = malloc((size_t)n_samples * sizeof(double));