squiggle.c

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

example.c (942B)


      1 #include "../../../squiggle.h"
      2 #include "../../../squiggle_more.h"
      3 #include <math.h>
      4 #include <stdio.h>
      5 #include <stdlib.h>
      6 
      7 int main()
      8 {
      9     // set randomness seed
     10     uint64_t* seed = malloc(sizeof(uint64_t));
     11     *seed = 1000; // xorshift can't start with 0
     12 
     13     normal_params n1 = { .mean = 1.0, .std = 3.0 };
     14     normal_params n2 = { .mean = 2.0, .std = 4.0 };
     15     normal_params sn = algebra_sum_normals(n1, n2);
     16     printf("The sum of Normal(%f, %f) and Normal(%f, %f) is Normal(%f, %f)\n",
     17         n1.mean, n1.std, n2.mean, n2.std, sn.mean, sn.std);
     18 
     19     lognormal_params ln1 = { .logmean = 1.0, .logstd = 3.0 };
     20     lognormal_params ln2 = { .logmean = 2.0, .logstd = 4.0 };
     21     lognormal_params sln = algebra_product_lognormals(ln1, ln2);
     22     printf("The product of Lognormal(%f, %f) and Lognormal(%f, %f) is Lognormal(%f, %f)\n",
     23         ln1.logmean, ln1.logstd, ln2.logmean, ln2.logstd, sln.logmean, sln.logstd);
     24 
     25     free(seed);
     26 }