squiggle.c

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

example.c (693B)


      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     for (int i = 0; i < n_samples; i++) {
     21         xs[i] = sample_beta_3_2(seed);
     22     }
     23 
     24     printf("\n# Stats\n");
     25     array_print_stats(xs, n_samples);
     26     printf("\n# Histogram\n");
     27     array_print_histogram(xs, n_samples, 23);
     28 
     29     free(seed);
     30 }