example.c (857B)
1 #include "../../../squiggle.h" 2 #include "../../../squiggle_more.h" 3 #include <stdio.h> 4 #include <stdlib.h> 5 6 double sample_model(uint64_t * seed) 7 { 8 return sample_lognormal(0, 10, seed); 9 } 10 // Estimate functions 11 int main() 12 { 13 // set randomness seed 14 // uint64_t* seed = malloc(sizeof(uint64_t)); 15 // *seed = 1000; // xorshift can't start with 0 16 // ^ not necessary, because sampler_parallel takes care of the seed. 17 18 int n_samples = 1000 * 1000 * 1000; 19 int n_threads = 16; 20 double* results = malloc((size_t)n_samples * sizeof(double)); 21 22 sampler_parallel(sample_model, results, n_threads, n_samples); 23 double avg = array_sum(results, n_samples) / n_samples; 24 printf("Average of 1B lognormal(0,10): %f\n", avg); 25 26 free(results); 27 28 // free(seed); 29 // ^ not necessary, because sampler_parallel takes care of the seed. 30 }