blob: 48ce933a3cef6bcf4b3ebd5a1d8022094184657e (
plain)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
// Example for using rtnorm
//
// Copyright (C) 2012 Guillaume Dollé, Vincent Mazet (LSIIT, CNRS/Université de Strasbourg)
// Licence: GNU General Public License Version 2
// see http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
//
// Depends: LibGSL
// OS: Unix based system
#include <iostream>
#include <gsl/gsl_rng.h>
#include "rtnorm.hpp"
int main()
{
double a = 1; // Left bound
double b = 9; // Right bound
double mu = 2; // Mean
double sigma = 3; // Standard deviation
std::pair<double, double> s; // Output argument of rtnorm
int K = 1e5; // Number of random variables to generate
//--- GSL random init ---
gsl_rng_env_setup(); // Read variable environnement
const gsl_rng_type* type = gsl_rng_default; // Default algorithm 'twister'
gsl_rng *gen = gsl_rng_alloc (type); // Rand generator allocation
//--- generate and display the random numbers ---
//std::cout<<"# x p(x)"<<std::endl;
std::cout<<a<<" "<<b<<std::endl;
std::cout<<mu<<" "<<sigma<<std::endl;
for(int k=0; k<K; k++)
{
s = rtnorm(gen,a,b,mu,sigma);
std::cout<<s.first<<" "<<s.second<<std::endl;
}
gsl_rng_free(gen); // GSL rand generator deallocation
return 0;
}
|