Skip to content
Extraits de code Groupes Projets
Valider 8bdf0e3f rédigé par Hugo TRACHINO's avatar Hugo TRACHINO
Parcourir les fichiers

PM does not overuse RAM

parent f57923f1
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -2,6 +2,9 @@
int main(int argc, char **argv) {
int nRNG, nCuts;
std::ofstream rescsv;
rescsv.open("gva_res.csv");
if(argc <2){
printf("Please give the number of random generated number \n");
return -1;
......@@ -13,14 +16,20 @@ int main(int argc, char **argv) {
else
nCuts = atoi(argv[2]);
long unif[nRNG];
// create the outputs
for (int i = 0; i < nRNG; i++)
unif[i] = uniform();
// store hist freqs
long unif;
int freqs[nCuts];
// initialize frequences
for(int i=0; i < nCuts; i ++)
freqs[i] = 0;
store_res(unif, freqs, nRNG, nCuts);
freqs[i] = 0;
for (int i = 0; i < nRNG; i++){
// create the outputs
unif = uniform();
// store hist freqs
freqs[unif%nCuts] ++;
rescsv << unif;
rescsv << "\n";
}
store_freqs(freqs, nCuts);
rescsv.close();
}
......@@ -10,39 +10,52 @@ 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 > 0x7FFFFFFF)
lo -= 0x7FFFFFFF;
seed=(long) lo;
return seed ;
}
//void gaussian(){
// Y0 = sqrt(-2* log(U0))*cos(2* pi * U1);
// Y1 = sqrt(-2* log(U0))*sin(2* pi * U1);
//}
void gaussian(double U0, double U1, double res[2]){
res[0] = sqrt(-2 * log(U0)) * cos(2 * M_PI * U1);
res[1] = sqrt(-2 * log(U0)) * sin(2 * M_PI * U1);
}
void store_res(long * res, int freqs[], int nRNG, int nCuts){
void store_freqs(int freqs[], int nCuts){
std::ofstream freqcsv;
freqcsv.open("gva_freqs.csv");
int i;
for (i=0; i < nCuts; i++){
freqcsv << (double) i / nCuts;
freqcsv << "-";
freqcsv << (double) (i+1) / nCuts;
freqcsv << ", ";
freqcsv << freqs[i];
freqcsv << "\n";
}
freqcsv << "1.0, 0";
freqcsv.close();
}
void store_res_double(double * res, int freqs[], int nRNG, int nCuts){
std::ofstream myfile, freqcsv;
myfile.open("gva_res.csv");
freqcsv.open("gva_freqs.csv");
int i;
for (i = 0; i < nRNG; i ++){
freqs[res[i]%nCuts] ++;
// freqs[res[i]%nCuts] ++;
myfile << res[i];
myfile << "\n";
}
for (i=0; i < nCuts; i++){
freqcsv << "0.";
freqcsv << i;
freqcsv << ", ";
freqcsv << freqs[i];
freqcsv << "\n";
}
freqcsv << "1.0, 0";
// for (i=0; i < nCuts; i++){
// freqcsv << (double) i / nCuts;
// freqcsv << ", ";
// freqcsv << freqs[i];
// freqcsv << "\n";
// }
// freqcsv << "1.0, 0";
myfile.close();
freqcsv.close();
}
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter