X-Git-Url: http://git.euphorik.ch/index.cgi?a=blobdiff_plain;f=WCudaMSE%2FBilatTools_CPP%2Fsrc%2Fcore%2Ftools%2Fcpp%2FAleaTools.cpp;fp=WCudaMSE%2FBilatTools_CPP%2Fsrc%2Fcore%2Ftools%2Fcpp%2FAleaTools.cpp;h=f55adc122f31242e648e945a8768e4c6d4c94fe8;hb=8d08c12b29c2a14684f35c023ee39e694bb80d25;hp=0000000000000000000000000000000000000000;hpb=226de81f7e1f1fbf4ac79d0d089e8a05ec7159a0;p=GPU.git diff --git a/WCudaMSE/BilatTools_CPP/src/core/tools/cpp/AleaTools.cpp b/WCudaMSE/BilatTools_CPP/src/core/tools/cpp/AleaTools.cpp new file mode 100755 index 0000000..f55adc1 --- /dev/null +++ b/WCudaMSE/BilatTools_CPP/src/core/tools/cpp/AleaTools.cpp @@ -0,0 +1,72 @@ +#include +#include +#include +#include + +#include "AleaTools.h" + +using std::cout; +using std::endl; + +/*----------------------------------------------------------------------*\ + |* Implementation *| + \*---------------------------------------------------------------------*/ + +/*--------------------------------------*\ + |* Constructor *| + \*-------------------------------------*/ + +AleaTools::AleaTools() + { + srand(time(NULL)); + } + +AleaTools::~AleaTools() + { + // rien + } + +/*--------------------------------------*\ + |* Methodes *| + \*-------------------------------------*/ + +/*----------------------*\ + |* static *| + \*---------------------*/ + +/** + * in [a,b] + * Attention : pas thread safe + */ +double AleaTools::uniformeAB(double a, double b) + { + return a + uniforme01() * (b - a); + } + +/** + * in [0,1] + * Attention : pas thread safe + */ +double AleaTools::uniforme01(void) + { + // rand in [0,RAND_MAX] + return rand() / (double) RAND_MAX; + } + +/** + * in [a,b] + * Attention : pas thread safe + */ +int AleaTools::uniformeAB(int a, int b) + { + // rand in [0,RAND_MAX] + double pente = (b-a)/(double)RAND_MAX; + + return a+(int)(pente*rand()); + } + + +/*----------------------------------------------------------------------*\ + |* End *| + \*---------------------------------------------------------------------*/ +