-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnormal-distribution.c
31 lines (30 loc) · 1.07 KB
/
normal-distribution.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include "qc.h"
int main(int argc, char* argv[]) {
qc_err* err = qc_err_new();
qc_args* args = qc_args_new();
size_t iterations;
double mu, sigma;
qc_args_unsigned_default(args, "n", 10, &iterations, "number of generated values");
qc_args_double_default(args, "mu", 0.0, &mu, "expected value");
qc_args_double_default(args, "sigma", 1.0, &sigma, "standard deviation");
if (qc_args_parse(args, argc, argv, err) == QC_FAILURE) {
fprintf(stderr, "Failed to parse arguments: %s", qc_err_to_owned_c_str(err));
return EXIT_FAILURE;
}
{
qc_distr_normal* distr;
if ((distr = qc_distr_normal_init(mu, sigma, err)) == NULL) {
fprintf(stderr, "Failed to initialize random generator: %s", qc_err_to_owned_c_str(err));
return EXIT_FAILURE;
}
for (size_t i = 0; i < iterations; ++i) {
printf("%f\n", qc_distr_normal_gen(distr));
}
qc_distr_normal_free(distr);
}
qc_args_free(args);
qc_err_free(err);
}