Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • af4e0dad95e1d96098f133948c7e0bfaca509099
  • master par défaut protégée
2 résultats

fcts.h

Blame
  • 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();
    }