squiggle.c

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

example.c (1239B)


      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     // Convert to 90% confidence interval form and back
     14     lognormal_params ln1 = { .logmean = 1.0, .logstd = 3.0 };
     15     ci ln1_ci = convert_lognormal_params_to_ci(ln1);
     16     printf("The 90%% confidence interval of Lognormal(%f, %f) is [%f, %f]\n",
     17         ln1.logmean, ln1.logstd,
     18         ln1_ci.low, ln1_ci.high);
     19     lognormal_params ln1_params2 = convert_ci_to_lognormal_params(ln1_ci);
     20     printf("The lognormal which has 90%% confidence interval [%f, %f] is Lognormal(%f, %f)\n",
     21         ln1_ci.low, ln1_ci.high,
     22         ln1_params2.logmean, ln1_params2.logstd);
     23 
     24     lognormal_params ln2 = convert_ci_to_lognormal_params((ci) { .low = 1, .high = 10 });
     25     lognormal_params ln3 = convert_ci_to_lognormal_params((ci) { .low = 5, .high = 50 });
     26 
     27     lognormal_params sln = algebra_product_lognormals(ln2, ln3);
     28     ci sln_ci = convert_lognormal_params_to_ci(sln);
     29 
     30     printf("Result of some lognormal products: to(%f, %f)\n", sln_ci.low, sln_ci.high);
     31 
     32     free(seed);
     33 }