diff options
| author | Guillaume Horel <guillaume.horel@gmail.com> | 2016-02-01 07:28:14 -0500 |
|---|---|---|
| committer | Guillaume Horel <guillaume.horel@gmail.com> | 2016-02-01 07:28:14 -0500 |
| commit | ed2b8a603366edb8169560dc03afadc6478e4240 (patch) | |
| tree | ed4797c58fcca444e89863d11171d72e136a0d5e /test_rtnorm.cpp | |
| parent | e7de14b88c43a5a4836bf1ee6bbe9050676d143a (diff) | |
| download | projet_C++-ed2b8a603366edb8169560dc03afadc6478e4240.tar.gz | |
code pour tirer une normale tronquée
Diffstat (limited to 'test_rtnorm.cpp')
| -rw-r--r-- | test_rtnorm.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test_rtnorm.cpp b/test_rtnorm.cpp new file mode 100644 index 0000000..48ce933 --- /dev/null +++ b/test_rtnorm.cpp @@ -0,0 +1,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; +} + |
