aboutsummaryrefslogtreecommitdiffstats
path: root/test_rtnorm.cpp
diff options
context:
space:
mode:
authorGuillaume Horel <guillaume.horel@gmail.com>2016-02-01 07:28:14 -0500
committerGuillaume Horel <guillaume.horel@gmail.com>2016-02-01 07:28:14 -0500
commited2b8a603366edb8169560dc03afadc6478e4240 (patch)
treeed4797c58fcca444e89863d11171d72e136a0d5e /test_rtnorm.cpp
parente7de14b88c43a5a4836bf1ee6bbe9050676d143a (diff)
downloadprojet_C++-ed2b8a603366edb8169560dc03afadc6478e4240.tar.gz
code pour tirer une normale tronquée
Diffstat (limited to 'test_rtnorm.cpp')
-rw-r--r--test_rtnorm.cpp45
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;
+}
+