From f79f8518efe9741c792b0c437538df0e063a8363 Mon Sep 17 00:00:00 2001
From: Hugo TRACHINO <hugo.trachino@pc127-01.pedago.ensiie.fr>
Date: Fri, 27 Sep 2019 15:19:38 +0200
Subject: [PATCH] PM finally

---
 PM.cpp               |  58 +++++++++++++++++++++++++++++++++++++++++++
 gva_freqs_1000.odc   | Bin 0 -> 7075 bytes
 gva_freqs_100000.odc | Bin 0 -> 8076 bytes
 3 files changed, 58 insertions(+)
 create mode 100644 PM.cpp
 create mode 100644 gva_freqs_1000.odc
 create mode 100644 gva_freqs_100000.odc

diff --git a/PM.cpp b/PM.cpp
new file mode 100644
index 0000000..8ab29a7
--- /dev/null
+++ b/PM.cpp
@@ -0,0 +1,58 @@
+#include <iostream>
+#include <fstream>
+#include <stdio.h>
+#include <math.h>
+using namespace std;
+const unsigned int n = 0xFFFF;
+const unsigned int m = 16807;
+const unsigned int b = 0;
+static long  seed = 0xAAAA;
+long uniform() {
+   long unsigned int hi = m * (seed & n);
+   long unsigned int lo = m * (seed >> 16);
+
+   lo+= (hi & 0x7FFF) << 16;
+   lo+= hi >> 15;   
+   
+   if (lo > 0x7FFFFFFFF)
+      lo -= 0x7FFFFFFF;
+   seed=(long) lo;
+   return seed %10;
+}
+void store_res(long * res, int freqs[10], int size){
+	std::ofstream myfile, freqcsv;
+	myfile.open("gva_res.csv");
+	freqcsv.open("gva_freqs.csv");
+	int i;
+	for (i = 0; i < size; i ++){
+		freqs[res[i]] ++;
+		myfile << res[i];
+		myfile << "\n";
+	}
+	for (i=0; i < 10; i++){
+		freqcsv << "0.";
+		freqcsv << i;
+		freqcsv << ", ";
+		freqcsv << freqs[i];
+		freqcsv << "\n";
+	}
+	myfile.close();
+	freqcsv.close();
+}
+
+int main(int argc, char **argv) {
+   if(argc <2)
+	   return -1;
+   long unif[atoi(argv[1])];
+   // create the outputs
+   for (int i = 0; i < atoi(argv[1]); i++)
+      unif[i] = uniform();
+   
+   // store hist freqs
+   int freqs[10];
+   for(int i=0; i < 10; i ++)
+	   freqs[i] = 0;
+   store_res(unif, freqs, atoi(argv[1]));
+   for (int i = 0; i < atoi(argv[1]); i++)
+      cout << unif[i] << endl;
+}
diff --git a/gva_freqs_1000.odc b/gva_freqs_1000.odc
new file mode 100644
index 0000000000000000000000000000000000000000..c22348860e3431d963b315029d747805fac824e9
GIT binary patch
literal 7075
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
K@^oZ>-u?^J66|gO

literal 0
HcmV?d00001

diff --git a/gva_freqs_100000.odc b/gva_freqs_100000.odc
new file mode 100644
index 0000000000000000000000000000000000000000..9afb9a637b633867fd069b3732ac592286521317
GIT binary patch
literal 8076
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

literal 0
HcmV?d00001

-- 
GitLab