squiggle.c

Self-contained Monte Carlo estimation in C99
Log | Files | Refs | README

example.c (664B)


      1 #include "../../../squiggle.h"
      2 #include "../../../squiggle_more.h"
      3 #include <stdio.h>
      4 #include <stdlib.h>
      5 
      6 // Estimate functions
      7 double sample_beta_3_2(uint64_t* seed)
      8 {
      9     return sample_beta(3.0, 2.0, seed);
     10 }
     11 
     12 int main()
     13 {
     14     // set randomness seed
     15     uint64_t* seed = malloc(sizeof(uint64_t));
     16     *seed = 1000; // xorshift can't start with 0
     17 
     18     int n_samples = 1 * MILLION;
     19     double* xs = malloc(sizeof(double) * (size_t)n_samples);
     20     sampler_parallel(sample_beta_3_2, xs, 16, n_samples);
     21 
     22     printf("\n# Stats\n");
     23     array_print_stats(xs, n_samples);
     24     printf("\n# Histogram\n");
     25     array_print_histogram(xs, n_samples, 23);
     26 
     27     free(seed);
     28 }