Sélectionner une révision Git
-
Hugo TRACHINO a rédigéHugo TRACHINO a rédigé
fcts.h 1,38 Kio
#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 > 0x7FFFFFFF)
lo -= 0x7FFFFFFF;
seed=(long) lo;
return seed ;
}
void gaussian(double U0, double U1, double *res){
res[0] = sqrt(-2 * log(U0)) * cos(2 * M_PI * U1);
res[1] = sqrt(-2 * log(U0)) * sin(2 * M_PI * U1);
}
void store_freqs(int freqs[], int nCuts){
std::ofstream freqcsv;
freqcsv.open("frequences/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;
freqcsv.open("frequences/gvg_freqs.csv");
int i;
for (i = 0; i < nRNG; i ++){
// freqs[res[i]%nCuts] ++;
myfile << res[i];
myfile << "\n";
}
// for (i=0; i < nCuts; i++){
// freqcsv << (double) i / nCuts;
// freqcsv << ", ";
// freqcsv << freqs[i];
// freqcsv << "\n";
// }
// freqcsv << "1.0, 0";
myfile.close();
freqcsv.close();
}