Ajout de l'ensemble du workspace.
[GPU.git] / WCudaMSE / BilatTools_CPP / src / core / tools / cpp / AleaTools.cpp
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 (executable)
index 0000000..f55adc1
--- /dev/null
@@ -0,0 +1,72 @@
+#include <iostream>\r
+#include <math.h>\r
+#include <cstdlib>\r
+#include <stdlib.h>\r
+\r
+#include "AleaTools.h"\r
+\r
+using std::cout;\r
+using std::endl;\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    Implementation                                  *|\r
+ \*---------------------------------------------------------------------*/\r
+\r
+/*--------------------------------------*\\r
+ |*            Constructor             *|\r
+ \*-------------------------------------*/\r
+\r
+AleaTools::AleaTools()\r
+    {\r
+    srand(time(NULL));\r
+    }\r
+\r
+AleaTools::~AleaTools()\r
+    {\r
+    // rien\r
+    }\r
+\r
+/*--------------------------------------*\\r
+ |*            Methodes                *|\r
+ \*-------------------------------------*/\r
+\r
+/*----------------------*\\r
+ |*    static          *|\r
+ \*---------------------*/\r
+\r
+/**\r
+ * in [a,b]\r
+ * Attention : pas thread safe\r
+ */\r
+double AleaTools::uniformeAB(double a, double b)\r
+    {\r
+    return a + uniforme01() * (b - a);\r
+    }\r
+\r
+/**\r
+ * in [0,1]\r
+ * Attention : pas thread safe\r
+ */\r
+double AleaTools::uniforme01(void)\r
+    {\r
+    // rand in [0,RAND_MAX]\r
+    return rand() / (double) RAND_MAX;\r
+    }\r
+\r
+/**\r
+ * in [a,b]\r
+ * Attention : pas thread safe\r
+ */\r
+int AleaTools::uniformeAB(int a, int b)\r
+    {\r
+    // rand in [0,RAND_MAX]\r
+    double pente = (b-a)/(double)RAND_MAX;\r
+\r
+    return a+(int)(pente*rand());\r
+    }\r
+\r
+\r
+/*----------------------------------------------------------------------*\\r
+ |*                    End                                             *|\r
+ \*---------------------------------------------------------------------*/\r
+\r